From 6974551674d72a828ff9ae19af510c90a62a09ec Mon Sep 17 00:00:00 2001 From: renatofilho Date: Fri, 17 Sep 2010 17:03:01 -0300 Subject: Created PySide cleanup functions used to register functions to be called before the python die. Reviewer: Hugo Parente Lima Luciano Wolf --- libpyside/pyside.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'libpyside/pyside.cpp') 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 #include #include -#include "qsignal.h" +#include extern "C" void init_signal(PyObject* module); extern "C" void init_slot(PyObject* module); extern "C" void init_qproperty(PyObject* module); +static QStack 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 -- cgit v1.2.3