DockedFormEditor: Simplify code - use just one method to find ModulePageControl

git-svn-id: trunk@64726 -
This commit is contained in:
michl 2021-03-02 19:52:56 +00:00
parent 16eb8abc21
commit 817c9aa159
2 changed files with 12 additions and 23 deletions

View File

@ -251,7 +251,8 @@ begin
LDesignForm := DesignForms.Find(LForm); LDesignForm := DesignForms.Find(LForm);
if LDesignForm = nil then Exit; if LDesignForm = nil then Exit;
LSourceEditorWindowInterface := LDesignForm.LastActiveSourceWindow; LSourceEditorWindowInterface := LDesignForm.LastActiveSourceWindow;
Result := SourceEditorWindows.FindModulePageControl(LSourceEditorWindowInterface); if not Assigned(LSourceEditorWindowInterface) then Exit;
Result := SourceEditorWindows.FindModulePageControl(LSourceEditorWindowInterface.ActiveEditor);
end; end;
class procedure TDockedMainIDE.Screen_FormAdded(Sender: TObject; AForm: TCustomForm); class procedure TDockedMainIDE.Screen_FormAdded(Sender: TObject; AForm: TCustomForm);
@ -604,7 +605,7 @@ begin
LSourceEditorWindow.ActiveDesignForm := LDesignForm; LSourceEditorWindow.ActiveDesignForm := LDesignForm;
if LDesignForm <> nil then if LDesignForm <> nil then
begin begin
LPageCtrl := SourceEditorWindows.FindModulePageControl(LSourceEditorWindowInterface); LPageCtrl := SourceEditorWindows.FindModulePageControl(LSourceEditorWindowInterface.ActiveEditor);
if not Assigned(LPageCtrl) then Exit; if not Assigned(LPageCtrl) then Exit;
LResizer := LPageCtrl.Resizer; LResizer := LPageCtrl.Resizer;
if not Assigned(LResizer) then Exit; if not Assigned(LResizer) then Exit;

View File

