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:
|
||||
QList<BaseAspect *> m_items; // Not owned
|
||||
bool m_autoApply = true;
|
||||
QString m_settingsGroup;
|
||||
QStringList m_settingsGroup;
|
||||
};
|
||||
|
||||
} // Internal
|
||||
@@ -2130,27 +2130,36 @@ void AspectContainer::toMap(QVariantMap &map) const
|
||||
|
||||
void AspectContainer::readSettings(QSettings *settings)
|
||||
{
|
||||
if (!d->m_settingsGroup.isEmpty())
|
||||
settings->beginGroup(d->m_settingsGroup);
|
||||
for (const QString &group : d->m_settingsGroup)
|
||||
settings->beginGroup(group);
|
||||
|
||||
for (BaseAspect *aspect : qAsConst(d->m_items))
|
||||
aspect->readSettings(settings);
|
||||
if (!d->m_settingsGroup.isEmpty())
|
||||
|
||||
for (int i = 0; i != d->m_settingsGroup.size(); ++i)
|
||||
settings->endGroup();
|
||||
}
|
||||
|
||||
void AspectContainer::writeSettings(QSettings *settings) const
|
||||
{
|
||||
if (!d->m_settingsGroup.isEmpty())
|
||||
settings->beginGroup(d->m_settingsGroup);
|
||||
for (const QString &group : d->m_settingsGroup)
|
||||
settings->beginGroup(group);
|
||||
|
||||
for (BaseAspect *aspect : qAsConst(d->m_items))
|
||||
aspect->writeSettings(settings);
|
||||
if (!d->m_settingsGroup.isEmpty())
|
||||
|
||||
for (int i = 0; i != d->m_settingsGroup.size(); ++i)
|
||||
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()
|
||||
|
@@ -534,7 +534,8 @@ public:
|
||||
void readSettings(QSettings *settings);
|
||||
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 cancel();
|
||||
|
Reference in New Issue
Block a user