> On Feb. 15, 2014, 3:13 p.m., Albert Astals Cid wrote:
> > core/textpage.cpp, line 790
> > <https://git.reviewboard.kde.org/r/115759/diff/1/?file=244161#file244161line790>
> >
> >     why this change?
> 
> Jaan Vajakas wrote:
>     As I wrote, the reason is that I think it is not good that layout 
> analysis depends on the user's display DPI (m_page->height() is the height in 
> pixels at 100% zoom, which depends on the DPI), since it makes no sense but 
> would make testing more difficult (then testing layout detection would need 
> to be done for several display DPI values separately and bug reports should 
> include the DPI to be reproducible).
>     
>     Actually here it would be most accurate to compute the y-overlap directly 
> from the NormalizedRect's without scaling and rounding them to QRect's at all 
> (and similarly rounding could be avoided in many other places in 
> textpage.cpp), but I was too lazy to refactor the code and instead used a 
> large constant for pageHeight to minimize rounding errors.

Lazyness is seldom a good excuse ;-) Please do the computation of 
NormalizedRects if you think that makes more sense.


> On Feb. 15, 2014, 3:13 p.m., Albert Astals Cid wrote:
> > core/textpage.cpp, line 1873
> > <https://git.reviewboard.kde.org/r/115759/diff/1/?file=244161#file244161line1873>
> >
> >     Can you explain this rationale?
> >     
> >     Also any reason you decided to write 2E3 instead 2000?
> 
> Jaan Vajakas wrote:
>     Again I got rid of the DPI dependency. I chose the value 2000 because A4 
> paper at 72 dpi (the DPI used by Okular before the libkscreen patch) is 597.6 
> x 842.4 pixels, and I rounded 597.6 + 842.4 = 1440.0 up to 2000. Higher 
> pageWidth/pageHeight values increase CPU usage (linearly in 
> pageWidth+pageHeight) but I guess increasing the values generally doesn't 
> hurt layout analysis quality; too low pageWidth/pageHeight values definitely 
> cause bad layout analysis quality. And here the width/height ratio is 
> important too, unlike the y-overlap case above that only used y coordinates.
>     
>     I wrote 2E3 because it is shorter than 2000.0. I thought that 2E3 or 
> 2000.0 would be better than 2000 — then it is obvious from first glance that 
> this is not integer division and also the expression would work even if 
> Page::width() and Page::height() were refactored to return int. But perhaps 
> 2000.0 would be clearer indeed.

2000.0 is indeed easier to read. Please change it :-)


> On Feb. 15, 2014, 3:13 p.m., Albert Astals Cid wrote:
> > tests/searchtest.cpp, line 64
> > <https://git.reviewboard.kde.org/r/115759/diff/1/?file=244162#file244162line64>
> >
> >     please use kDebug and remove the iostream include
> 
> Jaan Vajakas wrote:
>     Actually I wanted something like QCOMPARE or an exception, so that the 
> test were halted and error message shown. But QCOMPARE unfortunately doesn't 
> work inside functions that are not tests themselves and when I tried 
> exception throwing I got a compiler error that exceptions are disabled (and I 
> don't know how the Qt test framework would handle them even if they were 
> enabled). Then I chose stderr instead of kDebug since kDebug output can be 
> disabled in kdebugdialog but I thought the test's reason of failure should 
> always be shown (like the QCOMPARE error messages). But this is an 
> unimportant error message anyway (it can only appear if the tests in 
> searchtest.cpp themselves are incorrectly modified), so I don't oppose kDebug 
> either. Is it a good style to never use std::cout and std::cerr, even in 
> tests?

We just don't use iostreams much. If you need QCOMPARE just make the function 
non static and bring it to the SearchTest object as non slot (so it's not a 
test itself) and it should work.


- Albert


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/115759/#review49831
-----------------------------------------------------------


On Feb. 15, 2014, 1:08 p.m., Jaan Vajakas wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/115759/
> -----------------------------------------------------------
> 
> (Updated Feb. 15, 2014, 1:08 p.m.)
> 
> 
> Review request for Okular.
> 
> 
> Bugs: 326207
>     http://bugs.kde.org/show_bug.cgi?id=326207
> 
> 
> Repository: okular
> 
> 
> Description
> -------
> 
> Here is a patch to fix Bug 326207. It was a simple bug in the XY Cut layout 
> recognition code that made it too eager to see columns everywhere. I also 
> removed the dependence of the layout analysis algorithms on the display DPI 
> (introduced by the recently added feature of using KScreen) to make their 
> behavior more predictable and reproducible. I added tests for this bug and 
> also refactored SearchTest a little to use QVectors instead of bare arrays.
> 
> 
> Diffs
> -----
> 
>   core/textpage.cpp a95f7c6 
>   tests/searchtest.cpp caceb6f 
> 
> Diff: https://git.reviewboard.kde.org/r/115759/diff/
> 
> 
> Testing
> -------
> 
> added automatic tests and tested manually on some PDF files
> 
> 
> Thanks,
> 
> Jaan Vajakas
> 
>

_______________________________________________
Okular-devel mailing list
Okular-devel@kde.org
https://mail.kde.org/mailman/listinfo/okular-devel

Reply via email to