Review Request 120890: Supporting changes for Calligra Gemini

Dan Leinir Turthra Jensen admin at leinir.dk
Thu Oct 30 13:19:00 GMT 2014



> On Oct. 29, 2014, 6:49 p.m., Friedrich W. H. Kossebau wrote:
> > qtquick/CQTextDocumentNotesModel.cpp, line 53
> > <https://git.reviewboard.kde.org/r/120890/diff/1/?file=323468#file323468line53>
> >
> >     .insert(role, string) would be mini-opt here

Is this a code style issue, is it done this way in the rest of the codebase, or personal preference? Only because the documentation for building models for Qt Quick suggests this way of writing out the rules (and well, i also personally find it more pleasant to read). Specific location in documentation: http://qt-project.org/doc/qt-4.8/qdeclarativemodels.html#qabstractitemmodel


> On Oct. 29, 2014, 6:49 p.m., Friedrich W. H. Kossebau wrote:
> > qtquick/CQPresentationCanvas.cpp, line 28
> > <https://git.reviewboard.kde.org/r/120890/diff/1/?file=323454#file323454line28>
> >
> >     Hm, should ViewModeSwitchEvent.h perhaps move to qtquick folder, to resolve this inverted dependency? Or rather be moved to some libs/gemini/ folder or libs/komain? Actually it needs to move out of gemini, as it is used by code (in the parts) that should not all need to link to Gemini stuff.
> >     Also means that this patch cannot be tested, as it is missing this file and more :)
> >     Perhaps instead of having the parts reacting to this event, some gemini products could install event filters to catch the event and handle themselves. That way the parts do not need to know about it.
> >     How does Krita solve this?

Krita solves this by having Gemini and Sketch as sub-elements of krita itself, which isn't directly applicable here (but is the reason it's currently in the gemini app folder)... I would probably be more comfortable having in a libs/gemini folder - partly because it would make it explicit what precisely it's used for, but also because there is the potential for adding gemini style functionality more easily to other apps in the future (the point has been brought up also that moving certain models elsewhere would be useful as well, since e.g. the toc model is useable almost verbatim for the kwnavigatorwidget, which would be a good target for future refactoring work, but really feel that's outside the scope of this patch as it stands).

So in short: i'd like to move that header to a libs subdir, and had not done it yet for two reasons: i forgot ;), and i wanted comments on whether that would actually make sense :)


> On Oct. 29, 2014, 6:49 p.m., Friedrich W. H. Kossebau wrote:
> > qtquick/CQLinkArea.cpp, line 2
> > <https://git.reviewboard.kde.org/r/120890/diff/1/?file=323450#file323450line2>
> >
> >     license header missing

this was code from elsewhere that i wrote a while back... forgot to readd the header :)


> On Oct. 29, 2014, 6:49 p.m., Friedrich W. H. Kossebau wrote:
> > libs/odf/KoEncryptedStore.cpp, line 183
> > <https://git.reviewboard.kde.org/r/120890/diff/1/?file=323434#file323434line183>
> >
> >     Yes, something I have a WIP branch on my harddisk where KoStore classes no longer directly use KMessageBox etc., but use setable delegates (so a shutup-delegate just drops any messages). Need to get this done in time for 2.9

Brilliant stuff, look forward to that landing :)


> On Oct. 29, 2014, 6:49 p.m., Friedrich W. H. Kossebau wrote:
> > libs/main/KoTemplate.h, line 115
> > <https://git.reviewboard.kde.org/r/120890/diff/1/?file=323428#file323428line115>
> >
> >     color/swatch/variantName and custom thumbnail might need some explanation how they are supposed to work, as it is at least not immediate obvious. I guess for each template there can be variants in both(?) color and swatch, which also needs a custom thumbnail.
> >     
> >     Best there would be some explanation in the API dox of the KoTemplate class how such variants of a template need to be installed filewise.

Hmm... well, true - the class is currently entirely without api docs, but i can certainly fix that :)


> On Oct. 29, 2014, 6:49 p.m., Friedrich W. H. Kossebau wrote:
> > libs/flake/KoToolManager.h, line 141
> > <https://git.reviewboard.kde.org/r/120890/diff/1/?file=323419#file323419line141>
> >
> >     Please add a comment why attemptCanvasControllerRemoval() is needed next to removeCanvasController() and how these two should be used together.

The way this is done basically means that removeCanvasController could be removed and attemptCanvasControllerRemoval could be made a private slot. In essence, it uses the proxy object of the controller to ensure the controller is removed. This, basically, is because of some to me utterly obscure problems which meant we had crashes if one thing was done, and crashes if another was done, in Words and Stage respectively. This method ensures we don't have crashes in either.


