aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qtsupport/baseqtversion.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2019-10-14 15:44:00 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2019-10-16 08:16:47 +0000
commit400eeaea7e955980ceeee9a0d2e4e0e30c819bb7 (patch)
tree7e978da62dac8e72115a0b7baa15868e2e538bca /src/plugins/qtsupport/baseqtversion.cpp
parent734b9097c7d40161b5a19bded7e22418bb7afcb7 (diff)
QtSupport: Use Utils::DisplayName in BaseQtVersion
Task-number: QTCREATORBUG-16281 Change-Id: Idd697594bfd83d8f26c4cbfe5ff2d9472609836b Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/qtsupport/baseqtversion.cpp')
-rw-r--r--src/plugins/qtsupport/baseqtversion.cpp37
1 files changed, 21 insertions, 16 deletions
diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp
index 603a19aff5f..93c8015f3e3 100644
--- a/src/plugins/qtsupport/baseqtversion.cpp
+++ b/src/plugins/qtsupport/baseqtversion.cpp
@@ -48,13 +48,14 @@
#include <qtsupport/qtsupportconstants.h>
#include <utils/algorithm.h>
+#include <utils/displayname.h>
+#include <utils/fileinprojectfinder.h>
#include <utils/hostosinfo.h>
#include <utils/macroexpander.h>
#include <utils/qtcassert.h>
#include <utils/runextensions.h>
#include <utils/synchronousprocess.h>
#include <utils/winutils.h>
-#include <utils/fileinprojectfinder.h>
#include <resourceeditor/resourcenode.h>
@@ -175,7 +176,7 @@ public:
bool m_qmakeIsExecutable = true;
bool m_hasQtAbis = false;
- QString m_unexpandedDisplayName;
+ DisplayName m_unexpandedDisplayName;
QString m_autodetectionSource;
QSet<Core::Id> m_overrideFeatures;
FilePath m_sourcePath;
@@ -304,18 +305,17 @@ void BaseQtVersionPrivate::setupQmakePathAndId(const FilePath &qmakeCommand)
m_id = QtVersionManager::getUniqueId();
QTC_CHECK(m_qmakeCommand.isEmpty()); // Should only be used once.
m_qmakeCommand = qmakeCommand;
- m_unexpandedDisplayName = BaseQtVersion::defaultUnexpandedDisplayName(m_qmakeCommand, false);
}
-QString BaseQtVersion::defaultUnexpandedDisplayName(const FilePath &qmakePath, bool fromPath)
+QString BaseQtVersion::defaultUnexpandedDisplayName() const
{
QString location;
- if (qmakePath.isEmpty()) {
+ if (qmakeCommand().isEmpty()) {
location = QCoreApplication::translate("QtVersion", "<unknown>");
} else {
// Deduce a description from '/foo/qt-folder/[qtbase]/bin/qmake' -> '/foo/qt-folder'.
// '/usr' indicates System Qt 4.X on Linux.
- QDir dir = qmakePath.toFileInfo().absoluteDir();
+ QDir dir = qmakeCommand().toFileInfo().absoluteDir();
do {
const QString dirName = dir.dirName();
if (dirName == "usr") { // System-installed Qt.
@@ -332,7 +332,7 @@ QString BaseQtVersion::defaultUnexpandedDisplayName(const FilePath &qmakePath, b
} while (!dir.isRoot() && dir.cdUp());
}
- return fromPath ?
+ return autodetectionSource() == "PATH" ?
QCoreApplication::translate("QtVersion", "Qt %{Qt:Version} in PATH (%2)").arg(location) :
QCoreApplication::translate("QtVersion", "Qt %{Qt:Version} (%2)").arg(location);
}
@@ -651,10 +651,9 @@ void BaseQtVersion::fromMap(const QVariantMap &map)
d->m_id = map.value(Constants::QTVERSIONID).toInt();
if (d->m_id == -1) // this happens on adding from installer, see updateFromInstaller => get a new unique id
d->m_id = QtVersionManager::getUniqueId();
- d->m_unexpandedDisplayName = map.value(Constants::QTVERSIONNAME).toString();
+ d->m_unexpandedDisplayName.fromMap(map, Constants::QTVERSIONNAME);
d->m_isAutodetected = map.value(QTVERSIONAUTODETECTED).toBool();
- if (d->m_isAutodetected)
- d->m_autodetectionSource = map.value(QTVERSIONAUTODETECTIONSOURCE).toString();
+ d->m_autodetectionSource = map.value(QTVERSIONAUTODETECTIONSOURCE).toString();
d->m_overrideFeatures = Core::Id::fromStringList(map.value(QTVERSION_OVERRIDE_FEATURES).toStringList());
QString string = map.value(QTVERSIONQMAKEPATH).toString();
if (string.startsWith('~'))
@@ -677,6 +676,7 @@ void BaseQtVersion::fromMap(const QVariantMap &map)
}
d->m_qmakeCommand = FilePath::fromString(string);
+ updateDefaultDisplayName();
// Clear the cached qmlscene command, it might not match the restored path anymore.
d->m_qmlsceneCommand.clear();
@@ -686,10 +686,9 @@ QVariantMap BaseQtVersion::toMap() const
{
QVariantMap result;
result.insert(Constants::QTVERSIONID, uniqueId());
- result.insert(Constants::QTVERSIONNAME, unexpandedDisplayName());
+ d->m_unexpandedDisplayName.toMap(result, Constants::QTVERSIONNAME);
result.insert(QTVERSIONAUTODETECTED, isAutodetected());
- if (isAutodetected())
- result.insert(QTVERSIONAUTODETECTIONSOURCE, autodetectionSource());
+ result.insert(QTVERSIONAUTODETECTIONSOURCE, autodetectionSource());
if (!d->m_overrideFeatures.isEmpty())
result.insert(QTVERSION_OVERRIDE_FEATURES, Core::Id::toStringList(d->m_overrideFeatures));
@@ -802,17 +801,22 @@ QString BaseQtVersion::autodetectionSource() const
QString BaseQtVersion::displayName() const
{
- return macroExpander()->expand(d->m_unexpandedDisplayName);
+ return macroExpander()->expand(unexpandedDisplayName());
}
QString BaseQtVersion::unexpandedDisplayName() const
{
- return d->m_unexpandedDisplayName;
+ return d->m_unexpandedDisplayName.value();
}
void BaseQtVersion::setUnexpandedDisplayName(const QString &name)
{
- d->m_unexpandedDisplayName = name;
+ d->m_unexpandedDisplayName.setValue(name);
+}
+
+void BaseQtVersion::updateDefaultDisplayName()
+{
+ d->m_unexpandedDisplayName.setDefaultValue(defaultUnexpandedDisplayName());
}
QString BaseQtVersion::toHtml(bool verbose) const
@@ -2212,6 +2216,7 @@ BaseQtVersion *QtVersionFactory::createQtVersionFromQMakePath
ver->d->setupQmakePathAndId(qmakePath);
ver->d->m_autodetectionSource = autoDetectionSource;
ver->d->m_isAutodetected = isAutoDetected;
+ ver->updateDefaultDisplayName();
ProFileCacheManager::instance()->decRefCount();
return ver;
}