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


<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.orgrb/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 Calligra, Boudewijn Rempt and Mani Chandrasekar.</div>
<div>By JarosÅ‚aw Staniek.</div>





<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;">Background: The KoAbstraction API version 1 (Calligra master from early 2011) requires include .moc file generated in the library by outside code (e.g. in the f-office app) and using typedef to workaround impossibility of multiple inheritance from QObject-based classes. This is considered as a hack if not fragile and unclear. Also it was requested by the FreOffice developers to fix problems with their custom builds on maemo.

The Goal: refactor the KoAbstraction lib so the API is more natural and has more OOD.

See also: Mani has also addressed a need for custom maemo builds: http://git.reviewboard.kde.org/r/100462/ ; this is not needed now.

The development happens on branch tools-koabstraction_refactoring1-staniek

Changelog:

    * KoAbstractApplication:
          o renamed to *KoAbstractApplicationWindow
          o KoAbstractApplicationWindow is now a thin interface to inherit by the main application window, e.g. main window of FreOffice.
          o KoAbstractApplicationWindow no longer inherits QObject. 
    * KoAbstractAppliactionController:
          o KoAbstractAppliactionController is now separate controller inheriting QObject, owned by the KoAbstractApplication-derived class. 
            It contains signals and slots, and should be inherited to customize behaviour and implement abstract interfaces.
          o currentPageChanged() renamed to handleCurrentPageChanged() since it's a placeholder for implementing reaction on page changing
          o documentPageSetupChanged renamed to handleDocumentPageSetupChanged()
          o controller() renamed to canvasController() to avoid silly controller()->controller() expressions
          o controllerWidget() renamed to canvasControllerWidget()
          o doOpenDocument() renamed to openScheduledDocument()
          o removeSheet() renamed to removeCurrentSheet()
          o more setter methods changed to slots
          o thisObject() removed, now 'this' is enough
          o mainWindow() pure virtual added, returns the QWidget of the main window 

+ merged with master, fully ported FreOffice, including recent fixes from Boud.</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;">FreOffice is functional as before, the API has the same feature set as before and porting existing code using it feels quite 'automatic'. </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>tools/f-office/Accelerator.cpp <span style="color: grey">(7507b43)</span></li>

 <li>tools/f-office/ApplicationController.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>tools/f-office/ApplicationController.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>tools/f-office/CMakeLists.txt <span style="color: grey">(0fcd20f)</span></li>

 <li>tools/f-office/KoAbstractApplicationImpl.cpp <span style="color: grey">(5d1bfcc)</span></li>

 <li>tools/f-office/Main.cpp <span style="color: grey">(0497f51)</span></li>

 <li>tools/f-office/MainWindow.h <span style="color: grey">(605a6e9)</span></li>

 <li>tools/f-office/MainWindow.cpp <span style="color: grey">(908ad4a)</span></li>

 <li>tools/f-office/MainWindowAdaptor.h <span style="color: grey">(846d9b1)</span></li>

 <li>tools/f-office/MainWindowAdaptor.cpp <span style="color: grey">(7ed90e6)</span></li>

 <li>tools/f-office/PresentationTool.cpp <span style="color: grey">(bf8fa10)</span></li>

 <li>tools/f-office/SlidingMotionDialog.h <span style="color: grey">(d884ebd)</span></li>

 <li>tools/f-office/VirtualKeyBoard.h <span style="color: grey">(2913e1a)</span></li>

 <li>tools/koabstraction/CMakeLists.txt <span style="color: grey">(2fa24e0)</span></li>

 <li>tools/koabstraction/KoAbstractApplication.h <span style="color: grey">(f6c833c)</span></li>

 <li>tools/koabstraction/KoAbstractApplicationController.h <span style="color: grey">(484f9c0)</span></li>

 <li>tools/koabstraction/KoAbstractApplicationController.cpp <span style="color: grey">(7ee5542)</span></li>

 <li>tools/koabstraction/KoAbstractApplicationImpl.h <span style="color: grey">(a77e0e6)</span></li>

 <li>tools/koabstraction/KoAbstractApplicationWindow.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>tools/koabstraction/KoAbstractApplicationWindow.cpp <span style="color: grey">(PRE-CREATION)</span></li>

</ul>

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




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




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