From 9764cea3a37e5cb158124555ad3fcece5430cbab Mon Sep 17 00:00:00 2001 From: nowrep Date: Fri, 7 Mar 2014 23:20:31 +0100 Subject: [PATCH] [ToolButton] ShowMenuInside option needs own aboutToShowMenu signal --- src/lib/tools/toolbutton.cpp | 4 ++-- src/lib/tools/toolbutton.h | 3 +++ src/lib/webview/tabwidget.cpp | 7 ++++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/lib/tools/toolbutton.cpp b/src/lib/tools/toolbutton.cpp index 69dd2f6d2..6ecad9b0d 100644 --- a/src/lib/tools/toolbutton.cpp +++ b/src/lib/tools/toolbutton.cpp @@ -185,7 +185,7 @@ void ToolButton::showMenu() return; } - m->popup(QPoint(0, 0)); + emit aboutToShowMenu(); QPoint pos = mapToGlobal(rect().bottomRight()); if (QApplication::layoutDirection() == Qt::RightToLeft) { @@ -195,7 +195,7 @@ void ToolButton::showMenu() pos.setX(pos.x() - m->sizeHint().width()); } - m->move(pos); + m->popup(pos); } void ToolButton::menuAboutToHide() diff --git a/src/lib/tools/toolbutton.h b/src/lib/tools/toolbutton.h index 4aff414bd..afcb1a77b 100644 --- a/src/lib/tools/toolbutton.h +++ b/src/lib/tools/toolbutton.h @@ -64,6 +64,9 @@ signals: void controlClicked(); void doubleClicked(); + // Emitted when showMenuInside is true + void aboutToShowMenu(); + public slots: void showMenu(); diff --git a/src/lib/webview/tabwidget.cpp b/src/lib/webview/tabwidget.cpp index 3a5db528f..7d40385fd 100644 --- a/src/lib/webview/tabwidget.cpp +++ b/src/lib/webview/tabwidget.cpp @@ -142,20 +142,20 @@ TabWidget::TabWidget(BrowserWindow* window, QWidget* parent) connect(m_tabBar, SIGNAL(showButtons()), this, SLOT(showButtons())); connect(m_tabBar, SIGNAL(hideButtons()), this, SLOT(hideButtons())); + m_menuTabs = new MenuTabs(m_tabBar); + m_buttonListTabs = new ToolButton(m_tabBar); m_buttonListTabs->setObjectName("tabwidget-button-opentabs"); - m_menuTabs = new MenuTabs(m_tabBar); m_buttonListTabs->setMenu(m_menuTabs); m_buttonListTabs->setPopupMode(QToolButton::InstantPopup); m_buttonListTabs->setToolTip(tr("List of tabs")); m_buttonListTabs->setAutoRaise(true); m_buttonListTabs->setFocusPolicy(Qt::NoFocus); m_buttonListTabs->setShowMenuInside(true); + connect(m_buttonListTabs, SIGNAL(aboutToShowMenu()), this, SLOT(aboutToShowClosedTabsMenu())); m_buttonAddTab = new AddTabButton(this, m_tabBar); - connect(m_buttonAddTab, SIGNAL(clicked()), m_window, SLOT(addTab())); - connect(m_menuTabs, SIGNAL(aboutToShow()), this, SLOT(aboutToShowClosedTabsMenu())); // Copy of buttons m_buttonListTabs2 = new ToolButton(m_tabBar); @@ -167,6 +167,7 @@ TabWidget::TabWidget(BrowserWindow* window, QWidget* parent) m_buttonListTabs2->setAutoRaise(true); m_buttonListTabs2->setFocusPolicy(Qt::NoFocus); m_buttonListTabs2->setShowMenuInside(true); + connect(m_buttonListTabs2, SIGNAL(aboutToShowMenu()), this, SLOT(aboutToShowClosedTabsMenu())); m_buttonAddTab2 = new AddTabButton(this, m_tabBar); m_buttonAddTab2->setProperty("outside-tabbar", true);