[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 &quot;Edit Related Revisions&quot; -&gt; \
&quot;Edit Parent/Child Revisions&quot;.</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 \
&quot;Menlo&quot;, &quot;Consolas&quot;, &quot;Monaco&quot;, 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 &#039;enum&#039; 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 \
&quot;Menlo&quot;, &quot;Consolas&quot;, &quot;Monaco&quot;, 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&#039;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 &quot;Menlo&quot;, &quot;Consolas&quot;, \
&quot;Monaco&quot;, 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 &#039;this&#039; 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 &quot;Menlo&quot;, &quot;Consolas&quot;, \
&quot;Monaco&quot;, 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 &quot;Menlo&quot;, &quot;Consolas&quot;, \
&quot;Monaco&quot;, 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">&quot;</span><span style="color: #bb6622">\\</span><span \
style="color: #766510">s*,</span><span style="color: #bb6622">\\</span><span \
style="color: #766510">s*&quot;</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 \
&quot;Menlo&quot;, &quot;Consolas&quot;, &quot;Monaco&quot;, 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 &quot;Menlo&quot;, &quot;Consolas&quot;, \
&quot;Monaco&quot;, 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">-&gt;</span><span class="n">validate</span><span \
class="p">(</span><span style="color: #aa4000">const_cast</span><span style="color: \
#aa2211">&lt;</span><span class="n">QString</span><span style="color: \
#aa2211">&amp;&gt;</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 &quot;Menlo&quot;, &quot;Consolas&quot;, \
&quot;Monaco&quot;, 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">-&gt;</span><span class="n">validate</span><span \
class="p">(</span><span style="color: #aa4000">const_cast</span><span style="color: \
#aa2211">&lt;</span><span class="n">QString</span><span style="color: \
#aa2211">&amp;&gt;</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 \
&quot;Menlo&quot;, &quot;Consolas&quot;, &quot;Monaco&quot;, 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">&amp;&amp;</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 &quot;Menlo&quot;, &quot;Consolas&quot;, \
&quot;Monaco&quot;, 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">&amp;</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">&amp;</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">&amp;</span><span \
class="p">,</span> <span class="n">QList</span><span style="color: \
#aa2211">&lt;</span><span style="color: #aa4000">int</span><span style="color: \
#aa2211">&gt;&amp;</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 &quot;m_&quot; 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 \
&quot;Menlo&quot;, &quot;Consolas&quot;, &quot;Monaco&quot;, 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 &quot;enum&quot;</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 \
&quot;Menlo&quot;, &quot;Consolas&quot;, &quot;Monaco&quot;, 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 \
&quot;Menlo&quot;, &quot;Consolas&quot;, &quot;Monaco&quot;, 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">&quot;[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}&quot;</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">&quot;([0-9, ]{1,3}</span><span style="color: #bb6622">\\</span><span \
style="color: #766510">.){3,3}[0-9, ]{1,3}/[0-9]{1,2}&quot;</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 \
&quot;Menlo&quot;, &quot;Consolas&quot;, &quot;Monaco&quot;, 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 \
&quot;Menlo&quot;, &quot;Consolas&quot;, &quot;Monaco&quot;, 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 \
&quot;Menlo&quot;, &quot;Consolas&quot;, &quot;Monaco&quot;, 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 \
&quot;Menlo&quot;, &quot;Consolas&quot;, &quot;Monaco&quot;, 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;">&quot;m_&quot; 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 \
&quot;Menlo&quot;, &quot;Consolas&quot;, &quot;Monaco&quot;, 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 &quot;enum&quot;</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 \
&quot;Menlo&quot;, &quot;Consolas&quot;, &quot;Monaco&quot;, 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 \
&quot;Menlo&quot;, &quot;Consolas&quot;, &quot;Monaco&quot;, 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">&quot;([0-9a-fA-F]{1,4}|:)+&quot;</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">&quot;([0-9a-fA-F]{1,4}|:)+/[0-9]{1,3}&quot;</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 \
&quot;Menlo&quot;, &quot;Consolas&quot;, &quot;Monaco&quot;, 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;">&quot;m_&quot; 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