1
mirror of https://invent.kde.org/network/falkon.git synced 2024-09-21 17:52:10 +02:00

TabContextMenu: Require only WebTab in constructor

This commit is contained in:
David Rosca 2018-02-01 20:33:29 +01:00
parent 29735b24c8
commit 0c7245fa9f
No known key found for this signature in database
GPG Key ID: EBC3FC294452C6D8
4 changed files with 18 additions and 21 deletions

View File

@ -346,14 +346,14 @@ void TabBar::contextMenuEvent(QContextMenuEvent* event)
return;
}
int index = tabAt(event->pos());
TabContextMenu menu(index, Qt::Horizontal, m_window, m_tabWidget);
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);
}
m_window->action(QSL("Other/RestoreClosedTab"))->setEnabled(true);
}

View File

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

View File

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

View File

@ -279,16 +279,12 @@ void TabManagerWidget::customContextMenuRequested(const QPoint &pos)
TabItem* item = static_cast<TabItem*>(ui->treeWidget->itemAt(pos));
if (item) {
BrowserWindow* mainWindow = item->window();
QWidget* tabWidget = item->webTab();
if (mainWindow && tabWidget) {
int index = mainWindow->tabWidget()->indexOf(tabWidget);
WebTab *tab = item->webTab();
if (tab) {
// 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(index, Qt::Vertical, mainWindow, mainWindow->tabWidget(), m_groupType == GroupByWindow);
menu = new TabContextMenu(tab, Qt::Vertical, m_groupType == GroupByWindow);
menu->addSeparator();
}
}