diff options
| author | Mike Skec <skec@protonmail.ch> | 2021-02-08 18:07:47 +1100 |
|---|---|---|
| committer | Felix Queißner <felix@ib-queissner.de> | 2021-02-08 08:53:25 +0100 |
| commit | 8fa16dccfd2daf7022913cd712d33f289bd19ede (patch) | |
| tree | 2272ab10a7219df221f5f8e9f2fa3cc62414b965 /src/browsertab.cpp | |
| parent | da23779d293581ab4ca795f31abf9b902575d137 (diff) | |
| download | kristall-8fa16dccfd2daf7022913cd712d33f289bd19ede.tar.gz | |
Add 'open in default browser' option on HTTP links
Diffstat (limited to 'src/browsertab.cpp')
| -rw-r--r-- | src/browsertab.cpp | 19 |
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]() { |
