aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/targetsetuppage.h
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2019-08-09 16:09:29 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2019-08-12 12:20:50 +0000
commit9be30e4f27fba036214c378f0e2896d4c80b726a (patch)
treeb353fcb487b5f29712ca05ccfce8087b0dab27fb /src/plugins/projectexplorer/targetsetuppage.h
parenta5da571ed574eed70380614c0f12d075fbe784fd (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.h25
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;