[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [calligra/krita-scripting-rempt] krita/plugins/extensions/pyqt/src: Try loading the plugins
From:       Boudewijn Rempt <boud () valdyas ! org>
Date:       2014-07-29 14:03:43
Message-ID: E1XC80F-0003UD-3p () scm ! kde ! org
[Download RAW message or body]

Git commit 43a8e8239e4bb1a8078968aa6be6e8e3f83b5a21 by Boudewijn Rempt.
Committed on 29/07/2014 at 09:38.
Pushed by rempt into branch 'krita-scripting-rempt'.

Try loading the plugins

M  +4    -2    krita/plugins/extensions/pyqt/src/engine.cpp
M  +31   -0    krita/plugins/extensions/pyqt/src/krita/__init__.py
M  +18   -0    krita/plugins/extensions/pyqt/src/plugin.cpp
M  +0    -1    krita/plugins/extensions/pyqt/src/plugins/hello/__init__.py

http://commits.kde.org/calligra/43a8e8239e4bb1a8078968aa6be6e8e3f83b5a21

diff --git a/krita/plugins/extensions/pyqt/src/engine.cpp \
b/krita/plugins/extensions/pyqt/src/engine.cpp index e54fc35..0f544b1 100644
--- a/krita/plugins/extensions/pyqt/src/engine.cpp
+++ b/krita/plugins/extensions/pyqt/src/engine.cpp
@@ -217,8 +217,9 @@ void PyKrita::Engine::unloadAllModules()
 QString PyKrita::Engine::tryInitializeGetFailureReason()
 {
     dbgScript << "Construct the Python engine for Python" << PY_MAJOR_VERSION << \
                PY_MINOR_VERSION;
-    if (0 != PyImport_AppendInittab(Python::PYKRITA_ENGINE, PYKRITA_INIT))
+    if (0 != PyImport_AppendInittab(Python::PYKRITA_ENGINE, PYKRITA_INIT)) {
         return i18nc("@info:tooltip ", "Cannot load built-in <icode>pykrita</icode> module");
+    }
 
     Python::libraryLoad();
     Python py = Python();
@@ -249,8 +250,9 @@ QString PyKrita::Engine::tryInitializeGetFailureReason()
 
     // Initialize our built-in module.
     pythonInitwrapper(this);
-    if (!s_pykrita)
+    if (!s_pykrita) {
         return i18nc("@info:tooltip ", "No <icode>pykrita</icode> built-in module");
+    }
 
     // Setup global configuration
     m_configuration = PyDict_New();
diff --git a/krita/plugins/extensions/pyqt/src/krita/__init__.py \
b/krita/plugins/extensions/pyqt/src/krita/__init__.py index e69de29..d660f7c 100644
--- a/krita/plugins/extensions/pyqt/src/krita/__init__.py
+++ b/krita/plugins/extensions/pyqt/src/krita/__init__.py
@@ -0,0 +1,31 @@
+import pykrita
+
+@pateEventHandler('_pluginLoaded')
+def on_load(plugin):
+    if plugin in init.functions:
+        # Call registered init functions for the plugin
+        init.fire(plugin=plugin)
+        del init.functions[plugin]
+    return True
+
+
+@pateEventHandler('_pluginUnloading')
+def on_unload(plugin):
+    if plugin in unload.functions:
+        # Deinitialize plugin
+        unload.fire(plugin=plugin)
+        del unload.functions[plugin]
+    return True
+
+
+@pateEventHandler('_pykritaLoaded')
+def on_pate_loaded():
+    kDebug('PYKRITA LOADED')
+    return True
+
+
+@pateEventHandler('_pykritaUnloading')
+def on_pate_unloading():
+    kDebug('UNLOADING PYKRITA')
+    return True
+
diff --git a/krita/plugins/extensions/pyqt/src/plugin.cpp \
b/krita/plugins/extensions/pyqt/src/plugin.cpp index c7757fc..fedde9f 100644
--- a/krita/plugins/extensions/pyqt/src/plugin.cpp
+++ b/krita/plugins/extensions/pyqt/src/plugin.cpp
@@ -49,6 +49,24 @@ KritaPyQtPlugin::KritaPyQtPlugin(QObject *parent, const QVariantList &)
     delete settings;
 
     preferenceSetRegistry->add("PyQtPluginSettingsFactory", settingsFactory);
+
+    // Try to import the `pykrita` module
+    PyKrita::Python py = PyKrita::Python();
+    PyObject* pykritaPackage = py.moduleImport("pykrita");
+    if (pykritaPackage)
+    {
+        dbgKrita << "Loaded pykrita, now load plugins";
+        m_engine.tryLoadEnabledPlugins();
+        py.functionCall("_pykritaLoaded");
+    }
+    else
+    {
+        dbgScript << "Cannot load pykrita module";
+        m_engine.setBroken();
+    }
+
+
+
 }
 
 KritaPyQtPlugin::~KritaPyQtPlugin()
diff --git a/krita/plugins/extensions/pyqt/src/plugins/hello/__init__.py \
b/krita/plugins/extensions/pyqt/src/plugins/hello/__init__.py index de744cb..43dc36c 100644
--- a/krita/plugins/extensions/pyqt/src/plugins/hello/__init__.py
+++ b/krita/plugins/extensions/pyqt/src/plugins/hello/__init__.py
@@ -1,2 +1 @@
 # let's make a module
-from .hello import *


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic