Review Request 129393: Use Qt's plugin system instead of KService

Christian David christian-david at web.de
Mon Nov 14 08:19:51 UTC 2016



> On Nov. 14, 2016, 7:17 a.m., Marko Käning wrote:
> > Why do you migrate away from KService to something Qt'ish?

Because there is no use of KService for us. Also this is way simpler. The new system is recommended by the Frameworks developers (if KService is not needed).

The on demand plugins still use KService to find plugins.

Btw: This patch includes the KF5/Qt5 port of the plugin load system.


- Christian


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


On Nov. 13, 2016, 9:50 p.m., Christian David wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/129393/
> -----------------------------------------------------------
> 
> (Updated Nov. 13, 2016, 9:50 p.m.)
> 
> 
> Review request for KMymoney.
> 
> 
> Repository: kmymoney
> 
> 
> Description
> -------
> 
> Hi,
> 
> this is my long overdue change on the plugin system. It actually started in Randa.
> 
> Sorry for such a long review request! I think it is ready for publishing, I made this review request only to give everybody a chance to ask questions :)
> 
> 
> Commit 1
> ========
> 
> This is a major change. Instead of a KPluginFactory based plugin
> loading, Qt's plugin system is used. The docu was adopeted to reflect
> this.
> 
> Commit 2
> ========
> 
> The plugins for onlineTasks are now loaded with QPluginLoader on demand.
> The necessary information is encoded in Qt's json plugin header.
> 
> Commit 3
> ========
> 
> Moved plugin loader out of kmm_plugin and put it into the executable
> 
> The plugin shared library is for plugins now and does not include the
> loading of plugins (which was kind of wired). All loading operations of
> standard plugins is done in KMyMoneyApp now.
> 
> Therefor the interface system for plugins needed do be reworked to
> great degree. Some overly complex operations were replaced by simpler
> ones. All plugins were adopted to that. Also it is more type safe now.
> 
> Now the user configuration which plugins should be loaded or not is
> respected (standard plugins only).
> 
> An old bug was fixed: If the configuration in the plugin settings
> changed the plugins are loaded/unloaded after the user accepts the
> dialog (perviously this was done when the checkbox was clicked).
> 
> Todos
> =====
> 
> The new system is still not finished. However, it is a great step in
> the right direction. An uncomplete list of FIXMEs (or bugs?):
> 
> 1. pluginloader.{h,cpp} are gui only now and should be merged into the
> settings dialog.
> 2. The UI for plugins still has some issues, e.g. the online banking
> plugins which are loaded on demand (and are not deactivatable) have a
> checkbox for loading and unloading which has no function.
> 3. Unloading plugins may not work correctly (I think it never did).
> 4. The payeeIdentifiers are not listet in the plugin settings page.
> 
> 
> Diffs
> -----
> 
>   CMakeLists.txt 09970dd5626e308c443ea20ee20ecf8503b21209 
>   kmymoney/CMakeLists.txt acbe6a3c91a62a15871a0061486a7d0771b3a5e6 
>   kmymoney/dialogs/konlinetransferform.h e4761904d68a92471c0b05cc9e5b2bcd1461511d 
>   kmymoney/dialogs/konlinetransferform.cpp 07e73ab17f93cd8fd804b9d11ede2b049f76eefe 
>   kmymoney/dialogs/settings/ksettingsplugins.cpp 007a59d4be08fe779245dd5d52f664ebfcee447d 
>   kmymoney/kmymoney.h 8d10023b5e35be8f4449973ea16e0ec0cc0acca2 
>   kmymoney/kmymoney.cpp 043342dd87cbc03557c5e2b29eb3b9dfcd1083dd 
>   kmymoney/mymoney/onlinejobadministration.h e72d1a6e46c7c8bcc7cf05193e04bdc8bd9103f5 
>   kmymoney/mymoney/onlinejobadministration.cpp 52658747a44bc5477ccd75a531aef471b4553b19 
>   kmymoney/pluginloader.h PRE-CREATION 
>   kmymoney/pluginloader.cpp PRE-CREATION 
>   kmymoney/plugins/CMakeLists.txt fd7cad75256c0a43d7d1fd3a23b37cef7fab8bf9 
>   kmymoney/plugins/csvexport/CMakeLists.txt 9f2e29fd43e32cd3c6acc7f597c45d522eac4eaf 
>   kmymoney/plugins/csvexport/csvexport.json.in PRE-CREATION 
>   kmymoney/plugins/csvexport/csvexporterplugin.h f163ade2d59ae1b6eb32958a317384e77a658523 
>   kmymoney/plugins/csvexport/csvexporterplugin.cpp 31027c65111edbad8ca78b00f5b7df572056bb37 
>   kmymoney/plugins/csvexport/kmm_csvexport.desktop 957a9edc4101504e0db08378392e29358327b1c6 
>   kmymoney/plugins/csvimport/CMakeLists.txt c3e13285944f3624d69f7cc7cde0d4d9014a2a2c 
>   kmymoney/plugins/csvimport/csvimport.json.in PRE-CREATION 
>   kmymoney/plugins/csvimport/csvimporterplugin.h e66f9cf8e7bfdf9a431d7c57db2e905f5e89ec66 
>   kmymoney/plugins/csvimport/csvimporterplugin.cpp 9a28dca3efd54b82882ef71595439d34b09a5177 
>   kmymoney/plugins/csvimport/kmm_csvimport.desktop 52dfc6ef5a425f70f4caba42e92378665926c774 
>   kmymoney/plugins/icalendarexport/CMakeLists.txt b85f29282114b5c8eb4d680308da59177992a7e6 
>   kmymoney/plugins/icalendarexport/icalendarexport.h ae02cb35041c7bb1423fe2939da1252d1003065a 
>   kmymoney/plugins/icalendarexport/icalendarexport.cpp d1028338c8e3644fc280395c5c853d369f19f4eb 
>   kmymoney/plugins/icalendarexport/kmm_icalendarexport.desktop 4313fdf277f82e6759e48931b3b2aba059b2ece3 
>   kmymoney/plugins/icalendarexport/kmm_icalendarexport.json.in PRE-CREATION 
>   kmymoney/plugins/interfaceloader.h PRE-CREATION 
>   kmymoney/plugins/interfaceloader.cpp PRE-CREATION 
>   kmymoney/plugins/interfaces/kmmviewinterface.h d86e5efafd7ceac57b5a107696ffbc57ef64896b 
>   kmymoney/plugins/kbanking/CMakeLists.txt 7a6b656eaa198b0556dc9329c37d9fe34009ad68 
>   kmymoney/plugins/kbanking/kbanking.json.in PRE-CREATION 
>   kmymoney/plugins/kbanking/kmm_kbanking.desktop 414964f6c9fe3d34f03189783aa915d3ba37ff18 
>   kmymoney/plugins/kbanking/mymoneybanking.h fe0cb5c5feeeac9ffb4657e49da318cc429d2ac4 
>   kmymoney/plugins/kbanking/mymoneybanking.cpp ad53d4ba608e221a920a4899ebbfab7466c0293f 
>   kmymoney/plugins/kmymoney-onlinetaskui.desktop 23cfd182a0e12c0be9a97f0490ceedc3456f1b84 
>   kmymoney/plugins/kmymoney-payeeidentifierdelegate.desktop cc2689f5c1f36ac4d75d1d6bd7ce0c0877b7ca18 
>   kmymoney/plugins/kmymoney-plugin.desktop 28673a8ed8ff8578f046c02b67da4e305f610ecf 
>   kmymoney/plugins/kmymoneyplugin.h 12748dc80cca025212d53db13f0e7ccce71cc465 
>   kmymoney/plugins/kmymoneyplugin.cpp b55b497607089c4cf036696695b79fd341ec9a3a 
>   kmymoney/plugins/ofximport/CMakeLists.txt e97b1e87bf1b2141dca623903480691f1f5d0455 
>   kmymoney/plugins/ofximport/kmm_ofximport.desktop 393a0887abbecbf4efb931b8d0ef1da474572025 
>   kmymoney/plugins/ofximport/ofximport.json.in PRE-CREATION 
>   kmymoney/plugins/ofximport/ofximporterplugin.h 667a0996654911d58a6d183ba2d0b244a9457172 
>   kmymoney/plugins/ofximport/ofximporterplugin.cpp 46842eee0870c8f2c21678dde112f497b7c8e2a0 
>   kmymoney/plugins/onlinejobpluginmockup/CMakeLists.txt 17db89d743b4f5871aa720654f9fb1af0591bde1 
>   kmymoney/plugins/onlinejobpluginmockup/kmm_onlinejobpluginmockup.desktop 2b5d33c495b342b1cade6d4cbd2b62165c18e29d 
>   kmymoney/plugins/onlinejobpluginmockup/kmm_onlinejobpluginmockup.json.in PRE-CREATION 
>   kmymoney/plugins/onlinejobpluginmockup/onlinejobpluginmockup.h f6165d3545d45c1fae6cc72543ffa7750d2a29ee 
>   kmymoney/plugins/onlinejobpluginmockup/onlinejobpluginmockup.cpp 561cf4fa8d925194950e93273810f1d862acf6bf 
>   kmymoney/plugins/onlinepluginextended.h ec84a2c8867cfbcfb1a54a8d81a484a0c036a656 
>   kmymoney/plugins/onlinetasks/sepa/CMakeLists.txt 30f5e14246a3d63a42e63c886822011fb4496256 
>   kmymoney/plugins/onlinetasks/sepa/kmymoney-sepaorders.desktop.in c622722047ce8f789f876d4808abd5ee33200bd3 
>   kmymoney/plugins/onlinetasks/sepa/kmymoney-sepaorders.json.in PRE-CREATION 
>   kmymoney/plugins/onlinetasks/sepa/kmymoney-sepaordersui.desktop.in 966eb5e7c25938dbb2d12c6427a2f67ec643ff35 
>   kmymoney/plugins/onlinetasks/sepa/kmymoney-sepastorageplugin.desktop.in a118770c40bfd2040cc9bfd3f68c1538ec44fb09 
>   kmymoney/plugins/onlinetasks/sepa/sepaonlinetasksloader.h fa6e54f60fffec913bf3f68256aa370b4e5a07b6 
>   kmymoney/plugins/onlinetasks/sepa/sepaonlinetasksloader.cpp 5bf528e9b3cbece1f37af6101f159793bc0c35a6 
>   kmymoney/plugins/pluginloader.h 3f7f2ec42d0ef60a6ad2d83601a7dfdc397f4fd6 
>   kmymoney/plugins/pluginloader.cpp 20c3b1120c380d3ccec91f412673f18906f5b5f0 
>   kmymoney/plugins/printcheck/CMakeLists.txt 1303f29138a4098824bd5d8209d3a4baadee25da 
>   kmymoney/plugins/printcheck/kmm_printcheck.desktop 97bec6edd7af67582340c14355421e0b121de969 
>   kmymoney/plugins/printcheck/kmm_printcheck.json.in PRE-CREATION 
>   kmymoney/plugins/printcheck/printcheck.h 2f16753e35a632593cee5ffb1890b14f6d6a3ff5 
>   kmymoney/plugins/printcheck/printcheck.cpp 8fa469857db50dbb9a3c00f02df38f225ed56017 
>   kmymoney/plugins/reconciliationreport/CMakeLists.txt 19751f5bf13926f60310d1b42be123f5e4ca11ca 
>   kmymoney/plugins/reconciliationreport/kmm_reconciliationreport.desktop ec3019df28a881dbec5cda3dd1a30df4aa3ec175 
>   kmymoney/plugins/reconciliationreport/kmm_reconciliationreport.json.in PRE-CREATION 
>   kmymoney/plugins/reconciliationreport/reconciliationreport.h 4d33aa349431deb5b5eb8526d07bfa18a1d77e6d 
>   kmymoney/plugins/reconciliationreport/reconciliationreport.cpp 304b032d5b5ea60114447fb72ff7ac1f317b9e99 
>   kmymoney/plugins/weboob/CMakeLists.txt b99cc0729847d8217fdec483568b42e6069b9974 
>   kmymoney/plugins/weboob/dialogs/mapaccount.h 041620d2585a5e0e289ba53d89ac7a2ab19768c6 
>   kmymoney/plugins/weboob/dialogs/mapaccount.cpp f5e36e5a515b58d5a53cb51559569d6fba267bdd 
>   kmymoney/plugins/weboob/kmm_weboob.desktop 1b0ab9e22d7bc3397744eae3ed44fbb30943963b 
>   kmymoney/plugins/weboob/kmm_weboob.json.in PRE-CREATION 
>   kmymoney/plugins/weboob/plugin.h c7a8ab13c92988b5ea59e4a06035c399e1e2a76d 
>   kmymoney/plugins/weboob/plugin.cpp 49dee5e1b3c6190f05ec478e2dac8bb9c3dac5ce 
> 
> Diff: https://git.reviewboard.kde.org/r/129393/diff/
> 
> 
> Testing
> -------
> 
> Opened KMyMoney with aqbanking enabled and disabled. Checked if the Aqbanking Settings menu entry exists.
> 
> 
> Thanks,
> 
> Christian David
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kmymoney-devel/attachments/20161114/b682c069/attachment-0001.html>


More information about the KMyMoney-devel mailing list