aboutsummaryrefslogtreecommitdiff
path: root/src/browsertab.cpp
diff options
context:
space:
mode:
authorMike Skec <skec@protonmail.ch>2021-02-08 18:07:47 +1100
committerFelix Queißner <felix@ib-queissner.de>2021-02-08 08:53:25 +0100
commit8fa16dccfd2daf7022913cd712d33f289bd19ede (patch)
tree2272ab10a7219df221f5f8e9f2fa3cc62414b965 /src/browsertab.cpp
parentda23779d293581ab4ca795f31abf9b902575d137 (diff)
downloadkristall-8fa16dccfd2daf7022913cd712d33f289bd19ede.tar.gz
Add 'open in default browser' option on HTTP links
Diffstat (limited to 'src/browsertab.cpp')
-rw-r--r--src/browsertab.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/browsertab.cpp b/src/browsertab.cpp
index 7aa9ebf..3772ae9 100644
--- a/src/browsertab.cpp
+++ b/src/browsertab.cpp
@@ -1537,12 +1537,23 @@ void BrowserTab::on_text_browser_customContextMenuRequested(const QPoint pos)
if (real_url.isRelative())
real_url = this->current_location.resolved(real_url);
- connect(menu.addAction("Follow link…"), &QAction::triggered, [this, real_url]() {
- this->navigateTo(real_url, PushImmediate);
+ connect(menu.addAction("Open in new tab"), &QAction::triggered, [this, real_url]() {
+ mainWindow->addNewTab(false, real_url);
});
- connect(menu.addAction("Open in new tab…"), &QAction::triggered, [this, real_url]() {
- mainWindow->addNewTab(false, real_url);
+ // "open in default browser" for HTTP/S links
+ if (real_url.scheme().startsWith("http", Qt::CaseInsensitive)) {
+ connect(menu.addAction("Open with external web browser"), &QAction::triggered, [this, real_url]() {
+ if (!QDesktopServices::openUrl(real_url))
+ {
+ QMessageBox::warning(this, "Kristall",
+ QString("Failed to start system URL handler for\r\n%1").arg(real_url.toString()));
+ }
+ });
+ }
+
+ connect(menu.addAction("Follow link"), &QAction::triggered, [this, real_url]() {
+ this->navigateTo(real_url, PushImmediate);
});
connect(menu.addAction("Copy link"), &QAction::triggered, [real_url]() {