aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/PySide2/glue/qtwidgets.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside2/PySide2/glue/qtwidgets.cpp')
-rw-r--r--sources/pyside2/PySide2/glue/qtwidgets.cpp663
1 files changed, 0 insertions, 663 deletions
diff --git a/sources/pyside2/PySide2/glue/qtwidgets.cpp b/sources/pyside2/PySide2/glue/qtwidgets.cpp
deleted file mode 100644
index 4f9baadf1..000000000
--- a/sources/pyside2/PySide2/glue/qtwidgets.cpp
+++ /dev/null
@@ -1,663 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*********************************************************************
- * INJECT CODE
- ********************************************************************/
-
-// @snippet qtreewidgetitemiterator-next
-if (**%CPPSELF) {
- QTreeWidgetItemIterator *%0 = new QTreeWidgetItemIterator((*%CPPSELF)++);
- %PYARG_0 = %CONVERTTOPYTHON[QTreeWidgetItemIterator *](%0);
-}
-// @snippet qtreewidgetitemiterator-next
-
-// @snippet qtreewidgetitemiterator-value
-QTreeWidgetItem *%0 = %CPPSELF.operator *();
-%PYARG_0 = %CONVERTTOPYTHON[QTreeWidgetItem *](%0);
-Shiboken::Object::releaseOwnership(%PYARG_0);
-// @snippet qtreewidgetitemiterator-value
-
-// @snippet qgraphicsitem
-PyObject *userTypeConstant = PyInt_FromLong(QGraphicsItem::UserType);
-PyDict_SetItemString(reinterpret_cast<PyTypeObject *>(Sbk_QGraphicsItem_TypeF())->tp_dict, "UserType", userTypeConstant);
-// @snippet qgraphicsitem
-
-// @snippet qgraphicsitem-scene-return-parenting
-if (%0) {
- QObject *parent = %0->parent();
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QObject *](parent));
- Shiboken::Object::setParent(pyParent, %PYARG_0);
-}
-// @snippet qgraphicsitem-scene-return-parenting
-
-// @snippet qgraphicsitem-isblockedbymodalpanel
-QGraphicsItem *item_ = NULL;
-%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(&item_);
-%PYARG_0 = PyTuple_New(2);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval_));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QGraphicsItem *](item_));
-// @snippet qgraphicsitem-isblockedbymodalpanel
-
-// @snippet qitemeditorfactory-registereditor
-Shiboken::Object::releaseOwnership(%PYARG_2);
-// @snippet qitemeditorfactory-registereditor
-
-// @snippet qitemeditorfactory-setdefaultfactory
-//this function is static we need keep ref to default value, to be able to call python virtual functions
-static PyObject *_defaultValue = nullptr;
-%CPPSELF.%FUNCTION_NAME(%1);
-Py_INCREF(%PYARG_1);
-if (_defaultValue)
- Py_DECREF(_defaultValue);
-
-_defaultValue = %PYARG_1;
-// @snippet qitemeditorfactory-setdefaultfactory
-
-// @snippet qformlayout-fix-args
-int _row;
-QFormLayout::ItemRole _role;
-%CPPSELF->%FUNCTION_NAME(%ARGUMENT_NAMES, &_row, &_role);
-%PYARG_0 = PyTuple_New(2);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[int](_row));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QFormLayout::ItemRole](_role));
-// @snippet qformlayout-fix-args
-
-// @snippet qfiledialog-return
-%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, &%5, %6);
-%PYARG_0 = PyTuple_New(2);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval_));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[%ARG5_TYPE](%5));
-// @snippet qfiledialog-return
-
-// @snippet qmenu-glue
-inline PyObject *addActionWithPyObject(QMenu *self, const QIcon &icon, const QString &text, PyObject *callback, const QKeySequence &shortcut)
-{
- QAction *act = self->addAction(text);
-
- if (!icon.isNull())
- act->setIcon(icon);
-
- if (!shortcut.isEmpty())
- act->setShortcut(shortcut);
-
- self->addAction(act);
-
- PyObject *pyAct = %CONVERTTOPYTHON[QAction *](act);
- Shiboken::AutoDecRef result(PyObject_CallMethod(pyAct,
- const_cast<char *>("connect"),
- const_cast<char *>("OsO"),
- pyAct,
- SIGNAL(triggered()), callback));
- if (result.isNull()) {
- Py_DECREF(pyAct);
- return nullptr;
- }
-
- return pyAct;
-}
-// @snippet qmenu-glue
-
-// @snippet qmenu-addaction-1
-%PYARG_0 = addActionWithPyObject(%CPPSELF, QIcon(), %1, %2, %3);
-// @snippet qmenu-addaction-1
-
-// @snippet qmenu-addaction-2
-%PYARG_0 = addActionWithPyObject(%CPPSELF, %1, %2, %3, %4);
-// @snippet qmenu-addaction-2
-
-// @snippet qmenu-addaction-3
-%CPPSELF.addAction(%1);
-// @snippet qmenu-addaction-3
-
-// @snippet qmenu-clear
-Shiboken::BindingManager &bm = Shiboken::BindingManager::instance();
-const auto &actions = %CPPSELF.actions();
-for (auto *act : actions) {
- if (auto wrapper = bm.retrieveWrapper(act)) {
- auto pyObj = reinterpret_cast<PyObject *>(wrapper);
- Py_INCREF(pyObj);
- Shiboken::Object::setParent(NULL, pyObj);
- Shiboken::Object::invalidate(pyObj);
- Py_DECREF(pyObj);
- }
-}
-// @snippet qmenu-clear
-
-// @snippet qmenubar-glue
-inline PyObject *
-addActionWithPyObject(QMenuBar *self, const QString &text, PyObject *callback)
-{
- QAction *act = self->addAction(text);
-
- self->addAction(act);
-
- PyObject *pyAct = %CONVERTTOPYTHON[QAction *](act);
- PyObject *result = PyObject_CallMethod(pyAct,
- const_cast<char *>("connect"),
- const_cast<char *>("OsO"),
- pyAct,
- SIGNAL(triggered(bool)), callback);
-
- if (result == nullptr || result == Py_False) {
- if (result)
- Py_DECREF(result);
- Py_DECREF(pyAct);
- return nullptr;
- }
-
- return pyAct;
-}
-// @snippet qmenubar-glue
-
-// @snippet qmenubar-clear
-const auto &actions = %CPPSELF.actions();
-for (auto *act : actions) {
- Shiboken::AutoDecRef pyAct(%CONVERTTOPYTHON[QAction *](act));
- Shiboken::Object::setParent(NULL, pyAct);
- Shiboken::Object::invalidate(pyAct);
-}
-// @snippet qmenubar-clear
-
-// @snippet qmenubar-addaction-1
-%PYARG_0 = addActionWithPyObject(%CPPSELF, %1, %2);
-// @snippet qmenubar-addaction-1
-
-// @snippet qmenubar-addaction-2
-%CPPSELF.addAction(%1);
-// @snippet qmenubar-addaction-2
-
-// @snippet qshortcut-1
-%0 = new %TYPE(%1, %2);
-// @snippet qshortcut-1
-
-// @snippet qshortcut-2
-Shiboken::AutoDecRef result(PyObject_CallMethod(%PYSELF,
- const_cast<char *>("connect"),
- const_cast<char *>("OsO"),
- %PYSELF, SIGNAL(activated()), %PYARG_3)
-);
-if (!result.isNull())
- Shiboken::Object::setParent(%PYARG_2, %PYSELF);
-// @snippet qshortcut-2
-
-// @snippet qtoolbox-removeitem
-QWidget *_widget = %CPPSELF.widget(%1);
-if (_widget) {
- Shiboken::AutoDecRef pyWidget(%CONVERTTOPYTHON[QWidget *](_widget));
- Shiboken::Object::setParent(0, pyWidget);
-}
-// @snippet qtoolbox-removeitem
-
-// @snippet qlayout-help-functions
-void addLayoutOwnership(QLayout *layout, QLayoutItem *item);
-void removeLayoutOwnership(QLayout *layout, QWidget *widget);
-
-inline QByteArray retrieveObjectName(PyObject *obj)
-{
- Shiboken::AutoDecRef objName(PyObject_Str(obj));
- return Shiboken::String::toCString(objName);
-}
-
-inline void addLayoutOwnership(QLayout *layout, QWidget *widget)
-{
- //transfer ownership to parent widget
- QWidget *lw = layout->parentWidget();
- QWidget *pw = widget->parentWidget();
-
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QWidget *](widget));
-
- //Transfer parent to layout widget
- if (pw && lw && pw != lw)
- Shiboken::Object::setParent(0, pyChild);
-
- if (!lw && !pw) {
- //keep the reference while the layout is orphan
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QWidget *](layout));
- Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(pyParent.object()), retrieveObjectName(pyParent).data(), pyChild, true);
- } else {
- if (!lw)
- lw = pw;
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QWidget *](lw));
- Shiboken::Object::setParent(pyParent, pyChild);
- }
-}
-
-inline void addLayoutOwnership(QLayout *layout, QLayout *other)
-{
- //transfer all children widgets from other to layout parent widget
- QWidget *parent = layout->parentWidget();
- if (!parent) {
- //keep the reference while the layout is orphan
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QLayout *](layout));
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QLayout *](other));
- Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(pyParent.object()),
- retrieveObjectName(pyParent).data(), pyChild, true);
- return;
- }
-
- for (int i=0, i_max=other->count(); i < i_max; i++) {
- QLayoutItem *item = other->itemAt(i);
- if (PyErr_Occurred() || !item)
- return;
- addLayoutOwnership(layout, item);
- }
-
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QLayout *](layout));
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QLayout *](other));
- Shiboken::Object::setParent(pyParent, pyChild);
-}
-
-inline void addLayoutOwnership(QLayout *layout, QLayoutItem *item)
-{
- if (!item)
- return;
-
- if (QWidget *w = item->widget()) {
- addLayoutOwnership(layout, w);
- } else {
- if (QLayout *l = item->layout())
- addLayoutOwnership(layout, l);
- }
-
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QLayout *](layout));
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QLayoutItem *](item));
- Shiboken::Object::setParent(pyParent, pyChild);
-}
-
-static void removeWidgetFromLayout(QLayout *layout, QWidget *widget)
-{
- QWidget *parent = widget->parentWidget();
-
- if (!parent) {
- //remove reference on layout
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QWidget *](layout));
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QWidget *](widget));
- Shiboken::Object::removeReference(reinterpret_cast<SbkObject *>(pyParent.object()),
- retrieveObjectName(pyParent).data(), pyChild);
- } else {
- //give the ownership to parent
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QWidget *](parent));
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QWidget *](widget));
- Shiboken::Object::setParent(pyParent, pyChild);
- }
-}
-
-inline void removeLayoutOwnership(QLayout *layout, QLayoutItem *item)
-{
- if (QWidget *w = item->widget()) {
- removeWidgetFromLayout(layout, w);
- } else {
- QLayout *l = item->layout();
- if (l && item != l)
- removeLayoutOwnership(layout, l);
- }
-
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QLayoutItem *](item));
- Shiboken::Object::invalidate(pyChild);
- Shiboken::Object::setParent(0, pyChild);
-}
-
-inline void removeLayoutOwnership(QLayout *layout, QWidget *widget)
-{
- if (!widget)
- return;
-
- for (int i=0, i_max=layout->count(); i < i_max; i++) {
- QLayoutItem *item = layout->itemAt(i);
- if (PyErr_Occurred() || !item)
- return;
- if (item->widget() == widget)
- removeLayoutOwnership(layout, item);
- }
-}
-// @snippet qlayout-help-functions
-
-// @snippet qlayout-setalignment
-%CPPSELF.setAlignment(%1);
-// @snippet qlayout-setalignment
-
-// @snippet addownership-0
-addLayoutOwnership(%CPPSELF, %0);
-// @snippet addownership-0
-
-// @snippet addownership-1
-addLayoutOwnership(%CPPSELF, %1);
-// @snippet addownership-1
-
-// @snippet addownership-2
-addLayoutOwnership(%CPPSELF, %2);
-// @snippet addownership-2
-
-// @snippet removeownership-1
-removeLayoutOwnership(%CPPSELF, %1);
-// @snippet removeownership-1
-
-// @snippet qgridlayout-getitemposition
-int a, b, c, d;
-%CPPSELF.%FUNCTION_NAME(%1, &a, &b, &c, &d);
-%PYARG_0 = PyTuple_New(4);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[int](a));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[int](b));
-PyTuple_SET_ITEM(%PYARG_0, 2, %CONVERTTOPYTHON[int](c));
-PyTuple_SET_ITEM(%PYARG_0, 3, %CONVERTTOPYTHON[int](d));
-// @snippet qgridlayout-getitemposition
-
-// @snippet qgraphicsscene-destroyitemgroup
-QGraphicsItem *parentItem = %1->parentItem();
-Shiboken::AutoDecRef parent(%CONVERTTOPYTHON[QGraphicsItem *](parentItem));
-const auto &childItems = %1->childItems();
-for (auto *item : childItems)
- Shiboken::Object::setParent(parent, %CONVERTTOPYTHON[QGraphicsItem *](item));
-%CPPSELF.%FUNCTION_NAME(%1);
-// the arg was destroyed by Qt.
-Shiboken::Object::invalidate(%PYARG_1);
-// @snippet qgraphicsscene-destroyitemgroup
-
-// @snippet qgraphicsscene-addwidget
-%RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(%1, %2);
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
-Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(%PYARG_0), "setWidget(QWidget*)1", %PYARG_1);
-// @snippet qgraphicsscene-addwidget
-
-// @snippet qgraphicsscene-clear
-const QList<QGraphicsItem *> items = %CPPSELF.items();
-Shiboken::BindingManager &bm = Shiboken::BindingManager::instance();
-for (auto *item : items) {
- SbkObject *obj = bm.retrieveWrapper(item);
- if (obj) {
- if (reinterpret_cast<PyObject *>(obj)->ob_refcnt > 1) // If the refcnt is 1 the object will vannish anyway.
- Shiboken::Object::invalidate(obj);
- Shiboken::Object::removeParent(obj);
- }
-}
-%CPPSELF.%FUNCTION_NAME();
-// @snippet qgraphicsscene-clear
-
-// @snippet qtreewidget-clear
-QTreeWidgetItem *rootItem = %CPPSELF.invisibleRootItem();
-Shiboken::BindingManager &bm = Shiboken::BindingManager::instance();
-
-// PYSIDE-1251:
-// Since some objects can be created with a parent and without
-// being saved on a local variable (refcount = 1), they will be
-// deleted when setting the parent to nullptr, so we change the loop
-// to do this from the last child to the first, to avoid the case
-// when the child(1) points to the original child(2) in case the
-// first one was removed.
-for (int i = rootItem->childCount() - 1; i >= 0; --i) {
- QTreeWidgetItem *item = rootItem->child(i);
- if (SbkObject *wrapper = bm.retrieveWrapper(item))
- Shiboken::Object::setParent(nullptr, reinterpret_cast<PyObject *>(wrapper));
-}
-// @snippet qtreewidget-clear
-
-// @snippet qtreewidgetitem
-// Only call the parent function if this return some value
-// the parent can be the TreeWidget
-if (%0)
- Shiboken::Object::setParent(%PYARG_0, %PYSELF);
-// @snippet qtreewidgetitem
-
-// @snippet qlistwidget-clear
-Shiboken::BindingManager &bm = Shiboken::BindingManager::instance();
-for (int i = 0, count = %CPPSELF.count(); i < count; ++i) {
- QListWidgetItem *item = %CPPSELF.item(i);
- if (auto wrapper = bm.retrieveWrapper(item)) {
- auto pyObj = reinterpret_cast<PyObject *>(wrapper);
- Py_INCREF(pyObj);
- Shiboken::Object::setParent(NULL, pyObj);
- Shiboken::Object::invalidate(pyObj);
- Py_DECREF(pyObj);
- }
-}
-%CPPSELF.%FUNCTION_NAME();
-// @snippet qlistwidget-clear
-
-// @snippet qwidget-glue
-static QString retrieveObjectName(PyObject *obj)
-{
- Shiboken::AutoDecRef objName(PyObject_Str(obj));
- return QString(Shiboken::String::toCString(objName));
-}
-
-
-// Transfer objects ownership from layout to widget
-static inline void qwidgetReparentLayout(QWidget *parent, QLayout *layout)
-{
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QWidget *](parent));
-
- for (int i=0, i_count = layout->count(); i < i_count; i++) {
- QLayoutItem *item = layout->itemAt(i);
- if (PyErr_Occurred() || !item)
- return;
-
- if (QWidget *w = item->widget()) {
- QWidget *pw = w->parentWidget();
- if (pw != parent) {
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QWidget *](w));
- Shiboken::Object::setParent(pyParent, pyChild);
- }
- } else {
- if (QLayout *l = item->layout())
- qwidgetReparentLayout(parent, l);
- }
- }
-
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QLayout *](layout));
- Shiboken::Object::setParent(pyParent, pyChild);
- //remove previous references
- Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(pyChild.object()),
- qPrintable(retrieveObjectName(pyChild)), Py_None);
-}
-
-static inline void qwidgetSetLayout(QWidget *self, QLayout *layout)
-{
- if (!layout || self->layout())
- return;
-
- QObject *oldParent = layout->parent();
- if (oldParent && oldParent != self) {
- if (oldParent->isWidgetType()) {
- // remove old parent policy
- Shiboken::AutoDecRef pyLayout(%CONVERTTOPYTHON[QLayout *](layout));
- Shiboken::Object::setParent(Py_None, pyLayout);
- } else {
- PyErr_Format(PyExc_RuntimeError, "QWidget::setLayout: Attempting to set QLayout \"%s\" on %s \"%s\", when the QLayout already has a parent",
- qPrintable(layout->objectName()), self->metaObject()->className(), qPrintable(self->objectName()));
- return;
- }
- }
-
- if (oldParent != self) {
- qwidgetReparentLayout(self, layout);
- if (PyErr_Occurred())
- return;
-
- self->setLayout(layout);
- }
-}
-// @snippet qwidget-glue
-
-// @snippet qwidget-setstyle
-Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(%PYSELF), "__style__", %PYARG_1);
-// @snippet qwidget-setstyle
-
-// @snippet qwidget-style
-QStyle *myStyle = %CPPSELF->style();
-if (myStyle && qApp) {
-%PYARG_0 = %CONVERTTOPYTHON[QStyle *](myStyle);
- QStyle *appStyle = qApp->style();
- if (appStyle == myStyle) {
- Shiboken::AutoDecRef pyApp(%CONVERTTOPYTHON[QApplication *](qApp));
- Shiboken::Object::setParent(pyApp, %PYARG_0);
- Shiboken::Object::releaseOwnership(%PYARG_0);
- } else {
- Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(%PYSELF), "__style__", %PYARG_0);
- }
-}
-// @snippet qwidget-style
-
-// @snippet qapplication-init
-static void QApplicationConstructor(PyObject *self, PyObject *pyargv, QApplicationWrapper **cptr)
-{
- static int argc;
- static char **argv;
- PyObject *stringlist = PyTuple_GET_ITEM(pyargv, 0);
- if (Shiboken::listToArgcArgv(stringlist, &argc, &argv, "PySideApp")) {
- *cptr = new QApplicationWrapper(argc, argv, 0);
- Shiboken::Object::releaseOwnership(reinterpret_cast<SbkObject *>(self));
- PySide::registerCleanupFunction(&PySide::destroyQCoreApplication);
- }
-}
-// @snippet qapplication-init
-
-// @snippet qapplication-setStyle
-if (qApp) {
- Shiboken::AutoDecRef pyApp(%CONVERTTOPYTHON[QApplication *](qApp));
- Shiboken::Object::setParent(pyApp, %PYARG_1);
- Shiboken::Object::releaseOwnership(%PYARG_1);
-}
-// @snippet qapplication-setStyle
-
-// @snippet qwidget-setlayout
-qwidgetSetLayout(%CPPSELF, %1);
-// %FUNCTION_NAME() - disable generation of function call.
-// @snippet qwidget-setlayout
-
-// @snippet qtabwidget-removetab
-QWidget *tab = %CPPSELF.widget(%1);
-if (tab) {
- Shiboken::AutoDecRef pyWidget(%CONVERTTOPYTHON[QWidget *](tab));
- %CPPSELF.%FUNCTION_NAME(%1);
-}
-// @snippet qtabwidget-removetab
-
-// @snippet qtabwidget-clear
-Shiboken::BindingManager &bm = Shiboken::BindingManager::instance();
-for (int i = 0, count = %CPPSELF.count(); i < count; ++i) {
- QWidget *widget = %CPPSELF.widget(i);
- if (bm.hasWrapper(widget)) {
- Shiboken::AutoDecRef pyWidget(%CONVERTTOPYTHON[QWidget *](widget));
- Shiboken::Object::releaseOwnership(pyWidget);
- }
-}
-%CPPSELF.%FUNCTION_NAME();
-// @snippet qtabwidget-clear
-
-// @snippet qlineedit-addaction
-%CPPSELF.addAction(%1);
-// @snippet qlineedit-addaction
-
-// @snippet qtoolbar-addaction-1
-QAction *action = %CPPSELF.addAction(%1, %2);
-%PYARG_0 = %CONVERTTOPYTHON[QAction *](action);
-Shiboken::AutoDecRef result(PyObject_CallMethod(%PYARG_0,
- const_cast<char *>("connect"),
- const_cast<char *>("OsO"),
- %PYARG_0, SIGNAL(triggered()), %PYARG_3)
-);
-// @snippet qtoolbar-addaction-1
-
-// @snippet qtoolbar-addaction-2
-QAction *action = %CPPSELF.addAction(%1);
-%PYARG_0 = %CONVERTTOPYTHON[QAction *](action);
-Shiboken::AutoDecRef result(PyObject_CallMethod(%PYARG_0,
- const_cast<char *>("connect"),
- const_cast<char *>("OsO"),
- %PYARG_0, SIGNAL(triggered()), %PYARG_2)
-);
-// @snippet qtoolbar-addaction-2
-
-// @snippet qtoolbar-addaction-3
-%CPPSELF.addAction(%1);
-// @snippet qtoolbar-addaction-3
-
-// @snippet qtoolbar-clear
-QList<PyObject *> lst;
-Shiboken::BindingManager &bm = Shiboken::BindingManager::instance();
-const auto &toolButtonChildren = %CPPSELF.findChildren<QToolButton *>();
-for (auto *child : toolButtonChildren) {
- if (bm.hasWrapper(child)) {
- PyObject *pyChild = %CONVERTTOPYTHON[QToolButton *](child);
- Shiboken::Object::setParent(0, pyChild);
- lst << pyChild;
- }
-}
-
-//Remove actions
-const auto &actions = %CPPSELF.actions();
-for (auto *act : actions) {
- Shiboken::AutoDecRef pyAct(%CONVERTTOPYTHON[QAction *](act));
- Shiboken::Object::setParent(NULL, pyAct);
- Shiboken::Object::invalidate(pyAct);
-}
-
-%CPPSELF.clear();
-for (auto *obj : lst) {
- Shiboken::Object::invalidate(reinterpret_cast<SbkObject *>(obj));
- Py_XDECREF(obj);
-}
-// @snippet qtoolbar-clear
-
-// @snippet qapplication-1
-QApplicationConstructor(%PYSELF, args, &%0);
-// @snippet qapplication-1
-
-// @snippet qapplication-2
-PyObject *empty = PyTuple_New(2);
-if (!PyTuple_SetItem(empty, 0, PyList_New(0)))
- QApplicationConstructor(%PYSELF, empty, &%0);
-// @snippet qapplication-2
-
-// @snippet qgraphicsproxywidget-setwidget
-QWidget *_old = %CPPSELF.widget();
-if (_old)
- Shiboken::Object::setParent(nullptr, %CONVERTTOPYTHON[QWidget *](_old));
-%CPPSELF.%FUNCTION_NAME(%1);
-Shiboken::Object::setParent(%PYSELF, %PYARG_1);
-// @snippet qgraphicsproxywidget-setwidget
-
-/*********************************************************************
- * CONVERSIONS
- ********************************************************************/
-
-/*********************************************************************
- * NATIVE TO TARGET CONVERSIONS
- ********************************************************************/