diff options
Diffstat (limited to 'sources/pyside2/PySide2/QtWidgets/glue')
-rw-r--r-- | sources/pyside2/PySide2/QtWidgets/glue/qapplication_init.cpp | 46 | ||||
-rw-r--r-- | sources/pyside2/PySide2/QtWidgets/glue/qtwidgets_qapp.cpp | 49 |
2 files changed, 8 insertions, 87 deletions
diff --git a/sources/pyside2/PySide2/QtWidgets/glue/qapplication_init.cpp b/sources/pyside2/PySide2/QtWidgets/glue/qapplication_init.cpp index f1f1f84a6..1419f5755 100644 --- a/sources/pyside2/PySide2/QtWidgets/glue/qapplication_init.cpp +++ b/sources/pyside2/PySide2/QtWidgets/glue/qapplication_init.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of PySide2. @@ -37,44 +37,14 @@ ** ****************************************************************************/ -// 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::listToArgcArgv(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) +static void QApplicationConstructor(PyObject *self, PyObject *pyargv, QApplicationWrapper **cptr) { - PyObject *stringlist = PyTuple_GET_ITEM(argv, 0); - if (QApplicationConstructorStart(stringlist)) { - *cptr = new QApplicationWrapper(QApplicationArgCount, QApplicationArgValues, 0); + static int argc; + static char **argv; + PyObject *stringlist = PyTuple_GET_ITEM(pyargv, 0); + if (Shiboken::listToArgcArgv(stringlist, &argc, &argv, "PySideApp")) { + *cptr = new QApplicationWrapper(argc, argv, 0); Shiboken::Object::releaseOwnership(reinterpret_cast<SbkObject*>(self)); - QApplicationConstructorEnd(self); + PySide::registerCleanupFunction(&PySide::destroyQCoreApplication); } } diff --git a/sources/pyside2/PySide2/QtWidgets/glue/qtwidgets_qapp.cpp b/sources/pyside2/PySide2/QtWidgets/glue/qtwidgets_qapp.cpp deleted file mode 100644 index e041c7680..000000000 --- a/sources/pyside2/PySide2/QtWidgets/glue/qtwidgets_qapp.cpp +++ /dev/null @@ -1,49 +0,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$ -** -****************************************************************************/ - -// 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; |