From 3c78954d5a6a6897101c79411443abda48c58cf6 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 31 Jul 2024 15:21:04 +0200 Subject: [PATCH] ProjectExplorer: Simplify AppOutput context menu creation code path Change-Id: I7ce938e87b7b714bcfad60ef8e0932544d3cb15e Reviewed-by: Christian Kandeler --- src/plugins/projectexplorer/appoutputpane.cpp | 22 +++++-------------- src/plugins/projectexplorer/appoutputpane.h | 2 +- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/src/plugins/projectexplorer/appoutputpane.cpp b/src/plugins/projectexplorer/appoutputpane.cpp index c9be7bb9da8..a92798ea361 100644 --- a/src/plugins/projectexplorer/appoutputpane.cpp +++ b/src/plugins/projectexplorer/appoutputpane.cpp @@ -79,15 +79,11 @@ static QString msgAttachDebuggerTooltip(const QString &handleDescription = QStri class TabWidget : public QTabWidget { - Q_OBJECT public: TabWidget(QWidget *parent = nullptr); -signals: - void contextMenuRequested(const QPoint &pos, int index); -protected: - bool eventFilter(QObject *object, QEvent *event) override; + private: - void slotContextMenuRequested(const QPoint &pos); + bool eventFilter(QObject *object, QEvent *event) override; int m_tabIndexForMiddleClick = -1; }; @@ -96,8 +92,6 @@ TabWidget::TabWidget(QWidget *parent) { tabBar()->installEventFilter(this); setContextMenuPolicy(Qt::CustomContextMenu); - connect(this, &QWidget::customContextMenuRequested, - this, &TabWidget::slotContextMenuRequested); } bool TabWidget::eventFilter(QObject *object, QEvent *event) @@ -125,11 +119,6 @@ bool TabWidget::eventFilter(QObject *object, QEvent *event) return QTabWidget::eventFilter(object, event); } -void TabWidget::slotContextMenuRequested(const QPoint &pos) -{ - emit contextMenuRequested(pos, tabBar()->tabAt(pos)); -} - AppOutputPane::RunControlTab::RunControlTab(RunControl *runControl, Core::OutputWindow *w) : runControl(runControl), window(w) { @@ -216,7 +205,7 @@ AppOutputPane::AppOutputPane() : connect(m_tabWidget, &QTabWidget::currentChanged, this, &AppOutputPane::tabChanged); - connect(m_tabWidget, &TabWidget::contextMenuRequested, + connect(m_tabWidget, &QWidget::customContextMenuRequested, this, &AppOutputPane::contextMenuRequested); connect(SessionManager::instance(), &SessionManager::aboutToUnloadSession, @@ -774,8 +763,9 @@ void AppOutputPane::tabChanged(int i) } } -void AppOutputPane::contextMenuRequested(const QPoint &pos, int index) +void AppOutputPane::contextMenuRequested(const QPoint &pos) { + const int index = m_tabWidget->tabBar()->tabAt(pos); const QList actions = {m_closeCurrentTabAction, m_closeAllTabsAction, m_closeOtherTabsAction}; QAction *action = QMenu::exec(actions, m_tabWidget->mapToGlobal(pos), nullptr, m_tabWidget); if (action == m_closeAllTabsAction) { @@ -951,5 +941,3 @@ void destroyAppOutputPane() } // namespace Internal } // namespace ProjectExplorer - -#include "appoutputpane.moc" diff --git a/src/plugins/projectexplorer/appoutputpane.h b/src/plugins/projectexplorer/appoutputpane.h index 39518c1154a..77f54d0e3f4 100644 --- a/src/plugins/projectexplorer/appoutputpane.h +++ b/src/plugins/projectexplorer/appoutputpane.h @@ -79,7 +79,7 @@ private: void stopRunControl(); void attachToRunControl(); void tabChanged(int); - void contextMenuRequested(const QPoint &pos, int index); + void contextMenuRequested(const QPoint &pos); void runControlFinished(RunControl *runControl); void aboutToUnloadSession();