aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHannah von Reth <hannah.vonreth@kdab.com>2017-07-11 15:57:45 +0200
committerHannah von Reth <hannah.vonreth@kdab.com>2017-07-11 15:38:49 +0000
commitada1429594b2dfb24c743f79656f393028d0e340 (patch)
tree2a8ec4e12065b73ba3acec588fae78c01a665c84
parent429163ea1e5af2a46b76d30a93a695ee46022c2d (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.h1
-rw-r--r--src/plugins/debugger/debuggermainwindow.cpp11
-rw-r--r--src/plugins/debugger/debuggermainwindow.h2
-rw-r--r--src/plugins/debugger/debuggerplugin.cpp5
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)