diff options
Diffstat (limited to 'sources/pyside2/PySide2/QtWidgets')
12 files changed, 4653 insertions, 0 deletions
diff --git a/sources/pyside2/PySide2/QtWidgets/CMakeLists.txt b/sources/pyside2/PySide2/QtWidgets/CMakeLists.txt new file mode 100644 index 000000000..84dec8fa9 --- /dev/null +++ b/sources/pyside2/PySide2/QtWidgets/CMakeLists.txt @@ -0,0 +1,260 @@ +project(QtWidgets) + + +set(QtWidgets_OPTIONAL_SRC ) +set(QtWidgets_DROPPED_ENTRIES ) +## gone check_qt_class(Qt5Widgets QAbstractPageSetupDialog QtWidgets_OPTIONAL_SRC QtWidgets_DROPPED_ENTRIES) +## actually, all the printer stuff is in QtPrintSupport +## XXX check if these conditionals need to be done elsewhere +check_qt_class(Qt5Widgets QAbstractPrintDialog QtWidgets_OPTIONAL_SRC QtWidgets_DROPPED_ENTRIES) +check_qt_class(Qt5Widgets QGtkStyle QtWidgets_OPTIONAL_SRC QtWidgets_DROPPED_ENTRIES) +check_qt_class(Qt5Widgets QPageSetupDialog QtWidgets_OPTIONAL_SRC QtWidgets_DROPPED_ENTRIES) +check_qt_class(Qt5Widgets QPrintDialog QtWidgets_OPTIONAL_SRC QtWidgets_DROPPED_ENTRIES) +check_qt_class(Qt5Widgets QPrintEngine QtWidgets_OPTIONAL_SRC QtWidgets_DROPPED_ENTRIES) +check_qt_class(Qt5Widgets QPrintPreviewDialog QtWidgets_OPTIONAL_SRC QtWidgets_DROPPED_ENTRIES) +check_qt_class(Qt5Widgets QPrintPreviewWidget QtWidgets_OPTIONAL_SRC QtWidgets_DROPPED_ENTRIES) +check_qt_class(Qt5Widgets QPrinter QtWidgets_OPTIONAL_SRC QtWidgets_DROPPED_ENTRIES) +check_qt_class(Qt5Widgets QPrinterInfo QtWidgets_OPTIONAL_SRC QtWidgets_DROPPED_ENTRIES) +check_qt_class(Qt5Widgets QSessionManager QtWidgets_OPTIONAL_SRC QtWidgets_DROPPED_ENTRIES) +check_qt_class(Qt5Widgets QSizeGrip QtWidgets_OPTIONAL_SRC QtWidgets_DROPPED_ENTRIES) +check_qt_class(Qt5Widgets QSystemTrayIcon QtWidgets_OPTIONAL_SRC QtWidgets_DROPPED_ENTRIES) +check_qt_class(Qt5Widgets QMacStyle QtWidgets_OPTIONAL_SRC QtWidgets_DROPPED_ENTRIES) + +set(QtWidgets_SRC +${QtWidgets_GEN_DIR}/qabstractbutton_wrapper.cpp +${QtWidgets_GEN_DIR}/qabstractgraphicsshapeitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qabstractitemdelegate_wrapper.cpp +${QtWidgets_GEN_DIR}/qabstractitemview_wrapper.cpp +${QtWidgets_GEN_DIR}/qabstractscrollarea_wrapper.cpp +${QtWidgets_GEN_DIR}/qabstractslider_wrapper.cpp +${QtWidgets_GEN_DIR}/qabstractspinbox_wrapper.cpp +${QtWidgets_GEN_DIR}/qaction_wrapper.cpp +${QtWidgets_GEN_DIR}/qactiongroup_wrapper.cpp +${QtWidgets_GEN_DIR}/qapplication_wrapper.cpp +${QtWidgets_GEN_DIR}/qboxlayout_wrapper.cpp +${QtWidgets_GEN_DIR}/qbuttongroup_wrapper.cpp +${QtWidgets_GEN_DIR}/qcalendarwidget_wrapper.cpp +${QtWidgets_GEN_DIR}/qcheckbox_wrapper.cpp +${QtWidgets_GEN_DIR}/qcolordialog_wrapper.cpp +${QtWidgets_GEN_DIR}/qcolumnview_wrapper.cpp +${QtWidgets_GEN_DIR}/qcombobox_wrapper.cpp +${QtWidgets_GEN_DIR}/qcommandlinkbutton_wrapper.cpp +${QtWidgets_GEN_DIR}/qcommonstyle_wrapper.cpp +${QtWidgets_GEN_DIR}/qcompleter_wrapper.cpp +${QtWidgets_GEN_DIR}/qdatawidgetmapper_wrapper.cpp +${QtWidgets_GEN_DIR}/qdateedit_wrapper.cpp +${QtWidgets_GEN_DIR}/qdatetimeedit_wrapper.cpp +${QtWidgets_GEN_DIR}/qdesktopwidget_wrapper.cpp +${QtWidgets_GEN_DIR}/qdial_wrapper.cpp +${QtWidgets_GEN_DIR}/qdialog_wrapper.cpp +${QtWidgets_GEN_DIR}/qdialogbuttonbox_wrapper.cpp +${QtWidgets_GEN_DIR}/qdirmodel_wrapper.cpp +${QtWidgets_GEN_DIR}/qdockwidget_wrapper.cpp +${QtWidgets_GEN_DIR}/qdoublespinbox_wrapper.cpp +${QtWidgets_GEN_DIR}/qerrormessage_wrapper.cpp +${QtWidgets_GEN_DIR}/qfiledialog_wrapper.cpp +${QtWidgets_GEN_DIR}/qfileiconprovider_wrapper.cpp +${QtWidgets_GEN_DIR}/qfilesystemmodel_wrapper.cpp +${QtWidgets_GEN_DIR}/qfocusframe_wrapper.cpp +${QtWidgets_GEN_DIR}/qfontcombobox_wrapper.cpp +${QtWidgets_GEN_DIR}/qfontdialog_wrapper.cpp +${QtWidgets_GEN_DIR}/qformlayout_wrapper.cpp +${QtWidgets_GEN_DIR}/qframe_wrapper.cpp +${QtWidgets_GEN_DIR}/qgesture_wrapper.cpp +${QtWidgets_GEN_DIR}/qgestureevent_wrapper.cpp +${QtWidgets_GEN_DIR}/qgesturerecognizer_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsanchor_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsanchorlayout_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsblureffect_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicscolorizeeffect_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsdropshadoweffect_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicseffect_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsellipseitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsgridlayout_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsitemanimation_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsitemgroup_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicslayout_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicslayoutitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicslinearlayout_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicslineitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsobject_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsopacityeffect_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicspathitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicspixmapitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicspolygonitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsproxywidget_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsrectitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsrotation_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsscale_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsscene_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsscenecontextmenuevent_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsscenedragdropevent_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicssceneevent_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsscenehelpevent_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsscenehoverevent_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsscenemouseevent_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsscenemoveevent_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicssceneresizeevent_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsscenewheelevent_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicssimpletextitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicstextitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicstransform_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicsview_wrapper.cpp +${QtWidgets_GEN_DIR}/qgraphicswidget_wrapper.cpp +${QtWidgets_GEN_DIR}/qgridlayout_wrapper.cpp +${QtWidgets_GEN_DIR}/qgroupbox_wrapper.cpp +${QtWidgets_GEN_DIR}/qhboxlayout_wrapper.cpp +${QtWidgets_GEN_DIR}/qheaderview_wrapper.cpp +${QtWidgets_GEN_DIR}/qinputdialog_wrapper.cpp +${QtWidgets_GEN_DIR}/qitemdelegate_wrapper.cpp +${QtWidgets_GEN_DIR}/qitemeditorcreatorbase_wrapper.cpp +${QtWidgets_GEN_DIR}/qitemeditorfactory_wrapper.cpp +${QtWidgets_GEN_DIR}/qkeyeventtransition_wrapper.cpp +${QtWidgets_GEN_DIR}/qkeysequenceedit_wrapper.cpp +${QtWidgets_GEN_DIR}/qlabel_wrapper.cpp +${QtWidgets_GEN_DIR}/qlayout_wrapper.cpp +${QtWidgets_GEN_DIR}/qlayoutitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qlcdnumber_wrapper.cpp +${QtWidgets_GEN_DIR}/qlineedit_wrapper.cpp +${QtWidgets_GEN_DIR}/qlistview_wrapper.cpp +${QtWidgets_GEN_DIR}/qlistwidget_wrapper.cpp +${QtWidgets_GEN_DIR}/qlistwidgetitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qmainwindow_wrapper.cpp +${QtWidgets_GEN_DIR}/qmdiarea_wrapper.cpp +${QtWidgets_GEN_DIR}/qmdisubwindow_wrapper.cpp +${QtWidgets_GEN_DIR}/qmenu_wrapper.cpp +${QtWidgets_GEN_DIR}/qmenubar_wrapper.cpp +${QtWidgets_GEN_DIR}/qmessagebox_wrapper.cpp +${QtWidgets_GEN_DIR}/qmouseeventtransition_wrapper.cpp +${QtWidgets_GEN_DIR}/qopenglwidget_wrapper.cpp +${QtWidgets_GEN_DIR}/qpangesture_wrapper.cpp +${QtWidgets_GEN_DIR}/qpinchgesture_wrapper.cpp +${QtWidgets_GEN_DIR}/qplaintextdocumentlayout_wrapper.cpp +${QtWidgets_GEN_DIR}/qplaintextedit_wrapper.cpp +${QtWidgets_GEN_DIR}/qprogressbar_wrapper.cpp +${QtWidgets_GEN_DIR}/qprogressdialog_wrapper.cpp +${QtWidgets_GEN_DIR}/qpushbutton_wrapper.cpp +${QtWidgets_GEN_DIR}/qradiobutton_wrapper.cpp +${QtWidgets_GEN_DIR}/qrubberband_wrapper.cpp +${QtWidgets_GEN_DIR}/qscrollarea_wrapper.cpp +${QtWidgets_GEN_DIR}/qscrollbar_wrapper.cpp +${QtWidgets_GEN_DIR}/qshortcut_wrapper.cpp +${QtWidgets_GEN_DIR}/qsizegrip_wrapper.cpp +${QtWidgets_GEN_DIR}/qsizepolicy_wrapper.cpp +${QtWidgets_GEN_DIR}/qslider_wrapper.cpp +${QtWidgets_GEN_DIR}/qspaceritem_wrapper.cpp +${QtWidgets_GEN_DIR}/qspinbox_wrapper.cpp +${QtWidgets_GEN_DIR}/qsplashscreen_wrapper.cpp +${QtWidgets_GEN_DIR}/qsplitter_wrapper.cpp +${QtWidgets_GEN_DIR}/qsplitterhandle_wrapper.cpp +${QtWidgets_GEN_DIR}/qstackedlayout_wrapper.cpp +${QtWidgets_GEN_DIR}/qstackedwidget_wrapper.cpp +${QtWidgets_GEN_DIR}/qstatusbar_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyle_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleditemdelegate_wrapper.cpp +${QtWidgets_GEN_DIR}/qstylefactory_wrapper.cpp +${QtWidgets_GEN_DIR}/qstylehintreturn_wrapper.cpp +${QtWidgets_GEN_DIR}/qstylehintreturnmask_wrapper.cpp +${QtWidgets_GEN_DIR}/qstylehintreturnvariant_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoption_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptionbutton_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptioncombobox_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptioncomplex_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptiondockwidget_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptionfocusrect_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptionframe_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptiongraphicsitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptiongroupbox_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptionheader_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptionmenuitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptionprogressbar_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptionrubberband_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptionsizegrip_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptionslider_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptionspinbox_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptiontab_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptiontabbarbase_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptiontabwidgetframe_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptiontitlebar_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptiontoolbar_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptiontoolbox_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptiontoolbutton_wrapper.cpp +${QtWidgets_GEN_DIR}/qstyleoptionviewitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qstylepainter_wrapper.cpp +${QtWidgets_GEN_DIR}/qswipegesture_wrapper.cpp +${QtWidgets_GEN_DIR}/qsystemtrayicon_wrapper.cpp +${QtWidgets_GEN_DIR}/qtabbar_wrapper.cpp +${QtWidgets_GEN_DIR}/qtableview_wrapper.cpp +${QtWidgets_GEN_DIR}/qtablewidget_wrapper.cpp +${QtWidgets_GEN_DIR}/qtablewidgetitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qtablewidgetselectionrange_wrapper.cpp +${QtWidgets_GEN_DIR}/qtabwidget_wrapper.cpp +${QtWidgets_GEN_DIR}/qtapandholdgesture_wrapper.cpp +${QtWidgets_GEN_DIR}/qtapgesture_wrapper.cpp +${QtWidgets_GEN_DIR}/qtextbrowser_wrapper.cpp +${QtWidgets_GEN_DIR}/qtextedit_extraselection_wrapper.cpp +${QtWidgets_GEN_DIR}/qtextedit_wrapper.cpp +${QtWidgets_GEN_DIR}/qtilerules_wrapper.cpp +${QtWidgets_GEN_DIR}/qtimeedit_wrapper.cpp +${QtWidgets_GEN_DIR}/qtoolbar_wrapper.cpp +${QtWidgets_GEN_DIR}/qtoolbox_wrapper.cpp +${QtWidgets_GEN_DIR}/qtoolbutton_wrapper.cpp +${QtWidgets_GEN_DIR}/qtooltip_wrapper.cpp +${QtWidgets_GEN_DIR}/qtreeview_wrapper.cpp +${QtWidgets_GEN_DIR}/qtreewidget_wrapper.cpp +${QtWidgets_GEN_DIR}/qtreewidgetitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qtreewidgetitemiterator_wrapper.cpp +${QtWidgets_GEN_DIR}/qundocommand_wrapper.cpp +${QtWidgets_GEN_DIR}/qundogroup_wrapper.cpp +${QtWidgets_GEN_DIR}/qundostack_wrapper.cpp +${QtWidgets_GEN_DIR}/qundoview_wrapper.cpp +${QtWidgets_GEN_DIR}/qvboxlayout_wrapper.cpp +${QtWidgets_GEN_DIR}/qwhatsthis_wrapper.cpp +${QtWidgets_GEN_DIR}/qwidget_wrapper.cpp +${QtWidgets_GEN_DIR}/qwidgetaction_wrapper.cpp +${QtWidgets_GEN_DIR}/qwidgetitem_wrapper.cpp +${QtWidgets_GEN_DIR}/qwizard_wrapper.cpp +${QtWidgets_GEN_DIR}/qwizardpage_wrapper.cpp + +${SPECIFIC_OS_FILES} +# module is always needed +${QtWidgets_GEN_DIR}/qtwidgets_module_wrapper.cpp +) + +configure_file("${QtWidgets_SOURCE_DIR}/typesystem_widgets.xml.in" + "${QtWidgets_BINARY_DIR}/typesystem_widgets.xml" @ONLY) + +make_path(QtWidgets_typesystem_path ${QtCore_SOURCE_DIR} ${QtGui_SOURCE_DIR} + ${QtCore_BINARY_DIR} ${QtGui_BINARY_DIR} + ${QtWidgets_SOURCE_DIR}) + +set(QtWidgets_include_dirs ${QtWidgets_SOURCE_DIR} + ${QtWidgets_BINARY_DIR} + ${pyside2_SOURCE_DIR} + ${Qt5Core_INCLUDE_DIRS} + ${Qt5Gui_INCLUDE_DIRS} + ${Qt5Widgets_INCLUDE_DIRS} + ${SHIBOKEN_INCLUDE_DIR} + ${libpyside_SOURCE_DIR} + ${SHIBOKEN_PYTHON_INCLUDE_DIR} + ${QtCore_GEN_DIR} + ${QtGui_GEN_DIR} + ) +set(QtWidgets_libraries pyside2 + ${SHIBOKEN_PYTHON_LIBRARIES} + ${SHIBOKEN_LIBRARY} + ${Qt5Core_LIBRARIES} + ${Qt5Gui_LIBRARIES} + ${Qt5Widgets_LIBRARIES} + ) +set(QtWidgets_deps QtGui) + +create_pyside_module(QtWidgets + QtWidgets_include_dirs + QtWidgets_libraries + QtWidgets_deps + QtWidgets_typesystem_path + QtWidgets_SRC + "" + ${QtWidgets_BINARY_DIR}/typesystem_widgets.xml) diff --git a/sources/pyside2/PySide2/QtWidgets/glue/qapplication_init.cpp b/sources/pyside2/PySide2/QtWidgets/glue/qapplication_init.cpp new file mode 100644 index 000000000..0de34d9c5 --- /dev/null +++ b/sources/pyside2/PySide2/QtWidgets/glue/qapplication_init.cpp @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of PySide2. +** +** $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$ +** +****************************************************************************/ + +// Borrowed reference to QtWidgets module +extern PyObject* moduleQtWidgets; + +static int QApplicationArgCount; +static char** QApplicationArgValues; +static const char QAPP_MACRO[] = "qApp"; + +bool QApplicationConstructorStart(PyObject* argv) +{ + if (QApplication::instance()) { + PyErr_SetString(PyExc_RuntimeError, "A QApplication instance already exists."); + return false; + } + + return Shiboken::sequenceToArgcArgv(argv, &QApplicationArgCount, &QApplicationArgValues, "PySideApp"); +} + +void QApplicationConstructorEnd(PyObject* self) +{ + // Verify if qApp is in main module + PyObject* globalsDict = PyEval_GetGlobals(); + if (globalsDict) { + PyObject* qAppObj = PyDict_GetItemString(globalsDict, QAPP_MACRO); + if (qAppObj) + PyDict_SetItemString(globalsDict, QAPP_MACRO, self); + } + + PyObject_SetAttrString(moduleQtWidgets, QAPP_MACRO, self); + PySide::registerCleanupFunction(&PySide::destroyQCoreApplication); + Py_INCREF(self); +} + +static void QApplicationConstructor(PyObject* self, PyObject* argv, QApplicationWrapper** cptr) +{ + if (QApplicationConstructorStart(argv)) { + // XXX do we need to support the ApplicationFlags parameter, instead of 0? + *cptr = new QApplicationWrapper(QApplicationArgCount, QApplicationArgValues, 0); + Shiboken::Object::releaseOwnership(reinterpret_cast<SbkObject*>(self)); + QApplicationConstructorEnd(self); + } +} diff --git a/sources/pyside2/PySide2/QtWidgets/glue/qlayout_help_functions.cpp b/sources/pyside2/PySide2/QtWidgets/glue/qlayout_help_functions.cpp new file mode 100644 index 000000000..e1d2ffc4d --- /dev/null +++ b/sources/pyside2/PySide2/QtWidgets/glue/qlayout_help_functions.cpp @@ -0,0 +1,161 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of PySide2. +** +** $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$ +** +****************************************************************************/ + +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; + + QWidget* w = item->widget(); + if (w) + addLayoutOwnership(layout, w); + else { + QLayout* l = item->layout(); + if (l) + 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) +{ + QWidget* w = item->widget(); + if (w) + 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); + } +} diff --git a/sources/pyside2/PySide2/QtWidgets/glue/qmenu_glue.cpp b/sources/pyside2/PySide2/QtWidgets/glue/qmenu_glue.cpp new file mode 100644 index 000000000..68e991ce7 --- /dev/null +++ b/sources/pyside2/PySide2/QtWidgets/glue/qmenu_glue.cpp @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of PySide2. +** +** $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$ +** +****************************************************************************/ + +inline PyObject* addActionWithPyObject(QMenu* self, const QIcon& icon, const QString& text, PyObject* callback, const QKeySequence& shortcut) +{ + QAction* act = new QAction(text, self); + + 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, "connect", "OsO", pyAct, SIGNAL(triggered()), callback)); + if (result.isNull()) { + Py_DECREF(pyAct); + return 0; + } + + return pyAct; +} diff --git a/sources/pyside2/PySide2/QtWidgets/glue/qmenubar_glue.cpp b/sources/pyside2/PySide2/QtWidgets/glue/qmenubar_glue.cpp new file mode 100644 index 000000000..15ddfb81a --- /dev/null +++ b/sources/pyside2/PySide2/QtWidgets/glue/qmenubar_glue.cpp @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of PySide2. +** +** $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$ +** +****************************************************************************/ + +inline PyObject* +addActionWithPyObject(QMenuBar* self, const QString& text, PyObject* callback) +{ + QAction* act = new QAction(text, self); + + self->addAction(act); + + PyObject* pyAct = %CONVERTTOPYTHON[QAction*](act); + PyObject* result = PyObject_CallMethod(pyAct, "connect", "OsO", pyAct, + SIGNAL(triggered(bool)), callback); + + if (result == 0 || result == Py_False) { + if (result) + Py_DECREF(result); + Py_DECREF(pyAct); + return 0; + } + + return pyAct; +} diff --git a/sources/pyside2/PySide2/QtWidgets/glue/qtwidgets_qapp.cpp b/sources/pyside2/PySide2/QtWidgets/glue/qtwidgets_qapp.cpp new file mode 100644 index 000000000..e041c7680 --- /dev/null +++ b/sources/pyside2/PySide2/QtWidgets/glue/qtwidgets_qapp.cpp @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of PySide2. +** +** $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$ +** +****************************************************************************/ + +// Init qApp macro to None. +if (qApp) { + PyObject* pyApp = %CONVERTTOPYTHON[QApplication*](qApp); + Py_INCREF(pyApp); + PyModule_AddObject(module, "qApp", pyApp); +} else { + Py_INCREF(Py_None); + PyModule_AddObject(module, "qApp", Py_None); +} +moduleQtWidgets = module; diff --git a/sources/pyside2/PySide2/QtWidgets/glue/qwidget_glue.cpp b/sources/pyside2/PySide2/QtWidgets/glue/qwidget_glue.cpp new file mode 100644 index 000000000..1dd03a8fc --- /dev/null +++ b/sources/pyside2/PySide2/QtWidgets/glue/qwidget_glue.cpp @@ -0,0 +1,104 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of PySide2. +** +** $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$ +** +****************************************************************************/ + +static QString retrieveObjectName(PyObject *obj) +{ + Shiboken::AutoDecRef objName(PyObject_Str(obj)); + return QString(Shiboken::String::toCString(objName)); +} + + +/** + * Tranfer 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 < layout->count(); i++) { + QLayoutItem* item = layout->itemAt(i); + if (PyErr_Occurred() || !item) + return; + + QWidget* w = item->widget(); + if (w) { + QWidget* pw = w->parentWidget(); + if (pw != parent) { + Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QWidget*](w)); + Shiboken::Object::setParent(pyParent, pyChild); + } + } else { + QLayout* l = item->layout(); + if (l) + 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); + } +} diff --git a/sources/pyside2/PySide2/QtWidgets/typesystem_widgets.xml.in b/sources/pyside2/PySide2/QtWidgets/typesystem_widgets.xml.in new file mode 100644 index 000000000..e6952c2fe --- /dev/null +++ b/sources/pyside2/PySide2/QtWidgets/typesystem_widgets.xml.in @@ -0,0 +1,46 @@ +<?xml version="1.0"?> +<!-- +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of PySide2. +** +** $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$ +** +****************************************************************************/ +--> +<typesystem package="PySide2.QtWidgets"> + <load-typesystem name="typesystem_gui.xml" generate="no"/> + <load-typesystem name="typesystem_widgets_@AUTO_OS@.xml" generate="yes"/> + <load-typesystem name="typesystem_widgets_common.xml" generate="yes"/> +</typesystem> diff --git a/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml b/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml new file mode 100644 index 000000000..59412699c --- /dev/null +++ b/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml @@ -0,0 +1,3695 @@ +<?xml version="1.0"?> +<!-- +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of PySide2. +** +** $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$ +** +****************************************************************************/ +--> +<typesystem package="PySide2.QtWidgets"> + <load-typesystem name="typesystem_gui.xml" generate="no"/> + + + + <!-- Qt5: Beware forgetting the following rejection! + There are anonymous enums "enum { Type = 1 }" etc. in these QGraphics classes, but they + don't show up as "enum_1", but pretend they were a real enum field, not a value. + + """ + Generating class model... [WARNING] + enum 'QGraphicsItem::UserType' does not have a type entry or is not an enum + enum 'QGraphicsWidget::Type' does not have a type entry or is not an enum + enum 'QGraphicsProxyWidget::Type' does not have a type entry or is not an enum + enum 'QGraphicsEllipseItem::Type' does not have a type entry or is not an enum + enum 'QGraphicsPixmapItem::Type' does not have a type entry or is not an enum + enum 'QGraphicsSimpleTextItem::Type' does not have a type entry or is not an enum + enum 'QGraphicsTextItem::Type' does not have a type entry or is not an enum + enum 'QGraphicsItemGroup::Type' does not have a type entry or is not an enum + enum 'QGraphicsRectItem::Type' does not have a type entry or is not an enum + enum 'QGraphicsLineItem::Type' does not have a type entry or is not an enum + enum 'QGraphicsPathItem::Type' does not have a type entry or is not an enum + enum 'QGraphicsPolygonItem::Type' does not have a type entry or is not an enum + """ + --> + <rejection class="*" enum-name="enum_1"/> + + + <!-- + Event classes have a lot of non-documented protected fields, those fields + are removed from PySide because they are Qt implementation details, + besides the fact they are accessible by ordinary event methods. + --> + + <object-type name="QStyleOption" polymorphic-id-expression="%1->type == QStyleOption::SO_Default"> + <enum-type name="OptionType" extensible="yes"/> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionGraphicsItem" polymorphic-id-expression="%1->type == QStyleOptionGraphicsItem::Type && %1->version == QStyleOptionGraphicsItem::Version"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionSizeGrip" polymorphic-id-expression="%1->type == QStyleOptionSizeGrip::Type && %1->version == QStyleOptionSizeGrip::Version"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionButton" polymorphic-id-expression="%1->type == QStyleOptionButton::Type && %1->version == QStyleOptionButton::Version"> + <enum-type name="ButtonFeature" flags="ButtonFeatures"/> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionComboBox" polymorphic-id-expression="%1->type == QStyleOptionComboBox::Type && %1->version == QStyleOptionComboBox::Version"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionComplex" polymorphic-id-expression="%1->type == QStyleOptionComplex::Type && %1->version == QStyleOptionComplex::Version"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionDockWidget" polymorphic-id-expression="%1->type == QStyleOptionDockWidget::Type && %1->version == QStyleOptionDockWidget::Version"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionFocusRect" polymorphic-id-expression="%1->type == QStyleOptionFocusRect::Type && %1->version == QStyleOptionFocusRect::Version"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionFrame" polymorphic-id-expression="%1->type == QStyleOptionFrame::Type && %1->version == QStyleOptionFrame::Version"> + <enum-type name="FrameFeature" flags="FrameFeatures"/> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionGroupBox" polymorphic-id-expression="%1->type == QStyleOptionGroupBox::Type && %1->version == QStyleOptionGroupBox::Version"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionHeader" polymorphic-id-expression="%1->type == QStyleOptionHeader::Type && %1->version == QStyleOptionHeader::Version"> + <enum-type name="SectionPosition"/> + <enum-type name="SelectedPosition"/> + <enum-type name="SortIndicator"/> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionMenuItem" polymorphic-id-expression="%1->type == QStyleOptionMenuItem::Type && %1->version == QStyleOptionMenuItem::Version"> + <enum-type name="CheckType"/> + <enum-type name="MenuItemType"/> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionProgressBar" polymorphic-id-expression="%1->type == QStyleOptionProgressBar::Type && %1->version == QStyleOptionProgressBar::Version"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionRubberBand" polymorphic-id-expression="%1->type == QStyleOptionRubberBand::Type && %1->version == QStyleOptionRubberBand::Version"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionSlider" polymorphic-id-expression="%1->type == QStyleOptionSlider::Type && %1->version == QStyleOptionSlider::Version"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionSpinBox" polymorphic-id-expression="%1->type == QStyleOptionSpinBox::Type && %1->version == QStyleOptionSpinBox::Version"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionTab" polymorphic-id-expression="%1->type == QStyleOptionTab::Type && %1->version == QStyleOptionTab::Version"> + <enum-type name="CornerWidget" flags="CornerWidgets"/> + <enum-type name="SelectedPosition"/> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + <enum-type name="TabFeature" flags="TabFeatures"/> + <enum-type name="TabPosition"/> + </object-type> + <object-type name="QStyleOptionTabBarBase" polymorphic-id-expression="%1->type == QStyleOptionTabBarBase::Type && %1->version == QStyleOptionTabBarBase::Version"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionTabWidgetFrame" polymorphic-id-expression="%1->type == QStyleOptionTabWidgetFrame::Type && %1->version == QStyleOptionTabWidgetFrame::Version"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionTitleBar" polymorphic-id-expression="%1->type == QStyleOptionTitleBar::Type && %1->version == QStyleOptionTitleBar::Version"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleOptionToolBar" polymorphic-id-expression="%1->type == QStyleOptionToolBar::Type && %1->version == QStyleOptionToolBar::Version"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + <enum-type name="ToolBarFeature" flags="ToolBarFeatures"/> + <enum-type name="ToolBarPosition"/> + </object-type> + <object-type name="QStyleOptionToolBox" polymorphic-id-expression="%1->type == QStyleOptionToolBox::Type && %1->version == QStyleOptionToolBox::Version"> + <enum-type name="SelectedPosition"/> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + <enum-type name="TabPosition"/> + </object-type> + <object-type name="QStyleOptionToolButton" polymorphic-id-expression="%1->type == QStyleOptionToolButton::Type && %1->version == QStyleOptionToolButton::Version"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + <enum-type name="ToolButtonFeature" flags="ToolButtonFeatures" /> + </object-type> + <value-type name="QStyleOptionViewItem" polymorphic-id-expression="%1->type == QStyleOptionViewItem::Type && %1->version == QStyleOptionViewItem::Version"> + <enum-type name="Position"/> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + <enum-type name="ViewItemFeature" flags="ViewItemFeatures"/> + <enum-type name="ViewItemPosition"/> + </value-type> + + <value-type name="QSizePolicy"> + <enum-type name="ControlType" flags="ControlTypes"/> + <enum-type name="Policy"/> + <enum-type name="PolicyFlag"/> + </value-type> + <value-type name="QTableWidgetSelectionRange"/> + + <value-type name="QTreeWidgetItemIterator" > + <modify-function signature="QTreeWidgetItemIterator(QTreeWidget *, QFlags<QTreeWidgetItemIterator::IteratorFlag>)"> + <modify-argument index="this"> + <parent index="1" action="add" /> + </modify-argument> + </modify-function> + + <add-function signature="__iter__()" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="__iter__" /> + </inject-code> + </add-function> + <add-function signature="__next__()" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + if (**%CPPSELF) { + QTreeWidgetItemIterator* %0 = new QTreeWidgetItemIterator((*%CPPSELF)++); + %PYARG_0 = %CONVERTTOPYTHON[QTreeWidgetItemIterator*](%0); + } + </inject-code> + </add-function> + + <add-function signature="value()" return-type="QTreeWidgetItem*"> + <inject-code> + QTreeWidgetItem* %0 = %CPPSELF.operator*(); + %PYARG_0 = %CONVERTTOPYTHON[QTreeWidgetItem*](%0); + Shiboken::Object::releaseOwnership(%PYARG_0); + </inject-code> + </add-function> + <enum-type name="IteratorFlag" flags="IteratorFlags"/> + <!-- ### See bug 778 --> + <modify-function signature="operator++(int)" remove="all"/> + <modify-function signature="operator--(int)" remove="all"/> + <modify-function signature="operator++()" remove="all"/> + <modify-function signature="operator--()" remove="all"/> + <!-- ### Operator* doesn't make sense in Python. --> + <modify-function signature="operator*()const" remove="all"/> + <!-- ### --> + </value-type> + + <object-type name="QLayoutItem"> + + <modify-function signature="widget()"> + <modify-argument index="return"> + <define-ownership class="target" owner="default"/> + </modify-argument> + </modify-function> + + <modify-function signature="layout()"> + <modify-argument index="return"> + <define-ownership class="target" owner="default"/> + </modify-argument> + </modify-function> + + <modify-function signature="spacerItem()"> + <modify-argument index="return"> + <define-ownership class="target" owner="default"/> + </modify-argument> + </modify-function> + </object-type> + + <object-type name="QGraphicsItem"> + <enum-type name="CacheMode"/> + <enum-type name="Extension"/> + <enum-type name="GraphicsItemChange"/> + <enum-type name="GraphicsItemFlag" flags="GraphicsItemFlags"/> + <enum-type name="PanelModality" since="4.6"/> + <inject-code class="target" position="end"> + PyObject* userTypeConstant = PyInt_FromLong(QGraphicsItem::UserType); + PyDict_SetItemString(Sbk_QGraphicsItem_Type.super.ht_type.tp_dict, "UserType", userTypeConstant); + </inject-code> + <modify-function signature="setParentItem(QGraphicsItem *)"> + <modify-argument index="this"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + <template name="scene_return_parenting"> + if (%0) { + QObject* parent = %0->parent(); + Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QObject*](parent)); + Shiboken::Object::setParent(pyParent, %PYARG_0); + } + </template> + <modify-function signature="scene() const"> + <inject-code position="end"> + <insert-template name="scene_return_parenting"/> + </inject-code> + <modify-argument index="this"> + <parent index="return" action="add"/> + </modify-argument> + </modify-function> + + <modify-function signature="parentItem() const"> + <modify-argument index="return"> + <define-ownership owner="target"/> + </modify-argument> + <modify-argument index="this"> + <parent index="return" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="parentWidget() const"> + <modify-argument index="this"> + <parent index="return" action="add"/> + </modify-argument> + <modify-argument index="return"> + <define-ownership class="target" owner="default"/> + </modify-argument> + </modify-function> + <modify-function signature="paint(QPainter*,const QStyleOptionGraphicsItem*,QWidget*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="collidesWithItem(const QGraphicsItem*,Qt::ItemSelectionMode)const"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="contextMenuEvent(QGraphicsSceneContextMenuEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="dragEnterEvent(QGraphicsSceneDragDropEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="dragLeaveEvent(QGraphicsSceneDragDropEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="dragMoveEvent(QGraphicsSceneDragDropEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="dropEvent(QGraphicsSceneDragDropEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="focusInEvent(QFocusEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="focusOutEvent(QFocusEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="hoverEnterEvent(QGraphicsSceneHoverEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="hoverLeaveEvent(QGraphicsSceneHoverEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="hoverMoveEvent(QGraphicsSceneHoverEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="inputMethodEvent(QInputMethodEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="isBlockedByModalPanel(QGraphicsItem**)const" since="4.6"> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <modify-argument index="return"> + <replace-type modified-type="(retval, blockingPanel)"/> + </modify-argument> + <inject-code class="target" position="beginning"> + 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_)); + </inject-code> + </modify-function> + <modify-function signature="itemTransform(const QGraphicsItem*,bool*)const"> + <modify-argument index="2"> + <remove-argument /> + <remove-default-expression /> + </modify-argument> + <modify-argument index="return"> + <replace-type modified-type="(QTransform, bool ok)"/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="fix_args,bool*" /> + </inject-code> + </modify-function> + <modify-function signature="isObscuredBy(const QGraphicsItem*)const"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="keyPressEvent(QKeyEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="keyReleaseEvent(QKeyEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="mouseDoubleClickEvent(QGraphicsSceneMouseEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="mouseMoveEvent(QGraphicsSceneMouseEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="mousePressEvent(QGraphicsSceneMouseEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="mouseReleaseEvent(QGraphicsSceneMouseEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="sceneEvent(QEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="sceneEventFilter(QGraphicsItem*,QEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + <modify-argument index="2" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="wheelEvent(QGraphicsSceneWheelEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <!-- ### These methods are internal on Qt. --> + <modify-function signature="supportsExtension(QGraphicsItem::Extension)const" remove="all"/> + <modify-function signature="setExtension(QGraphicsItem::Extension,QVariant)" remove="all"/> + <!-- ### --> + </object-type> + <object-type name="QAbstractGraphicsShapeItem"/> + <object-type name="QAbstractItemView"> + <enum-type name="CursorAction"/> + <enum-type name="DragDropMode"/> + <enum-type name="DropIndicatorPosition"/> + <enum-type name="EditTrigger" flags="EditTriggers"/> + <enum-type name="ScrollHint"/> + <enum-type name="ScrollMode"/> + <enum-type name="SelectionBehavior"/> + <enum-type name="SelectionMode"/> + <enum-type name="State"/> + <modify-function signature="setModel(QAbstractItemModel*)"> + <modify-argument index="1"> + <reference-count action="set"/> + </modify-argument> + </modify-function> + <modify-function signature="setSelectionModel(QItemSelectionModel*)"> + <modify-argument index="1"> + <reference-count action="set"/> + </modify-argument> + </modify-function> + <modify-function signature="setItemDelegate(QAbstractItemDelegate*)"> + <modify-argument index="1"> + <reference-count action="set"/> + </modify-argument> + </modify-function> + <modify-function signature="viewOptions()const"> + <modify-argument index="return"> + <replace-default-expression with="QStyleOptionViewItem()" /> + </modify-argument> + </modify-function> + <modify-function signature="model() const"> + <modify-argument index="return"> + <!-- Defining ownership as "default" avoids the object to be automatically + set as parent of the returned pointer. --> + <define-ownership class="target" owner="default"/> + </modify-argument> + </modify-function> + <modify-function signature="selectionModel() const"> + <modify-argument index="return"> + <!-- Defining ownership as "default" avoids the object to be automatically + set as parent of the returned pointer. --> + <define-ownership class="target" owner="default"/> + </modify-argument> + </modify-function> + <modify-function signature="setIndexWidget(const QModelIndex &, QWidget *)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="edit(QModelIndex,QAbstractItemView::EditTrigger,QEvent*)"> + <modify-argument index="3" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="selectionCommand(QModelIndex,const QEvent*)const"> + <modify-argument index="2" invalidate-after-use="yes"/> + </modify-function> + </object-type> + <object-type name="QAbstractSlider"> + <enum-type name="SliderAction"/> + <enum-type name="SliderChange"/> + </object-type> + <object-type name="QActionGroup"> + <modify-function signature="addAction(QAction*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="removeAction(QAction*)"> + <modify-argument index="1"> + <parent index="this" action="remove"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QCheckBox"/> + <object-type name="QCommonStyle"> + </object-type> + <object-type name="QDataWidgetMapper"> + <enum-type name="SubmitPolicy"/> + <modify-function signature="addMapping(QWidget*,int)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addMapping(QWidget*,int,QByteArray)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="removeMapping(QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="remove"/> + </modify-argument> + </modify-function> + <modify-function signature="setItemDelegate(QAbstractItemDelegate*)"> + <modify-argument index="1"> + <reference-count action="set"/> + </modify-argument> + </modify-function> + <modify-function signature="setModel(QAbstractItemModel*)"> + <modify-argument index="1"> + <reference-count action="set"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QDateEdit"/> + <object-type name="QDialog"> + <enum-type name="DialogCode"/> + <modify-function signature="exec()" rename="exec_" allow-thread="yes"/> + </object-type> + <object-type name="QDialogButtonBox"> + <enum-type name="ButtonLayout"/> + <enum-type name="ButtonRole"/> + <enum-type name="StandardButton" flags="StandardButtons" /> + <modify-function signature="addButton(QAbstractButton*,QDialogButtonBox::ButtonRole)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="removeButton(QAbstractButton*)"> + <modify-argument index="1"> + <parent index="this" action="remove"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QDirModel" polymorphic-id-expression="qobject_cast<QDirModel*>(%1)"> + <enum-type name="Roles"/> + <modify-function signature="setIconProvider(QFileIconProvider*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QFileIconProvider"> + <enum-type name="IconType"/> + <enum-type name="Option" flags="Options"/> + </object-type> + <object-type name="QWizard"> + <enum-type name="WizardButton" /> + <enum-type name="WizardOption" flags="WizardOptions"/> + <enum-type name="WizardPixmap"/> + <enum-type name="WizardStyle"/> + <modify-function signature="addPage(QWizardPage*)"> + <modify-argument index="1"> + <no-null-pointer/> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setButton(QWizard::WizardButton,QAbstractButton*)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QWizardPage"> + <modify-function signature="wizard()const"> + <modify-argument index="this"> + <parent index="return" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QFocusFrame"> + <modify-function signature="setWidget(QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QFontComboBox"> + <enum-type name="FontFilter" flags="FontFilters"/> + </object-type> + <object-type name="QFontDialog"> + <enum-type name="FontDialogOption" flags="FontDialogOptions"/> + <modify-function signature="getFont(bool*,QWidget*)" allow-thread="yes"> + <modify-argument index="1"> + <remove-argument /> + </modify-argument> + <modify-argument index="return"> + <replace-type modified-type="PyTuple" /> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="fix_bool*,arg"/> + </inject-code> + </modify-function> + <modify-function signature="getFont(bool*,QFont,QWidget*,QString,QFlags<QFontDialog::FontDialogOption>)"> + <modify-argument index="1"> + <remove-argument /> + </modify-argument> + <modify-argument index="return"> + <replace-type modified-type="PyTuple" /> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="fix_bool*,arg,arg,arg,arg"/> + </inject-code> + </modify-function> + </object-type> + <object-type name="QGraphicsEllipseItem"> + </object-type> + <object-type name="QGraphicsItemAnimation"> + <modify-function signature="setItem(QGraphicsItem*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setTimeLine(QTimeLine*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <extra-includes> + <include file-name="QPair" location="global"/> + </extra-includes> + </object-type> + <object-type name="QGraphicsItemGroup"/> + <object-type name="QGraphicsLineItem" /> + <object-type name="QGraphicsPathItem" /> + <object-type name="QGraphicsPixmapItem"> + <enum-type name="ShapeMode"/> + </object-type> + <object-type name="QGraphicsPolygonItem"/> + <object-type name="QGraphicsRectItem" /> + <object-type name="QGraphicsSimpleTextItem" /> + <object-type name="QHBoxLayout"/> + <object-type name="QHeaderView"> + <enum-type name="ResizeMode" /> + <modify-function signature="paintSection(QPainter*,QRect,int)const"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + </object-type> + <object-type name="QItemDelegate"> + <!-- ### "doLayout(...)" is an internal method. --> + <modify-function signature="doLayout(QStyleOptionViewItem,QRect*,QRect*,QRect*,bool)const" remove="all" /> + <!-- ### "selected(QPixmap,QPalette,bool)" is an internal method. --> + <modify-function signature="selected(QPixmap,QPalette,bool)const" remove="all"/> + <!-- ### --> + <modify-function signature="drawCheck(QPainter*,QStyleOptionViewItem,QRect,Qt::CheckState)const"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="drawDecoration(QPainter*,QStyleOptionViewItem,QRect,QPixmap)const"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="drawDisplay(QPainter*,QStyleOptionViewItem,QRect,QString)const"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="drawFocus(QPainter*,QStyleOptionViewItem,QRect)const"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="setItemEditorFactory(QItemEditorFactory*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QItemEditorCreatorBase"> + <modify-function signature="createWidget(QWidget *) const"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + </object-type> + <object-type name="QItemEditorFactory"> + <modify-function signature="registerEditor(int, QItemEditorCreatorBase *)"> + <modify-argument index="2"> + <reference-count action="set"/> + </modify-argument> + <inject-code> + Shiboken::Object::releaseOwnership(%PYARG_2); + </inject-code> + </modify-function> + <modify-function signature="setDefaultFactory(QItemEditorFactory *)"> + <modify-argument index="1"> + <define-ownership owner="c++"/> + </modify-argument> + <inject-code> + //this function is static we need keep ref to default value, to be able to call python virtual functions + static PyObject* _defaultValue = 0; + %CPPSELF.%FUNCTION_NAME(%1); + Py_INCREF(%PYARG_1); + if (_defaultValue) + Py_DECREF(_defaultValue); + + _defaultValue = %PYARG_1; + </inject-code> + </modify-function> + </object-type> + <object-type name="QListView"> + <enum-type name="Flow"/> + <enum-type name="LayoutMode"/> + <enum-type name="Movement"/> + <enum-type name="ResizeMode"/> + <enum-type name="ViewMode"/> + </object-type> + <object-type name="QColumnView"> + <modify-function signature="setPreviewWidget(QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QMainWindow"> + <enum-type name="DockOption" flags="DockOptions"/> + <modify-function signature="setCentralWidget(QWidget*)"> + <inject-code class="target" position="beginning"> + <insert-template name="replace_child"> + <replace from="$FUNCTION_GET_OLD" to="centralWidget" /> + <replace from="$CHILD_TYPE" to="QWidget" /> + <replace from="$PYARG" to="%PYARG_1" /> + <replace from="$CPPARG" to="%1" /> + </insert-template> + </inject-code> + </modify-function> + + <modify-function signature="setMenuBar(QMenuBar*)"> + <inject-code class="target" position="beginning"> + <insert-template name="replace_child"> + <replace from="$FUNCTION_GET_OLD" to="menuBar" /> + <replace from="$CHILD_TYPE" to="QMenuBar" /> + <replace from="$PYARG" to="%PYARG_1" /> + <replace from="$CPPARG" to="%1" /> + </insert-template> + </inject-code> + </modify-function> + + <modify-function signature="setMenuWidget(QWidget*)"> + <inject-code class="target" position="beginning"> + <insert-template name="replace_child"> + <replace from="$FUNCTION_GET_OLD" to="menuWidget" /> + <replace from="$CHILD_TYPE" to="QWidget" /> + <replace from="$PYARG" to="%PYARG_1" /> + <replace from="$CPPARG" to="%1" /> + </insert-template> + </inject-code> + </modify-function> + + <modify-function signature="setStatusBar(QStatusBar*)"> + <inject-code class="target" position="beginning"> + <insert-template name="replace_child"> + <replace from="$FUNCTION_GET_OLD" to="statusBar" /> + <replace from="$CHILD_TYPE" to="QStatusBar" /> + <replace from="$PYARG" to="%PYARG_1" /> + <replace from="$CPPARG" to="%1" /> + </insert-template> + </inject-code> + </modify-function> + + <modify-function signature="addDockWidget(Qt::DockWidgetArea, QDockWidget*)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addDockWidget(Qt::DockWidgetArea,QDockWidget*,Qt::Orientation)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <!-- this fuction is declared when not defined QT_NO_TOOLBA --> + <modify-function signature="addToolBar(Qt::ToolBarArea, QToolBar*)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addToolBar(QToolBar*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addToolBar(const QString&)"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <!--- END QT_NO_TOOLBAR --> + <modify-function signature="removeDockWidget(QDockWidget*)"> + <modify-argument index="1"> + <parent index="this" action="remove"/> + </modify-argument> + </modify-function> + <modify-function signature="removeToolBar(QToolBar*)"> + <modify-argument index="1"> + <parent index="this" action="remove"/> + </modify-argument> + </modify-function> + <modify-function signature="removeDockWidget(QDockWidget*)"> + <modify-argument index="2"> + <parent index="this" action="remove"/> + </modify-argument> + </modify-function> + + </object-type> + <object-type name="QMdiArea"> + <enum-type name="AreaOption" flags="AreaOptions"/> + <enum-type name="ViewMode"/> + <enum-type name="WindowOrder"/> + <modify-function signature="addSubWindow(QWidget*, QFlags<Qt::WindowType>)" > + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QMdiSubWindow"> + <enum-type name="SubWindowOption" flags="SubWindowOptions"/> + <modify-function signature="setWidget(QWidget*)" > + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setSystemMenu(QMenu*)" > + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QMenu"> + <inject-code class="native" position="beginning" file="glue/qmenu_glue.cpp"/> + + <modify-function signature="exec()" rename="exec_" allow-thread="yes" /> + <modify-function signature="exec(const QPoint&, QAction*)" rename="exec_" allow-thread="yes" /> + <modify-function signature="exec(QList<QAction*>, const QPoint&, QAction*, QWidget*)" rename="exec_" allow-thread="yes" /> + <modify-function signature="addAction(const QString&)"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addMenu(QMenu*)"> + <modify-argument index="return"> + <parent index="1" action="add"/> + </modify-argument> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addMenu(const QString&)"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addMenu(const QIcon &, const QString &)"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertMenu(QAction*,QMenu*)"> + <modify-argument index="return"> + <parent index="2" action="add"/> + </modify-argument> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addMenu(const QString&)"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addMenu(const QIcon &, const QString &)"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <!-- ### "setNoReplayFor(QWidget*)" is an internal method. --> + <modify-function signature="setNoReplayFor(QWidget*)" remove="all" /> + + <add-function signature="addAction(QString&, PyObject*, QKeySequence&)"> + <modify-argument index="3"> + <replace-default-expression with="0" /> + </modify-argument> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + + <inject-code class="target" position="beginning"> + %PYARG_0 = addActionWithPyObject(%CPPSELF, QIcon(), %1, %2, %3); + </inject-code> + </add-function> + + <add-function signature="addAction(QIcon&, QString&, PyObject*, QKeySequence&)"> + <modify-argument index="4"> + <replace-default-expression with="0" /> + </modify-argument> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + + <inject-code class="target" position="beginning"> + %PYARG_0 = addActionWithPyObject(%CPPSELF, %1, %2, %3, %4); + </inject-code> + </add-function> + + <add-function signature="addAction(QAction*)"> + <inject-code class="target" position="beginning"> + %CPPSELF.addAction(%1); + </inject-code> + </add-function> + + <modify-function signature="clear()"> + <inject-code> + Shiboken::BindingManager& bm = Shiboken::BindingManager::instance(); + PyObject* pyObj; + foreach(QAction* act, %CPPSELF.actions()) { + if ((pyObj = (PyObject*)bm.retrieveWrapper(act)) != 0) { + Py_INCREF(pyObj); + Shiboken::Object::setParent(NULL, pyObj); + Shiboken::Object::invalidate(pyObj); + Py_DECREF(pyObj); + } + } + </inject-code> + </modify-function> + + </object-type> + + <object-type name="QMenuBar"> + <inject-code class="native" position="beginning" file="glue/qmenubar_glue.cpp"/> + <modify-function signature="addAction(const QString&)"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addAction(QString,const QObject*,const char*)"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <add-function signature="addAction(const QString&, PyObject*)"> + <inject-code class="target" position="beginning"> + %PYARG_0 = addActionWithPyObject(%CPPSELF, %1, %2); + </inject-code> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </add-function> + <modify-function signature="addMenu(QMenu*)"> + <modify-argument index="return"> + <parent index="1" action="add"/> + </modify-argument> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addSeparator()"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertMenu(QAction*,QMenu*)"> + <modify-argument index="return"> + <parent index="2" action="add"/> + </modify-argument> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertSeparator(QAction*)"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="clear()"> + <inject-code> + foreach(QAction *act, %CPPSELF.actions()) { + Shiboken::AutoDecRef pyAct(%CONVERTTOPYTHON[QAction*](act)); + Shiboken::Object::setParent(NULL, pyAct); + Shiboken::Object::invalidate(pyAct); + } + </inject-code> + </modify-function> + + <add-function signature="addAction(QAction*)"> + <inject-code class="target" position="beginning"> + %CPPSELF.addAction(%1); + </inject-code> + </add-function> + + </object-type> + <object-type name="QProgressBar"> + <enum-type name="Direction"/> + </object-type> + <object-type name="QPushButton" /> + <object-type name="QScrollArea"> + <modify-function signature="setWidget(QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + + <object-type name="QShortcut"> + <add-function signature="QShortcut(QKeySequence&, QWidget*, PyCallable*, Qt::ShortcutContext)"> + <modify-argument index="4"> + <replace-default-expression with="Qt::WindowShortcut"/> + </modify-argument> + <inject-code class="target" position="beginning"> + %0 = new %TYPE(%1, %2); + </inject-code> + <inject-code class="target" position="end"> + Shiboken::AutoDecRef result(PyObject_CallMethod(%PYSELF, "connect", "OsO", %PYSELF, SIGNAL(activated()), %PYARG_3)); + if (!result.isNull()) + Shiboken::Object::setParent(%PYARG_2, %PYSELF); + </inject-code> + </add-function> + </object-type> + <object-type name="QSpacerItem"/> + <object-type name="QStatusBar"> + <modify-function signature="addWidget(QWidget*, int)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addPermanentWidget(QWidget*, int)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertWidget(int, QWidget*, int)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertPermanentWidget(int, QWidget*, int)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QStyleFactory"> + <modify-function signature="create(const QString&)"> + <modify-argument index="return"> + <define-ownership owner="target"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QStyleHintReturn"> + <enum-type name="HintReturnType"/> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleHintReturnVariant"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStyleHintReturnMask"> + <enum-type name="StyleOptionType"/> + <enum-type name="StyleOptionVersion"/> + </object-type> + <object-type name="QStylePainter" /> + <object-type name="QTableView"> + <modify-function signature="setHorizontalHeader(QHeaderView*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setVerticalHeader(QHeaderView*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QTimeEdit"/> + <object-type name="QToolBox"> + <modify-function signature="addItem(QWidget*, const QIcon&, const QString&)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addItem(QWidget*, const QString&)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertItem(int, QWidget*, const QIcon&, const QString&)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertItem(int, QWidget*, const QString&)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="removeItem(int)"> + <inject-code class="target" position="beginning"> + QWidget *_widget = %CPPSELF.widget(%1); + if (_widget) { + Shiboken::AutoDecRef pyWidget(%CONVERTTOPYTHON[QWidget*](_widget)); + Shiboken::Object::setParent(0, pyWidget); + } + </inject-code> + </modify-function> + </object-type> + <object-type name="QToolButton"> + <enum-type name="ToolButtonPopupMode"/> + <modify-function signature="setDefaultAction(QAction *)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setMenu(QMenu *)"> + </modify-function> + </object-type> + <object-type name="QToolTip"/> + <object-type name="QTreeView"> + <modify-function signature="drawBranches(QPainter*,QRect,QModelIndex)const"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="drawRow(QPainter*,QStyleOptionViewItem,QModelIndex)const"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + </object-type> + <object-type name="QUndoCommand"> + <modify-function signature="mergeWith(const QUndoCommand*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + </object-type> + <object-type name="QUndoGroup"> + <modify-function signature="addStack(QUndoStack*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="removeStack(QUndoStack*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QUndoStack"> + <modify-function signature="createUndoAction(QObject*, const QString&)const"> + <modify-argument index="return"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="createRedoAction(QObject*, const QString&)const"> + <modify-argument index="return"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="push(QUndoCommand*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QUndoView"> + <modify-function signature="setGroup(QUndoGroup *)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setStack(QUndoStack *)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="QUndoView(QUndoGroup *,QWidget *)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="QUndoView(QUndoStack *,QWidget *)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QVBoxLayout"/> + + <object-type name="QWhatsThis"/> + <object-type name="QWidgetAction"> + <modify-function signature="setDefaultWidget(QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="add" /> + </modify-argument> + </modify-function> + <modify-function signature="releaseWidget(QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="remove" /> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QWidgetItem" polymorphic-id-expression="%1->widget()" /> + + <object-type name="QGraphicsSceneContextMenuEvent" copyable="false" polymorphic-id-expression="%1->type() == QEvent::GraphicsSceneContextMenu"> + <enum-type name="Reason"/> + </object-type> + <object-type name="QGraphicsSceneDragDropEvent" copyable="false" polymorphic-id-expression="%1->type() == QEvent::GraphicsSceneDragEnter || %1->type() == QEvent::GraphicsSceneDragLeave || %1->type() == QEvent::GraphicsSceneDragMove || %1->type() == QEvent::GraphicsSceneDrop" > + <!-- ### "setMimeData(const QMimeData*)" is an internal method. --> + <modify-function signature="setMimeData(const QMimeData *)" remove="all"/> + <!-- ### "setSource(QWidget*)" is an internal method. --> + <modify-function signature="setSource(QWidget *)" remove="all"/> + <!-- ### --> + </object-type> + <object-type name="QGraphicsSceneEvent" copyable="false"> + <!-- ### "setWidget(QWidget*)" is an internal method. --> + <modify-function signature="setWidget(QWidget *)" remove="all"/> + </object-type> + <object-type name="QGraphicsSceneMoveEvent" copyable="false" polymorphic-id-expression="%1->type() == QEvent::GraphicsSceneMove" /> + <object-type name="QGraphicsSceneResizeEvent" copyable="false" polymorphic-id-expression="%1->type() == QEvent::GraphicsSceneResize" /> + <object-type name="QGraphicsSceneHelpEvent" copyable="false" polymorphic-id-expression="%1->type() == QEvent::GraphicsSceneHelp" /> + <object-type name="QGraphicsSceneHoverEvent" copyable="false" polymorphic-id-expression="%1->type() == QEvent::GraphicsSceneHoverEnter || %1->type() == QEvent::GraphicsSceneHoverLeave || %1->type() == QEvent::GraphicsSceneHoverMove" /> + <object-type name="QGraphicsSceneMouseEvent" copyable="false" polymorphic-id-expression="%1->type() == QEvent::GraphicsSceneMouseDoubleClick || %1->type() == QEvent::GraphicsSceneMouseMove || %1->type() == QEvent::GraphicsSceneMousePress || %1->type() == QEvent::GraphicsSceneMouseRelease"/> + <object-type name="QGraphicsSceneWheelEvent" copyable="false" polymorphic-id-expression="%1->type() == QEvent::GraphicsSceneWheel"/> + + <object-type name="QGestureEvent" polymorphic-id-expression="%1->type() == QEvent::Gesture || %1->type() == QEvent::GestureOverride" since="4.6"> + <modify-function signature="activeGestures()const"> + <modify-argument index="return"> + <define-ownership owner="default"/> + </modify-argument> + </modify-function> + <modify-function signature="canceledGestures()const"> + <modify-argument index="return"> + <define-ownership owner="default"/> + </modify-argument> + </modify-function> + <modify-function signature="gestures()const"> + <modify-argument index="return"> + <define-ownership owner="default"/> + </modify-argument> + </modify-function> + <modify-function signature="gesture(Qt::GestureType)const"> + <modify-argument index="return"> + <define-ownership owner="default"/> + </modify-argument> + </modify-function> + <modify-function signature="widget()const"> + <modify-argument index="return"> + <define-ownership owner="default"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QAbstractButton"/> + <object-type name="QStyle"> + <enum-type name="ComplexControl" extensible="yes"/> + <enum-type name="ContentsType" extensible="yes"/> + <enum-type name="ControlElement" extensible="yes"/> + <enum-type name="PixelMetric" extensible="yes" /> + <enum-type name="PrimitiveElement" extensible="yes" /> + <enum-type name="RequestSoftwareInputPanel" since="4.6"/> + <enum-type name="StandardPixmap" extensible="yes"/> + <enum-type name="StateFlag" flags="State"/> + <enum-type name="StyleHint" extensible="yes" /> + <enum-type name="SubControl" flags="SubControls" extensible="yes" force-integer="yes"/> + <enum-type name="SubElement" extensible="yes" /> + <modify-function signature="drawComplexControl(QStyle::ComplexControl,const QStyleOptionComplex*,QPainter*,const QWidget*)const"> + <modify-argument index="3" invalidate-after-use="yes"/> + <modify-argument index="4"> + <replace-default-expression with="0"/> + <rename to="widget" /> + </modify-argument> + </modify-function> + <modify-function signature="drawControl(QStyle::ControlElement,const QStyleOption*,QPainter*,const QWidget*)const"> + <modify-argument index="3" invalidate-after-use="yes"/> + <modify-argument index="4"> + <replace-default-expression with="0"/> + <rename to="widget" /> + </modify-argument> + </modify-function> + <modify-function signature="drawPrimitive(QStyle::PrimitiveElement,const QStyleOption*,QPainter*,const QWidget*)const"> + <modify-argument index="3" invalidate-after-use="yes"/> + <modify-argument index="4"> + <replace-default-expression with="0"/> + <rename to="widget" /> + </modify-argument> + </modify-function> + <modify-function signature="hitTestComplexControl(QStyle::ComplexControl, const QStyleOptionComplex*, const QPoint&, const QWidget*)const"> + <modify-argument index="4"> + <replace-default-expression with="0"/> + <rename to="widget" /> + </modify-argument> + </modify-function> + <modify-function signature="styleHint(QStyle::StyleHint,const QStyleOption*,const QWidget*,QStyleHintReturn*)const"> + <modify-argument index="4" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="drawItemPixmap(QPainter*,QRect,int,QPixmap)const"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="drawItemText(QPainter*,QRect,int,QPalette,bool,QString,QPalette::ColorRole)const"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + </object-type> + <object-type name="QColorDialog"> + <enum-type name="ColorDialogOption" flags="ColorDialogOptions"/> + <modify-function signature="getColor(const QColor&, QWidget*, const QString&, QFlags<QColorDialog::ColorDialogOption>)" allow-thread="yes" /> + <!-- Qt5: obsolete --> + <modify-function signature="getRgba(unsigned int, bool*, QWidget*)" remove="all" /> + </object-type> + + <object-type name="QLayout"> + <inject-code class="native" position="beginning" file="glue/qlayout_help_functions.cpp"/> + + <enum-type name="SizeConstraint"/> + + <modify-function signature="itemAt(int)const"> + <modify-argument index="return"> + <define-ownership owner="default"/> + </modify-argument> + <inject-code class="target" position="end"> + addLayoutOwnership(%CPPSELF, %0); + </inject-code> + </modify-function> + + <modify-function signature="removeWidget(QWidget*)"> + <inject-code class="target" position="beginning"> + removeLayoutOwnership(%CPPSELF, %1); + </inject-code> + </modify-function> + <modify-function signature="removeItem(QLayoutItem*)"> + <inject-code class="target" position="beginning"> + removeLayoutOwnership(%CPPSELF, %1); + </inject-code> + </modify-function> + + <modify-function signature="parentWidget()const"> + <modify-argument index="this"> + <parent index="return" action="add"/> + </modify-argument> + <modify-argument index="return"> + <define-ownership class="target" owner="default"/> + </modify-argument> + </modify-function> + + <modify-function signature="takeAt(int)"> + <modify-argument index="return"> + <parent index="this" action="remove"/> + </modify-argument> + </modify-function> + + <modify-function signature="addItem(QLayoutItem*)"> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %1); + </inject-code> + </modify-function> + + <modify-function signature="addWidget(QWidget *)"> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %1); + </inject-code> + </modify-function> + <modify-function signature="addChildWidget(QWidget *)"> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %1); + </inject-code> + </modify-function> + <modify-function signature="addChildLayout(QLayout*)"> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %1); + </inject-code> + </modify-function> + <modify-function signature="setMenuBar(QWidget*)"> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %1); + </inject-code> + </modify-function> + + <modify-function signature="getContentsMargins(int*,int*,int*,int*)const"> + <modify-argument index="0"> + <replace-type modified-type="PyObject" /> + </modify-argument> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <modify-argument index="2"> + <remove-argument/> + </modify-argument> + <modify-argument index="3"> + <remove-argument/> + </modify-argument> + <modify-argument index="4"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="fix_number*,number*,number*,number*"> + <replace from="$TYPE" to="int" /> + </insert-template> + </inject-code> + <inject-code class="native" position="end"> + <insert-template name="fix_native_return_number*,number*,number*,number*"> + <replace from="$TYPE" to="int" /> + </insert-template> + </inject-code> + </modify-function> + + <add-function signature="setAlignment(QFlags<Qt::AlignmentFlag>)"> + <inject-code class="target" position="beginning"> + %CPPSELF.setAlignment(%1); + </inject-code> + </add-function> + + </object-type> + + <object-type name="QStackedLayout"> + <inject-code class="native" position="beginning" file="glue/qlayout_help_functions.cpp"/> + <enum-type name="StackingMode"/> + <modify-function signature="insertWidget(int,QWidget*)"> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %2); + </inject-code> + </modify-function> + </object-type> + + <object-type name="QBoxLayout"> + <inject-code class="native" position="beginning" file="glue/qlayout_help_functions.cpp"/> + + <enum-type name="Direction" /> + + <modify-function signature="addWidget(QWidget *, int, QFlags<Qt::AlignmentFlag>)"> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %1); + </inject-code> + </modify-function> + + <modify-function signature="addLayout(QLayout *, int)"> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %1); + </inject-code> + </modify-function> + + <modify-function signature="insertWidget(int, QWidget *, int, QFlags<Qt::AlignmentFlag>)"> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %2); + </inject-code> + </modify-function> + <modify-function signature="insertLayout(int, QLayout *, int)"> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %2); + </inject-code> + </modify-function> + <modify-function signature="insertItem(int, QLayoutItem *)"> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %2); + </inject-code> + </modify-function> + <modify-function signature="addSpacerItem(QSpacerItem*)"> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %1); + </inject-code> + </modify-function> + <modify-function signature="insertSpacerItem(int,QSpacerItem*)"> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %2); + </inject-code> + </modify-function> + </object-type> + + <object-type name="QGridLayout"> + <inject-code class="native" position="beginning" file="glue/qlayout_help_functions.cpp"/> + <modify-function signature="itemAtPosition (int, int) const"> + <modify-argument index="return"> + <define-ownership owner="default"/> + </modify-argument> + <inject-code class="target" position="end"> + addLayoutOwnership(%CPPSELF, %0); + </inject-code> + </modify-function> + <modify-function signature="addWidget(QWidget *, int, int, QFlags<Qt::AlignmentFlag>)"> + <modify-argument index="4"> + <rename to="alignment"/> + </modify-argument> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %1); + </inject-code> + </modify-function> + <modify-function signature="addWidget(QWidget *, int, int, int, int, QFlags<Qt::AlignmentFlag>)"> + <modify-argument index="6"> + <rename to="alignment"/> + </modify-argument> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %1); + </inject-code> + </modify-function> + <modify-function signature="addLayout(QLayout *, int, int, QFlags<Qt::AlignmentFlag>)"> + <modify-argument index="4"> + <rename to="alignment"/> + </modify-argument> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %1); + </inject-code> + </modify-function> + <modify-function signature="addLayout(QLayout *, int, int, int, int, QFlags<Qt::AlignmentFlag>)"> + <modify-argument index="6"> + <rename to="alignment"/> + </modify-argument> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %1); + </inject-code> + </modify-function> + <modify-function signature="addItem(QLayoutItem *, int, int, int, int, QFlags<Qt::AlignmentFlag>)"> + <modify-argument index="4"> + <rename to="rowSpan"/> + </modify-argument> + <modify-argument index="5"> + <rename to="columnSpan"/> + </modify-argument> + <modify-argument index="6"> + <rename to="alignment"/> + </modify-argument> + <inject-code class="target" position="beginning"> + addLayoutOwnership(%CPPSELF, %1); + </inject-code> + </modify-function> + <modify-function signature="getItemPosition(int,int*,int*,int*,int*)const"> + <modify-argument index="return"> + <replace-type modified-type="PyObject*" /> + </modify-argument> + <modify-argument index="2"> + <remove-argument/> + </modify-argument> + <modify-argument index="3"> + <remove-argument/> + </modify-argument> + <modify-argument index="4"> + <remove-argument/> + </modify-argument> + <modify-argument index="5"> + <remove-argument/> + <remove-default-expression/> + </modify-argument> + <inject-code class="target" position="beginning"> + 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)); + </inject-code> + </modify-function> + </object-type> + + <object-type name="QGraphicsView"> + <extra-includes> + <include file-name="QPainterPath" location="global"/> + <include file-name="QVarLengthArray" location="global"/> + </extra-includes> + <enum-type name="CacheModeFlag" flags="CacheMode"/> + <enum-type name="DragMode"/> + <enum-type name="OptimizationFlag" flags="OptimizationFlags"/> + <enum-type name="ViewportAnchor"/> + <enum-type name="ViewportUpdateMode"/> + <modify-function signature="setupViewport(QWidget *)" access="non-final"/> + <modify-function signature="setScene(QGraphicsScene*)"> + <modify-argument index="1"> + <reference-count action="set"/> + </modify-argument> + </modify-function> + <modify-function signature="scene()const"> + <inject-code position="end"> + <insert-template name="scene_return_parenting"/> + </inject-code> + <modify-argument index="return"> + <define-ownership owner="default"/> + </modify-argument> + </modify-function> + <modify-function signature="itemAt(int,int)const"> + <modify-argument index="return"> + <define-ownership owner="default"/> + </modify-argument> + </modify-function> + <modify-function signature="itemAt(QPoint)const"> + <modify-argument index="return"> + <define-ownership owner="default"/> + </modify-argument> + </modify-function> + <modify-function signature="drawBackground(QPainter*,QRectF)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="drawForeground(QPainter*,QRectF)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + + <!-- TODO: Support conversions on virtual function --> + <modify-function signature="drawItems(QPainter*, int, QGraphicsItem**, const QStyleOptionGraphicsItem*)"> + <modify-argument index="2"> + <remove-argument/> + <conversion-rule class="native"> + int %out = PySequence_Size(%PYARG_1); + </conversion-rule> + </modify-argument> + + <modify-argument index="3"> + <replace-type modified-type="PySequence"/> + <conversion-rule class="native"> + int numItems = PySequence_Size(%PYARG_1); + Shiboken::AutoArrayPointer<QGraphicsItem*> %out(numItems); + for (int i=0; i < numItems; i++) { + %out[i] = %CONVERTTOCPP[QGraphicsItem*](PySequence_Fast_GET_ITEM(%PYARG_1, i)); + } + </conversion-rule> + + <conversion-rule class="target"> + Shiboken::AutoDecRef object(PyList_New(0)); + for (int i=0, max=numItems; i < max; i++) { + PyList_Append(object, %CONVERTTOPYTHON[QGraphicsItem*](%in[i])); + } + PyObject *%out = object.object(); + </conversion-rule> + </modify-argument> + + <modify-argument index="4"> + <replace-type modified-type="PySequence"/> + <conversion-rule class="target"> + Shiboken::AutoDecRef option_object(PyList_New(0)); + for (int i=0, max=numItems; i < max; i++) { + const QStyleOptionGraphicsItem* item = &%in[i]; + PyList_Append(option_object, %CONVERTTOPYTHON[QStyleOptionGraphicsItem](item)); + } + PyObject* %out = option_object.object(); + </conversion-rule> + + <conversion-rule class="native"> + int numOptions = PySequence_Size(%PYARG_2); + Shiboken::AutoArrayPointer<QStyleOptionGraphicsItem> %out(numOptions); + for (int i=0; i < numOptions; i++) { + %out[i] = %CONVERTTOCPP[QStyleOptionGraphicsItem](PySequence_Fast_GET_ITEM(%PYARG_1, i)); + } + </conversion-rule> + </modify-argument> + </modify-function> + </object-type> + + <object-type name="QInputDialog"> + <enum-type name="InputDialogOption"/> + <enum-type name="InputMode"/> + + <modify-function signature="getInt(QWidget*, const QString&, const QString&, int, int, int, int, bool*, QFlags<Qt::WindowType>)" allow-thread="yes"> + <modify-argument index="8"> + <remove-default-expression/> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="fix_arg,arg,arg,arg,arg,arg,arg,bool*,arg"/> + </inject-code> + </modify-function> + + <modify-function signature="getItem(QWidget*, const QString&, const QString&, const QStringList&, int, bool, bool*, QFlags<Qt::WindowType>,QFlags<Qt::InputMethodHint>)" allow-thread="yes"> + <modify-argument index="7"> + <remove-default-expression/> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="fix_arg,arg,arg,arg,arg,arg,bool*,arg"/> + </inject-code> + </modify-function> + + <modify-function signature="getMultiLineText(QWidget*, const QString&, const QString&, const QString&, bool*, QFlags<Qt::WindowType>, QFlags<Qt::InputMethodHint>)" allow-thread="yes"> + <modify-argument index="5"> + <remove-default-expression/> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="fix_arg,arg,arg,arg,bool*,arg,arg"/> + </inject-code> + </modify-function> + + <modify-function signature="getText(QWidget*, const QString&, const QString&, QLineEdit::EchoMode, const QString&, bool*, QFlags<Qt::WindowType>,QFlags<Qt::InputMethodHint>)" allow-thread="yes"> + <modify-argument index="6"> + <remove-default-expression/> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="fix_arg,arg,arg,arg,arg,bool*,arg"/> + </inject-code> + </modify-function> + + <modify-function signature="getDouble(QWidget*, const QString&, const QString&, double, double, double, int, bool*, QFlags<Qt::WindowType>)" allow-thread="yes"> + <modify-argument index="8"> + <remove-default-expression/> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="fix_arg,arg,arg,arg,arg,arg,arg,bool*,arg"/> + </inject-code> + </modify-function> + </object-type> + + <object-type name="QGraphicsScene"> + <extra-includes> + <include file-name="QVarLengthArray" location="global"/> + </extra-includes> + <enum-type name="ItemIndexMethod"/> + <enum-type name="SceneLayer" flags="SceneLayers"/> + + <!-- Qt5: note: this was called 'obsolete'. Is that true? --> + <modify-function signature="drawItems(QPainter*,int,QGraphicsItem**,const QStyleOptionGraphicsItem*,QWidget*)" remove="all" /> + + <modify-function signature="createItemGroup(const QList<QGraphicsItem*>&)"> + <modify-argument index="1"> + <parent index="return" action="add" /> + </modify-argument> + <modify-argument index="return"> + <define-ownership owner="default"/> + </modify-argument> + </modify-function> + + <modify-function signature="destroyItemGroup(QGraphicsItemGroup*)"> + <inject-code> + QGraphicsItem* parentItem = %1->parentItem(); + Shiboken::AutoDecRef parent(%CONVERTTOPYTHON[QGraphicsItem*](parentItem)); + foreach (QGraphicsItem* item, %1->childItems()) + Shiboken::Object::setParent(parent, %CONVERTTOPYTHON[QGraphicsItem*](item)); + %BEGIN_ALLOW_THREADS + %CPPSELF.%FUNCTION_NAME(%1); + %END_ALLOW_THREADS + // the arg was destroyed by Qt. + Shiboken::Object::invalidate(%PYARG_1); + </inject-code> + </modify-function> + + <modify-function signature="contextMenuEvent(QGraphicsSceneContextMenuEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="dragEnterEvent(QGraphicsSceneDragDropEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="dragLeaveEvent(QGraphicsSceneDragDropEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="dragMoveEvent(QGraphicsSceneDragDropEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="drawBackground(QPainter*,QRectF)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="drawForeground(QPainter*,QRectF)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="dropEvent(QGraphicsSceneDragDropEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="focusInEvent(QFocusEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="focusOutEvent(QFocusEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="helpEvent(QGraphicsSceneHelpEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="inputMethodEvent(QInputMethodEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="keyPressEvent(QKeyEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="keyReleaseEvent(QKeyEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="mouseDoubleClickEvent(QGraphicsSceneMouseEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="mouseMoveEvent(QGraphicsSceneMouseEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="mousePressEvent(QGraphicsSceneMouseEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="mouseReleaseEvent(QGraphicsSceneMouseEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="wheelEvent(QGraphicsSceneWheelEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="addItem(QGraphicsItem*)"> + <modify-argument index="1"> + <parent index="this" action="add" /> + </modify-argument> + </modify-function> + + <modify-function signature="addEllipse(const QRectF&, const QPen&, const QBrush&)"> + <modify-argument index="return"> + <parent index="this" action="add" /> + </modify-argument> + </modify-function> + <modify-function signature="addEllipse(qreal, qreal, qreal, qreal, const QPen&, const QBrush&)"> + <modify-argument index="return"> + <parent index="this" action="add" /> + </modify-argument> + </modify-function> + + <modify-function signature="addLine(const QLineF&, const QPen&)"> + <modify-argument index="return"> + <parent index="this" action="add" /> + </modify-argument> + </modify-function> + <modify-function signature="addLine(qreal, qreal, qreal, qreal, const QPen&)"> + <modify-argument index="return"> + <parent index="this" action="add" /> + </modify-argument> + </modify-function> + + <modify-function signature="addPath(const QPainterPath&, const QPen&, const QBrush&)"> + <modify-argument index="return"> + <parent index="this" action="add" /> + </modify-argument> + </modify-function> + <modify-function signature="addPixmap(const QPixmap&)"> + <modify-argument index="return"> + <parent index="this" action="add" /> + </modify-argument> + </modify-function> + <modify-function signature="addPolygon(const QPolygonF&, const QPen&, const QBrush&)"> + <modify-argument index="return"> + <parent index="this" action="add" /> + </modify-argument> + </modify-function> + <modify-function signature="addRect(const QRectF&, const QPen&, const QBrush&)"> + <modify-argument index="return"> + <parent index="this" action="add" /> + </modify-argument> + </modify-function> + <modify-function signature="addRect(qreal, qreal, qreal, qreal, const QPen&, const QBrush&)"> + <modify-argument index="return"> + <parent index="this" action="add" /> + </modify-argument> + </modify-function> + + <modify-function signature="addText(const QString&, const QFont&)"> + <modify-argument index="return"> + <parent index="this" action="add" /> + </modify-argument> + </modify-function> + <modify-function signature="addSimpleText(const QString&, const QFont&)"> + <modify-argument index="return"> + <parent index="this" action="add" /> + </modify-argument> + </modify-function> + + <modify-function signature="addWidget(QWidget*,QFlags<Qt::WindowType>)"> + <!-- TODO: Add a keeper attribute to reference-count tag to do what this inject code do. --> + <inject-code> + %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(%1, %2); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + Shiboken::Object::keepReference((SbkObject*)%PYARG_0, "setWidget(QWidget*)1", %PYARG_1); + </inject-code> + </modify-function> + + <!-- use glue code --> + <modify-function signature="drawItems(QPainter*, int, QGraphicsItem**, const QStyleOptionGraphicsItem*, QWidget *)"> + <modify-argument index="2"> + <remove-argument/> + </modify-argument> + </modify-function> + + <modify-function signature="clear()"> + <inject-code> + const QList<QGraphicsItem*> items = %CPPSELF.items(); + Shiboken::BindingManager& bm = Shiboken::BindingManager::instance(); + foreach (QGraphicsItem* 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(); + </inject-code> + </modify-function> + + <modify-function signature="removeItem(QGraphicsItem*)"> + <modify-argument index="1"> + <parent index="this" action="remove" /> + </modify-argument> + </modify-function> + + <modify-function signature="setFocusItem(QGraphicsItem*,Qt::FocusReason)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + + <object-type name="QCalendarWidget"> + <enum-type name="HorizontalHeaderFormat"/> + <enum-type name="SelectionMode"/> + <enum-type name="VerticalHeaderFormat"/> + <extra-includes> + <include file-name="QTextCharFormat" location="global"/> + </extra-includes> + <modify-function signature="paintCell(QPainter*,QRect,QDate)const"> + <modify-argument invalidate-after-use="yes" index="1"/> + </modify-function> + </object-type> + <object-type name="QTreeWidget"> + <modify-function signature="dropMimeData(QTreeWidgetItem*,int,const QMimeData*,Qt::DropAction)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="addTopLevelItem(QTreeWidgetItem *)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addTopLevelItems(const QList<QTreeWidgetItem*> &)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addTopLevelItem(QTreeWidgetItem*)"> + <modify-argument index="1"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertTopLevelItem(int, QTreeWidgetItem *)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertTopLevelItems(int, const QList<QTreeWidgetItem*> &)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setHeaderItem(QTreeWidgetItem*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="takeTopLevelItem(int)"> + <modify-argument index="return"> + <define-ownership owner="default"/> + <parent index="this" action="remove"/> + </modify-argument> + </modify-function> + <modify-function signature="clear()"> + <inject-code> + QTreeWidgetItem *rootItem = %CPPSELF.invisibleRootItem(); + Shiboken::BindingManager &bm = Shiboken::BindingManager::instance(); + for (int i = 0; i < rootItem->childCount(); ++i) { + QTreeWidgetItem *item = rootItem->child(i); + SbkObject* wrapper = bm.retrieveWrapper(item); + if (wrapper) + Shiboken::Object::setParent(0, reinterpret_cast<PyObject*>(wrapper)); + } + </inject-code> + </modify-function> + </object-type> + <object-type name="QAbstractItemDelegate"> + <enum-type name="EndEditHint"/> + <modify-function signature="paint(QPainter*,QStyleOptionViewItem,QModelIndex)const"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="editorEvent(QEvent*,QAbstractItemModel*,QStyleOptionViewItem,QModelIndex)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="createEditor(QWidget*,QStyleOptionViewItem,QModelIndex)const"> + <modify-argument index="1"> + <define-ownership owner="c++"/> + </modify-argument> + <modify-argument index="return"> + <define-ownership class="native" owner="c++"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QTableWidgetItem" > + <enum-type name="ItemType"/> + <modify-function signature="read(QDataStream&)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="write(QDataStream&)const"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + </object-type> + <object-type name="QListWidgetItem" > + <enum-type name="ItemType"/> + <modify-function signature="QListWidgetItem(const QString&, QListWidget*, int)"> + <modify-argument index="this"> + <parent index="2" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="QListWidgetItem(const QIcon&, const QString&, QListWidget*, int)"> + <modify-argument index="this"> + <parent index="3" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="QListWidgetItem(QListWidget*, int)"> + <modify-argument index="this"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="listWidget() const"> + <modify-argument index="return"> + <define-ownership owner="target"/> + </modify-argument> + </modify-function> + <modify-function signature="read(QDataStream&)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="write(QDataStream&)const"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + </object-type> + <object-type name="QGraphicsTextItem"> + <!-- a QObject so main-thread delete redundant --> + <extra-includes> + <include file-name="QTextCursor" location="global"/> + </extra-includes> + <modify-function signature="setDocument(QTextDocument*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QCompleter"> + <enum-type name="CompletionMode"/> + <enum-type name="ModelSorting"/> + <modify-function signature="setModel(QAbstractItemModel*)"> + <modify-argument index="1"> + <reference-count action="set"/> + </modify-argument> + </modify-function> + <modify-function signature="setPopup(QAbstractItemView*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setWidget(QWidget*)"> + <modify-argument index="this"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QTreeWidgetItem" hash-function="qHash"> + <enum-type name="ChildIndicatorPolicy"/> + <enum-type name="ItemType"/> + <modify-function signature="read(QDataStream&)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="write(QDataStream&)const"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="QTreeWidgetItem(QTreeWidget*, int)"> + <modify-argument index="this"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="QTreeWidgetItem(QTreeWidget*, const QStringList&, int)"> + <modify-argument index="this"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="QTreeWidgetItem(QTreeWidget*, QTreeWidgetItem*, int)"> + <modify-argument index="this"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="QTreeWidgetItem(QTreeWidgetItem *,int)"> + <modify-argument index="this"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="QTreeWidgetItem(QTreeWidgetItem*, const QStringList &, int)"> + <modify-argument index="this"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="QTreeWidgetItem(QTreeWidgetItem*, QTreeWidgetItem*, int)"> + <modify-argument index="this"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addChild(QTreeWidgetItem *)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addChildren(const QList<QTreeWidgetItem*> &)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertChild(int, QTreeWidgetItem *)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertChildren(int, const QList<QTreeWidgetItem*> &)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="removeChild(QTreeWidgetItem*)"> + <modify-argument index="1"> + <parent index="this" action="remove"/> + </modify-argument> + </modify-function> + <modify-function signature="takeChild(int)"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="takeChildren()"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="parent() const"> + <modify-argument index="return"> + <define-ownership class="target" owner="default"/> + </modify-argument> + <inject-code class="target" position="end"> + // Only call the parent function if this return some value + // the parent can be the TreeWidget + if (%0) + Shiboken::Object::setParent(%PYARG_0, %PYSELF); + </inject-code> + </modify-function> + <modify-function signature="treeWidget() const"> + <modify-argument index="return"> + <define-ownership class="target" owner="default"/> + </modify-argument> + <inject-code class="target" position="end"> + // Only call the parent function if this return some value + // the parent can be the TreeWidgetItem + if (%0) + Shiboken::Object::setParent(%PYARG_0, %PYSELF); + </inject-code> + </modify-function> + + </object-type> + <object-type name="QListWidget"> + <modify-function signature="setItemWidget(QListWidgetItem *, QWidget *)"> + <modify-argument index="2"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addItem(QListWidgetItem*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertItem(int, QListWidgetItem*)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="takeItem(int)"> + <modify-argument index="return"> + <define-ownership owner="default"/> + <parent index="this" action="remove"/> + </modify-argument> + </modify-function> + </object-type> + + <object-type name="QWidget"> + <!-- Qt5: remove native event for now --> + <modify-function signature="nativeEvent(const QByteArray &, void *, long *)" remove="all" /> + + <extra-includes> + <include file-name="QIcon" location="global"/> + <include file-name="QMessageBox" location="global"/> + </extra-includes> + + <inject-code class="native" file="glue/qwidget_glue.cpp" position="beginning" /> + + <enum-type name="RenderFlag" flags="RenderFlags"/> + + <modify-function signature="setParent(QWidget*)"> + <modify-argument index="this"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + + <modify-function signature="setParent(QWidget*, QFlags<Qt::WindowType>)"> + <modify-argument index="this"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + + <modify-function signature="parentWidget()const"> + <modify-argument index="this"> + <parent index="return" action="add"/> + </modify-argument> + <modify-argument index="return"> + <define-ownership class="target" owner="default"/> + </modify-argument> + </modify-function> + + <modify-function signature="actionEvent(QActionEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="changeEvent(QEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="closeEvent(QCloseEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="contextMenuEvent(QContextMenuEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="dragEnterEvent(QDragEnterEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="dragLeaveEvent(QDragLeaveEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="dragMoveEvent(QDragMoveEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="dropEvent(QDropEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="enterEvent(QEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="focusInEvent(QFocusEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="focusOutEvent(QFocusEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="hideEvent(QHideEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="inputMethodEvent(QInputMethodEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="keyPressEvent(QKeyEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="keyReleaseEvent(QKeyEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="leaveEvent(QEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="mouseDoubleClickEvent(QMouseEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="mouseMoveEvent(QMouseEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="mousePressEvent(QMouseEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="mouseReleaseEvent(QMouseEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="moveEvent(QMoveEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="paintEvent(QPaintEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="resizeEvent(QResizeEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="showEvent(QShowEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="tabletEvent(QTabletEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + <modify-function signature="wheelEvent(QWheelEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"> + <rename to="event"/> + </modify-argument> + </modify-function> + + <modify-function signature="setStyle(QStyle*)"> + <inject-code class="target" position="end"> + Shiboken::Object::keepReference(reinterpret_cast<SbkObject*>(%PYSELF), "__style__", %PYARG_1); + </inject-code> + </modify-function> + <modify-function signature="style()const"> + <inject-code class="target" position="end"> + 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); + } + } + </inject-code> + <modify-argument index="return"> + <define-ownership owner="default"/> + </modify-argument> + </modify-function> + + <modify-function signature="render(QPainter*,QPoint,QRegion,QFlags<QWidget::RenderFlag>)"> + <modify-argument index="2"> + <!-- Removed because the render(QPainter*) overload conflicts with the identical function in QGraphicsView --> + <remove-default-expression/> + </modify-argument> + </modify-function> + <modify-function signature="setFocusProxy(QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + + <modify-function signature="getContentsMargins(int*,int*,int*,int*)const"> + <modify-argument index="0"> + <replace-type modified-type="PyObject" /> + </modify-argument> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <modify-argument index="2"> + <remove-argument/> + </modify-argument> + <modify-argument index="3"> + <remove-argument/> + </modify-argument> + <modify-argument index="4"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="fix_number*,number*,number*,number*"> + <replace from="$TYPE" to="int" /> + </insert-template> + </inject-code> + <inject-code class="native" position="end"> + <insert-template name="fix_native_return_number*,number*,number*,number*"> + <replace from="$TYPE" to="int" /> + </insert-template> + </inject-code> + </modify-function> + <modify-function signature="insertAction(QAction*, QAction*)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + + <modify-function signature="setLayout(QLayout *)"> + <inject-code class="target" position="beginning"> + qwidgetSetLayout(%CPPSELF, %1); + // %FUNCTION_NAME() - disable generation of function call. + </inject-code> + </modify-function> + <modify-function signature="raise()" rename="raise_" /> + <modify-function signature="setParent(QWidget*, QFlags<Qt::WindowType>)"> + <modify-argument index="this"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + + <modify-function signature="window()const"> + <modify-argument index="return"> + <define-ownership class="target" owner="default"/> + </modify-argument> + </modify-function> + </object-type> + + <object-type name="QMessageBox"> + <enum-type name="ButtonRole"/> + <enum-type name="Icon"/> + <enum-type name="StandardButton" flags="StandardButtons" /> + <modify-function signature="removeButton(QAbstractButton*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <extra-includes> + <include file-name="QPixmap" location="global"/> + </extra-includes> + + <modify-function signature="critical(QWidget*, const QString&, const QString&, QFlags<QMessageBox::StandardButton>, QMessageBox::StandardButton)" allow-thread="yes"/> + <modify-function signature="information(QWidget*, const QString&, const QString&, QFlags<QMessageBox::StandardButton>, QMessageBox::StandardButton)" allow-thread="yes"/> + <modify-function signature="question(QWidget*, const QString&, const QString&, QFlags<QMessageBox::StandardButton>, QMessageBox::StandardButton)" allow-thread="yes"/> + <modify-function signature="warning(QWidget*, const QString&, const QString&, QFlags<QMessageBox::StandardButton>, QMessageBox::StandardButton)" allow-thread="yes"/> + <modify-function signature="QMessageBox(const QString&, const QString&, QMessageBox::Icon, int, int, int, QWidget*, QFlags<Qt::WindowType>)" remove="all"/> + <modify-function signature="critical(QWidget*, const QString&, const QString&, int, int, int)" remove="all"/> + <modify-function signature="critical(QWidget*, const QString&, const QString&, const QString&, const QString&, const QString&, int, int)" remove="all"/> + <modify-function signature="information(QWidget*, const QString&, const QString&, int, int, int)" remove="all"/> + <modify-function signature="information(QWidget*, const QString&, const QString&, const QString&, const QString&, const QString&, int, int)" remove="all"/> + <modify-function signature="question(QWidget*, const QString&, const QString&, int, int, int)" remove="all"/> + <modify-function signature="question(QWidget*, const QString&, const QString&, const QString&, const QString&, const QString&, int, int)" remove="all"/> + <modify-function signature="warning(QWidget*, const QString&, const QString&, int, int, int)" remove="all"/> + <modify-function signature="warning(QWidget*, const QString&, const QString&, const QString&, const QString&, const QString&, int, int)" remove="all"/> + + </object-type> + <object-type name="QAbstractSpinBox"> + <enum-type name="ButtonSymbols"/> + <enum-type name="CorrectionMode"/> + <enum-type name="StepEnabledFlag" flags="StepEnabled"/> + <modify-function signature="setLineEdit(QLineEdit *)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="fixup(QString &)const"> + <modify-argument index="return"> + <replace-type modified-type="QString"/> + </modify-argument> + <inject-code class="target" position="end"> + <insert-template name="return_QString"/> + </inject-code> + </modify-function> + <modify-function signature="validate(QString &, int &)const"> + <modify-argument index="return"> + <replace-type modified-type="PyObject"/> + <conversion-rule class="native"> + <insert-template name="validator_conversionrule"/> + </conversion-rule> + </modify-argument> + <inject-code class="target" position="end"> + <insert-template name="return_tuple_QValidator_QString_int"/> + </inject-code> + </modify-function> + </object-type> + + <object-type name="QTabWidget"> + <enum-type name="TabPosition"/> + <enum-type name="TabShape"/> + <modify-function signature="addTab(QWidget*, const QString&)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addTab(QWidget*, const QIcon&, const QString&)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertTab(int, QWidget*, const QIcon&, const QString&)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertTab(int, QWidget*, const QString&)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setCornerWidget(QWidget*, Qt::Corner)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setTabBar(QTabBar*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + + <!-- This function need be re-implemented in inject code --> + <modify-function signature="removeTab(int)"> + <inject-code class="target" position="beginning"> + QWidget* tab = %CPPSELF.widget(%1); + if (tab) { + Shiboken::AutoDecRef pyWidget(%CONVERTTOPYTHON[QWidget*](tab)); + %CPPSELF.%FUNCTION_NAME(%1); + } + </inject-code> + </modify-function> + <modify-function signature="clear()"> + <inject-code class="target" position="beginning"> + for (int i = 0; i < %CPPSELF.count(); i++) { + QWidget* widget = %CPPSELF.widget(i); + Shiboken::AutoDecRef pyWidget(%CONVERTTOPYTHON[QWidget*](widget)); + Shiboken::Object::setParent(0, pyWidget); + } + %CPPSELF.%FUNCTION_NAME(); + </inject-code> + </modify-function> + </object-type> + <object-type name="QDateTimeEdit"> + <enum-type name="Section" flags="Sections"/> + <modify-function signature="setCalendarWidget(QCalendarWidget*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QSlider"> + <enum-type name="TickPosition" /> + </object-type> + <object-type name="QProgressDialog"> + <modify-function signature="setBar(QProgressBar*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setLabel(QLabel*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setCancelButton(QPushButton*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QLabel"> + <modify-function signature="setBuddy(QWidget *)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + + <modify-function signature="setMovie(QMovie *)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + + <object-type name="QFileDialog"> + <enum-type name="AcceptMode"/> + <enum-type name="DialogLabel"/> + <enum-type name="FileMode"/> + <enum-type name="Option" flags="Options"/> + <enum-type name="ViewMode"/> + <extra-includes> + <include file-name="QUrl" location="global"/> + <include file-name="QAbstractProxyModel" location="global"/> + </extra-includes> + <modify-function signature="setIconProvider(QFileIconProvider*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setItemDelegate(QAbstractItemDelegate*)"> + <modify-argument index="1"> + <reference-count action="set"/> + </modify-argument> + </modify-function> + + <modify-function signature="getExistingDirectory(QWidget*, const QString&, const QString&, QFlags<QFileDialog::Option>)" allow-thread="yes" /> + <modify-function signature="getExistingDirectoryUrl(QWidget*, const QString&, const QUrl&, QFlags<QFileDialog::Option>, const QStringList&)" /> + <modify-function signature="getOpenFileName(QWidget*, const QString&, const QString&, const QString&, QString*, QFlags<QFileDialog::Option>)" allow-thread="yes"> + <modify-argument index="return"> + <replace-type modified-type="(fileName, selectedFilter)"/> + </modify-argument> + <modify-argument index="5"> + <replace-type modified-type="QString"/> + <replace-default-expression with="QString()"/> + </modify-argument> + <inject-code class="target" position="end"> + <insert-template name="return_for_QFileDialog"/> + </inject-code> + </modify-function> + <modify-function signature="getOpenFileNames(QWidget*, const QString&, const QString&, const QString&, QString*, QFlags<QFileDialog::Option>)" allow-thread="yes"> + <modify-argument index="return"> + <replace-type modified-type="(fileNames, selectedFilter)"/> + </modify-argument> + <modify-argument index="5"> + <replace-type modified-type="QString"/> + <replace-default-expression with="QString()"/> + </modify-argument> + <inject-code class="target" position="end"> + <insert-template name="return_for_QFileDialog"/> + </inject-code> + </modify-function> + + <modify-function signature="getOpenFileUrl(QWidget*, const QString&, const QUrl&, const QString&, QString*, QFlags<QFileDialog::Option>, const QStringList&)" allow-thread="yes"> + <modify-argument index="return"> + <replace-type modified-type="(fileName, selectedFilter)"/> + </modify-argument> + <modify-argument index="5"> + <replace-type modified-type="QString"/> + <replace-default-expression with="QString()"/> + </modify-argument> + <inject-code class="target" position="end"> + <insert-template name="return_for_QFileDialog"/> + </inject-code> + </modify-function> + + <modify-function signature="getOpenFileUrls(QWidget*, const QString&, const QUrl&, const QString&, QString *, QFlags<QFileDialog::Option>, const QStringList&)" allow-thread="yes"> + <modify-argument index="return"> + <replace-type modified-type="(fileName, selectedFilter)"/> + </modify-argument> + <modify-argument index="5"> + <replace-type modified-type="QString"/> + <replace-default-expression with="QString()"/> + </modify-argument> + <inject-code class="target" position="end"> + <insert-template name="return_for_QFileDialog"/> + </inject-code> + </modify-function> + + <modify-function signature="getSaveFileName(QWidget*, const QString&, const QString&, const QString&, QString*, QFlags<QFileDialog::Option>)" allow-thread="yes"> + <modify-argument index="return"> + <replace-type modified-type="(fileName, selectedFilter)"/> + </modify-argument> + <modify-argument index="5"> + <replace-type modified-type="QString"/> + <replace-default-expression with="QString()"/> + </modify-argument> + <inject-code class="target" position="end"> + <insert-template name="return_for_QFileDialog"/> + </inject-code> + </modify-function> + + <modify-function signature="getSaveFileUrl(QWidget*, const QString&, const QUrl&, const QString&, QString*, QFlags<QFileDialog::Option>, const QStringList&)" allow-thread="yes"> + <modify-argument index="return"> + <replace-type modified-type="(fileName, selectedFilter)"/> + </modify-argument> + <modify-argument index="5"> + <replace-type modified-type="QString"/> + <replace-default-expression with="QString()"/> + </modify-argument> + <inject-code class="target" position="end"> + <insert-template name="return_for_QFileDialog"/> + </inject-code> + </modify-function> + + </object-type> + + <object-type name="QErrorMessage"/> + <object-type name="QTabBar"> + <extra-includes> + <include file-name="QIcon" location="global"/> + </extra-includes> + <enum-type name="Shape"/> + <enum-type name="SelectionBehavior"/> + <enum-type name="ButtonPosition"/> + </object-type> + <object-type name="QRadioButton" /> + <object-type name="QScrollBar" /> + <object-type name="QAbstractScrollArea"> + <enum-type name="SizeAdjustPolicy"/> + <modify-function signature="setViewport(QWidget *)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addScrollBarWidget(QWidget*,QFlags<Qt::AlignmentFlag>)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setCornerWidget(QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setHorizontalScrollBar(QScrollBar*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setVerticalScrollBar(QScrollBar*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setViewport(QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setupViewport(QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="viewportEvent(QEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + </object-type> + <object-type name="QRubberBand"> + <enum-type name="Shape"/> + <modify-function signature="QRubberBand(QRubberBand::Shape, QWidget*)"> + <modify-argument index="this"> + <parent index="2" action="add"/> + </modify-argument> + <modify-argument index="2"> + <rename to="parent"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QTableWidget"> + <modify-function signature="setHorizontalHeaderItem(int, QTableWidgetItem *)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setItem(int, int, QTableWidgetItem *)"> + <modify-argument index="3"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="takeHorizontalHeaderItem(int)"> + <modify-argument index="return"> + <parent index="this" action="remove"/> + </modify-argument> + </modify-function> + <modify-function signature="takeVerticalHeaderItem(int)"> + <modify-argument index="return"> + <parent index="this" action="remove"/> + </modify-argument> + </modify-function> + <modify-function signature="takeItem(int,int)"> + <modify-argument index="return"> + <parent index="this" action="remove"/> + </modify-argument> + </modify-function> + <modify-function signature="setItemPrototype(const QTableWidgetItem *)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setVerticalHeaderItem(int, QTableWidgetItem *)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setCellWidget(int,int,QWidget*)"> + <modify-argument index="3"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setCurrentItem(QTableWidgetItem*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setCurrentItem(QTableWidgetItem*,QFlags<QItemSelectionModel::SelectionFlag>)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QSplitter"> + <modify-function signature="getRange(int,int*,int*)const"> + <modify-argument index="0"> + <replace-type modified-type="PyObject" /> + </modify-argument> + <modify-argument index="2"> + <remove-argument/> + </modify-argument> + <modify-argument index="3"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="fix_args,number*,number*"> + <replace from="$TYPE" to="int" /> + </insert-template> + </inject-code> + </modify-function> + <modify-function signature="addWidget(QWidget *)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertWidget(int, QWidget *)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QGroupBox" /> + <object-type name="QStackedWidget"> + <modify-function signature="addWidget(QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertWidget(int,QWidget*)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="removeWidget(QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="remove"/> + </modify-argument> + </modify-function> + <modify-function signature="setCurrentWidget(QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QSplitterHandle"/> + <object-type name="QDial" /> + <object-type name="QKeySequenceEdit"/> + <object-type name="QLineEdit"> + <enum-type name="ActionPosition"/> + <enum-type name="EchoMode"/> + <modify-function signature="setCompleter(QCompleter*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setValidator(const QValidator*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="del()" rename="del_" /> + <modify-function signature="getTextMargins(int*, int*, int*, int*) const"> + <modify-argument index="0"> + <replace-type modified-type="PyObject *" /> + </modify-argument> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <modify-argument index="2"> + <remove-argument/> + </modify-argument> + <modify-argument index="3"> + <remove-argument/> + </modify-argument> + <modify-argument index="4"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="fix_number*,number*,number*,number*"> + <replace from="$TYPE" to="int" /> + </insert-template> + </inject-code> + </modify-function> + + <add-function signature="addAction(QAction*)"> + <inject-code class="target" position="beginning"> + %CPPSELF.addAction(%1); + </inject-code> + </add-function> + + </object-type> + <object-type name="QLCDNumber"> + <enum-type name="Mode"/> + <enum-type name="SegmentStyle"/> + </object-type> + <object-type name="QOpenGLWidget"> + <enum-type name="UpdateBehavior"/> + </object-type> + <object-type name="QSplashScreen"> + <!-- Override QWidget.painter --> + <modify-function signature="repaint()" remove="all"/> + <modify-function signature="drawContents(QPainter*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + </object-type> + <object-type name="QDockWidget"> + <enum-type name="DockWidgetFeature" flags="DockWidgetFeatures"/> + <modify-function signature="setTitleBarWidget(QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setWidget(QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QDesktopWidget"/> + <object-type name="QFrame"> + <enum-type name="Shadow" extensible="yes"/> + <enum-type name="Shape"/> + <enum-type name="StyleMask"/> + </object-type> + <object-type name="QSpinBox"> + <modify-function signature="valueChanged(int)"> + <inject-documentation mode="append" format="target"> +:: + + def callback_int(value_as_int): + print 'int value changed:', repr(value_as_int) + + app = QApplication(sys.argv) + spinbox = QSpinBox() + spinbox.valueChanged[unicode].connect(callback_unicode) + spinbox.show() + sys.exit(app.exec_()) + </inject-documentation> + </modify-function> + <modify-function signature="valueChanged(QString)"> + <inject-documentation mode="append" format="target"> +:: + + def callback_unicode(value_as_unicode): + print 'unicode value changed:', repr(value_as_unicode) + + app = QApplication(sys.argv) + spinbox = QSpinBox() + spinbox.valueChanged[unicode].connect(callback_unicode) + spinbox.show() + sys.exit(app.exec_()) + </inject-documentation> + </modify-function> + </object-type> + <object-type name="QTextBrowser"/> + <object-type name="QDoubleSpinBox"/> + <object-type name="QButtonGroup"> + <modify-function signature="addButton(QAbstractButton*, int)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + <no-null-pointer/> + </modify-argument> + </modify-function> + <modify-function signature="removeButton(QAbstractButton *)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + <no-null-pointer/> + </modify-argument> + </modify-function> + <modify-function signature="setId(QAbstractButton *,int)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QToolBar"> + <modify-function signature="addAction(QIcon,QString,const QObject*,const char*)"> + <modify-argument index="3"> + <replace-type modified-type="PyObject" /> + </modify-argument> + <modify-argument index="4"> + <remove-argument /> + </modify-argument> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + + <inject-code> + QAction* action = %CPPSELF.addAction(%1, %2); + %PYARG_0 = %CONVERTTOPYTHON[QAction*](action); + Shiboken::AutoDecRef result(PyObject_CallMethod(%PYARG_0, "connect", "OsO", %PYARG_0, SIGNAL(triggered()), %PYARG_3)); + </inject-code> + </modify-function> + <modify-function signature="addAction(QString,const QObject*,const char*)"> + <modify-argument index="2"> + <replace-type modified-type="PyObject" /> + </modify-argument> + <modify-argument index="3"> + <remove-argument /> + </modify-argument> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + <inject-code> + QAction* action = %CPPSELF.addAction(%1); + %PYARG_0 = %CONVERTTOPYTHON[QAction*](action); + Shiboken::AutoDecRef result(PyObject_CallMethod(%PYARG_0, "connect", "OsO", %PYARG_0, SIGNAL(triggered()), %PYARG_2)); + </inject-code> + </modify-function> + <modify-function signature="addAction(const QString&)"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addAction(const QIcon&, const QString&)"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <add-function signature="addAction(QAction*)"> + <inject-code class="target" position="beginning"> + %CPPSELF.addAction(%1); + </inject-code> + </add-function> + <modify-function signature="addSeparator()"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addWidget(QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertWidget(QAction*,QWidget*)"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertSeparator(QAction*)"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="clear()"> + <inject-code> + QList<PyObject* > lst; + Shiboken::BindingManager& bm = Shiboken::BindingManager::instance(); + foreach(QToolButton* child, %CPPSELF.findChildren<QToolButton*>()) { + if (bm.hasWrapper(child)) { + PyObject* pyChild = %CONVERTTOPYTHON[QToolButton*](child); + Shiboken::Object::setParent(0, pyChild); + lst << pyChild; + } + } + + //Remove actions + foreach(QAction *act, %CPPSELF.actions()) { + Shiboken::AutoDecRef pyAct(%CONVERTTOPYTHON[QAction*](act)); + Shiboken::Object::setParent(NULL, pyAct); + Shiboken::Object::invalidate(pyAct); + } + + %CPPSELF.clear(); + foreach(PyObject* obj, lst) { + Shiboken::Object::invalidate(reinterpret_cast<SbkObject* >(obj)); + Py_XDECREF(obj); + } + </inject-code> + </modify-function> + </object-type> + <object-type name="QComboBox"> + <enum-type name="InsertPolicy"/> + <enum-type name="SizeAdjustPolicy"/> + <modify-function signature="setCompleter(QCompleter*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setValidator(const QValidator*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setItemDelegate(QAbstractItemDelegate *)"> + <modify-argument index="1"> + <reference-count action="set"/> + <no-null-pointer/> + </modify-argument> + </modify-function> + <modify-function signature="setView(QAbstractItemView *)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setLineEdit(QLineEdit *)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setModel(QAbstractItemModel *)"> + <modify-argument index="1"> + <no-null-pointer/> + <reference-count action="set"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QTextEdit"> + <enum-type name="AutoFormattingFlag" flags="AutoFormatting"/> + <enum-type name="LineWrapMode"/> + <value-type name="ExtraSelection" > + <include file-name="QTextEdit" location="global"/> + </value-type> + <extra-includes> + <include file-name="QTextCursor" location="global"/> + </extra-includes> + <modify-function signature="setDocument(QTextDocument*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertFromMimeData(const QMimeData*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="print(QPagedPaintDevice*) const" rename="print_"/> + </object-type> + <object-type name="QAction"> + <enum-type name="ActionEvent"/> + <enum-type name="MenuRole"/> + <enum-type name="Priority" since="4.6"/> + <modify-function signature="setMenu(QMenu*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + + <!-- qApp macro --> + <inject-code class="native" position="beginning"> + PyObject* moduleQtWidgets; + </inject-code> + <inject-code class="target" file="glue/qtwidgets_qapp.cpp" position="end" /> + <object-type name="QApplication"> + <enum-type name="ColorSpec"/> + <extra-includes> + <include file-name="QBasicTimer" location="global"/> + <include file-name="QFont" location="global"/> + <include file-name="QFontMetrics" location="global"/> + <include file-name="QPalette" location="global"/> + <include file-name="QIcon" location="global"/> + <include file-name="QLocale" location="global"/> + <include file-name="QStyle" location="global"/> + </extra-includes> + <modify-function signature="QApplication(int&,char**,int)" access="private" /> + <add-function signature="QApplication(PySequence)"> + <inject-code> + QApplicationConstructor(%PYSELF, %1, &%0); + </inject-code> + </add-function> + <modify-function signature="exec()" rename="exec_" allow-thread="yes"/> + <inject-code class="native" file="glue/qapplication_init.cpp" position="beginning" /> + + <!-- ownership control transfer to qApp --> + <modify-function signature="setStyle(QStyle*)"> + <inject-code class="target" position="end"> + Shiboken::Object::setParent(%CONVERTTOPYTHON[QApplication*](qApp), %PYARG_1); + </inject-code> + </modify-function> + <modify-function signature="style()"> + <inject-code class="target" position="end"> + <insert-template name="set_qapp_parent_for_orphan"/> + </inject-code> + </modify-function> + <modify-function signature="desktop()"> + <inject-code class="target" position="end"> + <insert-template name="set_qapp_parent_for_orphan"/> + </inject-code> + </modify-function> + <modify-function signature="focusWidget()"> + <inject-code class="target" position="end"> + <insert-template name="set_qapp_parent_for_orphan"/> + </inject-code> + </modify-function> + <modify-function signature="topLevelAt(const QPoint&)"> + <inject-code class="target" position="end"> + <insert-template name="set_qapp_parent_for_orphan"/> + </inject-code> + </modify-function> + <modify-function signature="topLevelAt(int, int)"> + <inject-code class="target" position="end"> + <insert-template name="set_qapp_parent_for_orphan"/> + </inject-code> + </modify-function> + <modify-function signature="widgetAt(const QPoint&)"> + <inject-code class="target" position="end"> + <insert-template name="set_qapp_parent_for_orphan"/> + </inject-code> + </modify-function> + <modify-function signature="widgetAt(int, int)"> + <inject-code class="target" position="end"> + <insert-template name="set_qapp_parent_for_orphan"/> + </inject-code> + </modify-function> + </object-type> + + <object-type name="QCommandLinkButton"/> + <object-type name="QFileSystemModel" polymorphic-id-expression="qobject_cast<QFileSystemModel*>(%1)"> + <enum-type name="Roles"/> + <modify-function signature="setIconProvider(QFileIconProvider*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QFormLayout"> + <inject-code class="native" position="beginning" file="glue/qlayout_help_functions.cpp"/> + + <enum-type name="FieldGrowthPolicy"/> + <enum-type name="ItemRole"/> + <enum-type name="RowWrapPolicy"/> + + <template name="fix_args,int*,ItemRole*"> + int _row; + QFormLayout::ItemRole _role; + %BEGIN_ALLOW_THREADS + %CPPSELF->%FUNCTION_NAME(%ARGUMENT_NAMES, &_row, &_role); + %END_ALLOW_THREADS + %PYARG_0 = PyTuple_New(2); + PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[int](_row)); + PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QFormLayout::ItemRole](_role)); + </template> + + <modify-function signature="getLayoutPosition(QLayout*,int*,QFormLayout::ItemRole*)const"> + <modify-argument index="0"> + <replace-type modified-type="PyObject" /> + </modify-argument> + <modify-argument index="2"> + <remove-argument/> + </modify-argument> + <modify-argument index="3"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="fix_args,int*,ItemRole*"/> + </inject-code> + </modify-function> + <modify-function signature="getWidgetPosition(QWidget*,int*,QFormLayout::ItemRole*)const"> + <modify-argument index="0"> + <replace-type modified-type="PyObject" /> + </modify-argument> + <modify-argument index="2"> + <remove-argument/> + </modify-argument> + <modify-argument index="3"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="fix_args,int*,ItemRole*"/> + </inject-code> + </modify-function> + <modify-function signature="getItemPosition(int,int*,QFormLayout::ItemRole*)const"> + <modify-argument index="0"> + <replace-type modified-type="PyObject" /> + </modify-argument> + <modify-argument index="2"> + <remove-argument/> + </modify-argument> + <modify-argument index="3"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="fix_args,int*,ItemRole*"/> + </inject-code> + </modify-function> + + <modify-function signature="addRow(QWidget*,QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addRow(QLayout*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addRow(QWidget*,QLayout*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addRow(QWidget*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addRow(QString,QLayout*)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addRow(QString,QWidget*)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertRow(int,QLayout*)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertRow(int,QWidget*,QLayout*)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + <modify-argument index="3"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertRow(int,QWidget*,QWidget*)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + <modify-argument index="3"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertRow(int,QWidget*)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertRow(int,QString,QLayout*)"> + <modify-argument index="3"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertRow(int,QString,QWidget*)"> + <modify-argument index="3"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setLayout(int,QFormLayout::ItemRole,QLayout*)"> + <modify-argument index="3"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setWidget(int,QFormLayout::ItemRole,QWidget*)"> + <modify-argument index="3"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setItem(int,QFormLayout::ItemRole,QLayoutItem*)"> + <modify-argument index="3"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QGraphicsGridLayout" > + <modify-function signature="addItem(QGraphicsLayoutItem*,int,int,QFlags<Qt::AlignmentFlag>)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="addItem(QGraphicsLayoutItem*,int,int,int,int,QFlags<Qt::AlignmentFlag>)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setAlignment(QGraphicsLayoutItem*,QFlags<Qt::AlignmentFlag>)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QGraphicsLayout"> + <modify-function signature="getContentsMargins(qreal*,qreal*,qreal*,qreal*)const"> + <modify-argument index="0"> + <replace-type modified-type="PyObject" /> + </modify-argument> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <modify-argument index="2"> + <remove-argument/> + </modify-argument> + <modify-argument index="3"> + <remove-argument/> + </modify-argument> + <modify-argument index="4"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="fix_number*,number*,number*,number*"> + <replace from="$TYPE" to="qreal" /> + </insert-template> + </inject-code> + <inject-code class="native" position="end"> + <insert-template name="fix_native_return_number*,number*,number*,number*"> + <replace from="$TYPE" to="qreal" /> + </insert-template> + </inject-code> + </modify-function> + <modify-function signature="widgetEvent(QEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + </object-type> + <object-type name="QGraphicsLayoutItem" copyable="false"> + <modify-function signature="getContentsMargins(qreal*,qreal*,qreal*,qreal*)const"> + <modify-argument index="0"> + <replace-type modified-type="PyObject" /> + </modify-argument> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <modify-argument index="2"> + <remove-argument/> + </modify-argument> + <modify-argument index="3"> + <remove-argument/> + </modify-argument> + <modify-argument index="4"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="fix_number*,number*,number*,number*"> + <replace from="$TYPE" to="qreal" /> + </insert-template> + </inject-code> + <inject-code class="native" position="end"> + <insert-template name="fix_native_return_number*,number*,number*,number*"> + <replace from="$TYPE" to="qreal" /> + </insert-template> + </inject-code> + </modify-function> + <modify-function signature="setParentLayoutItem(QGraphicsLayoutItem*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QGraphicsLinearLayout" > + <modify-function signature="addItem(QGraphicsLayoutItem*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertItem(int,QGraphicsLayoutItem*)"> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="removeItem(QGraphicsLayoutItem*)"> + <modify-argument index="1"> + <parent index="this" action="remove"/> + </modify-argument> + </modify-function> + <modify-function signature="setAlignment(QGraphicsLayoutItem*,QFlags<Qt::AlignmentFlag>)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setStretchFactor(QGraphicsLayoutItem*,int)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QGraphicsProxyWidget"> + <modify-function signature="QGraphicsProxyWidget(QGraphicsItem*, QFlags<Qt::WindowType>)"> + <modify-argument index="this"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="createProxyForChildWidget(QWidget*)"> + <modify-argument index="return"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="newProxyWidget(const QWidget*)"> + <modify-argument index="return"> + <parent index="1" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setWidget(QWidget*)"> + <inject-code> + QWidget* _old = %CPPSELF.widget(); + if (_old) + Shiboken::Object::setParent(NULL, %CONVERTTOPYTHON[QWidget*](_old)); + %CPPSELF.%FUNCTION_NAME(%1); + Shiboken::Object::setParent(%PYSELF, %PYARG_1); + </inject-code> + </modify-function> + </object-type> + <!-- a QObject so main-thread delete redundant --> + <object-type name="QGraphicsWidget"> + <modify-function signature="getContentsMargins(qreal*,qreal*,qreal*,qreal*)const"> + <modify-argument index="return"> + <replace-type modified-type="PyObject" /> + </modify-argument> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <modify-argument index="2"> + <remove-argument/> + </modify-argument> + <modify-argument index="3"> + <remove-argument/> + </modify-argument> + <modify-argument index="4"> + <remove-argument/> + </modify-argument> + + <inject-code class="target" position="beginning"> + <insert-template name="fix_number*,number*,number*,number*"> + <replace from="$TYPE" to="qreal" /> + </insert-template> + </inject-code> + </modify-function> + <modify-function signature="getWindowFrameMargins(qreal*,qreal*,qreal*,qreal*)const"> + <modify-argument index="return"> + <replace-type modified-type="PyObject" /> + </modify-argument> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <modify-argument index="2"> + <remove-argument/> + </modify-argument> + <modify-argument index="3"> + <remove-argument/> + </modify-argument> + <modify-argument index="4"> + <remove-argument/> + </modify-argument> + + <inject-code class="target" position="beginning"> + <insert-template name="fix_number*,number*,number*,number*"> + <replace from="$TYPE" to="qreal" /> + </insert-template> + </inject-code> + </modify-function> + <modify-function signature="setLayout(QGraphicsLayout*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="changeEvent(QEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="closeEvent(QCloseEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="grabKeyboardEvent(QEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="grabMouseEvent(QEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="hideEvent(QHideEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="moveEvent(QGraphicsSceneMoveEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="paintWindowFrame(QPainter*,const QStyleOptionGraphicsItem*,QWidget*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="resizeEvent(QGraphicsSceneResizeEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="showEvent(QShowEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="ungrabKeyboardEvent(QEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="ungrabMouseEvent(QEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="windowFrameEvent(QEvent*)"> + <modify-argument index="1" invalidate-after-use="yes"/> + </modify-function> + <modify-function signature="setStyle(QStyle*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setTabOrder(QGraphicsWidget*,QGraphicsWidget*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + <modify-argument index="2"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + </object-type> + <object-type name="QPlainTextDocumentLayout"/> + <object-type name="QPlainTextEdit"> + <enum-type name="LineWrapMode"/> + <modify-function signature="setDocument(QTextDocument*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="insertFromMimeData(const QMimeData*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="print(QPagedPaintDevice*)const" rename="print_" /> + </object-type> + <object-type name="QStyledItemDelegate"> + <modify-function signature="setItemEditorFactory(QItemEditorFactory*)"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setEditorData(QWidget*,QModelIndex)const"> + <modify-argument index="1"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <modify-function signature="setModelData(QWidget*,QAbstractItemModel*,QModelIndex)const"> + <modify-argument index="1"> + <reference-count action="set"/> + </modify-argument> + </modify-function> + </object-type> + + <object-type name="QGesture" since="4.6"> + <enum-type name="GestureCancelPolicy"/> + </object-type> + <object-type name="QGestureRecognizer" since="4.6"> + <enum-type name="ResultFlag" flags="Result"/> + </object-type> + <object-type name="QTapAndHoldGesture" since="4.6"/> + <object-type name="QTapGesture" since="4.6"/> + <object-type name="QGraphicsAnchor" since="4.6"/> + <object-type name="QGraphicsAnchorLayout" since="4.6"/> + <object-type name="QGraphicsBlurEffect" since="4.6"> + <enum-type name="BlurHint" flags="BlurHints"/> + </object-type> + <object-type name="QGraphicsColorizeEffect" since="4.6"/> + <object-type name="QGraphicsDropShadowEffect" since="4.6"/> + + <object-type name="QGraphicsEffect" since="4.6"> + <enum-type name="ChangeFlag" flags="ChangeFlags"/> + <enum-type name="PixmapPadMode"/> + </object-type> + + <object-type name="QGraphicsObject" since="4.6" /> + <object-type name="QGraphicsOpacityEffect" since="4.6"/> + <object-type name="QGraphicsRotation" since="4.6"/> + <object-type name="QGraphicsScale" since="4.6"/> + <object-type name="QGraphicsTransform" since="4.6"/> + <object-type name="QKeyEventTransition" since="4.6"/> + <object-type name="QMouseEventTransition" since="4.6"/> + <object-type name="QPanGesture" since="4.6"/> + <object-type name="QPinchGesture" since="4.6"> + <enum-type name="ChangeFlag" flags="ChangeFlags"/> + </object-type> + <object-type name="QSwipeGesture" since="4.6"> + <enum-type name="SwipeDirection"/> + </object-type> + + <value-type name="QTileRules" since="4.6"/> + + <object-type name="QSizeGrip"/> + + <object-type name="QSystemTrayIcon"> + <enum-type name="ActivationReason"/> + <enum-type name="MessageIcon"/> + <modify-function signature="setContextMenu(QMenu*)"> + <modify-argument index="1"> + <reference-count action="set"/> + </modify-argument> + </modify-function> + </object-type> + + <!-- The above entries may be present in the system or not. Keep this section organized. --> + + <!-- This enum is present on QtCore --> + <suppress-warning text="enum 'QCoreApplication::ApplicationFlags' is specified in typesystem, but not declared" /> + <suppress-warning text="QGraphicsEllipseItem::Type' does not have a type entry or is not an enum"/> + <suppress-warning text="QGraphicsItemGroup::Type' does not have a type entry or is not an enum"/> + <suppress-warning text="QGraphicsItem::UserType' does not have a type entry or is not an enum"/> + <suppress-warning text="QGraphicsLineItem::Type' does not have a type entry or is not an enum"/> + <suppress-warning text="QGraphicsPathItem::Type' does not have a type entry or is not an enum"/> + <suppress-warning text="QGraphicsPixmapItem::Type' does not have a type entry or is not an enum"/> + <suppress-warning text="QGraphicsPolygonItem::Type' does not have a type entry or is not an enum"/> + <suppress-warning text="QGraphicsProxyWidget::Type' does not have a type entry or is not an enum"/> + <suppress-warning text="QGraphicsRectItem::Type' does not have a type entry or is not an enum"/> + <suppress-warning text="QGraphicsSimpleTextItem::Type' does not have a type entry or is not an enum"/> + <suppress-warning text="QGraphicsSvgItem::Type' does not have a type entry or is not an enum"/> + <suppress-warning text="QGraphicsTextItem::Type' does not have a type entry or is not an enum"/> + <suppress-warning text="QGraphicsWidget::Type' does not have a type entry or is not an enum"/> +</typesystem> diff --git a/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_mac.xml b/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_mac.xml new file mode 100644 index 000000000..a2d665b0a --- /dev/null +++ b/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_mac.xml @@ -0,0 +1,55 @@ +<?xml version="1.0"?> +<!-- +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of PySide2. +** +** $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$ +** +****************************************************************************/ +--> +<typesystem package="PySide2.QtWidgets"> + <rejection class="*" function-name="qt_mac_set_cursor"/> + <rejection class="*" function-name="macMenu"/> + + <primitive-type name="Qt::HANDLE" target-lang-api-name="PyObject"/> + <!-- Qt5: internal + <object-type name="QMacStyle" > + <enum-type name="FocusRectPolicy"/> + <enum-type name="WidgetSizePolicy"/> + </object-type> + --> + <rejection class="QWidget" function-name="macCGHandle"/> + <rejection class="QWidget" function-name="macQDHandle"/> +</typesystem> diff --git a/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_win.xml b/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_win.xml new file mode 100644 index 000000000..d15ec8191 --- /dev/null +++ b/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_win.xml @@ -0,0 +1,42 @@ +<?xml version="1.0"?> +<!-- +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of PySide2. +** +** $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$ +** +****************************************************************************/ +--> +<typesystem package="PySide2.QtWidgets"/> diff --git a/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_x11.xml b/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_x11.xml new file mode 100644 index 000000000..d15ec8191 --- /dev/null +++ b/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_x11.xml @@ -0,0 +1,42 @@ +<?xml version="1.0"?> +<!-- +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of PySide2. +** +** $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$ +** +****************************************************************************/ +--> +<typesystem package="PySide2.QtWidgets"/> |