diff options
| author | Felix (xq) Queißner <git@mq32.de> | 2020-06-27 00:57:11 +0200 |
|---|---|---|
| committer | Felix (xq) Queißner <git@mq32.de> | 2020-06-27 00:57:11 +0200 |
| commit | 8a1961707348c85b6564a18a4c0c3e1d8e34b65c (patch) | |
| tree | 59766da86b4e26268cee433907044c19a371e6bb /src | |
| parent | ad15a056672f049cf8302fc7a0a94b71f42db356 (diff) | |
| download | kristall-8a1961707348c85b6564a18a4c0c3e1d8e34b65c.tar.gz | |
Fixes typo, adds middle-click to open link in new tab.
Diffstat (limited to 'src')
| -rw-r--r-- | src/browsertab.cpp | 11 | ||||
| -rw-r--r-- | src/browsertab.ui | 7 | ||||
| -rw-r--r-- | src/dialogs/certificatemanagementdialog.ui | 2 | ||||
| -rw-r--r-- | src/kristall.pro | 2 | ||||
| -rw-r--r-- | src/widgets/kristalltextbrowser.cpp | 28 | ||||
| -rw-r--r-- | src/widgets/kristalltextbrowser.hpp | 20 |
6 files changed, 64 insertions, 6 deletions
diff --git a/src/browsertab.cpp b/src/browsertab.cpp index ae7fd20..0f0d8b2 100644 --- a/src/browsertab.cpp +++ b/src/browsertab.cpp @@ -642,9 +642,8 @@ void BrowserTab::on_fav_button_clicked() void BrowserTab::on_text_browser_anchorClicked(const QUrl &url) { - static int click_count = 0; - qDebug() << (++click_count) << url; - + // Ctrl scheme is *always* the current tab, it's + // used for fake-buttons if(url.scheme() == "kristall+ctrl") { if(this->is_internal_location) { @@ -712,7 +711,11 @@ void BrowserTab::on_text_browser_anchorClicked(const QUrl &url) if (support == ProtocolSetup::Enabled) { - this->navigateTo(real_url, PushImmediate); + if(this->ui->text_browser->last_button == Qt::MiddleButton) { + mainWindow->addNewTab(false, real_url); + } else { + this->navigateTo(real_url, PushImmediate); + } } else { diff --git a/src/browsertab.ui b/src/browsertab.ui index f96db06..5a3aef5 100644 --- a/src/browsertab.ui +++ b/src/browsertab.ui @@ -156,7 +156,7 @@ <enum>QLayout::SetDefaultConstraint</enum> </property> <item> - <widget class="QTextBrowser" name="text_browser"> + <widget class="KristallTextBrowser" name="text_browser"> <property name="styleSheet"> <string notr="true"/> </property> @@ -218,6 +218,11 @@ p, li { white-space: pre-wrap; } <extends>QLineEdit</extends> <header>widgets/searchbar.hpp</header> </customwidget> + <customwidget> + <class>KristallTextBrowser</class> + <extends>QTextBrowser</extends> + <header>widgets/kristalltextbrowser.hpp</header> + </customwidget> </customwidgets> <resources> <include location="icons.qrc"/> diff --git a/src/dialogs/certificatemanagementdialog.ui b/src/dialogs/certificatemanagementdialog.ui index db5c241..8fe3f8b 100644 --- a/src/dialogs/certificatemanagementdialog.ui +++ b/src/dialogs/certificatemanagementdialog.ui @@ -49,7 +49,7 @@ <item> <widget class="QToolButton" name="create_cert_button"> <property name="toolTip"> - <string>Craete new certificate</string> + <string>Create new certificate</string> </property> <property name="text"> <string>Create...</string> diff --git a/src/kristall.pro b/src/kristall.pro index e50db0e..fc2253f 100644 --- a/src/kristall.pro +++ b/src/kristall.pro @@ -71,6 +71,7 @@ SOURCES += \ renderers/textstyleinstance.cpp \ widgets/browsertabbar.cpp \ widgets/browsertabwidget.cpp \ + widgets/kristalltextbrowser.cpp \ widgets/mediaplayer.cpp \ mimeparser.cpp \ protocolhandler.cpp \ @@ -113,6 +114,7 @@ HEADERS += \ renderers/textstyleinstance.hpp \ widgets/browsertabbar.hpp \ widgets/browsertabwidget.hpp \ + widgets/kristalltextbrowser.hpp \ widgets/mediaplayer.hpp \ mimeparser.hpp \ protocolhandler.hpp \ diff --git a/src/widgets/kristalltextbrowser.cpp b/src/widgets/kristalltextbrowser.cpp new file mode 100644 index 0000000..0843905 --- /dev/null +++ b/src/widgets/kristalltextbrowser.cpp @@ -0,0 +1,28 @@ +#include "kristalltextbrowser.hpp" + +#include <QMouseEvent> + +KristallTextBrowser::KristallTextBrowser(QWidget *parent) : + QTextBrowser(parent) +{ + +} + +void KristallTextBrowser::mouseReleaseEvent(QMouseEvent *event) +{ + this->last_button = event->button(); + if(event->button() == Qt::MiddleButton) { + // Fake a middle-click event here + QMouseEvent fake_event { + event->type(), + event->localPos(), + Qt::LeftButton, + event->buttons(), + event->modifiers() + }; + + QTextBrowser::mouseReleaseEvent(&fake_event); + } else { + QTextBrowser::mouseReleaseEvent(event); + } +} diff --git a/src/widgets/kristalltextbrowser.hpp b/src/widgets/kristalltextbrowser.hpp new file mode 100644 index 0000000..b3de492 --- /dev/null +++ b/src/widgets/kristalltextbrowser.hpp @@ -0,0 +1,20 @@ +#ifndef KRISTALLTEXTBROWSER_HPP +#define KRISTALLTEXTBROWSER_HPP + +#include <QTextBrowser> + +class KristallTextBrowser : public QTextBrowser +{ + Q_OBJECT +public: + KristallTextBrowser(QWidget * parent); + + + void mouseReleaseEvent(QMouseEvent * event) override; + + +public: + Qt::MouseButton last_button; +}; + +#endif // KRISTALLTEXTBROWSER_HPP |
