remove support for versioning qmake properties
the rationale is mostly the same as in 568e714fdf, plus the additional point that the qmake version didn't change for a decade. fallback paths for version 2.01a properties are provided. Change-Id: I3d3f16595eca9eca71c78fda9dbaf53da9f874a9 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
This commit is contained in:
parent
2106ab2e75
commit
533b4f1afd
@ -104,15 +104,7 @@ void QMakeProperty::initSettings()
|
||||
}
|
||||
|
||||
QString
|
||||
QMakeProperty::keyBase(bool version) const
|
||||
{
|
||||
if (version)
|
||||
return QString(qmake_version()) + "/";
|
||||
return QString();
|
||||
}
|
||||
|
||||
QString
|
||||
QMakeProperty::value(QString v, bool just_check)
|
||||
QMakeProperty::value(const QString &v)
|
||||
{
|
||||
QString val = m_values.value(v);
|
||||
if (!val.isNull())
|
||||
@ -127,56 +119,31 @@ QMakeProperty::value(QString v, bool just_check)
|
||||
#endif
|
||||
|
||||
initSettings();
|
||||
int slash = v.lastIndexOf('/');
|
||||
QVariant var = settings->value(keyBase(slash == -1) + v);
|
||||
bool ok = var.isValid();
|
||||
QString ret = var.toString();
|
||||
if(!ok) {
|
||||
QString version = qmake_version();
|
||||
if(slash != -1) {
|
||||
version = v.left(slash-1);
|
||||
v = v.mid(slash+1);
|
||||
}
|
||||
settings->beginGroup(keyBase(false));
|
||||
QStringList subs = settings->childGroups();
|
||||
settings->endGroup();
|
||||
subs.sort();
|
||||
for (int x = subs.count() - 1; x >= 0; x--) {
|
||||
QString s = subs[x];
|
||||
if(s.isEmpty() || s > version)
|
||||
continue;
|
||||
var = settings->value(keyBase(false) + s + "/" + v);
|
||||
ok = var.isValid();
|
||||
ret = var.toString();
|
||||
if (ok) {
|
||||
if(!just_check)
|
||||
debug_msg(1, "Fell back from %s -> %s for '%s'.", version.toLatin1().constData(),
|
||||
s.toLatin1().constData(), v.toLatin1().constData());
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
return ok ? ret : QString();
|
||||
if (!settings->contains(v))
|
||||
return settings->value("2.01a/" + v).toString(); // Backwards compat
|
||||
return settings->value(v).toString();
|
||||
}
|
||||
|
||||
bool
|
||||
QMakeProperty::hasValue(QString v)
|
||||
{
|
||||
return !value(v, true).isNull();
|
||||
return !value(v).isNull();
|
||||
}
|
||||
|
||||
void
|
||||
QMakeProperty::setValue(QString var, const QString &val)
|
||||
{
|
||||
initSettings();
|
||||
settings->setValue(keyBase() + var, val);
|
||||
settings->setValue(var, val);
|
||||
settings->remove("2.01a/" + var); // Backwards compat
|
||||
}
|
||||
|
||||
void
|
||||
QMakeProperty::remove(const QString &var)
|
||||
{
|
||||
initSettings();
|
||||
settings->remove(keyBase() + var);
|
||||
settings->remove(var);
|
||||
settings->remove("2.01a/" + var); // Backwards compat
|
||||
}
|
||||
|
||||
bool
|
||||
@ -186,23 +153,14 @@ QMakeProperty::exec()
|
||||
if(Option::qmake_mode == Option::QMAKE_QUERY_PROPERTY) {
|
||||
if(Option::prop::properties.isEmpty()) {
|
||||
initSettings();
|
||||
settings->beginGroup(keyBase(false));
|
||||
QStringList subs = settings->childGroups();
|
||||
QStringList keys = settings->childKeys();
|
||||
settings->beginGroup("2.01a");
|
||||
keys += settings->childKeys();
|
||||
settings->endGroup();
|
||||
subs.sort();
|
||||
for(int x = subs.count() - 1; x >= 0; x--) {
|
||||
QString s = subs[x];
|
||||
if(s.isEmpty())
|
||||
continue;
|
||||
settings->beginGroup(keyBase(false) + s);
|
||||
QStringList keys = settings->childKeys();
|
||||
settings->endGroup();
|
||||
for(QStringList::ConstIterator it2 = keys.begin(); it2 != keys.end(); it2++) {
|
||||
QString ret = settings->value(keyBase(false) + s + "/" + (*it2)).toString();
|
||||
if(s != qmake_version())
|
||||
fprintf(stdout, "%s/", s.toLatin1().constData());
|
||||
fprintf(stdout, "%s:%s\n", (*it2).toLatin1().constData(), ret.toLatin1().constData());
|
||||
}
|
||||
keys.removeDuplicates();
|
||||
foreach (const QString &key, keys) {
|
||||
QString val = settings->value(settings->contains(key) ? key : "2.01a/" + key).toString();
|
||||
fprintf(stdout, "%s:%s\n", qPrintable(key), qPrintable(val));
|
||||
}
|
||||
QStringList specialProps;
|
||||
for (int i = 0; i < sizeof(propList)/sizeof(propList[0]); i++)
|
||||
|
@ -54,8 +54,6 @@ class QMakeProperty
|
||||
{
|
||||
QSettings *settings;
|
||||
void initSettings();
|
||||
QString keyBase(bool =true) const;
|
||||
QString value(QString, bool just_check);
|
||||
|
||||
QHash<QString, QString> m_values;
|
||||
|
||||
@ -64,7 +62,7 @@ public:
|
||||
~QMakeProperty();
|
||||
|
||||
bool hasValue(QString);
|
||||
QString value(QString v) { return value(v, false); }
|
||||
QString value(const QString &);
|
||||
void setValue(QString, const QString &);
|
||||
void remove(const QString &);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user