[PATCH] Mark Air/Water temp field red for wrong input.

Yosef Hamza jo.adam.93 at gmail.com
Sun Apr 13 00:10:41 PDT 2014


First I do know Regular expression.

Second What I wanted to make is "ONE" character margin of error -If you
changed the text further with that error it will give red-.
That wasn't my first solution to that problem, I was careful about keeping
the functionality while adding that 1 character margin of error -but if
edited further with that error it will mark it red-.

The regex solution came to mind but wasn't exactly what I wanted.

The Question is what I wanted was the right approach for that problem
-adding one character error margin-? and if so is it worth it?

*attached the patch with fixed coding style, and fixing logic error.

Regards,
Yousef Hamza.


On Sun, Apr 13, 2014 at 7:04 AM, Miika Turkia <miika.turkia at gmail.com>wrote:

> On Sat, Apr 12, 2014 at 8:42 PM, Yosef Hamza <jo.adam.93 at gmail.com> wrote:
>
>> Thanks for the review.
>>
>> I made it a little more tolerant if editing existing values instead of
>> giving red while deleting it at some point -after deleting the Unit and
>> after last number after the '.'-  then back to normal yellow and for empty
>> string -or should I leave it marked red for empty string?- which made it
>> more consistent for the user.
>>
>
> It can be made more tolerant also by modifying the regular expression.
> Which I think should be done instead of adding more if statements. I agree
> that empty value should not be marked as red. The following regular
> expression should be the same as your if statements (or at least very close
> to it).
>
>     if
> (!text.contains(QRegExp("^[-+]{0,1}[0-9]*([,.][0-9]*){0,1}([°]{0,1}[CF]{0,1}){0,1}$")))
> {
>         QPalette p;
>         p.setBrush(QPalette::Base, QColor(Qt::red).lighter());
>         ui.airtemp->setPalette(p);
>     }
>
> The regular expression above will keep everything yellow, if it is
> possible that completed syntax will be yellow (as your added if statements
> would do).
>
> If you need to modify the regular expression, here is a quick run-down:
> [asdf]      Any one of the characters mentioned inside brackets
> [-+]{0,1}   This will allow 0 or 1 characters in the previous grouping, in
> this case inside the angler brackets
> [0-9]*       Allows any number in the previous grouping
> [0-9]+      Would allow any number containing at least one digit in the
> previous grouping
> (°C){0,1}   Allows text "°C" 0 or 1 times, you can use parentheses for
> grouping
>
> Also your coding style is inconsistent and is not following our coding
> style:
>
> +       }
> +               else{
> +                       missing_unit =false;
>
> Else should be on same line with closing }
> There should be space between if or else statement and {
> Space between = and the following text missing
>
> Take a look at file "CodingStyle" in main directory of our source code.
>
> miika
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.hohndel.org/pipermail/subsurface/attachments/20140413/a70fcfa6/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Mark-Air-Water-temp-field-red-for-wrong-input.patch
Type: application/octet-stream
Size: 2532 bytes
Desc: not available
URL: <http://lists.hohndel.org/pipermail/subsurface/attachments/20140413/a70fcfa6/attachment.obj>


More information about the subsurface mailing list