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