summaryrefslogtreecommitdiffstats
path: root/examples/webenginewidgets/demobrowser/tabwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/webenginewidgets/demobrowser/tabwidget.cpp')
-rw-r--r--examples/webenginewidgets/demobrowser/tabwidget.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/examples/webenginewidgets/demobrowser/tabwidget.cpp b/examples/webenginewidgets/demobrowser/tabwidget.cpp
index cb017e621..a14b22ffd 100644
--- a/examples/webenginewidgets/demobrowser/tabwidget.cpp
+++ b/examples/webenginewidgets/demobrowser/tabwidget.cpp
@@ -161,7 +161,17 @@ void TabBar::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
m_dragStartPos = event->pos();
+
QTabBar::mousePressEvent(event);
+
+ // Middle click on tab should close it.
+ if (event->button() == Qt::MiddleButton) {
+ const QPoint pos = event->pos();
+ int index = tabAt(pos);
+ if (index != -1) {
+ emit closeTab(index);
+ }
+ }
}
void TabBar::mouseMoveEvent(QMouseEvent *event)
@@ -233,6 +243,7 @@ TabWidget::TabWidget(QWidget *parent)
connect(m_tabBar, SIGNAL(reloadTab(int)), this, SLOT(reloadTab(int)));
connect(m_tabBar, SIGNAL(reloadAllTabs()), this, SLOT(reloadAllTabs()));
connect(m_tabBar, SIGNAL(tabMoved(int,int)), this, SLOT(moveTab(int,int)));
+ connect(m_tabBar, SIGNAL(tabBarDoubleClicked(int)), this, SLOT(handleTabBarDoubleClicked(int)));
setTabBar(m_tabBar);
setDocumentMode(true);
@@ -388,6 +399,12 @@ void TabWidget::fullScreenRequested(QWebEngineFullScreenRequest request)
}
}
+void TabWidget::handleTabBarDoubleClicked(int index)
+{
+ if (index != -1) return;
+ newTab();
+}
+
QAction *TabWidget::newTabAction() const
{
return m_newTabAction;