<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/110914/">http://git.reviewboard.kde.org/r/110914/</a>
     </td>
    </tr>
   </table>
   <br />










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On August 18th, 2013, 8:41 p.m. UTC, <b>Albert Astals Cid</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  



<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="http://git.reviewboard.kde.org/r/110914/diff/3/?file=183074#file183074line838" style="color: black; font-weight: bold; text-decoration: underline;">part.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 3)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">Part::~Part()</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">838</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="n">QDBusConnection</span><span class="o">::</span><span class="n">sessionBus</span><span class="p">().</span><span class="n">unregisterObject</span><span class="p">(</span> <span class="n">m_dbusObjectName</span> <span class="p">);</span></pre></td>
  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This looks a bit weird, you never initialize nor use m_dbusObjectName for anything other than for calling unregisterObject, is this something stale from old changes?</pre>
 </blockquote>



 <p>On August 18th, 2013, 11:37 p.m. UTC, <b>Jonathan Doman</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I accidentally removed the initialization in the last update. I believe it's necessary so that closed tabs don't show up in DBus.</pre>
 </blockquote>





 <p>On August 20th, 2013, 9:42 p.m. UTC, <b>Albert Astals Cid</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Are you sure about that? I expected the deletion of an object to cause it being unregistered from the bus, isn't that the case? It seems to work here in a simple test i made</pre>
 </blockquote>





 <p>On August 23rd, 2013, 7:51 p.m. UTC, <b>Jonathan Doman</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This may be another bug/feature with qdbusviewer (it crashes itself and okular if the parts aren't unregistered). How do you test dbus stuff? `dbus-send --dest=org.kde.okular-pid --print-reply / org.freedesktop.DBus.Introspectable.Introspect` shows closed parts if they aren't unregistered.</pre>
 </blockquote>





 <p>On August 25th, 2013, 4:21 p.m. UTC, <b>Albert Astals Cid</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I'm just using qdbus command line tool with the current okular code.

Open two files in the same okular binary and i have
$ qdbus org.kde.okular-10275 
/okular
/okular2

Close one of the windows and

$ qdbus org.kde.okular-10275 
/okular
</pre>
 </blockquote>







</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I can reproduce your example with the current code. However, with my code qdbus crashes itself and okular if the parts are not unregistered. So I'll try to figure out why that is.</pre>
<br />

<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On August 18th, 2013, 8:41 p.m. UTC, <b>Albert Astals Cid</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  



<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="http://git.reviewboard.kde.org/r/110914/diff/3/?file=183075#file183075line112" style="color: black; font-weight: bold; text-decoration: underline;">shell/main.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 3)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">static bool attachUniqueInstance(KCmdLineArgs* args)</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">112</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="n">options</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="s">"new"</span><span class="p">,</span> <span class="n">ki18n</span><span class="p">(</span><span class="s">"Force start of new instance"</span><span class="p">));</span></pre></td>
  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This looks like a separate feature than the tabs feature, maybe makes sense to split it to a different review to make it easier to review?</pre>
 </blockquote>



 <p>On August 18th, 2013, 11:37 p.m. UTC, <b>Jonathan Doman</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">By default, documents try to open as a new tab in an existing window. So without --new, the Detach Tab feature wouldn't work. Unless you want to change the default behavior, --new has to come in at the same time.</pre>
 </blockquote>





 <p>On August 20th, 2013, 9:38 p.m. UTC, <b>Albert Astals Cid</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Oh, didn't see that you are spawning a whole new process. Why are you doing that? We can have multiple toplevel windows in a given process, no?</pre>
 </blockquote>





 <p>On August 23rd, 2013, 7:51 p.m. UTC, <b>Jonathan Doman</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I think it makes more sense to have each window in its own process, especially so that each window has its own DBus service. I want the command `okular file.pdf` to open file.pdf in the most recently activated window. Either we force all windows into one process and keep static state about the Shell activation times, or put each Shell into its own process and query activation times over DBus. It would be unnecessarily complicated to allow a mix, and I think the latter option is simpler to implement from the current state of things.</pre>
 </blockquote>





 <p>On August 25th, 2013, 4:21 p.m. UTC, <b>Albert Astals Cid</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Well, we do have multiple windows in multiple processes now. Don't see why you need to change that to support tabs. If you want to propose this change, fine, but i can't see how it's necessary for the tabs feature.</pre>
 </blockquote>







</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Before discussing this, I think it would be best to decide how the interface should operate. If you agree with my choice of selecting the last activated window to open a document in, then I can defend the choice to put each windows in its own process (the code is much simpler). But if you propose a different interface, then this discussion may become irrelevant. Is there any problem with one-window-per-process that I don't see? The code difference is trivial from my point of view.</pre>
<br />




<p>- Jonathan</p>


<br />
<p>On August 23rd, 2013, 8:06 p.m. UTC, Jonathan Doman wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Okular.</div>
<div>By Jonathan Doman.</div>


<p style="color: grey;"><i>Updated Aug. 23, 2013, 8:06 p.m.</i></p>






<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This patch adds support for a tabbed interface (multiple documents in one window). The core work just adds a tab bar that switches between multiple embedded okularparts, but there are many other considerations:
 - Tab context menu allows for duplicating or detaching (detached tabs start in new okular process)
 - `okular file.pdf` will open file in existing window if possible, unless --new flag is used. It also selects the most recently raised/activated window to use. This mirrors behavior I expect from browsers and other tabbed interfaces.
 - Warns when closing window with multiple tabs
 - No warning is given when opening an already open file. This is the behavior I strongly prefer (and observe in other programs), but will change if there is consensus otherwise.

When selecting different tools in one part, the tool selection propagates to all parts, but the GUI does not reflect that. This bug is present in other programs (e.g. multiple okularparts in Konqueror), so I made no attempt to diagnose or fix.

One menu item was added for the multiple tab warning option. When testing this, I noticed that items in the Settings menu seem to move around when switching tabs, and I cannot diagnose or fix this. It seems to be related to XMLGUI bug #64754. 

My development branch is also hosted at https://github.com/jrmrjnck/okular-tabbed</pre>
  </td>
 </tr>
</table>




<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="http://bugs.kde.org/show_bug.cgi?id=155515">155515</a>


</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>part.h <span style="color: grey">(4b3aafdb637080ae81eb0e45742f53a34738984d)</span></li>

 <li>part.cpp <span style="color: grey">(71c3d0f5d908969ffcf18aba327297ccd2e1c8e1)</span></li>

 <li>shell/main.cpp <span style="color: grey">(e0ca587ba167c4020d5af5bd33a2dc1b4923cac4)</span></li>

 <li>shell/shell.h <span style="color: grey">(c065c560fb4ddfcf181601cf35e9ca14581731f6)</span></li>

 <li>shell/shell.cpp <span style="color: grey">(1708501daaef817a1ce35fa5d96701a66ab66983)</span></li>

 <li>shell/shell.rc <span style="color: grey">(93fbc417588312792bab39b693c65e5d414c87c6)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/110914/diff/" style="margin-left: 3em;">View Diff</a></p>







  </td>
 </tr>
</table>








  </div>
 </body>
</html>