aboutsummaryrefslogtreecommitdiffstats
path: root/libpyside/signalmanager.h
diff options
context:
space:
mode:
authorHugo Parente Lima <hugo.lima@openbossa.org>2010-06-10 19:57:18 -0300
committerHugo Parente Lima <hugo.lima@openbossa.org>2010-06-10 20:18:59 -0300
commit1b6337d8b4a65988dfbeb0eed67bc6584b25fdee (patch)
treee6efde3e5d00d4530f321894e62801ab8eac72e8 /libpyside/signalmanager.h
parentd8a192b5e14e996992a98766cd39ca2028e6474e (diff)
Removed QVariant from PySide.
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org> Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'libpyside/signalmanager.h')
-rw-r--r--libpyside/signalmanager.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/libpyside/signalmanager.h b/libpyside/signalmanager.h
index 233adf1ff..9687dcc3e 100644
--- a/libpyside/signalmanager.h
+++ b/libpyside/signalmanager.h
@@ -46,6 +46,17 @@ class QObject;
namespace PySide
{
+/// Thin wrapper for PyObject which increases the reference count at the constructor but *NOT* at destructor.
+class PYSIDE_API PyObjectWrapper
+{
+public:
+ PyObjectWrapper(PyObject* me) : m_me(me) { Py_INCREF(m_me); }
+ PyObjectWrapper() : m_me(Py_None) { Py_INCREF(m_me); }
+ operator PyObject*() const { return m_me; }
+private:
+ PyObject* m_me;
+};
+
PYSIDE_API bool isSignal(const char* signal);
PYSIDE_API bool checkSignal(const char* signal);
PYSIDE_API QString getCallbackSignature(const char* signal, PyObject* callback, bool encodeName);
@@ -84,4 +95,7 @@ private:
};
}
+
+Q_DECLARE_METATYPE(PySide::PyObjectWrapper)
+
#endif