diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2017-04-03 11:43:12 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2017-04-03 11:43:12 +0200 |
commit | c90f5caef1a8302f064b600410c6f43d6351457d (patch) | |
tree | 5dfc629b0be63e99e49531778b115ef25a6eb769 /src/widgets | |
parent | Updated pre-commit.rb (diff) | |
download | smolbote-c90f5caef1a8302f064b600410c6f43d6351457d.tar.xz |
Added page action tool buttons
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/webviewtabbar.cpp | 13 | ||||
-rw-r--r-- | src/widgets/webviewtabbar.h | 7 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/widgets/webviewtabbar.cpp b/src/widgets/webviewtabbar.cpp index 71d3c92..9684e11 100644 --- a/src/widgets/webviewtabbar.cpp +++ b/src/widgets/webviewtabbar.cpp @@ -56,6 +56,9 @@ WebViewTabBar::WebViewTabBar(QWidget *parent) : }); addAction(tabRightAction); } + + m_signalMapper = new QSignalMapper(this); + connect(m_signalMapper, SIGNAL(mapped(int)), this, SLOT(webAction(int))); } WebViewTabBar::~WebViewTabBar() @@ -65,6 +68,11 @@ WebViewTabBar::~WebViewTabBar() m_views.clear(); } +QSignalMapper *WebViewTabBar::signalMapper() +{ + return m_signalMapper; +} + int WebViewTabBar::addTab(QWebEngineProfile *profile, const QUrl &url) { WebView *view = new WebView(0); @@ -132,3 +140,8 @@ void WebViewTabBar::updateVectorArrangement(int from, int to) { m_views.move(from, to); } + +void WebViewTabBar::webAction(int action) +{ + currentView()->pageAction(static_cast<QWebEnginePage::WebAction>(action))->trigger(); +} diff --git a/src/widgets/webviewtabbar.h b/src/widgets/webviewtabbar.h index f7772e0..bf39efe 100644 --- a/src/widgets/webviewtabbar.h +++ b/src/widgets/webviewtabbar.h @@ -23,6 +23,7 @@ #include <QTabBar> #include "webengine/webview.h" +#include <QSignalMapper> class WebViewTabBar : public QTabBar { @@ -33,6 +34,8 @@ public: ~WebViewTabBar(); void setProfile(QWebEngineProfile *profile); + + QSignalMapper *signalMapper(); WebView *currentView(); signals: @@ -42,6 +45,8 @@ public slots: int addTab(QWebEngineProfile *profile, const QUrl &url); void removeTab(int index); + void webAction(int action); + protected: QSize tabSizeHint(int index) const; @@ -54,6 +59,8 @@ private slots: private: // store all views in a vector since tabs can only store a QVariant, and that can't easily take a pointer QVector<WebView*> m_views; + + QSignalMapper *m_signalMapper; }; #endif // WEBVIEWTABBAR_H |