ProjectExplorer: Don't show context menu when it makes no sense

Task-number: QTCREATORBUG-17152
Change-Id: Ic67386bdfd6d6d79e8a15bc6394a22cb46305335
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
hjk
2016-11-11 15:46:27 +01:00
parent 745fc30277
commit 757153fce5
2 changed files with 3 additions and 10 deletions

View File

@@ -518,6 +518,9 @@ public:
ProjectWindow::ProjectWindow() ProjectWindow::ProjectWindow()
{ {
setBackgroundRole(QPalette::Base); setBackgroundRole(QPalette::Base);
// Request custom context menu but do not provide any to avoid
// the creation of the dock window selection menu.
setContextMenuPolicy(Qt::CustomContextMenu); setContextMenuPolicy(Qt::CustomContextMenu);
auto selectorModel = new SelectorModel(this, [this](QWidget *panel) { setPanel(panel); }); auto selectorModel = new SelectorModel(this, [this](QWidget *panel) { setPanel(panel); });
@@ -553,15 +556,6 @@ ProjectWindow::ProjectWindow()
auto selectorDock = addDockForWidget(selectorView, true); auto selectorDock = addDockForWidget(selectorView, true);
addDockWidget(Qt::LeftDockWidgetArea, selectorDock); addDockWidget(Qt::LeftDockWidgetArea, selectorDock);
connect(this, &QWidget::customContextMenuRequested,
selectorModel, &SelectorModel::openContextMenu);
}
void ProjectWindow::contextMenuEvent(QContextMenuEvent *event)
{
Q_UNUSED(event)
// Do nothing to avoid creation of the dock window selection menu.
} }
void ProjectWindow::setPanel(QWidget *panel) void ProjectWindow::setPanel(QWidget *panel)

View File

@@ -56,7 +56,6 @@ public:
ProjectWindow(); ProjectWindow();
private: private:
void contextMenuEvent(QContextMenuEvent *event) override;
void setPanel(QWidget *panel); void setPanel(QWidget *panel);
}; };