FIX: Export/import middle toolbar

This commit is contained in:
Alexander Koblov 2020-06-12 08:41:47 +00:00
commit 4e868ec7dc
3 changed files with 21 additions and 9 deletions

View file

@ -75,7 +75,7 @@ begin
CloseToolbarsBelowCurrentButton;
ToolBar := GetTopToolbar;
ToolBarNode := gConfig.FindNode(gConfig.RootNode, 'Toolbars/MainToolbar', False);
ToolBarNode := gConfig.FindNode(gConfig.RootNode, GetNode, False);
LoadToolbar(ToolBar, gConfig, ToolBarNode, tocl_FlushCurrentToolbarContent);
if ToolBar.ButtonCount > 0 then
PressButtonDown(ToolBar.Buttons[0]);
@ -100,7 +100,7 @@ begin
ToolBar := GetTopToolbar;
if Assigned(ToolBar) then
begin
ToolBarNode := gConfig.FindNode(gConfig.RootNode, 'Toolbars/MainToolbar', True);
ToolBarNode := gConfig.FindNode(gConfig.RootNode, GetNode, True);
gConfig.ClearNode(ToolBarNode);
Toolbar.SaveConfiguration(gConfig, ToolBarNode);
end;

View file

@ -253,6 +253,7 @@ type
procedure PressButtonDown(Button: TKASToolButton);
procedure UpdateIcon(Icon: String);
procedure DisplayAppropriateControls(EnableNormal, EnableCommand, EnableProgram: boolean);
class function GetNode: String; virtual;
protected
procedure Init; override;
public
@ -530,6 +531,11 @@ begin
rbSpace.Visible := lblStyle.Visible;
end;
class function TfrmOptionsToolbarBase.GetNode: String;
begin
Result:= 'Toolbars/MainToolbar';
end;
procedure TfrmOptionsToolbarBase.LoadToolbar(ToolBar: TKASToolBar; Config: TXmlConfig; RootNode: TXmlNode; ConfigurationLoadType: TTypeOfConfigurationLoad);
var
ToolBarLoader: TKASToolBarExtendedLoader;
@ -1531,7 +1537,7 @@ begin
// 2. Create our XML structure to hold all our tree of sub menu and commands.
AToolbarConfig := TXmlConfig.Create;
try
ToolBarNode := AToolbarConfig.FindNode(AToolbarConfig.RootNode, 'Toolbars/MainToolbar', True);
ToolBarNode := AToolbarConfig.FindNode(AToolbarConfig.RootNode, GetNode, True);
AToolbarConfig.ClearNode(ToolBarNode);
RowNode := AToolbarConfig.AddNode(ToolBarNode, 'Row');
@ -1571,7 +1577,7 @@ begin
// 3. Now, we import our structure and at once, bang! we'll have added our bar and sub ones.
ATopToolBar := GetTopToolbar;
ToolBarNode := AToolbarConfig.FindNode(AToolbarConfig.RootNode, 'Toolbars/MainToolbar', False);
ToolBarNode := AToolbarConfig.FindNode(AToolbarConfig.RootNode, GetNode, False);
if ToolBarNode <> nil then
begin
LoadToolbar(ATopToolBar, AToolbarConfig, ToolBarNode, tocl_AddToCurrentToolbarContent);
@ -1673,7 +1679,7 @@ begin
begin
ToolbarConfig := TXmlConfig.Create(SaveDialog.Filename);
try
ToolBarNode := ToolbarConfig.FindNode(ToolbarConfig.RootNode, 'Toolbars/MainToolbar', True);
ToolBarNode := ToolbarConfig.FindNode(ToolbarConfig.RootNode, GetNode, True);
ToolbarConfig.ClearNode(ToolBarNode);
ToolBar.SaveConfiguration(ToolbarConfig, ToolBarNode);
InnerResult := ToolbarConfig.Save;
@ -1836,7 +1842,7 @@ begin
try
ConvertTCToolbarToDCXmlConfig(OpenDialog.FileName, ToolbarConfig);
ToolBarNode := ToolbarConfig.FindNode(ToolbarConfig.RootNode, 'Toolbars/MainToolbar', False);
ToolBarNode := ToolbarConfig.FindNode(ToolbarConfig.RootNode, GetNode, False);
if ToolBarNode <> nil then
begin
FCurrentButton := nil;
@ -1858,7 +1864,7 @@ begin
begin
ToolbarConfig := TXmlConfig.Create(OpenDialog.FileName, True);
try
ToolBarNode := ToolbarConfig.FindNode(ToolbarConfig.RootNode, 'Toolbars/MainToolbar', False);
ToolBarNode := ToolbarConfig.FindNode(ToolbarConfig.RootNode, GetNode, False);
if ToolBarNode <> nil then
begin
FCurrentButton := nil;

View file

@ -17,6 +17,7 @@ type
protected
procedure Load; override;
class function GetNode: String; override;
function Save: TOptionsEditorSaveFlags; override;
public
constructor Create(TheOwner: TComponent); override;
@ -50,7 +51,7 @@ begin
CloseToolbarsBelowCurrentButton;
ToolBar := GetTopToolbar;
ToolBarNode := gConfig.FindNode(gConfig.RootNode, 'Toolbars/MiddleToolbar', False);
ToolBarNode := gConfig.FindNode(gConfig.RootNode, GetNode, False);
LoadToolbar(ToolBar, gConfig, ToolBarNode, tocl_FlushCurrentToolbarContent);
if ToolBar.ButtonCount > 0 then
PressButtonDown(ToolBar.Buttons[0]);
@ -59,6 +60,11 @@ begin
FUpdateHotKey := False;
end;
class function TfrmOptionsToolbarMiddle.GetNode: String;
begin
Result:= 'Toolbars/MiddleToolbar';
end;
function TfrmOptionsToolbarMiddle.Save: TOptionsEditorSaveFlags;
var
ToolBarNode: TXmlNode;
@ -75,7 +81,7 @@ begin
ToolBar := GetTopToolbar;
if Assigned(ToolBar) then
begin
ToolBarNode := gConfig.FindNode(gConfig.RootNode, 'Toolbars/MiddleToolbar', True);
ToolBarNode := gConfig.FindNode(gConfig.RootNode, GetNode, True);
gConfig.ClearNode(ToolBarNode);
Toolbar.SaveConfiguration(gConfig, ToolBarNode);
end;