diff options
-rw-r--r-- | sources/pyside6/PySide6/QtQuick/CMakeLists.txt | 2 | ||||
-rw-r--r-- | sources/pyside6/PySide6/QtQuick/pysidequickregistertype.cpp | 3 | ||||
-rw-r--r-- | sources/pyside6/libpyside/pyside.cpp | 12 | ||||
-rw-r--r-- | sources/pyside6/libpyside/pyside.h | 19 | ||||
-rw-r--r-- | sources/pyside6/libpysideqml/pysideqmlregistertype.cpp | 13 | ||||
-rw-r--r-- | sources/pyside6/libpysideqml/pysideqmlregistertype.h | 16 |
6 files changed, 31 insertions, 34 deletions
diff --git a/sources/pyside6/PySide6/QtQuick/CMakeLists.txt b/sources/pyside6/PySide6/QtQuick/CMakeLists.txt index 355513bd6..22d65d989 100644 --- a/sources/pyside6/PySide6/QtQuick/CMakeLists.txt +++ b/sources/pyside6/PySide6/QtQuick/CMakeLists.txt @@ -75,7 +75,7 @@ set(QtQuick_include_dirs ${QtQuick_SOURCE_DIR} ${QtQml_GEN_DIR} ${QtQuick_GEN_DIR}) -set(QtQuick_libraries pyside6 +set(QtQuick_libraries pyside6 pyside6qml ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES} ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES} ${Qt${QT_MAJOR_VERSION}OpenGL_LIBRARIES} diff --git a/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.cpp b/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.cpp index 6329dd73b..3ccbe69a4 100644 --- a/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.cpp +++ b/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.cpp @@ -40,6 +40,7 @@ #include "pysidequickregistertype.h" #include <pyside.h> +#include <pysideqmlregistertype.h> #include <pyside_p.h> #include <shiboken.h> @@ -193,5 +194,5 @@ void PySide::initQuickSupport(PyObject *module) qRegisterMetaType<QQuickFramebufferObject*>("QQuickFramebufferObject*"); qRegisterMetaType<QQuickItem*>("QQuickItem*"); - setQuickRegisterItemFunction(quickRegisterType); + Qml::setQuickRegisterItemFunction(quickRegisterType); } diff --git a/sources/pyside6/libpyside/pyside.cpp b/sources/pyside6/libpyside/pyside.cpp index 567a5ea3a..05c0e7486 100644 --- a/sources/pyside6/libpyside/pyside.cpp +++ b/sources/pyside6/libpyside/pyside.cpp @@ -480,18 +480,6 @@ PyObject *getWrapperForQObject(QObject *cppSelf, PyTypeObject *sbk_type) return pyOut; } -static QuickRegisterItemFunction quickRegisterItem; - -QuickRegisterItemFunction getQuickRegisterItemFunction() -{ - return quickRegisterItem; -} - -void setQuickRegisterItemFunction(QuickRegisterItemFunction function) -{ - quickRegisterItem = function; -} - // Inspired by Shiboken::String::toCString; QString pyStringToQString(PyObject *str) { diff --git a/sources/pyside6/libpyside/pyside.h b/sources/pyside6/libpyside/pyside.h index 9e0f6d1a6..3166e0232 100644 --- a/sources/pyside6/libpyside/pyside.h +++ b/sources/pyside6/libpyside/pyside.h @@ -49,23 +49,4 @@ #include "pysideqobject.h" #include "pysideutils.h" -namespace QQmlPrivate -{ -struct RegisterType; -} - -namespace PySide -{ - -// Used by QtQuick module to notify QtQml that custom QtQuick items can be registered. -using QuickRegisterItemFunction = - bool (*)(PyObject *pyObj, const char *uri, int versionMajor, - int versionMinor, const char *qmlName, - bool creatable, const char *noCreationReason, - QQmlPrivate::RegisterType *); -PYSIDE_API QuickRegisterItemFunction getQuickRegisterItemFunction(); -PYSIDE_API void setQuickRegisterItemFunction(QuickRegisterItemFunction function); - -} //namespace PySide - #endif // PYSIDE_H diff --git a/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp b/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp index bb7fa7706..cbacd5887 100644 --- a/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp +++ b/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp @@ -62,6 +62,8 @@ // Mutex used to avoid race condition on PySide::nextQObjectMemoryAddr. static QMutex nextQmlElementMutex; +static PySide::Qml::QuickRegisterItemFunction quickRegisterItemFunction = nullptr; + static void createInto(void *memory, void *type) { QMutexLocker locker(&nextQmlElementMutex); @@ -121,7 +123,6 @@ int qmlRegisterType(PyObject *pyObj, const char *uri, int versionMajor, // Allow registering Qt Quick items. bool registered = false; - QuickRegisterItemFunction quickRegisterItemFunction = getQuickRegisterItemFunction(); if (quickRegisterItemFunction) { registered = quickRegisterItemFunction(pyObj, uri, versionMajor, versionMinor, @@ -460,4 +461,14 @@ PyObject *qmlSingletonMacro(PyObject *pyObj) return pyObj; } +QuickRegisterItemFunction getQuickRegisterItemFunction() +{ + return quickRegisterItemFunction; +} + +void setQuickRegisterItemFunction(QuickRegisterItemFunction function) +{ + quickRegisterItemFunction = function; +} + } // namespace PySide::Qml diff --git a/sources/pyside6/libpysideqml/pysideqmlregistertype.h b/sources/pyside6/libpysideqml/pysideqmlregistertype.h index edd0e77e4..d77a67bdb 100644 --- a/sources/pyside6/libpysideqml/pysideqmlregistertype.h +++ b/sources/pyside6/libpysideqml/pysideqmlregistertype.h @@ -44,6 +44,11 @@ #include <sbkpython.h> +namespace QQmlPrivate +{ +struct RegisterType; +} + namespace PySide::Qml { @@ -107,6 +112,17 @@ PYSIDEQML_API PyObject *qmlAnonymousMacro(PyObject *pyObj); /// \param pyObj Python type to be registered PYSIDEQML_API PyObject *qmlSingletonMacro(PyObject *pyObj); + +// Used by QtQuick module to notify QtQml that custom QtQuick items can be registered. +using QuickRegisterItemFunction = + bool (*)(PyObject *pyObj, const char *uri, int versionMajor, + int versionMinor, const char *qmlName, + bool creatable, const char *noCreationReason, + QQmlPrivate::RegisterType *); + +PYSIDEQML_API QuickRegisterItemFunction getQuickRegisterItemFunction(); +PYSIDEQML_API void setQuickRegisterItemFunction(QuickRegisterItemFunction function); + } // namespace PySide::Qml #endif // PYSIDEQMLREGISTERTYPE_H |