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:
parent
408b2ffad6
commit
825ee7ea96
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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");
|
||||||
|
@ -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);
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user