diff options
author | hjk <hjk@qt.io> | 2016-10-07 16:21:17 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2016-10-10 06:15:38 +0000 |
commit | a6032652ef00e05f88c3dfcd7fde64b72c2c067e (patch) | |
tree | ff4282927d128da7d5b3e6f412b75dfedd05b88b /src/plugins/projectexplorer/targetsettingspanel.cpp | |
parent | f7e4c2fb4c225d177ce7dfe56b5d3f865114b075 (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.cpp | 12 |
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 |