summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/util/qdesktopservices.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/gui/util/qdesktopservices.cpp b/src/gui/util/qdesktopservices.cpp
index 8f237960d6..a4c4fa4c2c 100644
--- a/src/gui/util/qdesktopservices.cpp
+++ b/src/gui/util/qdesktopservices.cpp
@@ -58,9 +58,8 @@
QT_BEGIN_NAMESPACE
-class QOpenUrlHandlerRegistry : public QObject
+class QOpenUrlHandlerRegistry
{
- Q_OBJECT
public:
QOpenUrlHandlerRegistry() = default;
@@ -75,7 +74,8 @@ public:
HandlerHash handlers;
#if QT_VERSION < QT_VERSION_CHECK(6, 6, 0)
-public Q_SLOTS:
+ QObject context;
+
void handlerDestroyed(QObject *handler);
#endif
@@ -336,8 +336,8 @@ void QDesktopServices::setUrlHandler(const QString &scheme, QObject *receiver, c
h.name = method;
registry->handlers.insert(scheme.toLower(), h);
#if QT_VERSION < QT_VERSION_CHECK(6, 6, 0)
- QObject::connect(receiver, SIGNAL(destroyed(QObject*)),
- registry, SLOT(handlerDestroyed(QObject*)),
+ QObject::connect(receiver, &QObject::destroyed, &registry->context,
+ [registry](QObject *obj) { registry->handlerDestroyed(obj); },
Qt::DirectConnection);
#endif
}
@@ -358,6 +358,4 @@ void QDesktopServices::unsetUrlHandler(const QString &scheme)
QT_END_NAMESPACE
-#include "qdesktopservices.moc"
-
#endif // QT_NO_DESKTOPSERVICES