summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/ios
diff options
context:
space:
mode:
authorLars Schmertmann <Lars.Schmertmann@governikus.de>2021-08-27 14:07:39 +0200
committerLars Schmertmann <Lars.Schmertmann@governikus.de>2021-09-10 13:01:41 +0200
commitdca394096fff0f7b48768e047f2b180abf000d12 (patch)
tree331da8fd2127f5b709c60cb1483e49c6c4b5834f /src/plugins/platforms/ios
parent34f29e5749a62b03a8e3af61fbdb18a3e9fe539e (diff)
Adapt the implementation of QDesktopService on iOS to Android
Change-Id: I8c2048155c5c065b5cdf7ad4cef9d8a446a0561d Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src/plugins/platforms/ios')
-rw-r--r--src/plugins/platforms/ios/qiosservices.mm10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/plugins/platforms/ios/qiosservices.mm b/src/plugins/platforms/ios/qiosservices.mm
index 7222bf6793..41c75dcac8 100644
--- a/src/plugins/platforms/ios/qiosservices.mm
+++ b/src/plugins/platforms/ios/qiosservices.mm
@@ -42,6 +42,7 @@
#include <QtCore/qurl.h>
#include <QtCore/qdebug.h>
#include <QtCore/private/qcore_mac_p.h>
+#include <QtCore/qscopedvaluerollback.h>
#include <QtGui/qdesktopservices.h>
@@ -56,6 +57,7 @@ bool QIOSServices::openUrl(const QUrl &url)
return false;
}
+ // avoid recursing back into self
if (url == m_handlingUrl)
return false;
@@ -94,16 +96,12 @@ bool QIOSServices::openDocument(const QUrl &url)
/* Callback from iOS that the application should handle a URL */
bool QIOSServices::handleUrl(const QUrl &url)
{
- QUrl previouslyHandling = m_handlingUrl;
- m_handlingUrl = url;
+ QScopedValueRollback<QUrl> rollback(m_handlingUrl, url);
// FIXME: Add platform services callback from QDesktopServices::setUrlHandler
// so that we can warn the user if calling setUrlHandler without also setting
// up the matching keys in the Info.plist file (CFBundleURLTypes and friends).
- bool couldHandle = QDesktopServices::openUrl(url);
-
- m_handlingUrl = previouslyHandling;
- return couldHandle;
+ return QDesktopServices::openUrl(url);
}
QT_END_NAMESPACE