forked from qt-creator/qt-creator
SettingsAccessor: Fix for projects with shared file only
Broken by 0addee8bac
Change-Id: I86caf4146556b1bde0ba7798115672b840ca8621
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
committed by
Orgad Shaneh
parent
6fb7a99b7f
commit
48a3a31f7c
@@ -578,6 +578,8 @@ QVariantMap mergeSharedSettings(const QVariantMap &userMap, const QVariantMap &s
|
|||||||
QVariantMap result = userMap;
|
QVariantMap result = userMap;
|
||||||
if (sharedMap.isEmpty())
|
if (sharedMap.isEmpty())
|
||||||
return result;
|
return result;
|
||||||
|
if (userMap.isEmpty())
|
||||||
|
return sharedMap;
|
||||||
|
|
||||||
QSet<QString> stickyKeys;
|
QSet<QString> stickyKeys;
|
||||||
const QVariant stickyList = result.take(QLatin1String(USER_STICKY_KEYS_KEY)).toList();
|
const QVariant stickyList = result.take(QLatin1String(USER_STICKY_KEYS_KEY)).toList();
|
||||||
@@ -898,19 +900,23 @@ SettingsAccessor::SettingsData SettingsAccessor::mergeSettings(const SettingsAcc
|
|||||||
{
|
{
|
||||||
SettingsData newUser = user;
|
SettingsData newUser = user;
|
||||||
SettingsData newShared = shared;
|
SettingsData newShared = shared;
|
||||||
|
SettingsData result;
|
||||||
if (shared.isValid() && user.isValid()) {
|
if (shared.isValid() && user.isValid()) {
|
||||||
while (newUser.version() < newShared.version())
|
while (newUser.version() < newShared.version())
|
||||||
incrementVersion(newUser);
|
incrementVersion(newUser);
|
||||||
|
|
||||||
while (newShared.version() < newUser.version())
|
while (newShared.version() < newUser.version())
|
||||||
incrementVersion(newShared);
|
incrementVersion(newShared);
|
||||||
|
result = newUser;
|
||||||
|
result.m_map = mergeSharedSettings(newUser.m_map, newShared.m_map);
|
||||||
|
} else if (shared.isValid()) {
|
||||||
|
result = shared;
|
||||||
|
} else if (user.isValid()) {
|
||||||
|
result = user;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_project->setProperty(SHARED_SETTINGS, newShared.m_map);
|
m_project->setProperty(SHARED_SETTINGS, newShared.m_map);
|
||||||
|
|
||||||
SettingsData result = newUser;
|
|
||||||
result.m_map = mergeSharedSettings(newUser.m_map, newShared.m_map);
|
|
||||||
|
|
||||||
if (!result.isValid())
|
if (!result.isValid())
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user