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
|
QString
|
||||||
QMakeProperty::keyBase(bool version) const
|
QMakeProperty::value(const QString &v)
|
||||||
{
|
|
||||||
if (version)
|
|
||||||
return QString(qmake_version()) + "/";
|
|
||||||
return QString();
|
|
||||||
}
|
|
||||||
|
|
||||||
QString
|
|
||||||
QMakeProperty::value(QString v, bool just_check)
|
|
||||||
{
|
{
|
||||||
QString val = m_values.value(v);
|
QString val = m_values.value(v);
|
||||||
if (!val.isNull())
|
if (!val.isNull())
|
||||||
@ -127,56 +119,31 @@ QMakeProperty::value(QString v, bool just_check)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
initSettings();
|
initSettings();
|
||||||
int slash = v.lastIndexOf('/');
|
if (!settings->contains(v))
|
||||||
QVariant var = settings->value(keyBase(slash == -1) + v);
|
return settings->value("2.01a/" + v).toString(); // Backwards compat
|
||||||
bool ok = var.isValid();
|
return settings->value(v).toString();
|
||||||
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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
QMakeProperty::hasValue(QString v)
|
QMakeProperty::hasValue(QString v)
|
||||||
{
|
{
|
||||||
return !value(v, true).isNull();
|
return !value(v).isNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
QMakeProperty::setValue(QString var, const QString &val)
|
QMakeProperty::setValue(QString var, const QString &val)
|
||||||
{
|
{
|
||||||
initSettings();
|
initSettings();
|
||||||
settings->setValue(keyBase() + var, val);
|
settings->setValue(var, val);
|
||||||
|
settings->remove("2.01a/" + var); // Backwards compat
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
QMakeProperty::remove(const QString &var)
|
QMakeProperty::remove(const QString &var)
|
||||||
{
|
{
|
||||||
initSettings();
|
initSettings();
|
||||||
settings->remove(keyBase() + var);
|
settings->remove(var);
|
||||||
|
settings->remove("2.01a/" + var); // Backwards compat
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
@ -186,23 +153,14 @@ QMakeProperty::exec()
|
|||||||
if(Option::qmake_mode == Option::QMAKE_QUERY_PROPERTY) {
|
if(Option::qmake_mode == Option::QMAKE_QUERY_PROPERTY) {
|
||||||
if(Option::prop::properties.isEmpty()) {
|
if(Option::prop::properties.isEmpty()) {
|
||||||
initSettings();
|
initSettings();
|
||||||
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())
|
|
||||||
continue;
|
|
||||||
settings->beginGroup(keyBase(false) + s);
|
|
||||||
QStringList keys = settings->childKeys();
|
QStringList keys = settings->childKeys();
|
||||||
|
settings->beginGroup("2.01a");
|
||||||
|
keys += settings->childKeys();
|
||||||
settings->endGroup();
|
settings->endGroup();
|
||||||
for(QStringList::ConstIterator it2 = keys.begin(); it2 != keys.end(); it2++) {
|
keys.removeDuplicates();
|
||||||
QString ret = settings->value(keyBase(false) + s + "/" + (*it2)).toString();
|
foreach (const QString &key, keys) {
|
||||||
if(s != qmake_version())
|
QString val = settings->value(settings->contains(key) ? key : "2.01a/" + key).toString();
|
||||||
fprintf(stdout, "%s/", s.toLatin1().constData());
|
fprintf(stdout, "%s:%s\n", qPrintable(key), qPrintable(val));
|
||||||
fprintf(stdout, "%s:%s\n", (*it2).toLatin1().constData(), ret.toLatin1().constData());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
QStringList specialProps;
|
QStringList specialProps;
|
||||||
for (int i = 0; i < sizeof(propList)/sizeof(propList[0]); i++)
|
for (int i = 0; i < sizeof(propList)/sizeof(propList[0]); i++)
|
||||||
|
@ -54,8 +54,6 @@ class QMakeProperty
|
|||||||
{
|
{
|
||||||
QSettings *settings;
|
QSettings *settings;
|
||||||
void initSettings();
|
void initSettings();
|
||||||
QString keyBase(bool =true) const;
|
|
||||||
QString value(QString, bool just_check);
|
|
||||||
|
|
||||||
QHash<QString, QString> m_values;
|
QHash<QString, QString> m_values;
|
||||||
|
|
||||||
@ -64,7 +62,7 @@ public:
|
|||||||
~QMakeProperty();
|
~QMakeProperty();
|
||||||
|
|
||||||
bool hasValue(QString);
|
bool hasValue(QString);
|
||||||
QString value(QString v) { return value(v, false); }
|
QString value(const QString &);
|
||||||
void setValue(QString, const QString &);
|
void setValue(QString, const QString &);
|
||||||
void remove(const QString &);
|
void remove(const QString &);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user