From ada1429594b2dfb24c743f79656f393028d0e340 Mon Sep 17 00:00:00 2001 From: Hannah von Reth Date: Tue, 11 Jul 2017 15:57:45 +0200 Subject: [PATCH] Introduce setPerspectiveEnabled This enables us to mark perspectives as disabled. Change-Id: I52b2434f33f8550b6d2459f915dfd8cdb1389140 Reviewed-by: Eike Ziller Reviewed-by: hjk --- src/plugins/debugger/analyzer/analyzermanager.h | 1 + src/plugins/debugger/debuggermainwindow.cpp | 11 +++++++++++ src/plugins/debugger/debuggermainwindow.h | 2 ++ src/plugins/debugger/debuggerplugin.cpp | 5 +++++ 4 files changed, 19 insertions(+) diff --git a/src/plugins/debugger/analyzer/analyzermanager.h b/src/plugins/debugger/analyzer/analyzermanager.h index 1fd6fa72db9..a67f4376a8c 100644 --- a/src/plugins/debugger/analyzer/analyzermanager.h +++ b/src/plugins/debugger/analyzer/analyzermanager.h @@ -131,6 +131,7 @@ private: // Register a tool for a given start mode. DEBUGGER_EXPORT void registerAction(Core::Id actionId, const ActionDescription &desc, QAction *startAction = 0); DEBUGGER_EXPORT void registerPerspective(const QByteArray &perspectiveId, const Utils::Perspective *perspective); +DEBUGGER_EXPORT void setPerspectiveEnabled(const QByteArray &perspectiveId, bool enable); DEBUGGER_EXPORT void registerToolbar(const QByteArray &perspectiveId, const Utils::ToolbarDescription &desc); DEBUGGER_EXPORT void enableMainWindow(bool on); diff --git a/src/plugins/debugger/debuggermainwindow.cpp b/src/plugins/debugger/debuggermainwindow.cpp index 2909e4ae704..ba557518e7b 100644 --- a/src/plugins/debugger/debuggermainwindow.cpp +++ b/src/plugins/debugger/debuggermainwindow.cpp @@ -50,6 +50,7 @@ #include #include #include +#include #include using namespace Debugger; @@ -142,6 +143,16 @@ void DebuggerMainWindow::onModeChanged(Core::Id mode) } } +void DebuggerMainWindow::setPerspectiveEnabled(const QByteArray &perspectiveId, bool enabled) +{ + const int index = m_perspectiveChooser->findData(perspectiveId); + QTC_ASSERT(index != -1, return); + auto model = qobject_cast(m_perspectiveChooser->model()); + QTC_ASSERT(model, return); + QStandardItem *item = model->item(index, 0); + item->setFlags(enabled ? item->flags() | Qt::ItemIsEnabled : item->flags() & ~Qt::ItemIsEnabled ); +} + void DebuggerMainWindow::resetCurrentPerspective() { loadPerspectiveHelper(m_currentPerspectiveId, false); diff --git a/src/plugins/debugger/debuggermainwindow.h b/src/plugins/debugger/debuggermainwindow.h index 52d6235f558..8710d2bff33 100644 --- a/src/plugins/debugger/debuggermainwindow.h +++ b/src/plugins/debugger/debuggermainwindow.h @@ -136,6 +136,8 @@ public: void onModeChanged(Core::Id mode); + void setPerspectiveEnabled(const QByteArray &perspectiveId, bool enabled); + private: QDockWidget *registerDockWidget(const QByteArray &dockId, QWidget *widget); void loadPerspectiveHelper(const QByteArray &perspectiveId, bool fromStoredSettings = true); diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 4581f5ad5a3..b5165a1dbbc 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -3607,6 +3607,11 @@ void registerPerspective(const QByteArray &perspectiveId, const Perspective *per dd->m_mainWindow->registerPerspective(perspectiveId, perspective); } +void setPerspectiveEnabled(const QByteArray &perspectiveId, bool enabled) +{ + dd->m_mainWindow->setPerspectiveEnabled(perspectiveId, enabled); +} + void selectPerspective(const QByteArray &perspectiveId) { if (dd->m_mainWindow->currentPerspective() == perspectiveId)