[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