[Okular-devel] Review Request 116700: Launch documents from external sources in new tabs
Jonathan Doman
jonathan.doman at gmail.com
Thu Mar 20 03:48:09 UTC 2014
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/116700/
-----------------------------------------------------------
(Updated March 19, 2014, 10:48 p.m.)
Review request for Okular.
Changes
-------
Copy stdin to temporary file and pass to existing window. The temp file is deleted by the source process as soon as it is opened by the destination process. This behavior seems to be safe on Linux (the file is kept around until it's fully closed), but I'm not sure if it works on other platforms. Also, the file gets a cryptic random name which might not be good.
Bugs: 331872 and 332238
http://bugs.kde.org/show_bug.cgi?id=331872
http://bugs.kde.org/show_bug.cgi?id=332238
Repository: okular
Description
-------
Currently, tabs can only be created by opening files through okular's file dialog. This patch allows external sources (e.g. file browsers) to open documents in tabs of existing windows.
Basically, whenever okular is launched it uses D-Bus to search for existing okular instances that are capable of handling its documents. An eligible window will have enough space for all the documents (space depends on whether tabs are allowed or not), and be located on the current desktop. If there are multiple eligible windows, one is chosen "at random" (the first one in the D-Bus listing). This metric can be changed in the future, but is the simplest for now.
To facilitate the D-Bus interaction, two methods were added: "canOpenDocs" is used to find an eligible window, "openDocument" is used to actually open a single document. Additionally, "tryRaise" was modified to work on non-unique windows.
I previously thought that okular should behave similar to a web browser, but now I think they are very different. Most people open a web browser and then search and open links completely within it. However, most people will use okular by clicking on files in a file browser. Therefore, I don't think okular should ever open tabs in a window on a different desktop.
One shortcoming occurs when one wants to open a document in its own window, but instead gets put into a tab. There is no way to "detach" a tab, so it's necessary to then open an empty okular instance and use the file dialog. Detaching tabs should be possible, but I guess there are concerns about how to do so efficiently.
Diffs (updated)
-----
ui/pageview.h 577b908633bd0778df33d0a15961ab16071a1500
ui/pageview.cpp dd4199450672c18ebfa146327d8e9b7eb034ddc8
ui/sidebar.h 036d7788096366d6bab7d7f2a41d55b7a31d303a
ui/sidebar.cpp 2474db8c357f6bfd1a9b6bd75091f2eb7b7b7693
ui/thumbnaillist.h 61601c228512772fd46abc27468523aef562c3fa
ui/thumbnaillist.cpp 72b557e6624e8229cf1e5e4c5dc69ed77fec54cb
part.h 010e9de1f2b5c27531a48b943d821ccc3f3f7205
shell/shell.cpp 01a9f1b1dc1992a4aa1c87330940b27b727608e5
shell/shell.h 3b9aae061cd6be0c7a86c885fc06d00d9275bd50
part.cpp 4ce7e28e1071772921e6292e61a88c905a62d7f6
shell/main.cpp e0ca587ba167c4020d5af5bd33a2dc1b4923cac4
Diff: https://git.reviewboard.kde.org/r/116700/diff/
Testing
-------
Thanks,
Jonathan Doman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/okular-devel/attachments/20140320/33d9e930/attachment.html>
More information about the Okular-devel
mailing list