mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-10-02 11:10:12 +02:00
anchordocking: started clean up after restore
git-svn-id: trunk@46463 -
This commit is contained in:
parent
869ab94929
commit
4c6fbfdc2d
@ -460,7 +460,7 @@ type
|
||||
TAnchorDockMaster = class(TComponent)
|
||||
private
|
||||
FAllowDragging: boolean;
|
||||
FControls: TFPList;
|
||||
FControls: TFPList; // list of TControl, custom host sites
|
||||
FDockOutsideMargin: integer;
|
||||
FDockParentMargin: integer;
|
||||
FDragTreshold: integer;
|
||||
@ -501,6 +501,7 @@ type
|
||||
function GetControls(Index: integer): TControl;
|
||||
function GetLocalizedHeaderHint: string;
|
||||
function CloseUnneededControls(Tree: TAnchorDockLayoutTree): boolean;
|
||||
function FreeUnneededHelperControls(Tree: TAnchorDockLayoutTree): boolean;
|
||||
function CreateNeededControls(Tree: TAnchorDockLayoutTree;
|
||||
DisableAutoSizing: boolean; ControlNames: TStrings): boolean;
|
||||
procedure MapTreeToControls(Tree: TAnchorDockLayoutTree);
|
||||
@ -1378,7 +1379,7 @@ begin
|
||||
end;
|
||||
|
||||
function TAnchorDockMaster.CloseUnneededControls(Tree: TAnchorDockLayoutTree
|
||||
): Boolean;
|
||||
): boolean;
|
||||
var
|
||||
i: Integer;
|
||||
AControl: TControl;
|
||||
@ -1417,6 +1418,15 @@ begin
|
||||
Result:=true;
|
||||
end;
|
||||
|
||||
function TAnchorDockMaster.FreeUnneededHelperControls(
|
||||
Tree: TAnchorDockLayoutTree): boolean;
|
||||
begin
|
||||
Result:=false;
|
||||
if Tree=nil then exit;
|
||||
// ToDo: traverse all sites and remove empty pages and unneeded splitters
|
||||
Result:=true;
|
||||
end;
|
||||
|
||||
function TAnchorDockMaster.CreateNeededControls(Tree: TAnchorDockLayoutTree;
|
||||
DisableAutoSizing: boolean; ControlNames: TStrings): boolean;
|
||||
|
||||
@ -2743,11 +2753,11 @@ begin
|
||||
DebugWriteChildAnchors(Tree.Root);
|
||||
{$ENDIF}
|
||||
|
||||
// close all unneeded forms/controls (not helper controls like splitters)
|
||||
if not CloseUnneededControls(Tree) then exit;
|
||||
|
||||
BeginUpdate;
|
||||
try
|
||||
// close all unneeded forms/controls (not helper controls like splitters)
|
||||
if not CloseUnneededControls(Tree) then exit;
|
||||
|
||||
// create all needed forms/controls (not helper controls like splitters)
|
||||
if not CreateNeededControls(Tree,true,ControlNames) then exit;
|
||||
|
||||
@ -2766,6 +2776,9 @@ begin
|
||||
fTreeNameToDocker.WriteDebugReport('TAnchorDockMaster.LoadLayoutFromConfig Map');
|
||||
{$ENDIF}
|
||||
|
||||
// free unneeded helper controls (e.g. splitters and pages)
|
||||
if not FreeUnneededHelperControls(Tree) then exit;
|
||||
|
||||
// create sites
|
||||
RestoreLayout(Tree,Scale);
|
||||
finally
|
||||
|
Loading…
Reference in New Issue
Block a user