1
mirror of https://invent.kde.org/network/falkon.git synced 2024-12-20 02:36:34 +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;
}
WebTab* webTab = qobject_cast<WebTab*>(m_tabWidget->widget(tabAt(event->pos())));
if (webTab) {
TabContextMenu menu(webTab, Qt::Horizontal);
// Prevent choosing first option with double rightclick
const QPoint pos = event->globalPos();
QPoint p(pos.x(), pos.y() + 1);
menu.exec(p);
}
int index = tabAt(event->pos());
TabContextMenu menu(index, Qt::Horizontal, m_window, m_tabWidget);
// Prevent choosing first option with double rightclick
const QPoint pos = event->globalPos();
QPoint p(pos.x(), pos.y() + 1);
menu.exec(p);
m_window->action(QSL("Other/RestoreClosedTab"))->setEnabled(true);
}

View File

@ -27,12 +27,12 @@
#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()
, m_clickedTab(tab->tabIndex())
, m_clickedTab(index)
, m_tabsOrientation(orientation)
, m_window(tab->webView()->browserWindow())
, m_tabWidget(m_window->tabWidget())
, m_window(window)
, m_tabWidget(tabWidget)
, m_showCloseOtherTabs(showCloseOtherTabs)
{
setObjectName("tabcontextmenu");

View File

@ -22,15 +22,14 @@
#include "qzcommon.h"
class WebTab;
class TabWidget;
class BrowserWindow;
class TabWidget;
class FALKON_EXPORT TabContextMenu : public QMenu
{
Q_OBJECT
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:
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));
if (item) {
WebTab *tab = item->webTab();
if (tab) {
BrowserWindow* mainWindow = item->window();
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",
// "Close Tabs To The Bottom" and "Close Tabs To The Top"
// 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();
}
}