forked from qt-creator/qt-creator
ProjectExplorer: Change KitManager::sortKits()
... to sortedKits(). Simplifies the caller side and saves one temporary container. Change-Id: Id87a1ba0779e6f09cd6575808c4d05c126900f0f Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
@@ -102,8 +102,7 @@ void KitChooser::populate()
|
||||
m_hasStartupKit = true;
|
||||
}
|
||||
}
|
||||
const QList<Kit *> kits = KitManager::sortKits(KitManager::kits());
|
||||
for (Kit *kit : kits) {
|
||||
for (Kit *kit : KitManager::sortedKits()) {
|
||||
if (m_kitPredicate(kit)) {
|
||||
m_chooser->addItem(kitText(kit), kit->id().toSetting());
|
||||
const int pos = m_chooser->count() - 1;
|
||||
|
@@ -461,15 +461,16 @@ void KitManager::setBinaryForKit(const FilePath &binary)
|
||||
d->m_binaryForKit = binary;
|
||||
}
|
||||
|
||||
QList<Kit *> KitManager::sortKits(const QList<Kit *> &kits)
|
||||
const QList<Kit *> KitManager::sortedKits()
|
||||
{
|
||||
// This method was added to delay the sorting of kits as long as possible.
|
||||
// Since the displayName can contain variables it can be costly (e.g. involve
|
||||
// calling executables to find version information, etc.) to call that
|
||||
// method!
|
||||
// Avoid lots of potentially expensive calls to Kit::displayName():
|
||||
QList<QPair<QString, Kit *>> sortList = Utils::transform(kits, [](Kit *k) {
|
||||
return qMakePair(k->displayName(), k);
|
||||
std::vector<QPair<QString, Kit *>> sortList =
|
||||
Utils::transform(d->m_kitList, [](const std::unique_ptr<Kit> &k) {
|
||||
return qMakePair(k->displayName(), k.get());
|
||||
});
|
||||
Utils::sort(sortList,
|
||||
[](const QPair<QString, Kit *> &a, const QPair<QString, Kit *> &b) -> bool {
|
||||
@@ -477,7 +478,7 @@ QList<Kit *> KitManager::sortKits(const QList<Kit *> &kits)
|
||||
return a.second < b.second;
|
||||
return a.first < b.first;
|
||||
});
|
||||
return Utils::transform(sortList, &QPair<QString, Kit *>::second);
|
||||
return Utils::transform<QList>(sortList, &QPair<QString, Kit *>::second);
|
||||
}
|
||||
|
||||
static KitList restoreKitsHelper(const FilePath &fileName)
|
||||
|
@@ -135,6 +135,7 @@ public:
|
||||
static KitManager *instance();
|
||||
|
||||
static const QList<Kit *> kits();
|
||||
static const QList<Kit *> sortedKits(); // Avoid sorting whenever possible!
|
||||
static Kit *kit(const Kit::Predicate &predicate);
|
||||
static Kit *kit(Utils::Id id);
|
||||
static Kit *defaultKit();
|
||||
@@ -147,8 +148,6 @@ public:
|
||||
static void deregisterKit(Kit *k);
|
||||
static void setDefaultKit(Kit *k);
|
||||
|
||||
static QList<Kit *> sortKits(const QList<Kit *> &kits); // Avoid sorting whenever possible!
|
||||
|
||||
static void saveKits();
|
||||
|
||||
static bool isLoaded();
|
||||
|
@@ -159,8 +159,7 @@ KitModel::KitModel(QBoxLayout *parentLayout, QObject *parent)
|
||||
rootItem()->appendChild(m_autoRoot);
|
||||
rootItem()->appendChild(m_manualRoot);
|
||||
|
||||
const QList<Kit *> kits = KitManager::sortKits(KitManager::kits());
|
||||
for (Kit *k : kits)
|
||||
for (Kit *k : KitManager::sortedKits())
|
||||
addKit(k);
|
||||
|
||||
changeDefaultKit();
|
||||
|
@@ -764,8 +764,7 @@ void TargetGroupItemPrivate::rebuildContents()
|
||||
{
|
||||
q->removeChildren();
|
||||
|
||||
const QList<Kit *> kits = KitManager::sortKits(KitManager::kits());
|
||||
for (Kit *kit : kits)
|
||||
for (Kit *kit : KitManager::sortedKits())
|
||||
q->appendChild(new TargetItem(m_project, kit->id(), m_project->projectIssues(kit)));
|
||||
|
||||
if (q->parent())
|
||||
|
@@ -302,8 +302,7 @@ bool TargetSetupPage::isComplete() const
|
||||
|
||||
void TargetSetupPagePrivate::setupWidgets(const QString &filterText)
|
||||
{
|
||||
const auto kitList = KitManager::sortKits(KitManager::kits());
|
||||
for (Kit *k : kitList) {
|
||||
for (Kit *k : KitManager::sortedKits()) {
|
||||
if (!filterText.isEmpty() && !k->displayName().contains(filterText, Qt::CaseInsensitive))
|
||||
continue;
|
||||
const auto widget = new TargetSetupWidget(k, m_projectPath);
|
||||
|
Reference in New Issue
Block a user