anchordocking: TAnchorDockLayoutTree.GetModified

git-svn-id: trunk@39715 -
This commit is contained in:
mattias 2013-01-01 18:15:19 +00:00
parent 1ac74567ac
commit 7fb826fb84

View File

@ -173,8 +173,9 @@ type
TAnchorDockLayoutTree = class TAnchorDockLayoutTree = class
private private
FChangeStamp: int64; FChangeStamp: int64;
FModified: boolean; FSavedChangeStamp: int64;
FRoot: TAnchorDockLayoutTreeRootNode; FRoot: TAnchorDockLayoutTreeRootNode;
function GetModified: boolean;
procedure SetModified(const AValue: boolean); procedure SetModified(const AValue: boolean);
public public
constructor Create; constructor Create;
@ -184,7 +185,7 @@ type
procedure SaveToConfig(Config: TConfigStorage); procedure SaveToConfig(Config: TConfigStorage);
procedure IncreaseChangeStamp; procedure IncreaseChangeStamp;
property ChangeStamp: int64 read FChangeStamp; property ChangeStamp: int64 read FChangeStamp;
property Modified: boolean read FModified write SetModified; property Modified: boolean read GetModified write SetModified;
property Root: TAnchorDockLayoutTreeRootNode read FRoot; property Root: TAnchorDockLayoutTreeRootNode read FRoot;
function NewNode(aParent: TAnchorDockLayoutTreeNode): TAnchorDockLayoutTreeNode; function NewNode(aParent: TAnchorDockLayoutTreeNode): TAnchorDockLayoutTreeNode;
end; end;
@ -1640,13 +1641,20 @@ end;
procedure TAnchorDockLayoutTree.SetModified(const AValue: boolean); procedure TAnchorDockLayoutTree.SetModified(const AValue: boolean);
begin begin
if AValue then IncreaseChangeStamp; if AValue then
if FModified=AValue then exit; IncreaseChangeStamp
FModified:=AValue; else
FSavedChangeStamp:=FChangeStamp;
end;
function TAnchorDockLayoutTree.GetModified: boolean;
begin
Result:=FSavedChangeStamp<>FChangeStamp;
end; end;
constructor TAnchorDockLayoutTree.Create; constructor TAnchorDockLayoutTree.Create;
begin begin
FSavedChangeStamp:=Low(FChangeStamp);
FRoot:=TAnchorDockLayoutTreeRootNode.Create; FRoot:=TAnchorDockLayoutTreeRootNode.Create;
Root.FTree:=Self; Root.FTree:=Self;
end; end;
@ -1683,7 +1691,7 @@ begin
if FChangeStamp<High(FChangeStamp) then if FChangeStamp<High(FChangeStamp) then
inc(FChangeStamp) inc(FChangeStamp)
else else
FChangeStamp:=Low(FChangeStamp); FChangeStamp:=Low(FChangeStamp)+1;
end; end;
function TAnchorDockLayoutTree.NewNode(aParent: TAnchorDockLayoutTreeNode function TAnchorDockLayoutTree.NewNode(aParent: TAnchorDockLayoutTreeNode