Changes needed to compile PySide with libshiboken v1.0
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org>
Lauro Moura <lauro.neto@openbossa.org>
This commit is contained in:
parent
92dcb7ae3a
commit
23c1b92073
9 changed files with 40 additions and 43 deletions
|
|
@ -5,7 +5,7 @@ static int QApplicationArgCount;
|
||||||
static char** QApplicationArgValues;
|
static char** QApplicationArgValues;
|
||||||
static const char QAPP_MACRO[] = "qApp";
|
static const char QAPP_MACRO[] = "qApp";
|
||||||
|
|
||||||
int SbkQApplication_Init(PyObject* self, PyObject* args, PyObject*)
|
int Sbk_QApplication_Init(PyObject* self, PyObject* args, PyObject*)
|
||||||
{
|
{
|
||||||
if (Shiboken::isUserType(self) && !Shiboken::canCallConstructor(self->ob_type, Shiboken::SbkType<QApplication>()))
|
if (Shiboken::isUserType(self) && !Shiboken::canCallConstructor(self->ob_type, Shiboken::SbkType<QApplication>()))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
@ -21,19 +21,19 @@ int SbkQApplication_Init(PyObject* self, PyObject* args, PyObject*)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!PySequenceToArgcArgv(PyTuple_GET_ITEM(args, 0), &QApplicationArgCount, &QApplicationArgValues, "PySideApp")) {
|
if (!Shiboken::sequenceToArgcArgv(PyTuple_GET_ITEM(args, 0), &QApplicationArgCount, &QApplicationArgValues, "PySideApp")) {
|
||||||
PyErr_BadArgument();
|
PyErr_BadArgument();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SbkObject* sbkSelf = reinterpret_cast<SbkObject*>(self);
|
||||||
QApplicationWrapper* cptr = new QApplicationWrapper(QApplicationArgCount, QApplicationArgValues);
|
QApplicationWrapper* cptr = new QApplicationWrapper(QApplicationArgCount, QApplicationArgValues);
|
||||||
Shiboken::setCppPointer(reinterpret_cast<SbkBaseWrapper*>(self),
|
Shiboken::Wrapper::setCppPointer(sbkSelf,
|
||||||
Shiboken::SbkType<QApplication>(),
|
Shiboken::SbkType<QApplication>(),
|
||||||
cptr);
|
cptr);
|
||||||
SbkBaseWrapper_setValidCppObject(self, 1);
|
Shiboken::Wrapper::setValidCpp(sbkSelf, true);
|
||||||
SbkBaseWrapper *sbkSelf = reinterpret_cast<SbkBaseWrapper*>(self);
|
Shiboken::Wrapper::setHasCppWrapper(sbkSelf, true);
|
||||||
sbkSelf->containsCppWrapper = 1;
|
Shiboken::Wrapper::releaseOwnership(sbkSelf);
|
||||||
sbkSelf->hasOwnership = 0;
|
|
||||||
Shiboken::BindingManager::instance().registerWrapper(sbkSelf, cptr);
|
Shiboken::BindingManager::instance().registerWrapper(sbkSelf, cptr);
|
||||||
PySide::Signal::updateSourceObject(self);
|
PySide::Signal::updateSourceObject(self);
|
||||||
cptr->metaObject();
|
cptr->metaObject();
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ inline void addLayoutOwnership(QLayout *layout, QWidget *widget)
|
||||||
//keep the reference while the layout is orphan
|
//keep the reference while the layout is orphan
|
||||||
Shiboken::AutoDecRef pyParent(Shiboken::Converter<QWidget*>::toPython(layout));
|
Shiboken::AutoDecRef pyParent(Shiboken::Converter<QWidget*>::toPython(layout));
|
||||||
Shiboken::AutoDecRef pyChild(Shiboken::Converter<QWidget*>::toPython(widget));
|
Shiboken::AutoDecRef pyChild(Shiboken::Converter<QWidget*>::toPython(widget));
|
||||||
Shiboken::keepReference(reinterpret_cast<Shiboken::SbkBaseWrapper*>(pyParent.object()), retrieveObjectName(pyParent).data(), pyChild, true);
|
Shiboken::keepReference(reinterpret_cast<SbkObject*>(pyParent.object()), retrieveObjectName(pyParent).data(), pyChild, true);
|
||||||
} else {
|
} else {
|
||||||
Shiboken::AutoDecRef pyParent(Shiboken::Converter<QWidget*>::toPython(parent));
|
Shiboken::AutoDecRef pyParent(Shiboken::Converter<QWidget*>::toPython(parent));
|
||||||
Shiboken::AutoDecRef pyChild(Shiboken::Converter<QWidget*>::toPython(widget));
|
Shiboken::AutoDecRef pyChild(Shiboken::Converter<QWidget*>::toPython(widget));
|
||||||
|
|
@ -34,7 +34,7 @@ inline void addLayoutOwnership(QLayout *layout, QLayout *other)
|
||||||
//keep the reference while the layout is orphan
|
//keep the reference while the layout is orphan
|
||||||
Shiboken::AutoDecRef pyParent(Shiboken::Converter<QLayout*>::toPython(layout));
|
Shiboken::AutoDecRef pyParent(Shiboken::Converter<QLayout*>::toPython(layout));
|
||||||
Shiboken::AutoDecRef pyChild(Shiboken::Converter<QLayout*>::toPython(other));
|
Shiboken::AutoDecRef pyChild(Shiboken::Converter<QLayout*>::toPython(other));
|
||||||
Shiboken::keepReference(reinterpret_cast<Shiboken::SbkBaseWrapper*>(pyParent.object()), retrieveObjectName(pyParent).data(), pyChild, true);
|
Shiboken::keepReference(reinterpret_cast<SbkObject*>(pyParent.object()), retrieveObjectName(pyParent).data(), pyChild, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
|
|
||||||
inline PyObject*
|
inline PyObject* addActionWithPyObject(QMenu* self, const QIcon& icon, const QString& text, PyObject* callback, const QKeySequence& shortcut)
|
||||||
addActionWithPyObject(QMenu *self, const QIcon& icon, const QString& text, PyObject *callback, const QKeySequence &shortcut)
|
|
||||||
{
|
{
|
||||||
QAction* act = new QAction(text, self);
|
QAction* act = new QAction(text, self);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,7 @@ static QString retrieveObjectName(PyObject *obj)
|
||||||
/**
|
/**
|
||||||
* Tranfer objects ownership from layout to widget
|
* Tranfer objects ownership from layout to widget
|
||||||
**/
|
**/
|
||||||
static inline void
|
static inline void qwidgetReparentLayout(QWidget *parent, QLayout *layout)
|
||||||
qwidgetReparentLayout(QWidget *parent, QLayout *layout)
|
|
||||||
{
|
{
|
||||||
Shiboken::AutoDecRef pyParent(Shiboken::Converter<QWidget*>::toPython(parent));
|
Shiboken::AutoDecRef pyParent(Shiboken::Converter<QWidget*>::toPython(parent));
|
||||||
|
|
||||||
|
|
@ -36,11 +35,10 @@ qwidgetReparentLayout(QWidget *parent, QLayout *layout)
|
||||||
Shiboken::AutoDecRef pyChild(Shiboken::Converter<QLayout*>::toPython(layout));
|
Shiboken::AutoDecRef pyChild(Shiboken::Converter<QLayout*>::toPython(layout));
|
||||||
Shiboken::setParent(pyParent, pyChild);
|
Shiboken::setParent(pyParent, pyChild);
|
||||||
//remove previous references
|
//remove previous references
|
||||||
Shiboken::keepReference(reinterpret_cast<Shiboken::SbkBaseWrapper*>(pyChild.object()), qPrintable(retrieveObjectName(pyChild)), Py_None);
|
Shiboken::keepReference(reinterpret_cast<SbkObject*>(pyChild.object()), qPrintable(retrieveObjectName(pyChild)), Py_None);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void qwidgetSetLayout(QWidget *self, QLayout *layout)
|
||||||
qwidgetSetLayout(QWidget *self, QLayout *layout)
|
|
||||||
{
|
{
|
||||||
if (!layout || self->layout())
|
if (!layout || self->layout())
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ inline bool Converter<QPixmap>::isConvertible(PyObject* pyobj)
|
||||||
{
|
{
|
||||||
if (ValueTypeConverter<QPixmap>::isConvertible(pyobj))
|
if (ValueTypeConverter<QPixmap>::isConvertible(pyobj))
|
||||||
return true;
|
return true;
|
||||||
SbkBaseWrapperType* shiboType = reinterpret_cast<SbkBaseWrapperType*>(SbkType<QPixmap>());
|
SbkObjectType* shiboType = reinterpret_cast<SbkObjectType*>(SbkType<QPixmap>());
|
||||||
bool isVariant = Converter<QVariant>::checkType(pyobj);
|
bool isVariant = Converter<QVariant>::checkType(pyobj);
|
||||||
if (isVariant) {
|
if (isVariant) {
|
||||||
QVariant var(Converter<QVariant>::toCpp(pyobj));
|
QVariant var(Converter<QVariant>::toCpp(pyobj));
|
||||||
|
|
@ -24,7 +24,7 @@ inline bool Converter<QPixmap>::isConvertible(PyObject* pyobj)
|
||||||
|
|
||||||
inline QPixmap Converter<QPixmap>::toCpp(PyObject* pyobj)
|
inline QPixmap Converter<QPixmap>::toCpp(PyObject* pyobj)
|
||||||
{
|
{
|
||||||
SbkBaseWrapperType* shiboType = reinterpret_cast<SbkBaseWrapperType*>(SbkType<QPixmap>());
|
SbkObjectType* shiboType = reinterpret_cast<SbkObjectType*>(SbkType<QPixmap>());
|
||||||
bool isVariant = Converter<QVariant>::checkType(pyobj);
|
bool isVariant = Converter<QVariant>::checkType(pyobj);
|
||||||
if (isVariant) {
|
if (isVariant) {
|
||||||
QVariant var(Converter<QVariant>::toCpp(pyobj));
|
QVariant var(Converter<QVariant>::toCpp(pyobj));
|
||||||
|
|
|
||||||
|
|
@ -526,7 +526,7 @@
|
||||||
<add-function signature="value()" return-type="QTreeWidgetItem*">
|
<add-function signature="value()" return-type="QTreeWidgetItem*">
|
||||||
<inject-code>
|
<inject-code>
|
||||||
%PYARG_0 = %CONVERTTOPYTHON[QTreeWidgetItem*](%CPPSELF.operator*());
|
%PYARG_0 = %CONVERTTOPYTHON[QTreeWidgetItem*](%CPPSELF.operator*());
|
||||||
SbkBaseWrapper_setOwnership(%PYARG_0, false);
|
Shiboken::Wrapper::releaseOwnership(%PYARG_0);
|
||||||
</inject-code>
|
</inject-code>
|
||||||
</add-function>
|
</add-function>
|
||||||
<enum-type name="IteratorFlag" flags="QTreeWidgetItemIterator::IteratorFlags"/>
|
<enum-type name="IteratorFlag" flags="QTreeWidgetItemIterator::IteratorFlags"/>
|
||||||
|
|
@ -1140,7 +1140,7 @@
|
||||||
<enum-type name="PanelModality"/>
|
<enum-type name="PanelModality"/>
|
||||||
<inject-code class="target" position="end">
|
<inject-code class="target" position="end">
|
||||||
PyObject* userTypeConstant = PyInt_FromLong(QGraphicsItem::UserType);
|
PyObject* userTypeConstant = PyInt_FromLong(QGraphicsItem::UserType);
|
||||||
PyDict_SetItemString(SbkQGraphicsItem_Type.super.ht_type.tp_dict, "UserType", userTypeConstant);
|
PyDict_SetItemString(Sbk_QGraphicsItem_Type.super.ht_type.tp_dict, "UserType", userTypeConstant);
|
||||||
</inject-code>
|
</inject-code>
|
||||||
<modify-function signature="setParentItem(QGraphicsItem *)">
|
<modify-function signature="setParentItem(QGraphicsItem *)">
|
||||||
<modify-argument index="this">
|
<modify-argument index="this">
|
||||||
|
|
@ -3300,7 +3300,7 @@
|
||||||
|
|
||||||
<modify-function signature="setStyle(QStyle*)">
|
<modify-function signature="setStyle(QStyle*)">
|
||||||
<inject-code class="target" position="end">
|
<inject-code class="target" position="end">
|
||||||
Shiboken::keepReference(reinterpret_cast<Shiboken::SbkBaseWrapper*>(%PYSELF), "__style__", %PYARG_1);
|
Shiboken::keepReference(reinterpret_cast<SbkObject*>(%PYSELF), "__style__", %PYARG_1);
|
||||||
</inject-code>
|
</inject-code>
|
||||||
</modify-function>
|
</modify-function>
|
||||||
<modify-function signature="style()const">
|
<modify-function signature="style()const">
|
||||||
|
|
@ -3312,9 +3312,9 @@
|
||||||
if (appStyle == myStyle) {
|
if (appStyle == myStyle) {
|
||||||
Shiboken::AutoDecRef pyApp(%CONVERTTOPYTHON[QApplication*](qApp));
|
Shiboken::AutoDecRef pyApp(%CONVERTTOPYTHON[QApplication*](qApp));
|
||||||
Shiboken::setParent(pyApp, %PYARG_0);
|
Shiboken::setParent(pyApp, %PYARG_0);
|
||||||
SbkBaseWrapper_setOwnership(%PYARG_0, false);
|
Shiboken::Wrapper::releaseOwnership(%PYARG_0);
|
||||||
} else {
|
} else {
|
||||||
Shiboken::keepReference(reinterpret_cast<Shiboken::SbkBaseWrapper*>(%PYSELF), "__style__", %PYARG_0);
|
Shiboken::keepReference(reinterpret_cast<SbkObject*>(%PYSELF), "__style__", %PYARG_0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</inject-code>
|
</inject-code>
|
||||||
|
|
|
||||||
|
|
@ -39,8 +39,8 @@
|
||||||
<define-ownership class="target" owner="default"/>
|
<define-ownership class="target" owner="default"/>
|
||||||
</modify-argument>
|
</modify-argument>
|
||||||
<inject-code position="end">
|
<inject-code position="end">
|
||||||
Shiboken::SbkBaseWrapper* _pyReturn = reinterpret_cast<Shiboken::SbkBaseWrapper*>(%PYARG_0);
|
SbkObject* _pyReturn = reinterpret_cast<SbkObject*>(%PYARG_0);
|
||||||
if (!_pyReturn->parentInfo)
|
if (!Shiboken::Wrapper::hasParentInfo(_pyReturn))
|
||||||
Shiboken::setParent(%PYSELF, %PYARG_0);
|
Shiboken::setParent(%PYSELF, %PYARG_0);
|
||||||
</inject-code>
|
</inject-code>
|
||||||
</modify-function>
|
</modify-function>
|
||||||
|
|
|
||||||
|
|
@ -86,11 +86,11 @@
|
||||||
PySideSignal* signal_item;
|
PySideSignal* signal_item;
|
||||||
|
|
||||||
signal_item = PySide::Signal::newObject("capabilitiesChanged", "void", NULL);
|
signal_item = PySide::Signal::newObject("capabilitiesChanged", "void", NULL);
|
||||||
PyDict_SetItemString(SbkPhonon_BackendCapabilities_NotifierWrapper_Type.super.ht_type.tp_dict, "capabilitiesChanged", (PyObject*)signal_item);
|
PyDict_SetItemString(Sbk_Phonon_BackendCapabilities_NotifierWrapper_Type.super.ht_type.tp_dict, "capabilitiesChanged", (PyObject*)signal_item);
|
||||||
Py_DECREF(signal_item);
|
Py_DECREF(signal_item);
|
||||||
|
|
||||||
signal_item = PySide::Signal::newObject("availableAudioOutputDevicesChanged", "void", NULL);
|
signal_item = PySide::Signal::newObject("availableAudioOutputDevicesChanged", "void", NULL);
|
||||||
PyDict_SetItemString( SbkPhonon_BackendCapabilities_NotifierWrapper_Type.super.ht_type.tp_dict, "availableAudioOutputDevicesChanged", (PyObject*)signal_item);
|
PyDict_SetItemString( Sbk_Phonon_BackendCapabilities_NotifierWrapper_Type.super.ht_type.tp_dict, "availableAudioOutputDevicesChanged", (PyObject*)signal_item);
|
||||||
Py_DECREF(signal_item);
|
Py_DECREF(signal_item);
|
||||||
</inject-code>
|
</inject-code>
|
||||||
</object-type>
|
</object-type>
|
||||||
|
|
|
||||||
|
|
@ -182,8 +182,8 @@
|
||||||
%PYARG_0 = Shiboken::makeTuple(retval_, %4);
|
%PYARG_0 = Shiboken::makeTuple(retval_, %4);
|
||||||
</template>
|
</template>
|
||||||
<template name="set_qapp_parent_for_orphan">
|
<template name="set_qapp_parent_for_orphan">
|
||||||
Shiboken::SbkBaseWrapper* _pySelf = reinterpret_cast<Shiboken::SbkBaseWrapper*>(%PYARG_0);
|
SbkObject* _pySelf = reinterpret_cast<SbkObject*>(%PYARG_0);
|
||||||
if (!_pySelf->parentInfo)
|
if (!Shiboken::Wrapper::hasParentInfo(_pySelf))
|
||||||
Shiboken::setParent(%CONVERTTOPYTHON[QApplication*](qApp), %PYARG_0);
|
Shiboken::setParent(%CONVERTTOPYTHON[QApplication*](qApp), %PYARG_0);
|
||||||
</template>
|
</template>
|
||||||
<!-- templates for __reduce__ -->
|
<!-- templates for __reduce__ -->
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue