aboutsummaryrefslogtreecommitdiffstats
path: root/libpyside/pyside.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libpyside/pyside.cpp')
-rw-r--r--libpyside/pyside.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/libpyside/pyside.cpp b/libpyside/pyside.cpp
index ddec19803..bd4ab7c64 100644
--- a/libpyside/pyside.cpp
+++ b/libpyside/pyside.cpp
@@ -24,18 +24,22 @@
#include "pyside.h"
#include "signalmanager.h"
#include "qproperty.h"
+#include "qsignal.h"
#include <basewrapper.h>
#include <conversions.h>
#include <algorithm>
-#include "qsignal.h"
+#include <QStack>
extern "C" void init_signal(PyObject* module);
extern "C" void init_slot(PyObject* module);
extern "C" void init_qproperty(PyObject* module);
+static QStack<PySide::CleanupFunction> cleanupFunctionList;
+
namespace PySide
{
+
void init(PyObject *module)
{
init_signal(module);
@@ -82,5 +86,20 @@ bool fillQtProperties(PyObject* qObj, const QMetaObject* metaObj, PyObject* kwds
return true;
}
+void registerCleanupFunction(CleanupFunction func)
+{
+ cleanupFunctionList.push(func);
+}
+
+void runCleanupFunctions()
+{
+ while (!cleanupFunctionList.isEmpty()) {
+ CleanupFunction f = cleanupFunctionList.pop();
+ f();
+ }
+}
+
+
+
} //namespace PySide