@ -54,8 +54,7 @@ type
destructor Destroy; override; destructor Destroy; override;
procedure AddPageCtrl(ASourceEditor: TSourceEditorInterface; APageControl: TModulePageControl); procedure AddPageCtrl(ASourceEditor: TSourceEditorInterface; APageControl: TModulePageControl);
procedure AdjustPageControl; procedure AdjustPageControl;
function FindModulePageControl(ASourceEditor: TSourceEditorInterface): TModulePageControl; overload; function FindModulePageControl(ASourceEditor: TSourceEditorInterface): TModulePageControl;
function FindModulePageControl(AForm: TSourceEditorWindowInterface): TModulePageControl; overload;
procedure RemoveActiveDesignForm; procedure RemoveActiveDesignForm;
procedure RemovePageCtrl(ASourceEditor: TSourceEditorInterface); procedure RemovePageCtrl(ASourceEditor: TSourceEditorInterface);
public public
@ -78,8 +77,7 @@ type
function Contains(ASrcEditor: TSourceEditorWindow): Boolean; function Contains(ASrcEditor: TSourceEditorWindow): Boolean;
procedure DeleteItem(Index: Integer); procedure DeleteItem(Index: Integer);
function FindDesignForm(AModulePageCtrl: TModulePageControl): TDesignForm; function FindDesignForm(AModulePageCtrl: TModulePageControl): TDesignForm;
function FindModulePageControl(ASrcEditor: TSourceEditorInterface): TModulePageControl; overload; function FindModulePageControl(ASrcEditor: TSourceEditorInterface): TModulePageControl;
function FindModulePageControl(AForm: TSourceEditorWindowInterface): TModulePageControl; overload;
function IndexOf(AWindowInterface: TSourceEditorWindowInterface): Integer; overload; function IndexOf(AWindowInterface: TSourceEditorWindowInterface): Integer; overload;
procedure RefreshActivePageControls; procedure RefreshActivePageControls;
procedure RefreshAllPageControls; procedure RefreshAllPageControls;
@ -128,7 +126,7 @@ begin
FActiveDesignForm.HideWindow; FActiveDesignForm.HideWindow;
FActiveDesignForm := AValue; FActiveDesignForm := AValue;
LPageCtrl := FindModulePageControl(FSourceEditorWindowInterface); LPageCtrl := FindModulePageControl(ActiveEditor);
// important when we want back to tab where was oppened form // important when we want back to tab where was oppened form
if (AValue <> nil) then if (AValue <> nil) then
LazarusIDE.DoShowDesignerFormOfSrc(ActiveEditor); LazarusIDE.DoShowDesignerFormOfSrc(ActiveEditor);
@ -142,7 +140,7 @@ var
LPageCtrl: TModulePageControl; LPageCtrl: TModulePageControl;
begin begin
FNotebookPageChanged(Sender); FNotebookPageChanged(Sender);
LPageCtrl := FindModulePageControl(FSourceEditorWindowInterface.ActiveEditor); LPageCtrl := FindModulePageControl(ActiveEditor);
if not Assigned(LPageCtrl) then Exit; if not Assigned(LPageCtrl) then Exit;
if LPageCtrl.DesignerPageActive then if LPageCtrl.DesignerPageActive then
begin begin
@ -180,7 +178,7 @@ procedure TSourceEditorWindow.AdjustPageControl;
var var
LPageCtrl: TModulePageControl; LPageCtrl: TModulePageControl;
begin begin
LPageCtrl := FindModulePageControl(FSourceEditorWindowInterface); LPageCtrl := FindModulePageControl(ActiveEditor);
if LPageCtrl <> nil then if LPageCtrl <> nil then
LPageCtrl.AdjustPage; LPageCtrl.AdjustPage;
end; end;
@ -201,11 +199,6 @@ begin
Result := nil; Result := nil;
end; end;
function TSourceEditorWindow.FindModulePageControl(AForm: TSourceEditorWindowInterface): TModulePageControl;
begin
Result := FindModulePageControl(AForm.ActiveEditor);
end;
procedure TSourceEditorWindow.RemoveActiveDesignForm; procedure TSourceEditorWindow.RemoveActiveDesignForm;
begin begin
FActiveDesignForm := nil; FActiveDesignForm := nil;
@ -277,7 +270,7 @@ begin
begin begin
if AModulePageCtrl.Owner = LSourceEditorWindow.SourceEditorWindowInterface then if AModulePageCtrl.Owner = LSourceEditorWindow.SourceEditorWindowInterface then
begin begin
LSourceEditorInterface := LSourceEditorWindow.SourceEditorWindowInterface.ActiveEditor; LSourceEditorInterface := LSourceEditorWindow.ActiveEditor;
if LSourceEditorInterface = nil then Exit; if LSourceEditorInterface = nil then Exit;
Result := DesignForms.Find(LSourceEditorInterface.GetDesigner(True)); Result := DesignForms.Find(LSourceEditorInterface.GetDesigner(True));
Exit; Exit;
@ -295,11 +288,6 @@ begin
Exit(LSourceEditorWindow.PageControlList.PageControl[ASrcEditor]); Exit(LSourceEditorWindow.PageControlList.PageControl[ASrcEditor]);
end; end;
function TSourceEditorWindows.FindModulePageControl(AForm: TSourceEditorWindowInterface): TModulePageControl;
begin
Result := FindModulePageControl(AForm.ActiveEditor);
end;
function TSourceEditorWindows.IndexOf(AWindowInterface: TSourceEditorWindowInterface): Integer; function TSourceEditorWindows.IndexOf(AWindowInterface: TSourceEditorWindowInterface): Integer;
var var
i: Integer; i: Integer;
@ -317,12 +305,12 @@ var
begin begin
for LWindow in Self do for LWindow in Self do
begin begin
LPageCtrl := LWindow.FindModulePageControl(LWindow.SourceEditorWindowInterface); LPageCtrl := LWindow.FindModulePageControl(LWindow.ActiveEditor);
// for example LPageCtrl is nil when we clone module to new window // for example LPageCtrl is nil when we clone module to new window
if (LPageCtrl = nil) or (csDestroying in LWindow.SourceEditorWindowInterface.ComponentState) then if (LPageCtrl = nil) or (csDestroying in LWindow.SourceEditorWindowInterface.ComponentState) then
Continue; Continue;
if (LWindow.SourceEditorWindowInterface.ActiveEditor = nil) if (LWindow.ActiveEditor = nil)
or (LWindow.SourceEditorWindowInterface.ActiveEditor.GetDesigner(True) <> nil) or (LWindow.ActiveEditor.GetDesigner(True) <> nil)
then then
LPageCtrl.RemoveDesignPages LPageCtrl.RemoveDesignPages
else begin else begin