aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/projectwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/projectexplorer/projectwindow.cpp')
-rw-r--r--src/plugins/projectexplorer/projectwindow.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp
index dfa20793e3..d72f7812ff 100644
--- a/src/plugins/projectexplorer/projectwindow.cpp
+++ b/src/plugins/projectexplorer/projectwindow.cpp
@@ -84,6 +84,8 @@ public:
Qt::ItemFlags flags(int column) const override;
bool setData(int column, const QVariant &, int role) override;
+ ProjectPanelFactory *factory() const { return m_factory; }
+
protected:
ProjectPanelFactory *m_factory = nullptr;
QPointer<Project> m_project;
@@ -281,6 +283,13 @@ public:
return activeItem ? activeItem->index() : QModelIndex();
}
+ TreeItem *itemForProjectPanel(Core::Id panelId)
+ {
+ return m_miscItem->findChildAtLevel(1, [panelId](const TreeItem *item){
+ return static_cast<const MiscSettingsPanelItem *>(item)->factory()->id() == panelId;
+ });
+ }
+
private:
int m_currentChildIndex = 0; // Start with Build & Run.
Project *m_project = nullptr;
@@ -497,6 +506,14 @@ public:
item->setData(0, QVariant(), ItemActivatedDirectlyRole);
}
+ void activateProjectPanel(Core::Id panelId)
+ {
+ if (ProjectItem *projectItem = m_projectsModel.rootItem()->childAt(0)) {
+ if (TreeItem *item = projectItem->itemForProjectPanel(panelId))
+ itemActivated(item->index());
+ }
+ }
+
void openContextMenu(const QPoint &pos)
{
QMenu menu;
@@ -606,6 +623,11 @@ ProjectWindow::ProjectWindow()
setContextMenuPolicy(Qt::CustomContextMenu);
}
+void ProjectWindow::activateProjectPanel(Core::Id panelId)
+{
+ d->activateProjectPanel(panelId);
+}
+
ProjectWindow::~ProjectWindow() = default;
QSize SelectorDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const