[poppler] RFC: Expose whole-words search option in Qt frontends

Adam Reichold adam.reichold at t-online.de
Sun Jan 11 12:44:01 PST 2015


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hello,

Am 11.01.2015 um 20:36 schrieb Adam Reichold:
> Hello,
> 
> Am 11.01.2015 um 20:19 schrieb Albert Astals Cid:
>> El Diumenge, 11 de gener de 2015, a les 11:14:12, Adam Reichold
>> va escriure:
>>> Hello again,
>>> 
>>> Am 11.01.2015 um 00:57 schrieb Albert Astals Cid:
>>>> El Diumenge, 11 de gener de 2015, a les 00:37:36, Adam
>>>> Reichold va
>>>> 
>>>> escriure:
>>>>> Hello,
>>>>> 
>>>>> Am 10.01.2015 um 23:45 schrieb Albert Astals Cid:
>>>>>> Maybe you can add some tests to check_search.cpp?
>>>>> 
>>>>> Attached patch with a test case for the four flag 
>>>>> combinations added to the Qt4 and Qt5 versions of 
>>>>> "check_search.cpp".
>>>>> 
>>>>> Of course, this very much highlights the ugliness of shoe 
>>>>> horning the flags into the existing enumeration. But I
>>>>> don't think that making "Poppler::Page::search" take an
>>>>> "int" instead of "SearchMode" would be ABI compatible
>>>>> strictly speaking, since now the compiler is free to choose
>>>>> the underlying type for the enumeration.
>>>> 
>>>> Meh, you're right, this is not good either since you're
>>>> passing in SearchMode something that is not a SearchMode
>>>> (it's the sum of two).
>>>> 
>>>> So yeah it'd be better to go the QFlags way. Maybe you can 
>>>> leave the old function there, mark it as deprecated and say 
>>>> that it only obeys the sensitiviness part and add a new 
>>>> function that accepts the qflags?
>>> 
>>> Ok, attached is the patch which adds a new flags type
>>> SearchFlags and corresponding overloads to the Qt4 frontend. I
>>> try to factor out as much common code as possible and add a
>>> test case as well. I'll add the Qt5 frontend as soon we think
>>> the approach is sound.
>>> 
>>> I chose to use a new enumeration SearchFlag instead of 
>>> SearchMode since the symmetry of SearchMode does not really
>>> make sense if there are several non-exclusive flags.
> 
>> Yep, now thinking out loud, would it make sense to merge 
>> SearchDirection in there too? The three enums are also exclusive 
>> one another.
> 
> I don't think this would work, since the range of
> "SearchDirection" has more than two elements and hence would need
> at least two flags but then those would not be exclusive. E.g. I'd
> add two flags "NextResult" and "PreviousResult" with "FromTop" as
> the default, but then the user could specify "NextResult |
> PreviousResult" which does not make sense?
> 
> Best regards, Adam.

Attached is the extended the patch also containing the Qt5 part (as
I'll be running out of weekend soon).

Btw., another reason not to fold SearchDirection into SearchFlags
would be that it does not apply to the overload returning a list of
results at all.

Best regards, Adam.

>> But on the other hand it may feel a bit shoehorned.
> 
>> What do you think?
> 
>> Cheer,s Albert
> 
>>> 
>>> Best regards, Adam.
>>> 
>>>> Cheers, Albert
>>>> 
>>>>> Best regards, Adam.
>>>>> 
>>>>>> Cheers, Albert
>>>>>> 
>>>>>> El Dissabte, 10 de gener de 2015, a les 23:26:01, Adam 
>>>>>> Reichold va
>>>>>> 
>>>>>> escriure:
>>>>>>> Hello again,
>>>>>>> 
>>>>>>> Am 10.01.2015 um 22:25 schrieb Albert Astals Cid:
>>>>>>>> El Dissabte, 10 de gener de 2015, a les 17:51:48,
>>>>>>>> Adam Reichold va
>>>>>>>> 
>>>>>>>> escriure:
>>>>>>>>> Hello,
>>>>>>>>> 
>>>>>>>>> Attach is a patch that would expose Poppler's 
>>>>>>>>> whole-words search option within the Qt frontends.
>>>>>>>>> 
>>>>>>>>> While the implementation seems straight forward so 
>>>>>>>>> far, I would like to request comments whether 
>>>>>>>>> extending the "SearchMode" enumeration to flag 
>>>>>>>>> definition is considered harmless. The proper way
>>>>>>>>> to do it seems to be the introduction of 
>>>>>>>>> "QFlags<SearchMode>" which would however break 
>>>>>>>>> compatibility and hence imply the need to have an 
>>>>>>>>> additional overloads using a separate flag (and 
>>>>>>>>> enumeration?) definition.
>>>>>>>> 
>>>>>>>> Looks good to me. The qt5/ side would need the 
>>>>>>>> documentation update too, no?
>>>>>>> 
>>>>>>> patch with fixed Qt5 documentation and "\since"
>>>>>>> commands attached.
>>>>>>> 
>>>>>>> Best regards, Adam.
>>>>>>> 
>>>>>>>> Cheers, Albert
>>>>>>>> 
>>>>>>>>> Best regards, Adam.
>>>>>>>> 
>>>>>>>> _______________________________________________ 
>>>>>>>> poppler mailing list poppler at lists.freedesktop.org 
>>>>>>>> http://lists.freedesktop.org/mailman/listinfo/poppler
>>>>>>
>>>>>>
>>>>>>>> 
_______________________________________________ poppler
>>>>>> mailing list poppler at lists.freedesktop.org 
>>>>>> http://lists.freedesktop.org/mailman/listinfo/poppler
>>>> 
>>>> _______________________________________________ poppler 
>>>> mailing list poppler at lists.freedesktop.org 
>>>> http://lists.freedesktop.org/mailman/listinfo/poppler
> 
>> _______________________________________________ poppler mailing 
>> list poppler at lists.freedesktop.org 
>> http://lists.freedesktop.org/mailman/listinfo/poppler
> 
> _______________________________________________ poppler mailing
> list poppler at lists.freedesktop.org 
> http://lists.freedesktop.org/mailman/listinfo/poppler
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBCAAGBQJUsuCNAAoJEPSSjE3STU34NqYH/041a3cdGf98mYU0AdQfYfof
thjU+Ah2dBBRuzgfwpJz4fE8M5njkWqf775ZjIf1LeicAnErzbNgIBwFobxYiDiU
L2FL7ZkKjRRBSl8CY/oG3oPTGbRqrZn0nx5I8q+CtguXZhzrblhn0IWTmtTduI9a
nQ9GHmHN7x4ZzTjC4nVY8VjS4oE88zimtftvFuF/3B5w/BkPdA+eO7rStfk6y0hP
FsXgWRxr+ADQxtQ9EtaCeHRB3qpAZniW0sRiAR7Glp9XiV0CPoUMctEbrB+DeE0v
lr14qTa4TzpB5bRz1WLLmPhPtwPdbYyI+oL9fOgQTwMXe6WjX7ukSrDqA5WT/TE=
=9pbU
-----END PGP SIGNATURE-----
-------------- next part --------------
A non-text attachment was scrubbed...
Name: whole-words-proper.diff
Type: text/x-patch
Size: 26156 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/poppler/attachments/20150111/895ca857/attachment-0001.bin>


More information about the poppler mailing list