forked from qt-creator/qt-creator
KitManager: Consider sdk kits for initial default kit
Change-Id: I86874f3d138f49d9962e11323364ba856b03bffd Task-number: QTCREATORBUG-15002 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
@@ -109,6 +109,13 @@ typename T::value_type findOr(const T &container, typename T::value_type other,
|
|||||||
return *it;
|
return *it;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T, typename R, typename S>
|
||||||
|
typename T::value_type findOr(const T &container, typename T::value_type other, R (S::*function)() const)
|
||||||
|
{
|
||||||
|
return findOr(container, other, std::mem_fn(function));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<typename T, typename F>
|
template<typename T, typename F>
|
||||||
int indexOf(const T &container, F function)
|
int indexOf(const T &container, F function)
|
||||||
{
|
{
|
||||||
@@ -127,6 +134,12 @@ typename T::value_type findOrDefault(const T &container, F function)
|
|||||||
return findOr(container, typename T::value_type(), function);
|
return findOr(container, typename T::value_type(), function);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T, typename R, typename S>
|
||||||
|
typename T::value_type findOrDefault(const T &container, R (S::*function)() const)
|
||||||
|
{
|
||||||
|
return findOr(container, typename T::value_type(), function);
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////
|
//////////////////
|
||||||
// find helpers
|
// find helpers
|
||||||
//////////////////
|
//////////////////
|
||||||
|
|||||||
@@ -137,6 +137,7 @@ void KitManager::restoreKits()
|
|||||||
QList<Kit *> kitsToRegister;
|
QList<Kit *> kitsToRegister;
|
||||||
QList<Kit *> kitsToValidate;
|
QList<Kit *> kitsToValidate;
|
||||||
QList<Kit *> kitsToCheck;
|
QList<Kit *> kitsToCheck;
|
||||||
|
QList<Kit *> sdkKits;
|
||||||
|
|
||||||
// read all kits from SDK
|
// read all kits from SDK
|
||||||
QFileInfo systemSettingsFile(ICore::settings(QSettings::SystemScope)->fileName());
|
QFileInfo systemSettingsFile(ICore::settings(QSettings::SystemScope)->fileName());
|
||||||
@@ -193,6 +194,7 @@ void KitManager::restoreKits()
|
|||||||
if (toStore == current)
|
if (toStore == current)
|
||||||
toStore->setup();
|
toStore->setup();
|
||||||
addKit(toStore);
|
addKit(toStore);
|
||||||
|
sdkKits << toStore;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete all loaded autodetected kits that were not rediscovered:
|
// Delete all loaded autodetected kits that were not rediscovered:
|
||||||
@@ -221,10 +223,15 @@ void KitManager::restoreKits()
|
|||||||
if (k) {
|
if (k) {
|
||||||
setDefaultKit(k);
|
setDefaultKit(k);
|
||||||
} else if (!defaultKit()) {
|
} else if (!defaultKit()) {
|
||||||
k = Utils::findOr(kitsToRegister, 0, [](Kit *k) { return k->isValid(); });
|
k = Utils::findOrDefault(kitsToRegister, &Kit::isValid);
|
||||||
|
if (k) {
|
||||||
|
setDefaultKit(k);
|
||||||
|
} else {
|
||||||
|
k = Utils::findOrDefault(sdkKits, &Kit::isValid);
|
||||||
if (k)
|
if (k)
|
||||||
setDefaultKit(k);
|
setDefaultKit(k);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
d->m_writer = new PersistentSettingsWriter(settingsFileName(), QLatin1String("QtCreatorProfiles"));
|
d->m_writer = new PersistentSettingsWriter(settingsFileName(), QLatin1String("QtCreatorProfiles"));
|
||||||
d->m_initialized = true;
|
d->m_initialized = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user