[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