[Okular-devel] Review Request 122570: Update session restore/save to account for multiple tabs

Jonathan Doman jonathan.doman at gmail.com
Sat Feb 28 22:41:23 UTC 2015


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

(Updated Feb. 28, 2015, 4:41 p.m.)


Review request for Okular.


Changes
-------

Add unit test for session restoring. I couldn't figure a way to test the realistic full code paths of session restoring, but this should test the important parts inside okular. Currently the test just checks that the correct number of windows and tabs are restored.

Overall I'm pretty happy with this now.


Bugs: 335852
    http://bugs.kde.org/show_bug.cgi?id=335852


Repository: okular


Description
-------

New Shell logic loops through each tab and saves URLs and active tab index in session config.

Viewport was previously saved in session config, but I opted to remove it because:
1. It complicates the restore logic. It would require either using QMetaObject::invoke or adding functions to ViewerInterface. Also hard to get right since opening a document isn't exactly synchronous.
2. Viewport info is already saved during a graceful shutdown.


Diffs (updated)
-----

  part.h 594eb44113ae130a6fefbf2800af32886aa3cbef 
  part.cpp 36438af1cd1036ee954f80b5359a0cab2c019036 
  shell/main.cpp 16289608f0acf299db04258d842bbb87add62c0b 
  shell/shell.h 224acfe023ef8e9cc58b52ddf32068af8937896a 
  shell/shell.cpp f7675fdc8203e90210b8ba82620b19ae69ee43e1 
  tests/mainshelltest.cpp c5d7289d668f8a1ea0250deb068a43c19490edff 

Diff: https://git.reviewboard.kde.org/r/122570/diff/


Testing
-------

I was not familiar with session functionality in KDE before working on this bug, so my tests may not represent reality. I used the dbus interface to trigger a session save (org.kde.KSMServerInterface.saveCurrentSession), and then reloaded a session by running `okular --session xyz`, which I think is how KDE does it behind the scenes.

- Restore one or more documents in single window with tabs enabled.
- Restore multiple windows, tabs enabled or disabled.
- Restore session config describing multible tabs, even though tabs are disabled


Thanks,

Jonathan Doman

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


More information about the Okular-devel mailing list