aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/targetsettingspanel.cpp
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2016-10-07 16:21:17 +0200
committerhjk <hjk@qt.io>2016-10-10 06:15:38 +0000
commita6032652ef00e05f88c3dfcd7fde64b72c2c067e (patch)
treeff4282927d128da7d5b3e6f412b75dfedd05b88b /src/plugins/projectexplorer/targetsettingspanel.cpp
parentf7e4c2fb4c225d177ce7dfe56b5d3f865114b075 (diff)
ProjectWindow: More tree polish
- Remove 'panel memory effect' when switching kits Previously, each target entry memorized when its Build or Run page was used, and when switching to the target, that page came up. Now, don't use that when switching targets, but instead take the same page as is selected on the target we are switching from. - Disable selection of the Build&Run and Project Settings "group entries" Change-Id: I2214f8edc38be2e76a50f8984aa75d8f78b62026 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer/targetsettingspanel.cpp')
-rw-r--r--src/plugins/projectexplorer/targetsettingspanel.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/plugins/projectexplorer/targetsettingspanel.cpp b/src/plugins/projectexplorer/targetsettingspanel.cpp
index 8e7d0ced45..8e380a3704 100644
--- a/src/plugins/projectexplorer/targetsettingspanel.cpp
+++ b/src/plugins/projectexplorer/targetsettingspanel.cpp
@@ -313,6 +313,8 @@ class TargetItem : public TypedTreeItem<TreeItem, TargetGroupItem>
Q_DECLARE_TR_FUNCTIONS(TargetSettingsPanelWidget)
public:
+ enum { DefaultPage = 1 }; // Run page.
+
TargetItem(Project *project, Id kitId)
: m_project(project), m_kitId(kitId)
{
@@ -405,10 +407,16 @@ public:
if (role == ItemActivatedDirectlyRole) {
QTC_ASSERT(!data.isValid(), return false);
if (!isEnabled()) {
+ m_currentChild = DefaultPage;
Kit *k = KitManager::find(m_kitId);
m_project->addTarget(m_project->createTarget(k));
} else {
+ // Go to Run page, when on Run previously etc.
+ TargetItem *previousItem = parent()->currentTargetItem();
+ m_currentChild = previousItem ? previousItem->m_currentChild : DefaultPage;
SessionManager::setActiveTarget(m_project, target(), SetActive::Cascade);
+ parent()->setData(column, QVariant::fromValue(static_cast<TreeItem *>(this)),
+ ItemActivatedFromBelowRole);
}
return true;
}
@@ -506,7 +514,7 @@ public:
public:
QPointer<Project> m_project; // Not owned.
Id m_kitId;
- int m_currentChild = 1; // Use run page by default.
+ int m_currentChild = DefaultPage; // Use run page by default.
private:
enum class IconOverlay {
@@ -792,7 +800,7 @@ bool TargetGroupItem::setData(int column, const QVariant &data, int role)
Qt::ItemFlags TargetGroupItem::flags(int) const
{
- return Qt::ItemIsEnabled;
+ return Qt::NoItemFlags;
}
TargetItem *TargetGroupItem::currentTargetItem() const