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