UPD: Use ConfigVersion to determine which config values to use.

This commit is contained in:
cobines 2011-09-28 20:42:49 +00:00
commit db148b63fe

View file

@ -78,10 +78,11 @@ const
{ Default hotkey list version number }
hkVersion = 5;
// History
// Previously existing names if reused must check for ConfigVersion >= X.
// History:
// 2 - removed Layout/SmallIcons
// renamed Layout/SmallIconSize to Layout/IconSize
ConfigVersion = '2';
ConfigVersion = 2;
var
{ For localization }
@ -1420,6 +1421,7 @@ procedure LoadXmlConfig;
end;
var
Root, Node, SubNode: TXmlNode;
LoadedConfigVersion: Integer;
begin
with gConfig do
begin
@ -1427,6 +1429,7 @@ begin
{ Double Commander Version }
gPreviousVersion:= GetAttr(Root, 'DCVersion', EmptyStr);
LoadedConfigVersion := GetAttr(Root, 'ConfigVersion', ConfigVersion);
{ Language page }
gPOFileName := GetValue(Root, 'Language/POFileName', gPOFileName);
@ -1506,8 +1509,10 @@ begin
gButtonBar := GetAttr(SubNode, 'Enabled', gButtonBar);
gToolBarFlat := GetValue(SubNode, 'FlatIcons', gToolBarFlat);
gToolBarButtonSize := GetValue(SubNode, 'ButtonHeight', gToolBarButtonSize);
gToolBarIconSize := GetValue(SubNode, 'SmallIconSize', gToolBarIconSize);
gToolBarIconSize := GetValue(SubNode, 'IconSize', gToolBarIconSize);
if LoadedConfigVersion <= 1 then
gToolBarIconSize := GetValue(SubNode, 'SmallIconSize', gToolBarIconSize)
else
gToolBarIconSize := GetValue(SubNode, 'IconSize', gToolBarIconSize);
end;
gDriveBar1 := GetValue(Node, 'DriveBar1', gDriveBar1);
gDriveBar2 := GetValue(Node, 'DriveBar2', gDriveBar2);
@ -1785,13 +1790,12 @@ begin
{ Layout page }
Node := FindNode(Root, 'Layout', True);
ClearNode(Node);
SetValue(Node, 'MainMenu', gMainMenu);
SubNode := FindNode(Node, 'ButtonBar', True);
SetAttr(SubNode, 'Enabled', gButtonBar);
SetValue(SubNode, 'FlatIcons', gToolBarFlat);
SetValue(SubNode, 'ButtonHeight', gToolBarButtonSize);
DeleteNode(SubNode, 'SmallIcons'); // Old value
DeleteNode(SubNode, 'SmallIconSize'); // Old value
SetValue(SubNode, 'IconSize', gToolBarIconSize);
SetValue(Node, 'DriveBar1', gDriveBar1);
SetValue(Node, 'DriveBar2', gDriveBar2);