mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-14 13:10:45 +02:00
LCL: anchordocking: updating TLazDockForm.Caption when switching page in nested TLazDockPages
git-svn-id: trunk@14088 -
This commit is contained in:
parent
fc14dbf587
commit
84a2ec0155
@ -166,6 +166,7 @@ type
|
|||||||
procedure SetActiveNotebookPageComponent(const AValue: TLazDockPage);
|
procedure SetActiveNotebookPageComponent(const AValue: TLazDockPage);
|
||||||
protected
|
protected
|
||||||
function GetFloatingDockSiteClass: TWinControlClass; override;
|
function GetFloatingDockSiteClass: TWinControlClass; override;
|
||||||
|
procedure Change; override;
|
||||||
public
|
public
|
||||||
constructor Create(TheOwner: TComponent); override;
|
constructor Create(TheOwner: TComponent); override;
|
||||||
property Page[Index: Integer]: TLazDockPage read GetNoteBookPage;
|
property Page[Index: Integer]: TLazDockPage read GetNoteBookPage;
|
||||||
@ -796,7 +797,7 @@ end;
|
|||||||
|
|
||||||
function TLazDockPages.GetActiveNotebookPageComponent: TLazDockPage;
|
function TLazDockPages.GetActiveNotebookPageComponent: TLazDockPage;
|
||||||
begin
|
begin
|
||||||
Result:=TLazDockPage(ActivePageComponent);
|
Result:=TLazDockPage(inherited ActivePageComponent);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TLazDockPages.GetNoteBookPage(Index: Integer): TLazDockPage;
|
function TLazDockPages.GetNoteBookPage(Index: Integer): TLazDockPage;
|
||||||
@ -815,6 +816,12 @@ begin
|
|||||||
Result:=TLazDockForm;
|
Result:=TLazDockForm;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TLazDockPages.Change;
|
||||||
|
begin
|
||||||
|
inherited Change;
|
||||||
|
TLazDockForm.UpdateMainControlInParents(Self);
|
||||||
|
end;
|
||||||
|
|
||||||
constructor TLazDockPages.Create(TheOwner: TComponent);
|
constructor TLazDockPages.Create(TheOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
PageClass:=TLazDockPage;
|
PageClass:=TLazDockPage;
|
||||||
@ -2737,7 +2744,7 @@ procedure TLazDockForm.UpdateMainControl;
|
|||||||
var
|
var
|
||||||
NewMainControl: TControl;
|
NewMainControl: TControl;
|
||||||
begin
|
begin
|
||||||
if FMainControl=nil then begin
|
if (FMainControl=nil) or (not FMainControl.IsVisible) then begin
|
||||||
NewMainControl:=FindMainControlCandidate;
|
NewMainControl:=FindMainControlCandidate;
|
||||||
if NewMainControl<>nil then
|
if NewMainControl<>nil then
|
||||||
MainControl:=NewMainControl;
|
MainControl:=NewMainControl;
|
||||||
@ -2858,11 +2865,17 @@ end;
|
|||||||
|
|
||||||
class procedure TLazDockForm.UpdateMainControlInParents(StartControl: TControl
|
class procedure TLazDockForm.UpdateMainControlInParents(StartControl: TControl
|
||||||
);
|
);
|
||||||
|
var
|
||||||
|
Form: TLazDockForm;
|
||||||
begin
|
begin
|
||||||
while StartControl<>nil do begin
|
while StartControl<>nil do begin
|
||||||
if (StartControl is TLazDockForm)
|
if (StartControl is TLazDockForm) then
|
||||||
and (TLazDockForm(StartControl).MainControl=nil) then
|
begin
|
||||||
TLazDockForm(StartControl).UpdateMainControl;
|
Form:=TLazDockForm(StartControl);
|
||||||
|
if (Form.MainControl=nil)
|
||||||
|
or (not Form.MainControl.IsVisible) then
|
||||||
|
Form.UpdateMainControl;
|
||||||
|
end;
|
||||||
StartControl:=StartControl.Parent;
|
StartControl:=StartControl.Parent;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2879,7 +2892,8 @@ var
|
|||||||
begin
|
begin
|
||||||
for i:=0 to ParentControl.ControlCount-1 do begin
|
for i:=0 to ParentControl.ControlCount-1 do begin
|
||||||
AControl:=ParentControl.Controls[i];
|
AControl:=ParentControl.Controls[i];
|
||||||
DebugLn(['FindCandidate ParentControl=',DbgSName(ParentControl),' AControl=',DbgSName(AControl)]);
|
//DebugLn(['FindCandidate ParentControl=',DbgSName(ParentControl),' AControl=',DbgSName(AControl)]);
|
||||||
|
if (not AControl.IsControlVisible) then continue;
|
||||||
if ((AControl.Name<>'') or (AControl.Caption<>''))
|
if ((AControl.Name<>'') or (AControl.Caption<>''))
|
||||||
and (not (AControl is TLazDockForm))
|
and (not (AControl is TLazDockForm))
|
||||||
and (not (AControl is TLazDockSplitter))
|
and (not (AControl is TLazDockSplitter))
|
||||||
|
Loading…
Reference in New Issue
Block a user