Change qt.conf key Qml2Imports to QmlImports
[ChangeLog][qt.conf] The key Paths/Qml2Imports has been renamed to Paths/QmlImports. For backwards-compatibility, Paths/Qml2Imports is still accepted and acts as default value for when Paths/QmlImports is not present. Fixes: QTBUG-98335 Change-Id: If7ffedd281eb8a87e8ab1a2b69a823e615c33541 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
This commit is contained in:
parent
a3303aceeb
commit
04ec14105e
@ -148,21 +148,14 @@ static QLibraryInfo::LibraryPath hostToTargetPathEnum(int loc)
|
||||
Q_UNREACHABLE();
|
||||
}
|
||||
|
||||
struct LocationInfo
|
||||
static QLibraryInfoPrivate::LocationInfo defaultLocationInfo(int loc)
|
||||
{
|
||||
QString key;
|
||||
QString defaultValue;
|
||||
};
|
||||
|
||||
static LocationInfo defaultLocationInfo(int loc)
|
||||
{
|
||||
LocationInfo result;
|
||||
QLibraryInfoPrivate::LocationInfo result;
|
||||
|
||||
if (loc < QMakeLibraryInfo::FirstHostPath) {
|
||||
QLibraryInfoPrivate::keyAndDefault(static_cast<QLibraryInfo::LibraryPath>(loc),
|
||||
&result.key, &result.defaultValue);
|
||||
result = QLibraryInfoPrivate::locationInfo(static_cast<QLibraryInfo::LibraryPath>(loc));
|
||||
} else if (loc <= QMakeLibraryInfo::LastHostPath) {
|
||||
QLibraryInfoPrivate::keyAndDefault(hostToTargetPathEnum(loc), &result.key, &result.defaultValue);
|
||||
result = QLibraryInfoPrivate::locationInfo(hostToTargetPathEnum(loc));
|
||||
result.key.prepend(QStringLiteral("Host"));
|
||||
} else if (loc == QMakeLibraryInfo::SysrootPath) {
|
||||
result.key = QStringLiteral("Sysroot");
|
||||
@ -219,7 +212,7 @@ QString QMakeLibraryInfo::rawLocation(int loc, QMakeLibraryInfo::PathGroup group
|
||||
|| (group = orig_group, false)) {
|
||||
fromConf = true;
|
||||
|
||||
LocationInfo locinfo = defaultLocationInfo(loc);
|
||||
QLibraryInfoPrivate::LocationInfo locinfo = defaultLocationInfo(loc);
|
||||
if (!locinfo.key.isNull()) {
|
||||
QSettings *config = QLibraryInfoPrivate::configuration();
|
||||
Q_ASSERT(config != nullptr);
|
||||
@ -229,7 +222,15 @@ QString QMakeLibraryInfo::rawLocation(int loc, QMakeLibraryInfo::PathGroup group
|
||||
: group == EffectivePaths ? "EffectivePaths"
|
||||
: "Paths"));
|
||||
|
||||
ret = config->value(locinfo.key).toString();
|
||||
if (locinfo.fallbackKey.isNull()) {
|
||||
ret = config->value(locinfo.key, locinfo.defaultValue).toString();
|
||||
} else {
|
||||
QVariant v = config->value(locinfo.key);
|
||||
if (!v.isValid())
|
||||
v = config->value(locinfo.fallbackKey, locinfo.defaultValue);
|
||||
ret = v.toString();
|
||||
}
|
||||
|
||||
if (ret.isEmpty()) {
|
||||
if (loc == HostPrefixPath || loc == TargetSpecPath || loc == HostSpecPath
|
||||
|| loc == SysrootifyPrefixPath || loc == QLibraryInfo::PrefixPath) {
|
||||
|
@ -490,8 +490,7 @@ static QString getPrefix()
|
||||
#endif
|
||||
}
|
||||
|
||||
void QLibraryInfoPrivate::keyAndDefault(QLibraryInfo::LibraryPath loc, QString *key,
|
||||
QString *value)
|
||||
QLibraryInfoPrivate::LocationInfo QLibraryInfoPrivate::locationInfo(QLibraryInfo::LibraryPath loc)
|
||||
{
|
||||
/*
|
||||
* To add a new entry in QLibraryInfo::LibraryPath, add it to the enum
|
||||
@ -512,9 +511,7 @@ void QLibraryInfoPrivate::keyAndDefault(QLibraryInfo::LibraryPath loc, QString *
|
||||
"Binaries", "bin",
|
||||
"Plugins", "plugins", // should be ${ArchData}/plugins
|
||||
|
||||
// TODO: Find a way to rename this to QmlImports
|
||||
// without breaking compatibility with old qt.conf files.
|
||||
"Qml2Imports", "qml", // should be ${ArchData}/qml
|
||||
"QmlImports", "qml", // should be ${ArchData}/qml
|
||||
|
||||
"ArchData", ".",
|
||||
"Data", ".",
|
||||
@ -526,18 +523,21 @@ void QLibraryInfoPrivate::keyAndDefault(QLibraryInfo::LibraryPath loc, QString *
|
||||
static_assert(dot.size() == 1);
|
||||
static_assert(dot[0] == '.');
|
||||
|
||||
LocationInfo result;
|
||||
|
||||
if (int(loc) < qtConfEntries.count()) {
|
||||
*key = QLatin1String(qtConfEntries.viewAt(loc * 2));
|
||||
*value = QLatin1String(qtConfEntries.viewAt(loc * 2 + 1));
|
||||
result.key = QLatin1String(qtConfEntries.viewAt(loc * 2));
|
||||
result.defaultValue = QLatin1String(qtConfEntries.viewAt(loc * 2 + 1));
|
||||
if (result.key == u"QmlImports")
|
||||
result.fallbackKey = u"Qml2Imports"_qs;
|
||||
#ifndef Q_OS_WIN // On Windows we use the registry
|
||||
} else if (loc == QLibraryInfo::SettingsPath) {
|
||||
*key = QLatin1String("Settings");
|
||||
*value = QLatin1String(dot);
|
||||
result.key = QLatin1String("Settings");
|
||||
result.defaultValue = QLatin1String(dot);
|
||||
#endif
|
||||
} else {
|
||||
key->clear();
|
||||
value->clear();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*! \fn QString QLibraryInfo::location(LibraryLocation loc)
|
||||
@ -559,15 +559,21 @@ QString QLibraryInfo::path(LibraryPath p)
|
||||
if (havePaths()) {
|
||||
fromConf = true;
|
||||
|
||||
QString key;
|
||||
QString defaultValue;
|
||||
QLibraryInfoPrivate::keyAndDefault(loc, &key, &defaultValue);
|
||||
if (!key.isNull()) {
|
||||
auto li = QLibraryInfoPrivate::locationInfo(loc);
|
||||
if (!li.key.isNull()) {
|
||||
QSettings *config = QLibraryInfoPrivate::configuration();
|
||||
Q_ASSERT(config != nullptr);
|
||||
config->beginGroup(QLatin1String("Paths"));
|
||||
|
||||
ret = config->value(key, defaultValue).toString();
|
||||
if (li.fallbackKey.isNull()) {
|
||||
ret = config->value(li.key, li.defaultValue).toString();
|
||||
} else {
|
||||
QVariant v = config->value(li.key);
|
||||
if (!v.isValid())
|
||||
v = config->value(li.fallbackKey, li.defaultValue);
|
||||
ret = v.toString();
|
||||
}
|
||||
|
||||
int startIndex = 0;
|
||||
forever {
|
||||
startIndex = ret.indexOf(QLatin1Char('$'), startIndex);
|
||||
|
@ -69,8 +69,15 @@ public:
|
||||
static void reload();
|
||||
static QString qtconfManualPath;
|
||||
#endif
|
||||
static void keyAndDefault(QLibraryInfo::LibraryPath loc, QString *key,
|
||||
QString *value);
|
||||
|
||||
struct LocationInfo
|
||||
{
|
||||
QString key;
|
||||
QString defaultValue;
|
||||
QString fallbackKey;
|
||||
};
|
||||
|
||||
static LocationInfo locationInfo(QLibraryInfo::LibraryPath loc);
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
Loading…
x
Reference in New Issue
Block a user