diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index c6c2447df5f..cd0b12596ab 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -1057,17 +1057,18 @@ void AndroidConfigurations::updateAutomaticKitList() }; for (const QtSupport::BaseQtVersion *qt : qtVersionsForArch.value(tc->targetAbi())) { - Kit *newKit = new Kit; - initBasicKitData(newKit, qt); - Kit *existingKit = Utils::findOrDefault(existingKits, [newKit](const Kit *k) { - return matchKits(newKit, k); + auto newKit = std::make_unique(); + Kit *toSetup = newKit.get(); + initBasicKitData(toSetup, qt); + Kit *existingKit = Utils::findOrDefault(existingKits, [toSetup](const Kit *k) { + return matchKits(toSetup, k); }); if (existingKit) { // Existing kit found. // Update the existing kit with new data. initBasicKitData(existingKit, qt); - KitManager::deleteKit(newKit); - newKit = existingKit; + newKit.reset(); + toSetup = existingKit; } Debugger::DebuggerItem debugger; @@ -1078,16 +1079,16 @@ void AndroidConfigurations::updateAutomaticKitList() debugger.setAbi(tc->targetAbi()); debugger.reinitializeFromFile(); QVariant id = Debugger::DebuggerItemManager::registerDebugger(debugger); - Debugger::DebuggerKitInformation::setDebugger(newKit, id); + Debugger::DebuggerKitInformation::setDebugger(toSetup, id); - AndroidGdbServerKitInformation::setGdbSever(newKit, tc->suggestedGdbServer()); - newKit->makeSticky(); - newKit->setUnexpandedDisplayName(tr("Android for %1 (GCC %2, %3)") - .arg(static_cast(qt)->targetArch()) - .arg(tc->ndkToolChainVersion()) - .arg(qt->displayName())); + AndroidGdbServerKitInformation::setGdbSever(toSetup, tc->suggestedGdbServer()); + toSetup->makeSticky(); + toSetup->setUnexpandedDisplayName(tr("Android for %1 (GCC %2, %3)") + .arg(static_cast(qt)->targetArch()) + .arg(tc->ndkToolChainVersion()) + .arg(qt->displayName())); if (!existingKit) - KitManager::registerKit(newKit); + KitManager::registerKit(std::move(newKit)); } } } diff --git a/src/plugins/ios/iosconfigurations.cpp b/src/plugins/ios/iosconfigurations.cpp index 4289542954a..ecddb7df500 100644 --- a/src/plugins/ios/iosconfigurations.cpp +++ b/src/plugins/ios/iosconfigurations.cpp @@ -63,6 +63,8 @@ #include #include +#include + using namespace ProjectExplorer; using namespace QtSupport; using namespace Utils; @@ -298,7 +300,8 @@ void IosConfigurations::updateAutomaticKitList() kit->unblockNotification(); } else { qCDebug(kitSetupLog) << " - Setting up new kit"; - kit = new Kit; + auto newKit = std::make_unique(); + kit = newKit.get(); kit->blockNotification(); kit->setAutoDetected(true); const QString baseDisplayName = isSimulatorDeviceId(pDeviceType) @@ -307,7 +310,7 @@ void IosConfigurations::updateAutomaticKitList() kit->setUnexpandedDisplayName(baseDisplayName); setupKit(kit, pDeviceType, platformToolchains, debuggerId, sdk.path, qtVersion); kit->unblockNotification(); - KitManager::registerKit(kit); + KitManager::registerKit(std::move(newKit)); } resultingKits.insert(kit); } @@ -330,8 +333,8 @@ IosConfigurations *IosConfigurations::instance() void IosConfigurations::initialize() { - QTC_CHECK(m_instance == 0); - m_instance = new IosConfigurations(0); + QTC_CHECK(m_instance == nullptr); + m_instance = new IosConfigurations(nullptr); } bool IosConfigurations::ignoreAllDevices() diff --git a/src/plugins/projectexplorer/kit.h b/src/plugins/projectexplorer/kit.h index fc576880606..ab9b1681f65 100644 --- a/src/plugins/projectexplorer/kit.h +++ b/src/plugins/projectexplorer/kit.h @@ -61,6 +61,8 @@ public: using Predicate = std::function; explicit Kit(Core::Id id = Core::Id()); + explicit Kit(const QVariantMap &data); + ~Kit(); // Do not trigger evaluations void blockNotification(); @@ -129,9 +131,6 @@ public: private: void setSdkProvided(bool sdkProvided); - ~Kit(); - Kit(const QVariantMap &data); - // Unimplemented. Kit(const Kit &other); void operator=(const Kit &other); diff --git a/src/plugins/projectexplorer/kitmanager.cpp b/src/plugins/projectexplorer/kitmanager.cpp index cdd7e3f70b5..9ed48df0bde 100644 --- a/src/plugins/projectexplorer/kitmanager.cpp +++ b/src/plugins/projectexplorer/kitmanager.cpp @@ -67,21 +67,13 @@ static FileName settingsFileName() class KitManagerPrivate { public: - ~KitManagerPrivate(); - Kit *m_defaultKit = nullptr; bool m_initialized = false; std::vector> m_informationList; - QList m_kitList; + std::vector> m_kitList; std::unique_ptr m_writer; }; -KitManagerPrivate::~KitManagerPrivate() -{ - foreach (Kit *k, m_kitList) - delete k; -} - } // namespace Internal // -------------------------------------------------------------------------- @@ -114,78 +106,82 @@ void KitManager::restoreKits() { QTC_ASSERT(!d->m_initialized, return ); - QList resultList; - - // read all kits from SDK - KitList system - = restoreKits(FileName::fromString(ICore::installerResourcePath() + KIT_FILENAME)); - // make sure we mark these as autodetected and run additional setup logic - for (Kit *k : system.kits) { - k->setAutoDetected(true); - k->setSdkProvided(true); - k->makeSticky(); - } + std::vector> resultList; // read all kits from user file - std::vector kitsToCheck; - KitList userKits = restoreKits(settingsFileName()); - foreach (Kit *k, userKits.kits) { - if (k->isSdkProvided()) { - kitsToCheck.emplace_back(k); - } else { - completeKit(k); // Store manual kits - resultList.append(k); + Core::Id defaultUserKit; + std::vector> kitsToCheck; + { + KitList userKits = restoreKits(settingsFileName()); + defaultUserKit = userKits.defaultKit; + + for (auto &k : userKits.kits) { + if (k->isSdkProvided()) { + kitsToCheck.emplace_back(std::move(k)); + } else { + completeKit(k.get()); // Store manual kits + resultList.emplace_back(std::move(k)); + } } } - // SDK kits need to get updated with the user-provided extra settings: - for (Kit *current : system.kits) { - Kit *toStore = current; - toStore->upgrade(); - toStore->setup(); // Make sure all kitinformation are properly set up before merging them - // with the information from the user settings file + // read all kits from SDK + { + KitList system + = restoreKits(FileName::fromString(ICore::installerResourcePath() + KIT_FILENAME)); - // Check whether we had this kit stored and prefer the stored one: - const auto i = std::find_if(std::begin(kitsToCheck), - std::end(kitsToCheck), - Utils::equal(&Kit::id, current->id())); - if (i != std::end(kitsToCheck)) { - toStore = *i; - kitsToCheck.erase(i); + // SDK kits need to get updated with the user-provided extra settings: + for (auto ¤t : system.kits) { + // make sure we mark these as autodetected and run additional setup logic + current->setAutoDetected(true); + current->setSdkProvided(true); + current->makeSticky(); - // Overwrite settings that the SDK sets to those values: - foreach (const KitInformation *ki, kitInformation()) { - // Copy sticky settings over: - if (current->isSticky(ki->id())) { - toStore->setValue(ki->id(), current->value(ki->id())); - toStore->setSticky(ki->id(), true); + // Process: + auto toStore = std::move(current); + toStore->upgrade(); + toStore->setup(); // Make sure all kitinformation are properly set up before merging them + // with the information from the user settings file + + // Check whether we had this kit stored and prefer the stored one: + const auto i = std::find_if(std::begin(kitsToCheck), + std::end(kitsToCheck), + Utils::equal(&Kit::id, toStore->id())); + if (i != std::end(kitsToCheck)) { + Kit *ptr = i->get(); + + // Overwrite settings that the SDK sets to those values: + foreach (const KitInformation *ki, KitManager::kitInformation()) { + // Copy sticky settings over: + if (ptr->isSticky(ki->id())) { + ptr->setValue(ki->id(), toStore->value(ki->id())); + ptr->setSticky(ki->id(), true); + } } + toStore = std::move(*i); + kitsToCheck.erase(i); } - - delete current; + completeKit(toStore.get()); // Store manual kits + resultList.emplace_back(std::move(toStore)); } - completeKit(toStore); // Store manual kits - resultList.append(toStore); } // Delete all loaded autodetected kits that were not rediscovered: - foreach (Kit *k, kitsToCheck) - delete k; kitsToCheck.clear(); - if (resultList.isEmpty()) { - Kit *defaultKit = new Kit; // One kit using default values + if (resultList.size() == 0) { + auto defaultKit = std::make_unique(); // One kit using default values defaultKit->setUnexpandedDisplayName(tr("Desktop")); defaultKit->setSdkProvided(false); defaultKit->setAutoDetected(false); defaultKit->setup(); - completeKit(defaultKit); // Store manual kits - resultList.append(defaultKit); + completeKit(defaultKit.get()); // Store manual kits + resultList.emplace_back(std::move(defaultKit)); } - Kit *k = Utils::findOrDefault(resultList, Utils::equal(&Kit::id, userKits.defaultKit)); + Kit *k = Utils::findOrDefault(resultList, Utils::equal(&Kit::id, defaultUserKit)); if (!k) k = Utils::findOrDefault(resultList, &Kit::isValid); std::swap(resultList, d->m_kitList); @@ -323,12 +319,10 @@ KitManager::KitList KitManager::restoreKits(const FileName &fileName) const QVariantMap stMap = data.value(key).toMap(); - auto *k = new Kit(stMap); + auto k = std::make_unique(stMap); if (k->id().isValid()) { - result.kits.append(k); + result.kits.emplace_back(std::move(k)); } else { - // If the Id is broken, then do not trust the rest of the data either. - delete k; qWarning("Warning: Unable to restore kits stored in %s at position %d.", qPrintable(fileName.toUserOutput()), i); @@ -338,21 +332,19 @@ KitManager::KitList KitManager::restoreKits(const FileName &fileName) if (!id.isValid()) return result; - foreach (Kit *k, result.kits) { - if (k->id() == id) { - result.defaultKit = id; - break; - } - } + if (Utils::contains(result.kits, [id](const std::unique_ptr &k) { return k->id() == id; })) + result.defaultKit = id; + return result; } QList KitManager::kits(const Kit::Predicate &predicate) { + const QList result = Utils::toRawPointer(d->m_kitList); if (predicate) - return Utils::filtered(d->m_kitList, predicate); - return d->m_kitList; -} + return Utils::filtered(result, predicate); + return result; + } Kit *KitManager::kit(Id id) { @@ -364,7 +356,7 @@ Kit *KitManager::kit(Id id) Kit *KitManager::kit(const Kit::Predicate &predicate) { - return Utils::findOrDefault(d->m_kitList, predicate); + return Utils::findOrDefault(kits(), predicate); } Kit *KitManager::defaultKit() @@ -388,24 +380,18 @@ KitManagerConfigWidget *KitManager::createConfigWidget(Kit *k) return result; } -void KitManager::deleteKit(Kit *k) -{ - QTC_ASSERT(!KitManager::kits().contains(k), return ); - delete k; -} - void KitManager::notifyAboutUpdate(Kit *k) { if (!k || !isLoaded()) return; - if (d->m_kitList.contains(k)) + if (Utils::contains(d->m_kitList, k)) emit m_instance->kitUpdated(k); else emit m_instance->unmanagedKitUpdated(k); } -bool KitManager::registerKit(Kit *k) +bool KitManager::registerKit(std::unique_ptr &&k) { QTC_ASSERT(isLoaded(), return false); @@ -414,38 +400,39 @@ bool KitManager::registerKit(Kit *k) QTC_ASSERT(k->id().isValid(), return false); - if (kits().contains(k)) + Kit *kptr = k.get(); + if (Utils::contains(d->m_kitList, kptr)) return false; // make sure we have all the information in our kits: - completeKit(k); - d->m_kitList.append(k); + completeKit(kptr); - if (!d->m_defaultKit || (!d->m_defaultKit->isValid() && k->isValid())) - setDefaultKit(k); + d->m_kitList.emplace_back(std::move(k)); - emit m_instance->kitAdded(k); + if (!d->m_defaultKit || (!d->m_defaultKit->isValid() && kptr->isValid())) + setDefaultKit(kptr); + + emit m_instance->kitAdded(kptr); return true; } void KitManager::deregisterKit(Kit *k) { - if (!k || !kits().contains(k)) + if (!k || !Utils::contains(d->m_kitList, k)) return; - d->m_kitList.removeOne(k); + auto taken = Utils::take(d->m_kitList, k); if (defaultKit() == k) { Kit *newDefault = Utils::findOrDefault(kits(), [](Kit *k) { return k->isValid(); }); setDefaultKit(newDefault); } emit m_instance->kitRemoved(k); - delete k; } void KitManager::setDefaultKit(Kit *k) { if (defaultKit() == k) return; - if (k && !kits().contains(k)) + if (k && !Utils::contains(d->m_kitList, k)) return; d->m_defaultKit = k; emit m_instance->defaultkitChanged(); diff --git a/src/plugins/projectexplorer/kitmanager.h b/src/plugins/projectexplorer/kitmanager.h index 4f25339f0a4..a576a1d3603 100644 --- a/src/plugins/projectexplorer/kitmanager.h +++ b/src/plugins/projectexplorer/kitmanager.h @@ -124,9 +124,7 @@ public: static Internal::KitManagerConfigWidget *createConfigWidget(Kit *k); - static void deleteKit(Kit *k); - - static bool registerKit(Kit *k); + static bool registerKit(std::unique_ptr &&k); static void deregisterKit(Kit *k); static void setDefaultKit(Kit *k); @@ -171,7 +169,7 @@ private: public: KitList() {} Core::Id defaultKit; - QList kits; + std::vector> kits; }; KitList restoreKits(const Utils::FileName &fileName); diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp index 4570b14f374..c9b8391bd90 100644 --- a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp +++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp @@ -32,6 +32,7 @@ #include +#include #include #include #include @@ -60,7 +61,7 @@ KitManagerConfigWidget::KitManagerConfigWidget(Kit *k) : m_nameEdit(new QLineEdit), m_fileSystemFriendlyNameLineEdit(new QLineEdit), m_kit(k), - m_modifiedKit(new Kit(Core::Id(WORKING_COPY_KIT_ID))) + m_modifiedKit(std::make_unique(Core::Id(WORKING_COPY_KIT_ID))) { static auto alignment = static_cast(style()->styleHint(QStyle::SH_FormLayoutLabelAlignment)); @@ -129,10 +130,9 @@ KitManagerConfigWidget::~KitManagerConfigWidget() qDeleteAll(m_actions); m_actions.clear(); - KitManager::deleteKit(m_modifiedKit); // Make sure our workingCopy did not get registered somehow: - foreach (const Kit *k, KitManager::kits()) - QTC_CHECK(k->id() != Core::Id(WORKING_COPY_KIT_ID)); + QTC_CHECK(!Utils::contains(KitManager::kits(), + Utils::equal(&Kit::id, Core::Id(WORKING_COPY_KIT_ID)))); } QString KitManagerConfigWidget::displayName() const @@ -151,13 +151,14 @@ void KitManagerConfigWidget::apply() { bool mustSetDefault = m_isDefaultKit; bool mustRegister = false; + auto toRegister = std::make_unique(); if (!m_kit) { mustRegister = true; - m_kit = new Kit; + m_kit = toRegister.get(); } - m_kit->copyFrom(m_modifiedKit); //m_isDefaultKit is reset in discard() here. + m_kit->copyFrom(m_modifiedKit.get()); //m_isDefaultKit is reset in discard() here. if (mustRegister) - KitManager::registerKit(m_kit); + KitManager::registerKit(std::move(toRegister)); if (mustSetDefault) KitManager::setDefaultKit(m_kit); @@ -186,7 +187,7 @@ void KitManagerConfigWidget::discard() bool KitManagerConfigWidget::isDirty() const { return !m_kit - || !m_kit->isEqual(m_modifiedKit) + || !m_kit->isEqual(m_modifiedKit.get()) || m_isDefaultKit != (KitManager::defaultKit() == m_kit); } @@ -272,7 +273,7 @@ void KitManagerConfigWidget::makeStickySubWidgetsReadOnly() Kit *KitManagerConfigWidget::workingCopy() const { - return m_modifiedKit; + return m_modifiedKit.get(); } bool KitManagerConfigWidget::configures(Kit *k) const @@ -340,7 +341,7 @@ void KitManagerConfigWidget::setFileSystemFriendlyName() void KitManagerConfigWidget::workingCopyWasUpdated(Kit *k) { - if (k != m_modifiedKit || m_fixingKit) + if (k != m_modifiedKit.get() || m_fixingKit) return; m_fixingKit = true; diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.h b/src/plugins/projectexplorer/kitmanagerconfigwidget.h index 81745e4f9ff..026a8e25b4f 100644 --- a/src/plugins/projectexplorer/kitmanagerconfigwidget.h +++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.h @@ -29,6 +29,8 @@ #include +#include + QT_BEGIN_NAMESPACE class QGridLayout; class QLabel; @@ -98,7 +100,7 @@ private: QList m_widgets; QList m_labels; Kit *m_kit; - Kit *m_modifiedKit; + std::unique_ptr m_modifiedKit; bool m_isDefaultKit = false; bool m_fixingKit = false; bool m_hasUniqueName = true; diff --git a/src/plugins/projectexplorer/projectimporter.cpp b/src/plugins/projectexplorer/projectimporter.cpp index 25565015d89..d766f7965a6 100644 --- a/src/plugins/projectexplorer/projectimporter.cpp +++ b/src/plugins/projectexplorer/projectimporter.cpp @@ -286,26 +286,27 @@ bool ProjectImporter::isTemporaryKit(Kit *k) const Kit *ProjectImporter::createTemporaryKit(const KitSetupFunction &setup) const { - Kit *k = new Kit; + auto k = std::make_unique(); + Kit *kptr = k.get(); UpdateGuard guard(*this); { - KitGuard kitGuard(k); + KitGuard kitGuard(kptr); k->setUnexpandedDisplayName(QCoreApplication::translate("ProjectExplorer::ProjectImporter", "Imported Kit"));; // Set up values: foreach (KitInformation *ki, KitManager::kitInformation()) - ki->setup(k); + ki->setup(kptr); - setup(k); + setup(kptr); foreach (KitInformation *ki, KitManager::kitInformation()) - ki->fix(k); + ki->fix(kptr); - markKitAsTemporary(k); - addProject(k); + markKitAsTemporary(kptr); + addProject(kptr); } // ~KitGuard, sending kitUpdated - KitManager::registerKit(k); // potentially adds kits to other targetsetuppages - return k; + KitManager::registerKit(std::move(k)); // potentially adds kits to other targetsetuppages + return kptr; } bool ProjectImporter::findTemporaryHandler(Core::Id id) const diff --git a/src/plugins/qmlprofiler/tests/qmlprofilerattachdialog_test.cpp b/src/plugins/qmlprofiler/tests/qmlprofilerattachdialog_test.cpp index cf2020f2d89..e37a9f0ec02 100644 --- a/src/plugins/qmlprofiler/tests/qmlprofilerattachdialog_test.cpp +++ b/src/plugins/qmlprofiler/tests/qmlprofilerattachdialog_test.cpp @@ -46,15 +46,16 @@ void QmlProfilerAttachDialogTest::testAccessors() dialog.setPort(4444); QCOMPARE(dialog.port(), 4444); - ProjectExplorer::Kit *newKit = new ProjectExplorer::Kit("dings"); + auto newKit = std::make_unique("dings"); + ProjectExplorer::Kit *newKitPtr = newKit.get(); ProjectExplorer::KitManager *kitManager = ProjectExplorer::KitManager::instance(); QVERIFY(kitManager); - QVERIFY(kitManager->registerKit(newKit)); + QVERIFY(kitManager->registerKit(std::move(newKit))); dialog.setKitId("dings"); - QCOMPARE(dialog.kit(), newKit); + QCOMPARE(dialog.kit(), newKitPtr); - kitManager->deregisterKit(newKit); + kitManager->deregisterKit(newKitPtr); } } // namespace Internal diff --git a/src/plugins/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp b/src/plugins/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp index a6c57efa09f..0aa74983aeb 100644 --- a/src/plugins/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp +++ b/src/plugins/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp @@ -229,9 +229,9 @@ void QmlProfilerDetailsRewriterTest::seedRewriter() doc->parse(); QVERIFY(!doc->source().isEmpty()); - ProjectExplorer::Kit *kit = new ProjectExplorer::Kit; + auto kit = std::make_unique(); ProjectExplorer::SysRootKitInformation::setSysRoot( - kit, Utils::FileName::fromLatin1("/nowhere")); + kit.get(), Utils::FileName::fromLatin1("/nowhere")); DummyProject *project = new DummyProject(Utils::FileName::fromString(filename)); ProjectExplorer::SessionManager::addProject(project); @@ -240,12 +240,11 @@ void QmlProfilerDetailsRewriterTest::seedRewriter() // Make sure the uniqe_ptr gets deleted before the project. // Otherwise we'll get a double free because the target is also parented to the project // and unique_ptr doesn't know anything about QObject parent/child relationships. - std::unique_ptr target = project->createTarget(kit); + std::unique_ptr target = project->createTarget(kit.get()); m_rewriter.populateFileFinder(target.get()); } ProjectExplorer::SessionManager::removeProject(project); - ProjectExplorer::KitManager::deleteKit(kit); } } // namespace Internal diff --git a/src/plugins/qmlprofiler/tests/qmlprofilertool_test.cpp b/src/plugins/qmlprofiler/tests/qmlprofilertool_test.cpp index fdba15f03db..60ffc383e0d 100644 --- a/src/plugins/qmlprofiler/tests/qmlprofilertool_test.cpp +++ b/src/plugins/qmlprofiler/tests/qmlprofilertool_test.cpp @@ -44,13 +44,14 @@ namespace Internal { void QmlProfilerToolTest::testAttachToWaitingApplication() { - ProjectExplorer::Kit *newKit = new ProjectExplorer::Kit("fookit"); + auto newKit = std::make_unique("fookit"); + ProjectExplorer::Kit * newKitPtr = newKit.get(); ProjectExplorer::KitManager *kitManager = ProjectExplorer::KitManager::instance(); QVERIFY(kitManager); - QVERIFY(kitManager->registerKit(newKit)); + QVERIFY(kitManager->registerKit(std::move(newKit))); QSettings *settings = Core::ICore::settings(); QVERIFY(settings); - settings->setValue(QLatin1String("AnalyzerQmlAttachDialog/kitId"), newKit->id().toSetting()); + settings->setValue(QLatin1String("AnalyzerQmlAttachDialog/kitId"), newKitPtr->id().toSetting()); QmlProfilerTool profilerTool; QTcpServer server; diff --git a/src/plugins/qnx/qnxconfiguration.cpp b/src/plugins/qnx/qnxconfiguration.cpp index 0f15f9fcfe3..6032da6fe4e 100644 --- a/src/plugins/qnx/qnxconfiguration.cpp +++ b/src/plugins/qnx/qnxconfiguration.cpp @@ -300,18 +300,19 @@ ProjectExplorer::Kit *QnxConfiguration::createKit( QnxQtVersion *qnxQt = qnxQtVersion(target); // Do not create incomplete kits if no qt qnx version found if (!qnxQt) - return 0; + return nullptr; - Kit *kit = new Kit; + auto kit = std::make_unique(); + Kit *kptr = kit.get(); - QtKitInformation::setQtVersion(kit, qnxQt); - ToolChainKitInformation::setToolChain(kit, toolChain); - ToolChainKitInformation::clearToolChain(kit, ProjectExplorer::Constants::C_LANGUAGE_ID); + QtKitInformation::setQtVersion(kptr, qnxQt); + ToolChainKitInformation::setToolChain(kptr, toolChain); + ToolChainKitInformation::clearToolChain(kptr, ProjectExplorer::Constants::C_LANGUAGE_ID); if (debugger.isValid()) - DebuggerKitInformation::setDebugger(kit, debugger); + DebuggerKitInformation::setDebugger(kptr, debugger); - DeviceTypeKitInformation::setDeviceTypeId(kit, Constants::QNX_QNX_OS_TYPE); + DeviceTypeKitInformation::setDeviceTypeId(kptr, Constants::QNX_QNX_OS_TYPE); // TODO: Add sysroot? kit->setUnexpandedDisplayName( @@ -332,8 +333,8 @@ ProjectExplorer::Kit *QnxConfiguration::createKit( kit->setSticky(QmakeProjectManager::Constants::KIT_INFORMATION_ID, true); // add kit with device and qt version not sticky - KitManager::registerKit(kit); - return kit; + KitManager::registerKit(std::move(kit)); + return kptr; } QStringList QnxConfiguration::validationErrors() const diff --git a/src/plugins/qtsupport/qtprojectimporter.cpp b/src/plugins/qtsupport/qtprojectimporter.cpp index cee4b38057b..af32e4a4591 100644 --- a/src/plugins/qtsupport/qtprojectimporter.cpp +++ b/src/plugins/qtsupport/qtprojectimporter.cpp @@ -589,7 +589,7 @@ void QtSupportPlugin::testQtProjectImporter_oneProject() } if (templateKit != defaultKit) - KitManager::deleteKit(templateKit); + delete templateKit; } // -------------------------------------------------------------------- @@ -603,8 +603,7 @@ void QtSupportPlugin::testQtProjectImporter_oneProject() KitManager::deregisterKit(k); // Delete kit templates: - for (int i = 1; i < kitTemplates.count(); ++i) - KitManager::deleteKit(kitTemplates.at(i)); + qDeleteAll(kitTemplates); } } // namespace Internal