diff options
author | Hannah von Reth <hannah.vonreth@kdab.com> | 2017-07-11 15:57:45 +0200 |
---|---|---|
committer | Hannah von Reth <hannah.vonreth@kdab.com> | 2017-07-11 15:38:49 +0000 |
commit | ada1429594b2dfb24c743f79656f393028d0e340 (patch) | |
tree | 2a8ec4e12065b73ba3acec588fae78c01a665c84 | |
parent | 429163ea1e5af2a46b76d30a93a695ee46022c2d (diff) |
Introduce setPerspectiveEnabled
This enables us to mark perspectives as disabled.
Change-Id: I52b2434f33f8550b6d2459f915dfd8cdb1389140
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: hjk <hjk@qt.io>
-rw-r--r-- | src/plugins/debugger/analyzer/analyzermanager.h | 1 | ||||
-rw-r--r-- | src/plugins/debugger/debuggermainwindow.cpp | 11 | ||||
-rw-r--r-- | src/plugins/debugger/debuggermainwindow.h | 2 | ||||
-rw-r--r-- | src/plugins/debugger/debuggerplugin.cpp | 5 |
4 files changed, 19 insertions, 0 deletions
diff --git a/src/plugins/debugger/analyzer/analyzermanager.h b/src/plugins/debugger/analyzer/analyzermanager.h index 1fd6fa72db..a67f4376a8 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 2909e4ae70..ba557518e7 100644 --- a/src/plugins/debugger/debuggermainwindow.cpp +++ b/src/plugins/debugger/debuggermainwindow.cpp @@ -50,6 +50,7 @@ #include <QHBoxLayout> #include <QMenu> #include <QStackedWidget> +#include <QStandardItemModel> #include <QToolButton> 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<QStandardItemModel*>(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 52d6235f55..8710d2bff3 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 4581f5ad5a..b5165a1dbb 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) |