1
mirror of https://invent.kde.org/network/falkon.git synced 2024-12-20 10:46:35 +01:00

Revert "TabContextMenu: Require only WebTab in constructor"

This broke context menu on empty tab bar space.

This reverts commit e791e77045b572af02d27f7a15ae082a4a13814c.
This commit is contained in:
David Rosca 2018-02-05 11:50:50 +01:00
parent 408b2ffad6
commit 825ee7ea96
No known key found for this signature in database
GPG Key ID: EBC3FC294452C6D8
4 changed files with 21 additions and 18 deletions

View File

@ -345,14 +345,14 @@ void TabBar::contextMenuEvent(QContextMenuEvent* event)
return; return;
} }
WebTab* webTab = qobject_cast<WebTab*>(m_tabWidget->widget(tabAt(event->pos()))); int index = tabAt(event->pos());
if (webTab) {
TabContextMenu menu(webTab, Qt::Horizontal); TabContextMenu menu(index, Qt::Horizontal, m_window, m_tabWidget);
// Prevent choosing first option with double rightclick
const QPoint pos = event->globalPos(); // Prevent choosing first option with double rightclick
QPoint p(pos.x(), pos.y() + 1); const QPoint pos = event->globalPos();
menu.exec(p); QPoint p(pos.x(), pos.y() + 1);
} menu.exec(p);
m_window->action(QSL("Other/RestoreClosedTab"))->setEnabled(true); m_window->action(QSL("Other/RestoreClosedTab"))->setEnabled(true);
} }

View File

@ -27,12 +27,12 @@
#include "checkboxdialog.h" #include "checkboxdialog.h"
TabContextMenu::TabContextMenu(WebTab *tab, Qt::Orientation orientation, bool showCloseOtherTabs) TabContextMenu::TabContextMenu(int index, Qt::Orientation orientation, BrowserWindow* window, TabWidget* tabWidget, bool showCloseOtherTabs)
: QMenu() : QMenu()
, m_clickedTab(tab->tabIndex()) , m_clickedTab(index)
, m_tabsOrientation(orientation) , m_tabsOrientation(orientation)
, m_window(tab->webView()->browserWindow()) , m_window(window)
, m_tabWidget(m_window->tabWidget()) , m_tabWidget(tabWidget)
, m_showCloseOtherTabs(showCloseOtherTabs) , m_showCloseOtherTabs(showCloseOtherTabs)
{ {
setObjectName("tabcontextmenu"); setObjectName("tabcontextmenu");

View File

@ -22,15 +22,14 @@
#include "qzcommon.h" #include "qzcommon.h"
class WebTab;
class TabWidget;
class BrowserWindow; class BrowserWindow;
class TabWidget;
class FALKON_EXPORT TabContextMenu : public QMenu class FALKON_EXPORT TabContextMenu : public QMenu
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit TabContextMenu(WebTab *tab, Qt::Orientation orientation, bool showCloseOtherTabs = true); explicit TabContextMenu(int index, Qt::Orientation orientation, BrowserWindow* window, TabWidget* tabWidget, bool showCloseOtherTabs = true);
signals: signals:
void reloadTab(int index); void reloadTab(int index);

View File

@ -279,12 +279,16 @@ void TabManagerWidget::customContextMenuRequested(const QPoint &pos)
TabItem* item = static_cast<TabItem*>(ui->treeWidget->itemAt(pos)); TabItem* item = static_cast<TabItem*>(ui->treeWidget->itemAt(pos));
if (item) { if (item) {
WebTab *tab = item->webTab(); BrowserWindow* mainWindow = item->window();
if (tab) { QWidget* tabWidget = item->webTab();
if (mainWindow && tabWidget) {
int index = mainWindow->tabWidget()->indexOf(tabWidget);
// if items are not grouped by Window then actions "Close Other Tabs", // if items are not grouped by Window then actions "Close Other Tabs",
// "Close Tabs To The Bottom" and "Close Tabs To The Top" // "Close Tabs To The Bottom" and "Close Tabs To The Top"
// are ambiguous and should be hidden. // are ambiguous and should be hidden.
menu = new TabContextMenu(tab, Qt::Vertical, m_groupType == GroupByWindow); menu = new TabContextMenu(index, Qt::Vertical, mainWindow, mainWindow->tabWidget(), m_groupType == GroupByWindow);
menu->addSeparator(); menu->addSeparator();
} }
} }