aboutsummaryrefslogtreecommitdiff
path: root/geminiwebpage.cpp
diff options
context:
space:
mode:
authorFelix (xq) Queißner <git@mq32.de>2020-05-30 02:58:43 +0200
committerFelix (xq) Queißner <git@mq32.de>2020-05-30 02:58:43 +0200
commit79ff338a3427a236ef53adf806c56616faa3426c (patch)
tree8555fb0a7da2f5139cf5f9951c5d61d7f7a83506 /geminiwebpage.cpp
downloadkristall-79ff338a3427a236ef53adf806c56616faa3426c.tar.gz
Initial commit: Basic Gemini client.
Diffstat (limited to 'geminiwebpage.cpp')
-rw-r--r--geminiwebpage.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/geminiwebpage.cpp b/geminiwebpage.cpp
new file mode 100644
index 0000000..3ac41aa
--- /dev/null
+++ b/geminiwebpage.cpp
@@ -0,0 +1,34 @@
+#include "geminiwebpage.hpp"
+
+GeminiWebPage::GeminiWebPage(QObject *parent) : QWebEnginePage(parent)
+{
+
+}
+
+bool GeminiWebPage::acceptNavigationRequest(const QUrl &url, QWebEnginePage::NavigationType type, bool isMainFrame)
+{
+ switch(type)
+ {
+ // link navigation
+ case QWebEnginePage::NavigationTypeLinkClicked: {
+ bool result = false;
+ emit this->navigationRequest(url, result);
+ return result;
+ }
+
+ // manual navigation
+ case QWebEnginePage::NavigationTypeTyped:
+ return true;
+
+ // we do this by hand!
+ case QWebEnginePage::NavigationTypeFormSubmitted:
+ case QWebEnginePage::NavigationTypeBackForward:
+ case QWebEnginePage::NavigationTypeReload:
+ return false;
+
+ // forbidden by default
+ case QWebEnginePage::NavigationTypeOther:
+ case QWebEnginePage::NavigationTypeRedirect:
+ return false;
+ }
+}