Review Request: Refactoring of koabstraction lib

Jarosław Staniek staniek at kde.org
Wed Mar 9 20:12:03 GMT 2011


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


OK, submiting since there are no objections after 3+ weeks.

- Jarosław


On Feb. 12, 2011, 5:36 p.m., Jarosław Staniek wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/100640/
> -----------------------------------------------------------
> 
> (Updated Feb. 12, 2011, 5:36 p.m.)
> 
> 
> 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/20110309/029f0523/attachment.htm>


More information about the calligra-devel mailing list