diff --git a/src/plugins/qnx/qnxbaseqtconfigwidget.cpp b/src/plugins/qnx/qnxbaseqtconfigwidget.cpp index 056dfa9cedf..7ac289c9bf5 100644 --- a/src/plugins/qnx/qnxbaseqtconfigwidget.cpp +++ b/src/plugins/qnx/qnxbaseqtconfigwidget.cpp @@ -33,30 +33,28 @@ #include #include +using namespace Utils; + namespace Qnx { namespace Internal { QnxBaseQtConfigWidget::QnxBaseQtConfigWidget(QnxQtVersion *version) : m_version(version), - m_sdpPathChooser(new Utils::PathChooser) + m_sdpPathChooser(new PathChooser) { QTC_ASSERT(version, return); auto layout = new QHBoxLayout(this); layout->addWidget(m_sdpPathChooser); - m_sdpPathChooser->setExpectedKind(Utils::PathChooser::ExistingDirectory); - m_sdpPathChooser->setHistoryCompleter(QLatin1String("Qnx.Sdp.History")); - m_sdpPathChooser->setPath(version->sdpPath()); + m_sdpPathChooser->setExpectedKind(PathChooser::ExistingDirectory); + m_sdpPathChooser->setHistoryCompleter("Qnx.Sdp.History"); + m_sdpPathChooser->setFilePath(version->sdpPath()); - connect(m_sdpPathChooser, &Utils::PathChooser::rawPathChanged, - this, &QnxBaseQtConfigWidget::updateSdpPath); -} - -void QnxBaseQtConfigWidget::updateSdpPath(const QString &path) -{ - m_version->setSdpPath(path); - emit changed(); + connect(m_sdpPathChooser, &PathChooser::rawPathChanged, [this] { + m_version->setSdpPath(m_sdpPathChooser->filePath()); + emit changed(); + }); } } // namespace Internal diff --git a/src/plugins/qnx/qnxbaseqtconfigwidget.h b/src/plugins/qnx/qnxbaseqtconfigwidget.h index 28428144a71..1ab1a9d16e5 100644 --- a/src/plugins/qnx/qnxbaseqtconfigwidget.h +++ b/src/plugins/qnx/qnxbaseqtconfigwidget.h @@ -27,7 +27,10 @@ #include -namespace Utils { class PathChooser; } +namespace Utils { +class PathChooser; +class FilePath; +} // Utils namespace Qnx { namespace Internal { @@ -41,9 +44,6 @@ class QnxBaseQtConfigWidget : public QtSupport::QtConfigWidget public: explicit QnxBaseQtConfigWidget(QnxQtVersion *version); -private slots: - void updateSdpPath(const QString &path); - private: QnxQtVersion *m_version; Utils::PathChooser *m_sdpPathChooser; diff --git a/src/plugins/qnx/qnxconfiguration.cpp b/src/plugins/qnx/qnxconfiguration.cpp index 33af0f3ecb8..706551360b4 100644 --- a/src/plugins/qnx/qnxconfiguration.cpp +++ b/src/plugins/qnx/qnxconfiguration.cpp @@ -225,7 +225,7 @@ QnxQtVersion *QnxConfiguration::qnxQtVersion(const Target &target) const QtVersionManager::instance()->versions(Utils::equal(&BaseQtVersion::type, QString::fromLatin1(Constants::QNX_QNX_QT)))) { auto qnxQt = dynamic_cast(version); - if (qnxQt && FilePath::fromString(qnxQt->sdpPath()) == sdpPath()) { + if (qnxQt && qnxQt->sdpPath() == sdpPath()) { foreach (const Abi &qtAbi, version->qtAbis()) { if ((qtAbi == target.m_abi) && (qnxQt->cpuDir() == target.cpuDir())) return qnxQt; @@ -240,7 +240,7 @@ QList QnxConfiguration::autoDetect(const QList &alread { QList result; - foreach (const Target &target, m_targets) + for (const Target &target : qAsConst(m_targets)) result += findToolChain(alreadyKnown, target.m_abi); return result; @@ -286,7 +286,7 @@ QnxConfiguration::QnxToolChainMap QnxConfiguration::createToolChain(const Target "QCC for %1 (%2)") .arg(displayName()) .arg(target.shortDescription())); - toolChain->setSdpPath(sdpPath().toString()); + toolChain->setSdpPath(sdpPath()); toolChain->setCpuDir(target.cpuDir()); toolChain->resetToolChain(qccCompilerPath()); ToolChainManager::registerToolChain(toolChain); @@ -372,11 +372,11 @@ void QnxConfiguration::setVersion(const QnxVersionNumber &version) void QnxConfiguration::readInformation() { const QString qConfigPath = m_qnxConfiguration.pathAppended("qconfig").toString(); - QList installInfoList = QnxUtils::installedConfigs(qConfigPath); + const QList installInfoList = QnxUtils::installedConfigs(qConfigPath); if (installInfoList.isEmpty()) return; - foreach (const ConfigInstallInformation &info, installInfoList) { + for (const ConfigInstallInformation &info : installInfoList) { if (m_qnxHost == FilePath::fromString(info.host).canonicalPath() && m_qnxTarget == FilePath::fromString(info.target).canonicalPath()) { m_configName = info.name; @@ -386,11 +386,11 @@ void QnxConfiguration::readInformation() } } -void QnxConfiguration::setDefaultConfiguration(const Utils::FilePath &envScript) +void QnxConfiguration::setDefaultConfiguration(const FilePath &envScript) { QTC_ASSERT(!envScript.isEmpty(), return); m_envFile = envScript; - m_qnxEnv = QnxUtils::qnxEnvironmentFromEnvFile(m_envFile.toString()); + m_qnxEnv = QnxUtils::qnxEnvironmentFromEnvFile(m_envFile); foreach (const EnvironmentItem &item, m_qnxEnv) { if (item.name == QNXConfiguration) m_qnxConfiguration = FilePath::fromString(item.value).canonicalPath(); diff --git a/src/plugins/qnx/qnxqtversion.cpp b/src/plugins/qnx/qnxqtversion.cpp index 02dceac4a48..b0fcf300b35 100644 --- a/src/plugins/qnx/qnxqtversion.cpp +++ b/src/plugins/qnx/qnxqtversion.cpp @@ -109,14 +109,14 @@ QString QnxQtVersion::cpuDir() const QVariantMap QnxQtVersion::toMap() const { QVariantMap result = BaseQtVersion::toMap(); - result.insert(QLatin1String(SDP_PATH_KEY), sdpPath()); + result.insert(SDP_PATH_KEY, sdpPath().toVariant()); return result; } void QnxQtVersion::fromMap(const QVariantMap &map) { BaseQtVersion::fromMap(map); - setSdpPath(QDir::fromNativeSeparators(map.value(QLatin1String(SDP_PATH_KEY)).toString())); + setSdpPath(FilePath::fromVariant(map.value(SDP_PATH_KEY))); } Abis QnxQtVersion::detectQtAbis() const @@ -134,7 +134,7 @@ void QnxQtVersion::addToEnvironment(const Kit *k, Environment &env) const env.prependOrSetLibrarySearchPath(libraryPath().toString()); } -void QnxQtVersion::setupQmakeRunEnvironment(Utils::Environment &env) const +void QnxQtVersion::setupQmakeRunEnvironment(Environment &env) const { if (!sdpPath().isEmpty()) updateEnvironment(); @@ -160,12 +160,12 @@ QString QnxQtVersion::invalidReason() const return QtSupport::BaseQtVersion::invalidReason(); } -QString QnxQtVersion::sdpPath() const +FilePath QnxQtVersion::sdpPath() const { return m_sdpPath; } -void QnxQtVersion::setSdpPath(const QString &sdpPath) +void QnxQtVersion::setSdpPath(const FilePath &sdpPath) { if (m_sdpPath == sdpPath) return; diff --git a/src/plugins/qnx/qnxqtversion.h b/src/plugins/qnx/qnxqtversion.h index bd8876def20..637e9475f9f 100644 --- a/src/plugins/qnx/qnxqtversion.h +++ b/src/plugins/qnx/qnxqtversion.h @@ -63,15 +63,15 @@ public: bool isValid() const override; QString invalidReason() const override; - QString sdpPath() const; - void setSdpPath(const QString &sdpPath); + Utils::FilePath sdpPath() const; + void setSdpPath(const Utils::FilePath &sdpPath); private: void updateEnvironment() const; Utils::EnvironmentItems environment() const; - QString m_sdpPath; + Utils::FilePath m_sdpPath; mutable QString m_cpuDir; mutable bool m_environmentUpToDate = false; diff --git a/src/plugins/qnx/qnxtoolchain.cpp b/src/plugins/qnx/qnxtoolchain.cpp index 0fc060f51e1..984d593b4e0 100644 --- a/src/plugins/qnx/qnxtoolchain.cpp +++ b/src/plugins/qnx/qnxtoolchain.cpp @@ -41,8 +41,8 @@ using namespace Utils; namespace Qnx { namespace Internal { -static const char CompilerSdpPath[] = "Qnx.QnxToolChain.NDKPath"; -static const char CpuDirKey[] = "Qnx.QnxToolChain.CpuDir"; +const char CompilerSdpPath[] = "Qnx.QnxToolChain.NDKPath"; +const char CpuDirKey[] = "Qnx.QnxToolChain.CpuDir"; static Abis detectTargetAbis(const FilePath &sdpPath) { @@ -50,8 +50,8 @@ static Abis detectTargetAbis(const FilePath &sdpPath) FilePath qnxTarget; if (!sdpPath.fileName().isEmpty()) { - Utils::EnvironmentItems environment = QnxUtils::qnxEnvironment(sdpPath.toString()); - foreach (const Utils::EnvironmentItem &item, environment) { + const EnvironmentItems environment = QnxUtils::qnxEnvironment(sdpPath); + for (const EnvironmentItem &item : environment) { if (item.name == QLatin1String("QNX_TARGET")) qnxTarget = FilePath::fromString(item.value); } @@ -137,7 +137,7 @@ QStringList QnxToolChain::suggestedMkspecList() const QVariantMap QnxToolChain::toMap() const { QVariantMap data = GccToolChain::toMap(); - data.insert(QLatin1String(CompilerSdpPath), m_sdpPath); + data.insert(QLatin1String(CompilerSdpPath), m_sdpPath.toVariant()); data.insert(QLatin1String(CpuDirKey), m_cpuDir); return data; } @@ -147,7 +147,7 @@ bool QnxToolChain::fromMap(const QVariantMap &data) if (!GccToolChain::fromMap(data)) return false; - m_sdpPath = data.value(QLatin1String(CompilerSdpPath)).toString(); + m_sdpPath = FilePath::fromVariant(data.value(CompilerSdpPath)); m_cpuDir = data.value(QLatin1String(CpuDirKey)).toString(); // Make the ABIs QNX specific (if they aren't already). @@ -157,12 +157,12 @@ bool QnxToolChain::fromMap(const QVariantMap &data) return true; } -QString QnxToolChain::sdpPath() const +FilePath QnxToolChain::sdpPath() const { return m_sdpPath; } -void QnxToolChain::setSdpPath(const QString &sdpPath) +void QnxToolChain::setSdpPath(const FilePath &sdpPath) { if (m_sdpPath == sdpPath) return; @@ -185,7 +185,7 @@ void QnxToolChain::setCpuDir(const QString &cpuDir) GccToolChain::DetectedAbisResult QnxToolChain::detectSupportedAbis() const { - return detectTargetAbis(FilePath::fromString(m_sdpPath)); + return detectTargetAbis(m_sdpPath); } bool QnxToolChain::operator ==(const ToolChain &other) const @@ -243,7 +243,7 @@ QnxToolChainConfigWidget::QnxToolChainConfigWidget(QnxToolChain *tc) m_sdpPath->setExpectedKind(PathChooser::ExistingDirectory); m_sdpPath->setHistoryCompleter(QLatin1String("Qnx.Sdp.History")); - m_sdpPath->setPath(tc->sdpPath()); + m_sdpPath->setFilePath(tc->sdpPath()); m_sdpPath->setEnabled(!tc->isAutoDetected()); const Abis abiList = detectTargetAbis(m_sdpPath->filePath()); @@ -270,7 +270,7 @@ void QnxToolChainConfigWidget::applyImpl() Q_ASSERT(tc); QString displayName = tc->displayName(); tc->setDisplayName(displayName); // reset display name - tc->setSdpPath(m_sdpPath->filePath().toString()); + tc->setSdpPath(m_sdpPath->filePath()); tc->setTargetAbi(m_abiWidget->currentAbi()); tc->resetToolChain(m_compilerCommand->filePath()); } @@ -281,7 +281,7 @@ void QnxToolChainConfigWidget::discardImpl() QSignalBlocker blocker(this); auto tc = static_cast(toolChain()); m_compilerCommand->setFilePath(tc->compilerCommand()); - m_sdpPath->setPath(tc->sdpPath()); + m_sdpPath->setFilePath(tc->sdpPath()); m_abiWidget->setAbis(tc->supportedAbis(), tc->targetAbi()); if (!m_compilerCommand->filePath().toString().isEmpty()) m_abiWidget->setEnabled(true); @@ -292,7 +292,7 @@ bool QnxToolChainConfigWidget::isDirtyImpl() const auto tc = static_cast(toolChain()); Q_ASSERT(tc); return m_compilerCommand->filePath() != tc->compilerCommand() - || m_sdpPath->filePath().toString() != tc->sdpPath() + || m_sdpPath->filePath() != tc->sdpPath() || m_abiWidget->currentAbi() != tc->targetAbi(); } diff --git a/src/plugins/qnx/qnxtoolchain.h b/src/plugins/qnx/qnxtoolchain.h index 428cc5202d1..a2d8440ddee 100644 --- a/src/plugins/qnx/qnxtoolchain.h +++ b/src/plugins/qnx/qnxtoolchain.h @@ -46,8 +46,8 @@ public: QVariantMap toMap() const override; bool fromMap(const QVariantMap &data) override; - QString sdpPath() const; - void setSdpPath(const QString &sdpPath); + Utils::FilePath sdpPath() const; + void setSdpPath(const Utils::FilePath &sdpPath); QString cpuDir() const; void setCpuDir(const QString &cpuDir); @@ -57,7 +57,7 @@ protected: DetectedAbisResult detectSupportedAbis() const override; private: - QString m_sdpPath; + Utils::FilePath m_sdpPath; QString m_cpuDir; }; diff --git a/src/plugins/qnx/qnxutils.cpp b/src/plugins/qnx/qnxutils.cpp index d90acdda803..e8fabfb959b 100644 --- a/src/plugins/qnx/qnxutils.cpp +++ b/src/plugins/qnx/qnxutils.cpp @@ -78,11 +78,11 @@ QString QnxUtils::cpuDirShortDescription(const QString &cpuDir) return cpuDir; } -EnvironmentItems QnxUtils::qnxEnvironmentFromEnvFile(const QString &fileName) +EnvironmentItems QnxUtils::qnxEnvironmentFromEnvFile(const FilePath &filePath) { EnvironmentItems items; - if (!QFileInfo::exists(fileName)) + if (!filePath.exists()) return items; const bool isWindows = HostOsInfo::isWindowsHost(); @@ -97,10 +97,10 @@ EnvironmentItems QnxUtils::qnxEnvironmentFromEnvFile(const QString &fileName) QTextStream fileContent(&tmpFile); if (isWindows) fileContent << "@echo off\n" - << "call " << fileName << '\n'; + << "call " << filePath.path() << '\n'; else fileContent << "#!/bin/bash\n" - << ". " << fileName << '\n'; + << ". " << filePath.path() << '\n'; QString linePattern = QString::fromLatin1(isWindows ? "echo %1=%%1%" : "echo %1=$%1"); for (int i = 0, len = sizeof(EVAL_ENV_VARS) / sizeof(const char *); i < len; ++i) fileContent << linePattern.arg(QLatin1String(EVAL_ENV_VARS[i])) << QLatin1Char('\n'); @@ -140,19 +140,18 @@ EnvironmentItems QnxUtils::qnxEnvironmentFromEnvFile(const QString &fileName) return items; } -QString QnxUtils::envFilePath(const QString &sdpPath) +FilePath QnxUtils::envFilePath(const FilePath &sdpPath) { - QDir sdp(sdpPath); - QStringList entries; - if (HostOsInfo::isWindowsHost()) - entries = sdp.entryList(QStringList(QLatin1String("*-env.bat"))); + FilePaths entries; + if (sdpPath.osType() == OsTypeWindows) + entries = sdpPath.dirEntries({"*-env.bat"}); else - entries = sdp.entryList(QStringList(QLatin1String("*-env.sh"))); + entries = sdpPath.dirEntries({"*-env.sh"}); if (!entries.isEmpty()) - return sdp.absoluteFilePath(entries.first()); + return entries.first(); - return QString(); + return {}; } QString QnxUtils::defaultTargetVersion(const QString &sdpPath) @@ -208,7 +207,7 @@ QList QnxUtils::installedConfigs(const QString &config return sdpList; } -EnvironmentItems QnxUtils::qnxEnvironment(const QString &sdpPath) +EnvironmentItems QnxUtils::qnxEnvironment(const FilePath &sdpPath) { return qnxEnvironmentFromEnvFile(envFilePath(sdpPath)); } diff --git a/src/plugins/qnx/qnxutils.h b/src/plugins/qnx/qnxutils.h index c918ba09ab6..a90f5ded4a4 100644 --- a/src/plugins/qnx/qnxutils.h +++ b/src/plugins/qnx/qnxutils.h @@ -68,11 +68,11 @@ class QnxUtils public: static QString cpuDirFromAbi(const ProjectExplorer::Abi &abi); static QString cpuDirShortDescription(const QString &cpuDir); - static Utils::EnvironmentItems qnxEnvironmentFromEnvFile(const QString &fileName); - static QString envFilePath(const QString &sdpPath); + static Utils::EnvironmentItems qnxEnvironmentFromEnvFile(const Utils::FilePath &filePath); + static Utils::FilePath envFilePath(const Utils::FilePath &sdpPath); static QString defaultTargetVersion(const QString &sdpPath); static QList installedConfigs(const QString &configPath = QString()); - static Utils::EnvironmentItems qnxEnvironment(const QString &sdpPath); + static Utils::EnvironmentItems qnxEnvironment(const Utils::FilePath &sdpPath); static QList findTargets(const Utils::FilePath &basePath); static ProjectExplorer::Abi convertAbi(const ProjectExplorer::Abi &abi); static ProjectExplorer::Abis convertAbis(const ProjectExplorer::Abis &abis);