Browse Source

fix wait command after link click

Sonnix 6 years ago
parent
commit
a17fdeff03
2 changed files with 21 additions and 1 deletions
  1. 12 1
      qspexecwebengineurlschemehandler.cpp
  2. 9 0
      qspexecwebengineurlschemehandler.h

+ 12 - 1
qspexecwebengineurlschemehandler.cpp

@@ -16,7 +16,18 @@ QspExecWebEngineUrlSchemeHandler::QspExecWebEngineUrlSchemeHandler(QObject *pare
 
 void QspExecWebEngineUrlSchemeHandler::requestStarted(QWebEngineUrlRequestJob *request)
 {
-    const QUrl url = request->requestUrl();
+    url = request->requestUrl();
+    QTimer::singleShot(0, this, SLOT(QspLinkClicked()));
+}
+
+void QspExecWebEngineUrlSchemeHandler::QspLinkClicked()
+{
+    emit qspLinkClicked(url);
+}
+
+void QspExecWebEngineUrlSchemeHandler::legacyLinkClicked(QWebEngineUrlRequestJob *request)
+{
+    url = request->requestUrl();
     QString href;
     href = QByteArray::fromPercentEncoding(url.toString().toUtf8());
     QString string = href.mid(5);

+ 9 - 0
qspexecwebengineurlschemehandler.h

@@ -2,6 +2,7 @@
 #define QSPEXECWEBENGINEURLSCHEMEHANDLER_H
 
 #include <QObject>
+#include <QUrl>
 #include <QWebEngineUrlRequestJob>
 #include <QWebEngineUrlSchemeHandler>
 
@@ -13,7 +14,15 @@ public:
     explicit QspExecWebEngineUrlSchemeHandler(QObject *parent = 0);
     void requestStarted(QWebEngineUrlRequestJob *request);
 
+signals:
+    void qspLinkClicked(QUrl url);
+
+public slots:
+    void QspLinkClicked();
+
 private:
+    void legacyLinkClicked(QWebEngineUrlRequestJob *request);
+    QUrl url;
 };
 
 #endif // QSPEXECWEBENGINEURLSCHEMEHANDLER_H