[poppler] RFC: whole-page search in the qt4 frontend
Adam Reichold
adamreichold at myopera.com
Thu Jun 28 23:38:03 PDT 2012
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
- -----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 29.06.2012 08:23, Adam Reichold wrote:
> On 29.06.2012 01:49, Albert Astals Cid wrote:
>> El Dijous, 28 de juny de 2012, a les 17:53:45, Adam Reichold va
>> escriure: Hello,
>
>> If I remember correctly, some time ago someone proposed caching
>> the TextOuputDev/TextPage used in Poppler::Page::search to
>> improve performance. Instead, I would propose to add another
>> search method to Poppler::Page which searches the whole page at
>> once and returns a list of all occurrences.
>
>> Applications using the qt4 frontend and this method could then
>> decide whether to cache this information or not. The
>> implementation of the current search method would not change.
>
>> The appended patch does this. But the two search methods share
>> some duplicate code. I am not sure what the best way to avoid
>> this is.
>
>>> First concern, QRectF uses float (instead of double) in some
>>> architectures, like ARM, so you are actually losing precision
>>> (that's why the double variant of search() exists). I'm not
>>> sure we should worry about that, but we probably should.
>>> Imagine you get the list of matches with the search() that
>>> returns the list and then try to use it with the ::search()
>>> that accepts a QRectF (though actually doesn't make much
>>> sense) to get the "next" item. That will cause the
>>> float->double to go wrong and you might always end up in the
>>> same item because of the truncation.
>
>>> On the other hand using a list of QRectF is much more
>>> convinient and probably has enough precision for painting, so
>>> maybe we can just document that you should not use the results
>>> of the ::search() that returns a list as input for the other
>>> ::search() variants?
>
>>> Opinions?
>
>
> Personally, I think that it would be nicer doing it that way.
> Especially since you will still get a deprecation warning if you
> call ::search with a QRectF as an argument.
>
> Regards, Adam.
>
Updated the patch to include the warning.
>
>>> Albert
>
>
>> Testing this with some sample files shows large improvements
>> (above 100% as measured by runtime) for searching the whole
>> document and especially for short phrases that occur often.
>
>> Thanks for any comments and advice. 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
>
>
- -----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iQEcBAEBAgAGBQJP7U0bAAoJEPSSjE3STU34UtIIALWeAsaSQ8KsDhaiJrpV13xB
O7Lj682VH3abzv7RkrMR07NBMu/cHOFSAfaS5LxLxDD/Wervoqfm1UZ2LwsCSwO3
TodC0TU5pf5Im1xoyz92rNfkBqPRVvlFLw10BSVVWBaIvhLKOQgHj7s1U6LdqoOa
PnT65/Gu1yJZO3yvSJN22t5ST5gtSYikkpjqaQ3Ts+D2XJQXJuRllZGaniR+fjel
FS+V5Gj1Zi3Fjg8aLESGdTn0KosV3R8aUaacGKXhO6klxwZMI1vv+nyGsFdNTMGL
u6c5zjD0QtKGEYx/XNhKQAf1BqnpH9qbwnSHm9xgFzVV/TC7z3DbPYT1ahttGpY=
=VHDH
- -----END PGP SIGNATURE-----
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iQEcBAEBAgAGBQJP7U1LAAoJEPSSjE3STU34YNAH/iA6FZJ6Y25h7Y08Zjxbcb3t
ca16sbW8LFJ4A/ZNYP9D49wHIfhxADd2+HZ4g+jkKtNRgxv1PoqJKXH6BwQKH5lx
RAccyeykkZVVZlXBY0vRJ91N/xwxjgmyIodSqx0xqYpbnwm7AL2hDhF1pKfx6dr2
pHCqzJlkJyz4PVMHsUG8qrxz1Bot2/Vqr/CNdKpveqTLegBzFVCRE2MKhzkVC3Qm
x8bm8mNRKVoFz5aaq8ZJhaWzXN9INdKLhf1y7ZO0lapr+IMp9v3+Vbxmkz0Iznr6
QWAJ2stQ256EEbpJZoDjDnXjw8FISTIUk/f7Fh0P4E/bmzK/4sPdatUVlGcOXAQ=
=Idbg
-----END PGP SIGNATURE-----
-------------- next part --------------
A non-text attachment was scrubbed...
Name: add_whole_page_search.patch
Type: text/x-patch
Size: 3939 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/poppler/attachments/20120629/2ab114db/attachment.bin>
More information about the poppler
mailing list