summaryrefslogtreecommitdiff
path: root/dev-python/pyotherside/files/pyotherside-1.6.0-qt6.5.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-03-05 19:06:10 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-03-05 19:06:10 +0000
commitcc420fb8bdbc37a0c10b7dc2e02928bcd840147a (patch)
tree91efb05a92ad304615442c75140e7c641274d835 /dev-python/pyotherside/files/pyotherside-1.6.0-qt6.5.patch
parentf61d8811e916303cabe9fafdefbe188ba9b500d5 (diff)
gentoo auto-resync : 05:03:2024 - 19:06:10
Diffstat (limited to 'dev-python/pyotherside/files/pyotherside-1.6.0-qt6.5.patch')
-rw-r--r--dev-python/pyotherside/files/pyotherside-1.6.0-qt6.5.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/dev-python/pyotherside/files/pyotherside-1.6.0-qt6.5.patch b/dev-python/pyotherside/files/pyotherside-1.6.0-qt6.5.patch
new file mode 100644
index 000000000000..08844cc8338d
--- /dev/null
+++ b/dev-python/pyotherside/files/pyotherside-1.6.0-qt6.5.patch
@@ -0,0 +1,34 @@
+From 45044252aaf73262cd46443acd049e7afcdf072b Mon Sep 17 00:00:00 2001
+From: Thomas Perl <m@thp.io>
+Date: Sat, 2 Dec 2023 18:46:06 +0100
+Subject: [PATCH] Fix build error with Qt >= 6.5 (fixes #128)
+
+--- a/src/qpython_priv.cpp
++++ b/src/qpython_priv.cpp
+@@ -405,8 +405,25 @@ pyotherside_QObjectMethod_call(PyObject *callable_object, PyObject *args, PyObje
+ }
+
+ QVariant result;
++#if QT_VERSION < QT_VERSION_CHECK(6, 5, 0)
++ QGenericReturnArgument returnArg = Q_RETURN_ARG(QVariant, result);
++#else
++ /**
++ * Starting with Qt 6.5, Q_RETURN_ARG() expands to a QMetaMethodReturnArgument,
++ * whereas previously it returned a QGenericReturnArgument. Since we are using
++ * the old, deprecated QMetaMethod::invoke() functions, and those take a
++ * QGenericReturnArgument and not a QMetaMethodReturnArgument, we need to
++ * create the QGenericReturnArgument ourselves by emulating what Q_RETURN_ARG()
++ * does in old Qt versions before 6.5.
++ *
++ * See also:
++ * https://bugreports.qt.io/browse/QTBUG-113147
++ * https://github.com/thp/pyotherside/issues/128
++ **/
++ QGenericReturnArgument returnArg {QT_STRINGIFY(QVariant), &result};
++#endif
+ if (method.invoke(o, Qt::DirectConnection,
+- Q_RETURN_ARG(QVariant, result), genericArguments.value(0),
++ returnArg, genericArguments.value(0),
+ genericArguments.value(1), genericArguments.value(2),
+ genericArguments.value(3), genericArguments.value(4),
+ genericArguments.value(5), genericArguments.value(6),