<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/103658/">http://git.reviewboard.kde.org/r/103658/</a>
     </td>
    </tr>
   </table>
   <br />





 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Hi David, and many thanks for your work. There are a lot of things I like in your patch and some that need discussion. Anyway, you surely let me rethink/work about session restore :)
First, I think that the "improvements" here came basically from moving the check where application "canBeRestored" in main, where app can read eventual config files (? where are them?) saved from kapplication class.
I like the check about mainwindows restore name added, but I think the code in SessionManager::restoreMainWindow can be improved removing the unuseful for and using some QDom* magic (I guess "elementsByTagName" is our friend here).

I don't like the use of KMainWindow::restore(int) with its indirect call the readProperties. Who ensure a general public method like "readProperties" is used just on restore? No one but actual code. So, I vote for implementing a local KMainWindow::restoreMe() (or whatever name you prefer) calling SessionManager::restoreMainWindow(const QString &windowName).

Given that, code will be perfect for me and I'll love you can take care also about refactoring it. You'll have a special mention in rekonq about dialog for all this! :)</pre>
 <br />







<p>- Andrea</p>


<br />
<p>On January 9th, 2012, 7:11 a.m., David Narváez wrote:</p>






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

<div>Review request for rekonq.</div>
<div>By David Narváez.</div>


<p style="color: grey;"><i>Updated Jan. 9, 2012, 7:11 a.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 implements session management (see http://techbase.kde.org/Development/Tutorials/Session_Management). Most of the ideas are taken from Konsole, which is also a KUniqueApplication but manages session restoring correctly. Notice that the new code in Session Manager triplicates some code from other functions (mostly dealing with loading the session DOM Document and restoring tabs), so I think that if this patch is accepted, a refactoring of the SessionManager code is in order (or maybe do the refactoring before this patch?). I can take a shot at the refactoring if needed.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </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;">Test #1: Desktop restoration
1) Open Rekonq in one Desktop
2) Change to another desktop
3) Log out and back in

Rekonq should not appear in the desktop you are at, but in the desktop you were when you called it.

Test #2: Activities restoration
1) Open two activities
2) Open two different Rekonq windows, one in each activity, with different URLs
3) Log out and back in

Rekonq should be restore in both activities with the URLs you loaded before logging out

Other tests:
1) Do Test #2, then open a new rekonq window - this tests changes in the Application::newInstance() method.
2) Crash the session (e.g., killall rekonq) and open rekonq again - in this case no desktop/activities restoration should take place (haven't figured out how to do this)</pre>
  </td>
 </tr>
</table>




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

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

 <li>src/mainwindow.h <span style="color: grey">(04a59a1)</span></li>

 <li>src/mainwindow.cpp <span style="color: grey">(98936e9)</span></li>

 <li>src/sessionmanager.h <span style="color: grey">(d0d7efd)</span></li>

 <li>src/sessionmanager.cpp <span style="color: grey">(20b3501)</span></li>

 <li>src/application.cpp <span style="color: grey">(a09fc26)</span></li>

</ul>

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




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








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