diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2019-08-09 16:09:29 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2019-08-12 12:20:50 +0000 |
commit | 9be30e4f27fba036214c378f0e2896d4c80b726a (patch) | |
tree | b353fcb487b5f29712ca05ccfce8087b0dab27fb /src/plugins/projectexplorer/targetsetuppage.h | |
parent | a5da571ed574eed70380614c0f12d075fbe784fd (diff) |
ProjectExplorer: Improve target setup page
- Do not hide any kits, as that it not transparent to the user.
Instead, show all of them and disable the unsuitable ones, with
an explanatory tool tip.
- Keep the list of kits sorted after new ones have been added.
- Do not do tons of unnecessary layout operations when setting the
kit list up from scratch.
- Code clean-up.
Fixes: QTCREATORBUG-20018
Change-Id: I7823ec9c3e5be00c6791e61926999cea0d7e43df
Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer/targetsetuppage.h')
-rw-r--r-- | src/plugins/projectexplorer/targetsetuppage.h | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/plugins/projectexplorer/targetsetuppage.h b/src/plugins/projectexplorer/targetsetuppage.h index 3bb47a89e2..7c59e49099 100644 --- a/src/plugins/projectexplorer/targetsetuppage.h +++ b/src/plugins/projectexplorer/targetsetuppage.h @@ -66,8 +66,8 @@ public: void initializePage() override; // Call these before initializePage! - void setRequiredKitPredicate(const ProjectExplorer::Kit::Predicate &predicate); - void setPreferredKitPredicate(const ProjectExplorer::Kit::Predicate &predicate); + void setRequiredKitPredicate(const Kit::Predicate &predicate); + void setPreferredKitPredicate(const Kit::Predicate &predicate); void setProjectPath(const Utils::FilePath &dir); void setProjectImporter(ProjectImporter *importer); bool importLineEditHasFocus() const; @@ -91,19 +91,27 @@ public: void kitFilterChanged(const QString &filterText); private: - void handleKitAddition(ProjectExplorer::Kit *k); - void handleKitRemoval(ProjectExplorer::Kit *k); - void handleKitUpdate(ProjectExplorer::Kit *k); + void handleKitAddition(Kit *k); + void handleKitRemoval(Kit *k); + void handleKitUpdate(Kit *k); void updateVisibility(); + void reLayout(); + static bool compareKits(const Kit *k1, const Kit *k2); + std::vector<Internal::TargetSetupWidget *> sortedWidgetList() const; + void kitSelectionChanged(); - static QList<Kit *> sortedKitList(const Kit::Predicate &predicate); bool isUpdating() const; void selectAtLeastOneKit(); void removeWidget(Kit *k) { removeWidget(widget(k)); } void removeWidget(Internal::TargetSetupWidget *w); Internal::TargetSetupWidget *addWidget(Kit *k); + void addAdditionalWidgets(); + void removeAdditionalWidgets(QLayout *layout); + void removeAdditionalWidgets() { removeAdditionalWidgets(m_baseLayout); } + void updateWidget(Internal::TargetSetupWidget *widget); + bool isUsable(const Kit *kit) const; void setupImports(); void import(const Utils::FilePath &path, bool silent = false); @@ -116,14 +124,13 @@ private: Internal::TargetSetupWidget *widget(const Core::Id kitId, Internal::TargetSetupWidget *fallback = nullptr) const; - ProjectExplorer::Kit::Predicate m_requiredPredicate; - ProjectExplorer::Kit::Predicate m_preferredPredicate; + Kit::Predicate m_requiredPredicate; + Kit::Predicate m_preferredPredicate; QPointer<ProjectImporter> m_importer; QLayout *m_baseLayout = nullptr; Utils::FilePath m_projectPath; QString m_defaultShadowBuildLocation; std::vector<Internal::TargetSetupWidget *> m_widgets; - Internal::TargetSetupWidget *m_firstWidget = nullptr; Internal::TargetSetupPageUi *m_ui; |