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

Marko Käning mk-lists at mailbox.org
Mon Nov 14 06:17:35 UTC 2016


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



Why do you migrate away from KService to something Qt'ish?

- Marko Käning


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/12719f67/attachment-0001.html>


More information about the KMyMoney-devel mailing list