> On Oct. 29, 2014, 6:49 p.m., Friedrich W. H. Kossebau wrote:
> > cmake/productsets/words+stage.cmake, line 8
> > <https://git.reviewboard.kde.org/r/120890/diff/1/?file=323412#file323412line8>
> >
> >     All these plugins are already pulled in by the WORDS and STAGE productsets, cmp. their deps in CalligraProducts.cmake.
> >     
> >     Actually I propose to rename the GEMINI product to APP_GEMINI (which describes just the executable and what it needs to run/build at all) and have another GEMINI productset in CalligraProducts.cmake, by the example of e.g. the productsets WORDS and STAGE. So in the end drop this file.

Good call yes - File dropped and changed it so Gemini is a fully fletched app in its own right now :)


> On Oct. 29, 2014, 6:49 p.m., Friedrich W. H. Kossebau wrote:
> > active/src/MainWindow.cpp, line 68
> > <https://git.reviewboard.kde.org/r/120890/diff/1/?file=323409#file323409line68>
> >
> >     That wants to be something configurable, no? :)

well... really it needs to be done a touch differently, and just use the same trick as in Sketch and the Gemini apps :)


- Dan Leinir Turthra


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/120890/#review69471
-----------------------------------------------------------


On Oct. 29, 2014, 3:07 p.m., Dan Leinir Turthra Jensen wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/120890/
> -----------------------------------------------------------
> 
> (Updated Oct. 29, 2014, 3:07 p.m.)
> 
> 
> Review request for Calligra.
> 
> 
> Repository: calligra
> 
> 
> Description
> -------
> 
> The many changes in this patch are all the ones found in the Calligra Gemini branch. It includes the addition of the Qt Quick compinents created a while ago by Arjen and Shantanu, as well as a number of changes which improves the writing performance and experience in Words, especially when dealing with very large documents. It further extends the template system with support for variations.
> 
> It does not include the gemini subdirectory itself (and as such to compile this you would need to check out the branch itself, rather than apply this patch), the reason being the large amount of data found in this subdirectory took the patch from the current 233KiB to a nice, solid 55MiB. So, i thought this would be more useful.
> 
> 
> Diffs
> -----
> 
>   words/templates/Wordprocessing/fax.png PRE-CREATION 
>   words/templates/Wordprocessing/professional.png PRE-CREATION 
>   words/part/pagetool/KWPageTool.h 45ad7d5 
>   words/part/pagetool/KWPageTool.cpp 7935390 
>   words/templates/Wordprocessing/A4.desktop 8a35eaf 
>   words/templates/Wordprocessing/CMakeLists.txt 88b73fa 
>   words/templates/Wordprocessing/ColorfulA4.desktop 04caf8e 
>   words/templates/Wordprocessing/ColorfulLetter.desktop ce38ab5 
>   words/templates/Wordprocessing/FaxA4.desktop 2b43998 
>   words/templates/Wordprocessing/FaxLetter.desktop fc1c161 
>   words/templates/Wordprocessing/ProfessionalA4.desktop 7c84f34 
>   words/templates/Wordprocessing/ProfessionalLetter.desktop 5f8b94f 
>   words/templates/Wordprocessing/a4.png PRE-CREATION 
>   words/templates/Wordprocessing/colorful.png PRE-CREATION 
>   stage/templates/odf/skyline_night.png PRE-CREATION 
>   stage/templates/odf/skyline_night_wide.desktop e188171 
>   stage/templates/odf/skyline_night_wide.png PRE-CREATION 
>   stage/templates/odf/strange_far_hills.desktop 1a17807 
>   stage/templates/odf/strange_far_hills.png PRE-CREATION 
>   words/part/KWCanvasBase.cpp 0d2d28f 
>   words/part/KWCanvasItem.cpp cfdae98 
>   words/part/KWGui.cpp 65aedf7 
>   words/part/KWPageStyle.h a3bf58b 
>   words/part/KWView.h f21f8e3 
>   words/part/KWView.cpp 1285d21 
>   words/part/commands/KWShapeCreateCommand.h eb268f8 
>   words/part/dockers/KWNavigationWidget.cpp 1bb54e0 
>   words/part/dockers/KWStatisticsWidget.h eac4d44 
>   words/part/dockers/KWStatisticsWidget.cpp 63d0384 
>   words/part/frames/KWCopyShape.h 01eedf5 
>   words/part/frames/KWCopyShape.cpp 744f292 
>   stage/templates/odf/skyline_night.desktop 28e3a18 
>   stage/templates/odf/skyline_morning.png PRE-CREATION 
>   stage/templates/odf/skyline_morning_wide.desktop d3337ae 
>   stage/templates/odf/skyline_morning_wide.png PRE-CREATION 
>   stage/templates/odf/rounded_square.png PRE-CREATION 
>   stage/templates/odf/simple_waves.desktop dd2bd96 
>   stage/templates/odf/simple_waves.png PRE-CREATION 
>   stage/templates/odf/skyline_monotone.desktop 0c9dd68 
>   stage/templates/odf/skyline_monotone.png PRE-CREATION 
>   stage/templates/odf/skyline_monotone_wide.desktop 152c719 
>   stage/templates/odf/skyline_monotone_wide.png PRE-CREATION 
>   stage/templates/odf/skyline_morning.desktop ec4140d 
>   stage/templates/odf/cohere-red.desktop PRE-CREATION 
>   stage/templates/odf/cohere-red.otp PRE-CREATION 
>   stage/templates/odf/cohere-red.png PRE-CREATION 
>   stage/templates/odf/curious_penguin.desktop 429e7c9 
>   stage/templates/odf/curious_penguin.png PRE-CREATION 
>   stage/templates/odf/flood_light.desktop 23adbb2 
>   stage/templates/odf/flood_light.png PRE-CREATION 
>   stage/templates/odf/hisc-action-cohere-blue.svgz PRE-CREATION 
>   stage/templates/odf/hisc-action-cohere-gold.svgz PRE-CREATION 
>   stage/templates/odf/hisc-action-cohere-magenta.svgz PRE-CREATION 
>   stage/templates/odf/hisc-action-cohere-red.svgz PRE-CREATION 
>   stage/templates/odf/kde_events.desktop afa4534 
>   stage/templates/odf/kde_events.png PRE-CREATION 
>   stage/templates/odf/rounded_square.desktop 85015a2 
>   qtquick/CQSpreadsheetListModel.cpp PRE-CREATION 
>   qtquick/CQTextDocumentCanvas.h PRE-CREATION 
>   qtquick/CQTextDocumentCanvas.cpp PRE-CREATION 
>   qtquick/CQTextDocumentModel.h PRE-CREATION 
>   qtquick/CQTextDocumentModel.cpp PRE-CREATION 
>   qtquick/CQTextDocumentNotesModel.h PRE-CREATION 
>   qtquick/CQTextDocumentNotesModel.cpp PRE-CREATION 
>   qtquick/CQTextToCModel.h PRE-CREATION 
>   qtquick/CQTextToCModel.cpp PRE-CREATION 
>   qtquick/CQThumbnailItem.h PRE-CREATION 
>   qtquick/CQThumbnailItem.cpp PRE-CREATION 
>   qtquick/CalligraQtQuickComponentsPlugin.h PRE-CREATION 
>   qtquick/CalligraQtQuickComponentsPlugin.cpp PRE-CREATION 
>   qtquick/qmldir PRE-CREATION 
>   stage/part/KPrView.h b4bab24 
>   stage/part/KPrView.cpp 1edd8e8 
>   stage/part/animations/KPrAnimTransitionFilter.cpp 3347fe1 
>   stage/part/animations/KPrAnimateColor.cpp 59a5e0e 
>   stage/part/animations/KPrAnimateTransform.cpp 914047e 
>   stage/templates/common_desktop/emptyLandscapeWide.desktop c5f8f8a 
>   stage/templates/odf/CMakeLists.txt f7db7d0 
>   stage/templates/odf/blue_orange_vector.desktop 31dae09 
>   stage/templates/odf/blue_orange_vector.png PRE-CREATION 
>   stage/templates/odf/burning_desire.desktop ac79022 
>   stage/templates/odf/burning_desire.png PRE-CREATION 
>   stage/templates/odf/business.desktop d552db3 
>   stage/templates/odf/business.png PRE-CREATION 
>   stage/templates/odf/cohere-blue.desktop PRE-CREATION 
>   stage/templates/odf/cohere-blue.otp PRE-CREATION 
>   stage/templates/odf/cohere-blue.png PRE-CREATION 
>   stage/templates/odf/cohere-gold.desktop PRE-CREATION 
>   stage/templates/odf/cohere-gold.otp PRE-CREATION 
>   stage/templates/odf/cohere-gold.png PRE-CREATION 
>   stage/templates/odf/cohere-magenta.desktop PRE-CREATION 
>   stage/templates/odf/cohere-magenta.otp PRE-CREATION 
>   stage/templates/odf/cohere-magenta.png PRE-CREATION 
>   qtquick/CQPresentationCanvas.h PRE-CREATION 
>   qtquick/CQPresentationCanvas.cpp PRE-CREATION 
>   qtquick/CQPresentationModel.h PRE-CREATION 
>   qtquick/CQPresentationModel.cpp PRE-CREATION 
>   qtquick/CQPresentationView.h PRE-CREATION 
>   qtquick/CQPresentationView.cpp PRE-CREATION 
>   qtquick/CQSpreadsheetCanvas.h PRE-CREATION 
>   qtquick/CQSpreadsheetCanvas.cpp PRE-CREATION 
>   qtquick/CQSpreadsheetListModel.h PRE-CREATION 
>   libs/main/KoTemplate.h f96099c 
>   libs/main/KoTemplate.cpp f1d3bd9 
>   libs/main/KoTemplateCreateDia.cpp 72573cc 
>   libs/main/KoTemplateGroup.cpp ab35dd1 
>   libs/main/KoTemplateTree.cpp 8f864b4 
>   libs/main/KoView.cpp 4770dcc 
>   libs/odf/KoEncryptedStore.cpp 53c75b6 
>   libs/textlayout/KoTextDocumentLayout.cpp 805f11d 
>   libs/widgets/KoZoomAction.h c5f69b0 
>   plugins/defaultTools/defaulttool/SelectionDecorator.h 83e715e 
>   plugins/defaultTools/defaulttool/SelectionDecorator.cpp 3e16cfa 
>   plugins/textshape/TextShape.cpp dac4a90 
>   qtquick/CMakeLists.txt PRE-CREATION 
>   qtquick/CQCanvasBase.h PRE-CREATION 
>   qtquick/CQCanvasBase.cpp PRE-CREATION 
>   qtquick/CQCanvasController.h PRE-CREATION 
>   qtquick/CQCanvasController.cpp PRE-CREATION 
>   qtquick/CQCanvasControllerItem.h PRE-CREATION 
>   qtquick/CQCanvasControllerItem.cpp PRE-CREATION 
>   qtquick/CQImageProvider.h PRE-CREATION 
>   qtquick/CQImageProvider.cpp PRE-CREATION 
>   qtquick/CQLinkArea.h PRE-CREATION 
>   qtquick/CQLinkArea.cpp PRE-CREATION 
>   qtquick/CQPluginLoaderProxy.h PRE-CREATION 
>   qtquick/CQPluginLoaderProxy.cpp PRE-CREATION 
>   libs/flake/KoCanvasController.h 804a1e4 
>   libs/flake/KoCanvasController.cpp 5190f62 
>   libs/flake/KoToolManager.h ac17dd0 
>   libs/flake/KoToolManager.cpp 5d4da91 
>   libs/kopageapp/KoPADocumentModel.cpp 22bd75a 
>   libs/kopageapp/tools/backgroundTool/KoPABackgroundToolFactory.cpp f442b84 
>   libs/main/KoApplication.cpp b20c0e9 
>   libs/main/KoDocument.h c3936a9 
>   libs/main/KoDocumentSectionDelegate.cpp 81c53c0 
>   libs/main/KoMainWindow.cpp 8db43f8 
>   libs/main/KoPart.cpp 04b8d25 
>   cmake/modules/FindLibgit2.cmake PRE-CREATION 
>   cmake/modules/FindLibqgit2.cmake PRE-CREATION 
>   cmake/productsets/words+stage.cmake PRE-CREATION 
>   filters/words/docx/export/DocxFile.cpp d67e41f 
>   filters/words/msword-odf/wv2/src/utilities.cpp 4be8c38 
>   krita/sketch/KisSketchView.cpp 5cb9172 
>   krita/sketch/SketchDeclarativeView.cpp e352fc9 
>   CMakeLists.txt fa00fdd 
>   CalligraProducts.cmake c2ef8ac 
>   active/qml/Test.qml PRE-CREATION 
>   active/src/MainWindow.cpp c378881 
> 
> Diff: https://git.reviewboard.kde.org/r/120890/diff/
> 
> 
> Testing
> -------
> 
> * Compiles and shipped to users on Windows (through the Calligra Gemini packages)
> * Used every day for writing in a production environment (for producing my novel and recent short story)
> 
> 
> Thanks,
> 
> Dan Leinir Turthra Jensen
> 
>

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


More information about the calligra-devel mailing list