[Okular-devel] Review Request 115283: implemented a feature in okular to resize window to current page size.

Saheb Preet Singh saheb.preet at gmail.com
Mon Jan 27 08:23:00 UTC 2014



> On Jan. 24, 2014, 7:24 p.m., Albert Astals Cid wrote:
> > I don't think there's any problem with resizing, i'd say it's only your math that is wrong
> >     int xOffset = pageViewSize.width() - pageSize.width();
> >     int yOffset = pageViewSize.height() - pageSize.height();
> >     resize( width() - xOffset, height() - yOffset );
> > seems to be what you should really be doing, it doesn't perfectly work, but it may just be because the sizes you're using are not the correct.
> > 
> > Also I think this feature only makes sense when you're in non continuous view.
> >

Probably the arguments of resize function would be same in both cases ( in yours as well as mine ).
width() - xOffset = width() - pageViewSize.width() + pageSize.width(), when xOffset = pageViewSize.width() - pageSize.width();
pageSize.width() + xOffset = width() - pageViewSize.width() + pageSize.width(), when xOffset = width() - pageViewSize.width();
same in the case of height.

I changed the implementation as you have stated above.

The feature is not working perfectly because the xOffset (width other than pageViewSize) is changing with window's size whereas here xOffset and yOffsets are assumed to be constant. This mostly happens when thumbnails or toc etc. are open. I can't find out a way in which I can get the final size of these side widgets when the window will be resized or some porportionality factor with which there width is changing with respect to the whole window.


But the problem that I have stated above persists on my laptop. Steps to reproduce the problem :-
==> open okular and maximize the window.
==> change the zoom level, preferably very large from the current zoom level or very small.
==> select fit window to page option. Window will be restored but will not be resized.
==> If nothing happens then move the window and then again select fit window to page. Now the window will be resized, even if size of window is changed or the window is maximized.


- Saheb


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


On Jan. 27, 2014, 8:21 a.m., Saheb Preet Singh wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/115283/
> -----------------------------------------------------------
> 
> (Updated Jan. 27, 2014, 8:21 a.m.)
> 
> 
> Review request for Okular and Albert Astals Cid.
> 
> 
> Bugs: 326844
>     http://bugs.kde.org/show_bug.cgi?id=326844
> 
> 
> Repository: okular
> 
> 
> Description
> -------
> 
> okular do not have a feature to resize the current window to the current page size.
> 
> The bug is solved upto some extent, the window is resizing as desired.
> 
> resize method of qwidget class is used to resize the window.
> 
> The window is resizing  as required but sometimes it doesn't resizes . It has to be moved by mouse and then again click on the button in the menu to resize the window again.  Once it is moved by mouse, it works fine. Now, when the zoom level is changed, the problem starts again.
> 
> I think the problem occurs due to something happening in the other portion of the code.
> 
> I searched about it on the internet and nobody was able to answer the solution to people with same problem. There are some alternative solutions to the problem:-
> 
> ==> Use set geometry instead of resize which works fine. but would have to be taken care of the size of the screen and the original position of the window. Also, repainting the portion outside the window when the window is resized to a smaller window.
> 
> ==> Use a timer which will signal a slot which in turn will resize the window, but that might require qsignalmapper to map the width and height to the slot. ( I didn't tried this solution ).
> 
> The best solution i could find on the internet is this http://qt-project.org/forums/viewthread/25648
> 
> Also, there is one more issue, the fit window to page button in the view menu is enabled by default. It should not be enabled when no document is open. Where should the code for enabling this button should be implemented.
> 
> 
> Diffs
> -----
> 
>   ui/pageview.cpp 65967bf 
>   shell/shell.cpp 1708501 
>   ui/pageview.h 9c15af6 
>   shell/shell.h c065c56 
>   part.rc 6b1f44e 
>   part.h 4b3aafd 
>   part.cpp 88e2c41 
> 
> Diff: https://git.reviewboard.kde.org/r/115283/diff/
> 
> 
> Testing
> -------
> 
> 
> tested when
> ==> window is maximized and restored.
> ==> thumbnails, table of content are opened and closed.
> ==> various toolbars are shown and hidden.
> ==> for all the zoom levels shown in the toolbar and custom zoom level ( example 123.23% ).
> 
> 
> Thanks,
> 
> Saheb Preet Singh
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/okular-devel/attachments/20140127/e0108d7f/attachment-0001.html>


More information about the Okular-devel mailing list