Review Request 129393: Use Qt's plugin system instead of KService
Christian David
christian-david at web.de
Sat Nov 26 15:12:58 UTC 2016
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/129393/
-----------------------------------------------------------
(Updated Nov. 26, 2016, 3:12 p.m.)
Status
------
This change has been marked as submitted.
Review request for KMymoney.
Changes
-------
Submitted with commit 82fbbb1ab2e245df5958f805ed72abcbe3b1b8e6 by Christian Dávid to branch master.
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/20161126/bfa0ba31/attachment-0001.html>
More information about the KMyMoney-devel
mailing list