Review Request: Refactoring of koabstraction lib

Jarosław Staniek staniek at kde.org
Sat Feb 12 17:36:31 GMT 2011


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

Review request for Calligra, Boudewijn Rempt and Mani Chandrasekar.


Summary
-------

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.


Diffs
-----

  tools/f-office/Accelerator.cpp 7507b43 
  tools/f-office/ApplicationController.h PRE-CREATION 
  tools/f-office/ApplicationController.cpp PRE-CREATION 
  tools/f-office/CMakeLists.txt 0fcd20f 
  tools/f-office/KoAbstractApplicationImpl.cpp 5d1bfcc 
  tools/f-office/Main.cpp 0497f51 
  tools/f-office/MainWindow.h 605a6e9 
  tools/f-office/MainWindow.cpp 908ad4a 
  tools/f-office/MainWindowAdaptor.h 846d9b1 
  tools/f-office/MainWindowAdaptor.cpp 7ed90e6 
  tools/f-office/PresentationTool.cpp bf8fa10 
  tools/f-office/SlidingMotionDialog.h d884ebd 
  tools/f-office/VirtualKeyBoard.h 2913e1a 
  tools/koabstraction/CMakeLists.txt 2fa24e0 
  tools/koabstraction/KoAbstractApplication.h f6c833c 
  tools/koabstraction/KoAbstractApplicationController.h 484f9c0 
  tools/koabstraction/KoAbstractApplicationController.cpp 7ee5542 
  tools/koabstraction/KoAbstractApplicationImpl.h a77e0e6 
  tools/koabstraction/KoAbstractApplicationWindow.h PRE-CREATION 
  tools/koabstraction/KoAbstractApplicationWindow.cpp PRE-CREATION 

Diff: http://git.reviewboard.kde.org/r/100640/diff


Testing
-------

FreOffice is functional as before, the API has the same feature set as before and porting existing code using it feels quite 'automatic'. 


Thanks,

Jarosław

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/calligra-devel/attachments/20110212/a5ce165f/attachment.htm>


More information about the calligra-devel mailing list