aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sources/pyside6/PySide6/QtQuick/CMakeLists.txt2
-rw-r--r--sources/pyside6/PySide6/QtQuick/pysidequickregistertype.cpp3
-rw-r--r--sources/pyside6/libpyside/pyside.cpp12
-rw-r--r--sources/pyside6/libpyside/pyside.h19
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlregistertype.cpp13
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlregistertype.h16
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