Skip to content
  • Łukasz Wojniłowicz's avatar
    New plugins loading system · 21338733
    Łukasz Wojniłowicz authored
    Current plugins loading system crashes KMyMoney very often after quit
    and doesn't allow unpluging plugins. This patch aims to improve on those
    two deficiencies.
    
    Changes:
    1) use of KPluginLoader instead of QPluginLoader
    KCM modules of plugins cannot use QPluginLoader, so load all plugins
    with single type of plugin loader.
    Loading with QPluginLoader directly causes some strange valgrind
    errors(invalid read size), which are untrackable. However, it doesn't
    occur with KPluginLoader.
    
    2) create new KSettingsPlugins page
    The page has changing Apply button depending on selection. The page
    allows unloading/loading plugins. The page causes plugin system to
    update after changes.
    
    3) no method for plugins handling in KMyMoneyApp, because all is
    encapsulated in pluginloader.h
    4) don't store KPluginSelector because it's needed only during
    configuration
    5) use plugin diagnostics in console that looks like "Plugins: xxxplugin
    (un)loaded" which allows debugging,
    6) use kcmshell5 instead of kcmshell4,
    7) use of qobject_cast instead of dynamic_cast to test plugin's
    interfaces, which is faster,
    8) remove "kmm_" prefix from KMM plugins as they're private and not
    public, so no name clash shouldn't occur,
    9) rename classes from something like KMMXXXImporterPlugin to something
    like XXXImporter, which is shorter,
    10) allow enabling Weboob and using printcheck plugins,
    11) new m_plugins member to store all plugin interfaces.
    
    Differential Revision: https://phabricator.kde.org/D9566
    21338733