forked from qt-creator/qt-creator
Utils: Allow nested groups for settings keys
Will be helpful for the Autotest settings Change-Id: I83a1cc27021124a14d8e8023164f20ede6c4d80e Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -2087,7 +2087,7 @@ class AspectContainerPrivate
|
|||||||
public:
|
public:
|
||||||
QList<BaseAspect *> m_items; // Not owned
|
QList<BaseAspect *> m_items; // Not owned
|
||||||
bool m_autoApply = true;
|
bool m_autoApply = true;
|
||||||
QString m_settingsGroup;
|
QStringList m_settingsGroup;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // Internal
|
} // Internal
|
||||||
@@ -2130,27 +2130,36 @@ void AspectContainer::toMap(QVariantMap &map) const
|
|||||||
|
|
||||||
void AspectContainer::readSettings(QSettings *settings)
|
void AspectContainer::readSettings(QSettings *settings)
|
||||||
{
|
{
|
||||||
if (!d->m_settingsGroup.isEmpty())
|
for (const QString &group : d->m_settingsGroup)
|
||||||
settings->beginGroup(d->m_settingsGroup);
|
settings->beginGroup(group);
|
||||||
|
|
||||||
for (BaseAspect *aspect : qAsConst(d->m_items))
|
for (BaseAspect *aspect : qAsConst(d->m_items))
|
||||||
aspect->readSettings(settings);
|
aspect->readSettings(settings);
|
||||||
if (!d->m_settingsGroup.isEmpty())
|
|
||||||
|
for (int i = 0; i != d->m_settingsGroup.size(); ++i)
|
||||||
settings->endGroup();
|
settings->endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AspectContainer::writeSettings(QSettings *settings) const
|
void AspectContainer::writeSettings(QSettings *settings) const
|
||||||
{
|
{
|
||||||
if (!d->m_settingsGroup.isEmpty())
|
for (const QString &group : d->m_settingsGroup)
|
||||||
settings->beginGroup(d->m_settingsGroup);
|
settings->beginGroup(group);
|
||||||
|
|
||||||
for (BaseAspect *aspect : qAsConst(d->m_items))
|
for (BaseAspect *aspect : qAsConst(d->m_items))
|
||||||
aspect->writeSettings(settings);
|
aspect->writeSettings(settings);
|
||||||
if (!d->m_settingsGroup.isEmpty())
|
|
||||||
|
for (int i = 0; i != d->m_settingsGroup.size(); ++i)
|
||||||
settings->endGroup();
|
settings->endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AspectContainer::setSettingsGroup(const QString &key)
|
void AspectContainer::setSettingsGroup(const QString &groupKey)
|
||||||
{
|
{
|
||||||
d->m_settingsGroup = key;
|
d->m_settingsGroup = QStringList{groupKey};
|
||||||
|
}
|
||||||
|
|
||||||
|
void AspectContainer::setSettingsGroups(const QString &groupKey, const QString &subGroupKey)
|
||||||
|
{
|
||||||
|
d->m_settingsGroup = QStringList{groupKey, subGroupKey};
|
||||||
}
|
}
|
||||||
|
|
||||||
void AspectContainer::apply()
|
void AspectContainer::apply()
|
||||||
|
@@ -534,7 +534,8 @@ public:
|
|||||||
void readSettings(QSettings *settings);
|
void readSettings(QSettings *settings);
|
||||||
void writeSettings(QSettings *settings) const;
|
void writeSettings(QSettings *settings) const;
|
||||||
|
|
||||||
void setSettingsGroup(const QString &key);
|
void setSettingsGroup(const QString &groupKey);
|
||||||
|
void setSettingsGroups(const QString &groupKey, const QString &subGroupKey);
|
||||||
|
|
||||||
void apply();
|
void apply();
|
||||||
void cancel();
|
void cancel();
|
||||||
|
Reference in New Issue
Block a user