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

List:       kde-commits
Subject:    [calligra/krita-scripting-rempt] krita/plugins/extensions/pykrita: use a static instance of that cla
From:       Cyrille Berger <cberger () cberger ! net>
Date:       2015-05-06 17:12:12
Message-ID: E1Yq2rk-0005Ab-Dg () scm ! kde ! org
[Download RAW message or body]

Git commit 05401b402929802057e694f0f680ab4e4aaecef1 by Cyrille Berger.
Committed on 06/05/2015 at 17:10.
Pushed by berger into branch 'krita-scripting-rempt'.

use a static instance of that class, it will help for KisAction not being deleted

M  +11   -0    krita/plugins/extensions/pykrita/libkis/krita.cpp
M  +2    -1    krita/plugins/extensions/pykrita/libkis/krita.h
M  +2    -2    krita/plugins/extensions/pykrita/sip/krita/krita.sip
M  +1    -2    krita/plugins/extensions/pykrita/src/plugins/hello/hello.py

http://commits.kde.org/calligra/05401b402929802057e694f0f680ab4e4aaecef1

diff --git a/krita/plugins/extensions/pykrita/libkis/krita.cpp \
b/krita/plugins/extensions/pykrita/libkis/krita.cpp index 064346d..86b9444 100644
--- a/krita/plugins/extensions/pykrita/libkis/krita.cpp
+++ b/krita/plugins/extensions/pykrita/libkis/krita.cpp
@@ -25,6 +25,8 @@
 #include <kis_action.h>
 #include <kis_script_manager.h>
 
+Krita* Krita::s_instance = 0;
+
 Krita::Krita(QObject *parent) :
     QObject(parent)
 {
@@ -75,3 +77,12 @@ QAction *Krita::createAction(const QString &text)
     }
     return action;
 }
+
+Krita* Krita::instance()
+{
+    if (!s_instance)
+    {
+        s_instance = new Krita;
+    }
+    return s_instance;
+}
diff --git a/krita/plugins/extensions/pykrita/libkis/krita.h \
b/krita/plugins/extensions/pykrita/libkis/krita.h index 189551b..d15b5ae 100644
--- a/krita/plugins/extensions/pykrita/libkis/krita.h
+++ b/krita/plugins/extensions/pykrita/libkis/krita.h
@@ -42,12 +42,13 @@ public:
     QList<Image*> images();
 
     QAction *createAction(const QString &text);
-
+    static Krita* instance();
 signals:
 
 public slots:
 
 private:
+    static Krita* s_instance;
 };
 
 #endif // LIBKIS_KRITA_H
diff --git a/krita/plugins/extensions/pykrita/sip/krita/krita.sip \
b/krita/plugins/extensions/pykrita/sip/krita/krita.sip index 26d3f69..3290629 100644
--- a/krita/plugins/extensions/pykrita/sip/krita/krita.sip
+++ b/krita/plugins/extensions/pykrita/sip/krita/krita.sip
@@ -7,9 +7,9 @@ class Krita : public QObject
 #include "krita.h"
 %End
 
-public:
     Krita(QObject *parent /TransferThis/ = 0);
-
+public:
+    static Krita* instance();
     QList<MainWindow*> mainWindows();
     QList<View*> views();
     QList<Document*> documents();
diff --git a/krita/plugins/extensions/pykrita/src/plugins/hello/hello.py \
b/krita/plugins/extensions/pykrita/src/plugins/hello/hello.py index aeb92bf..b3f9e63 \
                100644
--- a/krita/plugins/extensions/pykrita/src/plugins/hello/hello.py
+++ b/krita/plugins/extensions/pykrita/src/plugins/hello/hello.py
@@ -6,6 +6,5 @@ import krita
 def hello():
     QMessageBox.information(QWidget(), "Test", "Hello World")
 
-kr = Krita()
-ac = kr.createAction("Hello")
+ac = Krita.instance().createAction("Hello")
 ac.triggered.connect(hello)


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

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