[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-panel-devel
Subject: D15093: Add WireGuard capability.
From: Pino Toscano <noreply () phabricator ! kde ! org>
Date: 2018-09-12 7:08:38
Message-ID: fff3bb106e9230a0cfd1d0c35b975c23 () localhost ! localdomain
[Download RAW message or body]
[Attachment #2 (text/plain)]
pino requested changes to this revision.
pino added a comment.
This revision now requires changes to proceed.
In D15093#324457 <https://phabricator.kde.org/D15093#324457>, @andersonbruce wrote:
> A couple of questions on opening other review requests:
>
> - Should I open a bug request on bugs.kde.org before opening the review?
No need to, they are only internal refactorings/improvements.
> - Is there any special way I need to mark dependencies? That is, the \
simpleiplistvalidator is dependent on the updates to the simpleipv4/6 validators and \
WireGuard is dependent on both.
I think so: see on the top-right "Edit Related Revisions" -> "Edit Parent/Child \
Revisions".
> - Is there a preferred unit test framework that KDE uses?
Qt ships its own QtTest -- see http://doc.qt.io/qt-5/qtest-overview.html
> And do you possibly have a pointer to a sample of other projects that use it?
One simple example is in juk, see the `tests` subdirectory.
INLINE COMMENTS
> simpleiplistvalidator.cpp:27-28
> +SimpleIpListValidator::SimpleIpListValidator(QObject *parent,
> + enum AddressStyle style,
> + enum AddressType type)
> + : QValidator(parent)
this is not C, so 'enum' is not needed
> simpleiplistvalidator.cpp:31-34
> + addressStyle = style;
> + addressType = type;
> + ipv4Validator = nullptr;
> + ipv6Validator = nullptr;
these can be moved to the constructor initialization list, so it's slightly more \
efficient
> simpleiplistvalidator.cpp:42
> + ipv4Style = SimpleIpV4AddressValidator::AddressStyle::WithCidr;
> + ipv4Validator = new SimpleIpV4AddressValidator(nullptr, ipv4Style);
> + }
this is leaked -- either you pass 'this' as parent, or explicitly delete them in the \
class destructor
> simpleiplistvalidator.cpp:50
> + ipv6Style = SimpleIpV6AddressValidator::AddressStyle::WithCidr;
> + ipv6Validator = new SimpleIpV6AddressValidator(nullptr, ipv6Style);
> + }
ditto
> simpleiplistvalidator.cpp:61
> + // Split the incoming address on commas possibly with spaces on either side
> + QStringList addressList = address.split(QRegExp("\\s*,\\s*"));
> +
a regexp is not needed here, just pass QString::SkipEmptyParts to split()
> simpleiplistvalidator.cpp:67-68
> + int i = 0;
> + QValidator::State ipv4Result = QValidator::Acceptable;
> + QValidator::State ipv6Result = QValidator::Acceptable;
> + QValidator::State result = QValidator::Acceptable;
these can be moved inside the foreach loop
> simpleiplistvalidator.cpp:78
> + if (ipv4Validator != nullptr)
> + ipv4Result = ipv4Validator->validate(const_cast<QString&>(addr), \
> localPos); + else
this const_cast is not nice... rather keep a local copy of the string
> simpleiplistvalidator.cpp:85
> + if (ipv6Validator != nullptr)
> + ipv6Result = ipv6Validator->validate(const_cast<QString&>(addr), \
> localPos); + else
ditto
> simpleiplistvalidator.cpp:91-92
> + if (ipv6Result == QValidator::Invalid && ipv4Result == \
> QValidator::Invalid) { + result = QValidator::Invalid;
> + break;
> + }
i think you can just `return QValidator::Invalid` straight away
> simpleiplistvalidator.h:42-45
> + AddressStyle addressStyle;
> + AddressType addressType;
> + SimpleIpV6AddressValidator *ipv6Validator;
> + SimpleIpV4AddressValidator *ipv4Validator;
private class variables start with "m_" prefix
> simpleipv4addressvalidator.cpp:26
>
> -SimpleIpV4AddressValidator::SimpleIpV4AddressValidator(QObject *parent)
> +SimpleIpV4AddressValidator::SimpleIpV4AddressValidator(QObject *parent, enum \
> AddressStyle style) : QValidator(parent)
as above, no "enum"
> simpleipv4addressvalidator.cpp:29
> {
> + addressStyle = style;
> }
in constructor initialization list
> simpleipv4addressvalidator.cpp:55-66
> + v = new QRegExpValidator(QRegExp(QLatin1String("[0-9, ]{1,3}\\.[0-9, \
> ]{1,3}\\.[0-9, ]{1,3}\\.[0-9, ]{1,3}")), 0); + break;
> +
> + case WithCidr:
> + v = new QRegExpValidator(QRegExp(QLatin1String("([0-9, \
> ]{1,3}\\.){3,3}[0-9, ]{1,3}/[0-9]{1,2}")), 0); + break;
> +
all the regexps and their validators are created every time, and this is going to be \
super slow; since the type is decided at constructor time and never changed, just \
create the validator once
(alos, this code leaks all the validators)
> simpleipv4addressvalidator.cpp:120
>
> +
> // replace input string with the corrected version
unneeded empty line change
> simpleipv4addressvalidator.cpp:137
> + } else {
> + value += QString::number(cidrValue);
> + return QValidator::Acceptable;
there is already `cidrParts[1]` as string, so no need to create it again from the \
value
> simpleipv4addressvalidator.cpp:148
> + } else {
> + value += QString::number(portValue);
> + return QValidator::Acceptable;
ditto
> simpleipv4addressvalidator.h:44
> +private:
> + AddressStyle addressStyle;
> };
"m_" prefix
> simpleipv6addressvalidator.cpp:26
>
> -SimpleIpV6AddressValidator::SimpleIpV6AddressValidator(QObject *parent)
> +SimpleIpV6AddressValidator::SimpleIpV6AddressValidator(QObject *parent, enum \
> AddressStyle style) : QValidator(parent)
no need for "enum"
> simpleipv6addressvalidator.cpp:29
> {
> + addressStyle = style;
> }
in constructor initialization list
> simpleipv6addressvalidator.cpp:50-57
> + case Base:
> + v = new QRegExpValidator(QRegExp(QLatin1String("([0-9a-fA-F]{1,4}|:)+")), \
> nullptr); + break;
> +
> + case WithCidr:
> + v = new QRegExpValidator(QRegExp(QLatin1String("([0-9a-fA-F]{1,4}|:)+/[0-9]{1,3}")), \
> nullptr); + break;
as above, created every time, and leaked
> simpleipv6addressvalidator.h:44
> +private:
> + AddressStyle addressStyle;
> };
"m_" prefix
REPOSITORY
R116 Plasma Network Management Applet
REVISION DETAIL
https://phabricator.kde.org/D15093
To: andersonbruce, #plasma, jgrulich, pino
Cc: acrouthamel, K900, pino, lbeltrame, ngraham, plasma-devel, ragreen, Pitel, \
ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart
[Attachment #3 (text/html)]
<table><tr><td style="">pino requested changes to this revision.<br />pino added a \
comment.<br />This revision now requires changes to proceed. </td><a \
style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; \
color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; \
background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; \
border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D15093">View \
Revision</a></tr></table><br /><div><div><blockquote style="border-left: 3px solid \
#8C98B8; color: #6B748C;
font-style: italic;
margin: 4px 0 12px 0;
padding: 8px 12px;
background-color: #F8F9FC;">
<div style="font-style: normal;
padding-bottom: 4px;">In <a \
href="https://phabricator.kde.org/D15093#324457" style="background-color: #e7e7e7; \
border-color: #e7e7e7; border-radius: 3px;
padding: 0 4px;
font-weight: bold;
color: black;text-decoration: none;">D15093#324457</a>, <a \
href="https://phabricator.kde.org/p/andersonbruce/" style=" border-color: #f1f7ff;
color: #19558d;
background-color: #f1f7ff;
border: 1px solid transparent;
border-radius: 3px;
font-weight: bold;
padding: 0 4px;">@andersonbruce</a> wrote:</div>
<div style="margin: 0;
padding: 0;
border: 0;
color: rgb(107, 116, 140);"><p>A couple of questions on opening other \
review requests:</p>
<ul class="remarkup-list">
<li class="remarkup-list-item">Should I open a bug request on bugs.kde.org before \
opening the review?</li> </ul></div>
</blockquote>
<p>No need to, they are only internal refactorings/improvements.</p>
<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: \
italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><ul \
class="remarkup-list"> <li class="remarkup-list-item">Is there any special way I need \
to mark dependencies? That is, the simpleiplistvalidator is dependent on the updates \
to the simpleipv4/6 validators and WireGuard is dependent on both.</li> \
</ul></blockquote>
<p>I think so: see on the top-right "Edit Related Revisions" -> \
"Edit Parent/Child Revisions".</p>
<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: \
italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><ul \
class="remarkup-list"> <li class="remarkup-list-item">Is there a preferred unit test \
framework that KDE uses?</li> </ul></blockquote>
<p>Qt ships its own QtTest -- see <a href="http://doc.qt.io/qt-5/qtest-overview.html" \
class="remarkup-link" target="_blank" \
rel="noreferrer">http://doc.qt.io/qt-5/qtest-overview.html</a></p>
<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: \
italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>And \
do you possibly have a pointer to a sample of other projects that use \
it?</p></blockquote>
<p>One simple example is in juk, see the <tt style="background: #ebebeb; font-size: \
13px;">tests</tt> subdirectory.</p></div></div><br /><div><strong>INLINE \
COMMENTS</strong><div><div style="margin: 6px 0 12px 0;"><div style="border: 1px \
solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; \
border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div \
style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a \
style="float: right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83109">View Inline</a><span \
style="color: #4b4d51; font-weight: \
bold;">simpleiplistvalidator.cpp:27-28</span></div> <div style="font: 11px/15px \
"Menlo", "Consolas", "Monaco", monospace; white-space: \
pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"><span \
class="n">SimpleIpListValidator</span><span style="color: #aa2211">::</span><span \
class="n">SimpleIpListValidator</span><span class="p">(</span><span \
class="n">QObject</span> <span style="color: #aa2211">*</span><span \
class="n">parent</span><span class="p">,</span> </div><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> \
<span style="color: #aa4000">enum</span> <span class="n">AddressStyle</span> <span \
class="n">style</span><span class="p">,</span> </div><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> \
<span style="color: #aa4000">enum</span> <span class="n">AddressType</span> <span \
class="n">type</span><span class="p">)</span> </div><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span style="color: \
#aa2211">:</span> <span class="n">QValidator</span><span class="p">(</span><span \
class="n">parent</span><span class="p">)</span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">this \
is not C, so 'enum' is not needed</p></div></div><br /><div style="border: \
1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; \
border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div \
style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a \
style="float: right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83111">View Inline</a><span \
style="color: #4b4d51; font-weight: \
bold;">simpleiplistvalidator.cpp:31-34</span></div> <div style="font: 11px/15px \
"Menlo", "Consolas", "Monaco", monospace; white-space: \
pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span \
class="n">addressStyle</span> <span style="color: #aa2211">=</span> <span \
class="n">style</span><span class="p">;</span> </div><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span \
class="n">addressType</span> <span style="color: #aa2211">=</span> <span \
class="n">type</span><span class="p">;</span> </div><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span \
class="n">ipv4Validator</span> <span style="color: #aa2211">=</span> <span \
style="color: #aa4000">nullptr</span><span class="p">;</span> </div><div \
style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span \
class="n">ipv6Validator</span> <span style="color: #aa2211">=</span> <span \
style="color: #aa4000">nullptr</span><span class="p">;</span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: \
8px;">these can be moved to the constructor initialization list, so it's \
slightly more efficient</p></div></div><br /><div style="border: 1px solid #C7CCD9; \
border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: \
#e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: \
#74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: \
right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83113">View Inline</a><span \
style="color: #4b4d51; font-weight: bold;">simpleiplistvalidator.cpp:42</span></div> \
<div style="font: 11px/15px "Menlo", "Consolas", \
"Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; \
margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, \
151, .6);"> <span class="n">ipv4Style</span> <span style="color: \
#aa2211">=</span> <span class="n">SimpleIpV4AddressValidator</span><span \
style="color: #aa2211">::</span><span class="n">AddressStyle</span><span \
style="color: #aa2211">::</span><span class="n">WithCidr</span><span \
class="p">;</span> </div><div style="padding: 0 8px; margin: 0 4px; background: \
rgba(151, 234, 151, .6);"> <span class="n">ipv4Validator</span> <span \
style="color: #aa2211">=</span> <span style="color: #aa4000">new</span> <span \
class="n">SimpleIpV4AddressValidator</span><span class="p">(</span><span \
style="color: #aa4000">nullptr</span><span class="p">,</span> <span \
class="n">ipv4Style</span><span class="p">);</span> </div><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span class="p">}</span> \
</div></div></div> <div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; \
margin: 8px;">this is leaked -- either you pass 'this' as parent, or \
explicitly delete them in the class destructor</p></div></div><br /><div \
style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; \
background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 \
1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; \
overflow: hidden;"><a style="float: right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83114">View Inline</a><span \
style="color: #4b4d51; font-weight: bold;">simpleiplistvalidator.cpp:50</span></div> \
<div style="font: 11px/15px "Menlo", "Consolas", \
"Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; \
margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, \
151, .6);"> <span class="n">ipv6Style</span> <span style="color: \
#aa2211">=</span> <span class="n">SimpleIpV6AddressValidator</span><span \
style="color: #aa2211">::</span><span class="n">AddressStyle</span><span \
style="color: #aa2211">::</span><span class="n">WithCidr</span><span \
class="p">;</span> </div><div style="padding: 0 8px; margin: 0 4px; background: \
rgba(151, 234, 151, .6);"> <span class="n">ipv6Validator</span> <span \
style="color: #aa2211">=</span> <span style="color: #aa4000">new</span> <span \
class="n">SimpleIpV6AddressValidator</span><span class="p">(</span><span \
style="color: #aa4000">nullptr</span><span class="p">,</span> <span \
class="n">ipv6Style</span><span class="p">);</span> </div><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span class="p">}</span> \
</div></div></div> <div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; \
margin: 8px;">ditto</p></div></div><br /><div style="border: 1px solid #C7CCD9; \
border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: \
#e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: \
#74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: \
right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83115">View Inline</a><span \
style="color: #4b4d51; font-weight: bold;">simpleiplistvalidator.cpp:61</span></div> \
<div style="font: 11px/15px "Menlo", "Consolas", \
"Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; \
margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, \
151, .6);"> <span style="color: #74777d">// Split the incoming address on commas \
possibly with spaces on either side</span> </div><div style="padding: 0 8px; margin: \
0 4px; background: rgba(151, 234, 151, .6);"> <span class="n">QStringList</span> \
<span class="n">addressList</span> <span style="color: #aa2211">=</span> <span \
class="n">address</span><span class="p">.</span><span class="n">split</span><span \
class="p">(</span><span class="n">QRegExp</span><span class="p">(</span><span \
style="color: #766510">"</span><span style="color: #bb6622">\\</span><span \
style="color: #766510">s*,</span><span style="color: #bb6622">\\</span><span \
style="color: #766510">s*"</span><span class="p">));</span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">a \
regexp is not needed here, just pass QString::SkipEmptyParts to \
split()</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: \
3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; \
border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; \
background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; \
text-decoration: none;" href="https://phabricator.kde.org/D15093#inline-83116">View \
Inline</a><span style="color: #4b4d51; font-weight: \
bold;">simpleiplistvalidator.cpp:67-68</span></div> <div style="font: 11px/15px \
"Menlo", "Consolas", "Monaco", monospace; white-space: \
pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span style="color: \
#aa4000">int</span> <span class="n">i</span> <span style="color: #aa2211">=</span> \
<span style="color: #601200">0</span><span class="p">;</span> </div><div \
style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span \
class="n">QValidator</span><span style="color: #aa2211">::</span><span \
class="n">State</span> <span class="n">ipv4Result</span> <span style="color: \
#aa2211">=</span> <span class="n">QValidator</span><span style="color: \
#aa2211">::</span><span class="n">Acceptable</span><span class="p">;</span> \
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, \
.6);"> <span class="n">QValidator</span><span style="color: \
#aa2211">::</span><span class="n">State</span> <span class="n">ipv6Result</span> \
<span style="color: #aa2211">=</span> <span class="n">QValidator</span><span \
style="color: #aa2211">::</span><span class="n">Acceptable</span><span \
class="p">;</span> </div><div style="padding: 0 8px; margin: 0 4px; background: \
rgba(151, 234, 151, .6);"> <span class="n">QValidator</span><span style="color: \
#aa2211">::</span><span class="n">State</span> <span class="n">result</span> <span \
style="color: #aa2211">=</span> <span class="n">QValidator</span><span style="color: \
#aa2211">::</span><span class="n">Acceptable</span><span class="p">;</span> \
</div></div></div> <div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; \
margin: 8px;">these can be moved inside the foreach loop</p></div></div><br /><div \
style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; \
background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 \
1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; \
overflow: hidden;"><a style="float: right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83118">View Inline</a><span \
style="color: #4b4d51; font-weight: bold;">simpleiplistvalidator.cpp:78</span></div> \
<div style="font: 11px/15px "Menlo", "Consolas", \
"Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; \
margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, \
151, .6);"> <span style="color: #aa4000">if</span> <span \
class="p">(</span><span class="n">ipv4Validator</span> <span style="color: \
#aa2211">!=</span> <span style="color: #aa4000">nullptr</span><span \
class="p">)</span> </div><div style="padding: 0 8px; margin: 0 4px; background: \
rgba(151, 234, 151, .6);"> <span class="n">ipv4Result</span> <span \
style="color: #aa2211">=</span> <span class="n">ipv4Validator</span><span \
style="color: #aa2211">-></span><span class="n">validate</span><span \
class="p">(</span><span style="color: #aa4000">const_cast</span><span style="color: \
#aa2211"><</span><span class="n">QString</span><span style="color: \
#aa2211">&></span><span class="p">(</span><span class="n">addr</span><span \
class="p">),</span> <span class="n">localPos</span><span class="p">);</span> \
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, \
.6);"> <span style="color: #aa4000">else</span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">this \
const_cast is not nice... rather keep a local copy of the string</p></div></div><br \
/><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; \
background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 \
1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; \
overflow: hidden;"><a style="float: right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83119">View Inline</a><span \
style="color: #4b4d51; font-weight: bold;">simpleiplistvalidator.cpp:85</span></div> \
<div style="font: 11px/15px "Menlo", "Consolas", \
"Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; \
margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, \
151, .6);"> <span style="color: #aa4000">if</span> <span \
class="p">(</span><span class="n">ipv6Validator</span> <span style="color: \
#aa2211">!=</span> <span style="color: #aa4000">nullptr</span><span \
class="p">)</span> </div><div style="padding: 0 8px; margin: 0 4px; background: \
rgba(151, 234, 151, .6);"> <span class="n">ipv6Result</span> <span \
style="color: #aa2211">=</span> <span class="n">ipv6Validator</span><span \
style="color: #aa2211">-></span><span class="n">validate</span><span \
class="p">(</span><span style="color: #aa4000">const_cast</span><span style="color: \
#aa2211"><</span><span class="n">QString</span><span style="color: \
#aa2211">&></span><span class="p">(</span><span class="n">addr</span><span \
class="p">),</span> <span class="n">localPos</span><span class="p">);</span> \
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, \
.6);"> <span style="color: #aa4000">else</span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: \
8px;">ditto</p></div></div><br /><div style="border: 1px solid #C7CCD9; \
border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: \
#e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: \
#74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: \
right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83120">View Inline</a><span \
style="color: #4b4d51; font-weight: \
bold;">simpleiplistvalidator.cpp:91-92</span></div> <div style="font: 11px/15px \
"Menlo", "Consolas", "Monaco", monospace; white-space: \
pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span style="color: \
#aa4000">if</span> <span class="p">(</span><span class="n">ipv6Result</span> <span \
style="color: #aa2211">==</span> <span class="n">QValidator</span><span style="color: \
#aa2211">::</span><span class="n">Invalid</span> <span style="color: \
#aa2211">&&</span> <span class="n">ipv4Result</span> <span style="color: \
#aa2211">==</span> <span class="n">QValidator</span><span style="color: \
#aa2211">::</span><span class="n">Invalid</span><span class="p">)</span> <span \
class="p">{</span> </div><div style="padding: 0 8px; margin: 0 4px; background: \
rgba(151, 234, 151, .6);"> <span class="n">result</span> <span \
style="color: #aa2211">=</span> <span class="n">QValidator</span><span style="color: \
#aa2211">::</span><span class="n">Invalid</span><span class="p">;</span> </div><div \
style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"> \
<span style="color: #aa4000">break</span><span class="p">;</span> </div><div \
style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"> \
<span class="p">}</span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">i \
think you can just <tt style="background: #ebebeb; font-size: 13px;">return \
QValidator::Invalid</tt> straight away</p></div></div><br /><div style="border: 1px \
solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; \
border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div \
style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a \
style="float: right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83110">View Inline</a><span \
style="color: #4b4d51; font-weight: bold;">simpleiplistvalidator.h:42-45</span></div> \
<div style="font: 11px/15px "Menlo", "Consolas", \
"Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; \
margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, \
175, .7);"><span style="color: #74777d"> <span class="bright"> */</span></span> \
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, \
.7);"> <span class="bright"></span><span class="n"><span \
class="bright">QValidator</span></span><span class="bright"></span><span \
style="color: #aa2211"><span class="bright">::</span></span><span \
class="bright"></span><span class="n"><span class="bright">State</span></span><span \
class="bright"> </span><span class="n"><span \
class="bright">checkWithInputMask</span></span><span class="bright"></span><span \
class="p"><span class="bright">(</span></span><span class="bright"></span><span \
class="n"><span class="bright">QString</span></span><span class="bright"> \
</span><span style="color: #aa2211"><span class="bright">&</span></span><span \
class="bright"></span><span class="p"><span class="bright">,</span></span><span \
class="bright"> </span><span style="color: #aa4000"><span \
class="bright">int</span></span><span class="bright"> </span><span style="color: \
#aa2211"><span class="bright">&</span></span><span class="bright"></span><span \
class="p"><span class="bright">)</span></span><span class="bright"> </span><span \
style="color: #aa4000"><span class="bright">const</span></span><span \
class="p">;</span> </div><div style="padding: 0 8px; margin: 0 4px; background: \
rgba(251, 175, 175, .7);"> <span class="bright"></span><span style="color: \
#74777d"><span class="bright">/** Function split intput string into tetrads and check \
them for v</span>alid<span class="bright"> values.</span></span> </div><div \
style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);"><span \
style="color: #74777d"> <span class="bright"> * In the tetrads are placed into \
QList. Input string may be changed.</span></span> </div><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(251, 175, 175, .7);"><span style="color: #74777d"> \
*/</span> </div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, \
175, .7);"> <span class="n">QValidator</span><span style="color: \
#aa2211">::</span><span class="n">State</span> <span \
class="n">checkTetradsRanges</span><span class="p">(</span><span \
class="n">QString</span> <span style="color: #aa2211">&</span><span \
class="p">,</span> <span class="n">QList</span><span style="color: \
#aa2211"><</span><span style="color: #aa4000">int</span><span style="color: \
#aa2211">>&</span><span class="p">)</span> <span style="color: \
#aa4000">const</span><span class="p">;</span> </div><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span \
class="bright"></span><span class="n"><span \
class="bright">AddressStyle</span></span><span class="bright"> </span><span \
class="n"><span class="bright">addressStyle</span></span><span \
class="bright"></span><span class="p"><span class="bright">;</span></span> </div><div \
style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span \
class="bright"></span><span class="n"><span \
class="bright">AddressType</span></span><span class="bright"> </span><span \
class="n"><span class="bright">addressType</span></span><span class="p">;</span> \
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, \
.6);"> <span class="bright"></span><span class="n"><span \
class="bright">SimpleIpV6AddressValidator</span></span><span class="bright"> \
</span><span style="color: #aa2211"><span class="bright">*</span></span><span \
class="bright"></span><span class="n"><span class="bright">ipv6V</span>alid<span \
class="bright">ator</span></span><span class="bright"></span><span class="p"><span \
class="bright">;</span></span> </div><div style="padding: 0 8px; margin: 0 4px; \
background: rgba(151, 234, 151, .6);"> <span class="bright"></span><span \
class="n"><span class="bright">SimpleIpV4AddressValidator</span></span><span \
class="bright"> </span><span style="color: #aa2211"><span \
class="bright">*</span></span><span class="bright"></span><span class="n"><span \
class="bright">ipv4Validator</span></span><span class="bright"></span><span \
class="p"><span class="bright">;</span></span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: \
8px;">private class variables start with "m_" prefix</p></div></div><br \
/><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; \
background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 \
1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; \
overflow: hidden;"><a style="float: right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83122">View Inline</a><span \
style="color: #4b4d51; font-weight: \
bold;">simpleipv4addressvalidator.cpp:26</span></div> <div style="font: 11px/15px \
"Menlo", "Consolas", "Monaco", monospace; white-space: \
pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(251, 175, 175, .7);"><span \
class="n">SimpleIpV4AddressValidator</span><span style="color: \
#aa2211">::</span><span class="n">SimpleIpV4AddressValidator</span><span \
class="p">(</span><span class="n">QObject</span> <span style="color: \
#aa2211">*</span><span class="n">parent</span><span class="p">)</span> </div><div \
style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"><span \
class="n">SimpleIpV4AddressValidator</span><span style="color: \
#aa2211">::</span><span class="n">SimpleIpV4AddressValidator</span><span \
class="p">(</span><span class="n">QObject</span> <span style="color: \
#aa2211">*</span><span class="n">parent<span class="bright"></span></span><span \
class="bright"></span><span class="p"><span class="bright">,</span></span><span \
class="bright"> </span><span style="color: #aa4000"><span \
class="bright">enum</span></span><span class="bright"> </span><span class="n"><span \
class="bright">AddressStyle</span></span><span class="bright"> </span><span \
class="n"><span class="bright">style</span></span><span class="p">)</span> </div><div \
style="padding: 0 8px; margin: 0 4px; "> <span style="color: #aa2211">:</span> \
<span class="n">QValidator</span><span class="p">(</span><span \
class="n">parent</span><span class="p">)</span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">as \
above, no "enum"</p></div></div><br /><div style="border: 1px solid \
#C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; \
border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div \
style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a \
style="float: right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83123">View Inline</a><span \
style="color: #4b4d51; font-weight: \
bold;">simpleipv4addressvalidator.cpp:29</span></div> <div style="font: 11px/15px \
"Menlo", "Consolas", "Monaco", monospace; white-space: \
pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; \
margin: 0 4px; "><span class="p">{</span> </div><div style="padding: 0 8px; margin: 0 \
4px; background: rgba(151, 234, 151, .6);"> <span class="n">addressStyle</span> \
<span style="color: #aa2211">=</span> <span class="n">style</span><span \
class="p">;</span> </div><div style="padding: 0 8px; margin: 0 4px; "><span \
class="p">}</span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">in \
constructor initialization list</p></div></div><br /><div style="border: 1px solid \
#C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; \
border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div \
style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a \
style="float: right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83124">View Inline</a><span \
style="color: #4b4d51; font-weight: \
bold;">simpleipv4addressvalidator.cpp:55-66</span></div> <div style="font: 11px/15px \
"Menlo", "Consolas", "Monaco", monospace; white-space: \
pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span class="n">v</span> \
<span style="color: #aa2211">=</span> <span style="color: #aa4000">new</span> <span \
class="n">QRegExpValidator</span><span class="p">(</span><span \
class="n">QRegExp</span><span class="p">(</span><span \
class="n">QLatin1String</span><span class="p">(</span><span style="color: \
#766510">"[0-9, ]{1,3}</span><span style="color: #bb6622">\\</span><span \
style="color: #766510">.[0-9, ]{1,3}</span><span style="color: \
#bb6622">\\</span><span style="color: #766510">.[0-9, ]{1,3}</span><span \
style="color: #bb6622">\\</span><span style="color: #766510">.[0-9, \
]{1,3}"</span><span class="p">)),</span> <span style="color: \
#601200">0</span><span class="p">);</span> </div><div style="padding: 0 8px; margin: \
0 4px; background: rgba(151, 234, 151, .6);"> <span style="color: \
#aa4000">break</span><span class="p">;</span> </div><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> </div><div style="padding: 0 \
8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span style="color: \
#aa4000">case</span> <span style="color: #a0a000">WithCidr</span><span \
class="p">:</span> </div><div style="padding: 0 8px; margin: 0 4px; background: \
rgba(151, 234, 151, .6);"> <span class="n">v</span> <span style="color: \
#aa2211">=</span> <span style="color: #aa4000">new</span> <span \
class="n">QRegExpValidator</span><span class="p">(</span><span \
class="n">QRegExp</span><span class="p">(</span><span \
class="n">QLatin1String</span><span class="p">(</span><span style="color: \
#766510">"([0-9, ]{1,3}</span><span style="color: #bb6622">\\</span><span \
style="color: #766510">.){3,3}[0-9, ]{1,3}/[0-9]{1,2}"</span><span \
class="p">)),</span> <span style="color: #601200">0</span><span class="p">);</span> \
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, \
.6);"> <span style="color: #aa4000">break</span><span class="p">;</span> \
</div></div></div> <div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; \
margin: 8px;">all the regexps and their validators are created every time, and this \
is going to be super slow; since the type is decided at constructor time and never \
changed, just create the validator once</p>
<p style="padding: 0; margin: 8px;">(alos, this code leaks all the \
validators)</p></div></div><br /><div style="border: 1px solid #C7CCD9; \
border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: \
#e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: \
#74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: \
right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83125">View Inline</a><span \
style="color: #4b4d51; font-weight: \
bold;">simpleipv4addressvalidator.cpp:120</span></div> <div style="font: 11px/15px \
"Menlo", "Consolas", "Monaco", monospace; white-space: \
pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; \
margin: 0 4px; "> <span style="color: #74777d">// replace input string with the \
corrected version</span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: \
8px;">unneeded empty line change</p></div></div><br /><div style="border: 1px solid \
#C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; \
border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div \
style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a \
style="float: right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83126">View Inline</a><span \
style="color: #4b4d51; font-weight: \
bold;">simpleipv4addressvalidator.cpp:137</span></div> <div style="font: 11px/15px \
"Menlo", "Consolas", "Monaco", monospace; white-space: \
pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span \
class="p">}</span> <span style="color: #aa4000">else</span> <span class="p">{</span> \
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, \
.6);"> <span class="n">value</span> <span style="color: \
#aa2211">+=</span> <span class="n">QString</span><span style="color: \
#aa2211">::</span><span class="n">number</span><span class="p">(</span><span \
class="n">cidrValue</span><span class="p">);</span> </div><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span \
style="color: #aa4000">return</span> <span class="n">QValidator</span><span \
style="color: #aa2211">::</span><span class="n">Acceptable</span><span \
class="p">;</span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: \
8px;">there is already <tt style="background: #ebebeb; font-size: \
13px;">cidrParts[1]</tt> as string, so no need to create it again from the \
value</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: \
3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; \
border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; \
background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; \
text-decoration: none;" href="https://phabricator.kde.org/D15093#inline-83127">View \
Inline</a><span style="color: #4b4d51; font-weight: \
bold;">simpleipv4addressvalidator.cpp:148</span></div> <div style="font: 11px/15px \
"Menlo", "Consolas", "Monaco", monospace; white-space: \
pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span \
class="p">}</span> <span style="color: #aa4000">else</span> <span class="p">{</span> \
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, \
.6);"> <span class="n">value</span> <span style="color: \
#aa2211">+=</span> <span class="n">QString</span><span style="color: \
#aa2211">::</span><span class="n">number</span><span class="p">(</span><span \
class="n">portValue</span><span class="p">);</span> </div><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span \
style="color: #aa4000">return</span> <span class="n">QValidator</span><span \
style="color: #aa2211">::</span><span class="n">Acceptable</span><span \
class="p">;</span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: \
8px;">ditto</p></div></div><br /><div style="border: 1px solid #C7CCD9; \
border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: \
#e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: \
#74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: \
right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83121">View Inline</a><span \
style="color: #4b4d51; font-weight: \
bold;">simpleipv4addressvalidator.h:44</span></div> <div style="font: 11px/15px \
"Menlo", "Consolas", "Monaco", monospace; white-space: \
pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"><span style="color: \
#a0a000">private</span><span class="p">:</span> </div><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span \
class="n">AddressStyle</span> <span class="n">addressStyle</span><span \
class="p">;</span> </div><div style="padding: 0 8px; margin: 0 4px; "><span \
class="p">};</span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: \
8px;">"m_" prefix</p></div></div><br /><div style="border: 1px solid \
#C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; \
border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div \
style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a \
style="float: right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83129">View Inline</a><span \
style="color: #4b4d51; font-weight: \
bold;">simpleipv6addressvalidator.cpp:26</span></div> <div style="font: 11px/15px \
"Menlo", "Consolas", "Monaco", monospace; white-space: \
pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(251, 175, 175, .7);"><span \
class="n">SimpleIpV6AddressValidator</span><span style="color: \
#aa2211">::</span><span class="n">SimpleIpV6AddressValidator</span><span \
class="p">(</span><span class="n">QObject</span> <span style="color: \
#aa2211">*</span><span class="n">parent</span><span class="p">)</span> </div><div \
style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"><span \
class="n">SimpleIpV6AddressValidator</span><span style="color: \
#aa2211">::</span><span class="n">SimpleIpV6AddressValidator</span><span \
class="p">(</span><span class="n">QObject</span> <span style="color: \
#aa2211">*</span><span class="n">parent<span class="bright"></span></span><span \
class="bright"></span><span class="p"><span class="bright">,</span></span><span \
class="bright"> </span><span style="color: #aa4000"><span \
class="bright">enum</span></span><span class="bright"> </span><span class="n"><span \
class="bright">AddressStyle</span></span><span class="bright"> </span><span \
class="n"><span class="bright">style</span></span><span class="p">)</span> </div><div \
style="padding: 0 8px; margin: 0 4px; "> <span style="color: #aa2211">:</span> \
<span class="n">QValidator</span><span class="p">(</span><span \
class="n">parent</span><span class="p">)</span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">no \
need for "enum"</p></div></div><br /><div style="border: 1px solid #C7CCD9; \
border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: \
#e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: \
#74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: \
right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83130">View Inline</a><span \
style="color: #4b4d51; font-weight: \
bold;">simpleipv6addressvalidator.cpp:29</span></div> <div style="font: 11px/15px \
"Menlo", "Consolas", "Monaco", monospace; white-space: \
pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; \
margin: 0 4px; "><span class="p">{</span> </div><div style="padding: 0 8px; margin: 0 \
4px; background: rgba(151, 234, 151, .6);"> <span class="n">addressStyle</span> \
<span style="color: #aa2211">=</span> <span class="n">style</span><span \
class="p">;</span> </div><div style="padding: 0 8px; margin: 0 4px; "><span \
class="p">}</span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">in \
constructor initialization list</p></div></div><br /><div style="border: 1px solid \
#C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; \
border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div \
style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a \
style="float: right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83131">View Inline</a><span \
style="color: #4b4d51; font-weight: \
bold;">simpleipv6addressvalidator.cpp:50-57</span></div> <div style="font: 11px/15px \
"Menlo", "Consolas", "Monaco", monospace; white-space: \
pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span style="color: \
#aa4000">case</span> <span style="color: #a0a000">Base</span><span class="p">:</span> \
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, \
.6);"> <span class="n">v</span> <span style="color: #aa2211">=</span> <span \
style="color: #aa4000">new</span> <span class="n">QRegExpValidator</span><span \
class="p">(</span><span class="n">QRegExp</span><span class="p">(</span><span \
class="n">QLatin1String</span><span class="p">(</span><span style="color: \
#766510">"([0-9a-fA-F]{1,4}|:)+"</span><span class="p">)),</span> <span \
style="color: #aa4000">nullptr</span><span class="p">);</span> </div><div \
style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"> \
<span style="color: #aa4000">break</span><span class="p">;</span> </div><div \
style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"> \
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, \
.6);"> <span style="color: #aa4000">case</span> <span style="color: \
#a0a000">WithCidr</span><span class="p">:</span> </div><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span class="n">v</span> \
<span style="color: #aa2211">=</span> <span style="color: #aa4000">new</span> <span \
class="n">QRegExpValidator</span><span class="p">(</span><span \
class="n">QRegExp</span><span class="p">(</span><span \
class="n">QLatin1String</span><span class="p">(</span><span style="color: \
#766510">"([0-9a-fA-F]{1,4}|:)+/[0-9]{1,3}"</span><span \
class="p">)),</span> <span style="color: #aa4000">nullptr</span><span \
class="p">);</span> </div><div style="padding: 0 8px; margin: 0 4px; background: \
rgba(151, 234, 151, .6);"> <span style="color: #aa4000">break</span><span \
class="p">;</span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">as \
above, created every time, and leaked</p></div></div><br /><div style="border: 1px \
solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; \
border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div \
style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a \
style="float: right; text-decoration: none;" \
href="https://phabricator.kde.org/D15093#inline-83128">View Inline</a><span \
style="color: #4b4d51; font-weight: \
bold;">simpleipv6addressvalidator.h:44</span></div> <div style="font: 11px/15px \
"Menlo", "Consolas", "Monaco", monospace; white-space: \
pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"><span style="color: \
#a0a000">private</span><span class="p">:</span> </div><div style="padding: 0 8px; \
margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span \
class="n">AddressStyle</span> <span class="n">addressStyle</span><span \
class="p">;</span> </div><div style="padding: 0 8px; margin: 0 4px; "><span \
class="p">};</span> </div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: \
8px;">"m_" prefix</p></div></div></div></div></div><br \
/><div><strong>REPOSITORY</strong><div><div>R116 Plasma Network Management \
Applet</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a \
href="https://phabricator.kde.org/D15093">https://phabricator.kde.org/D15093</a></div></div><br \
/><div><strong>To: </strong>andersonbruce, Plasma, jgrulich, pino<br /><strong>Cc: \
</strong>acrouthamel, K900, pino, lbeltrame, ngraham, plasma-devel, ragreen, Pitel, \
ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart<br \
/></div>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic