projectgroups: do not bring editor to front on start

This commit is contained in:
mattias 2022-06-10 15:45:12 +02:00
parent 96271ad5c6
commit bb5c50df1e
4 changed files with 20 additions and 17 deletions

View File

@ -199,8 +199,9 @@ Type
pgloRemoveInvalid, // Remove non-existing targets from group automatically while loading pgloRemoveInvalid, // Remove non-existing targets from group automatically while loading
pgloSkipInvalid, // Mark non-existing as Missing. pgloSkipInvalid, // Mark non-existing as Missing.
pgloErrorInvalid, // Stop with error on non-existing. pgloErrorInvalid, // Stop with error on non-existing.
pgloLoadRecursively, // load all sub nodes
pgloSkipDialog, // do not show Project Group editor. pgloSkipDialog, // do not show Project Group editor.
pgloLoadRecursively // load all sub nodes pgloBringToFront // when showing editor, bring it to front
); );
TProjectGroupLoadOptions = set of TProjectGroupLoadOption; TProjectGroupLoadOptions = set of TProjectGroupLoadOption;
@ -225,7 +226,7 @@ Type
public public
constructor Create; constructor Create;
destructor Destroy; override; destructor Destroy; override;
function NewProjectGroup(AddActiveProject: boolean): boolean; virtual; abstract; function NewProjectGroup(AddActiveProject: boolean; BringToFront: boolean = true): boolean; virtual; abstract;
function LoadProjectGroup(AFileName: string; AOptions: TProjectGroupLoadOptions): boolean; virtual; abstract; function LoadProjectGroup(AFileName: string; AOptions: TProjectGroupLoadOptions): boolean; virtual; abstract;
function SaveProjectGroup: boolean; virtual; abstract; function SaveProjectGroup: boolean; virtual; abstract;
function GetSrcPaths: string; virtual; abstract; function GetSrcPaths: string; virtual; abstract;

View File

@ -231,7 +231,7 @@ type
FProjectGroup: TIDEProjectGroup; FProjectGroup: TIDEProjectGroup;
protected protected
function GetCurrentProjectGroup: TProjectGroup; override; function GetCurrentProjectGroup: TProjectGroup; override;
function ShowProjectGroupEditor: Boolean; function ShowProjectGroupEditor(BringToFront: boolean): Boolean;
procedure TargetDeleting(Group: TIDEProjectGroup; Index: integer); procedure TargetDeleting(Group: TIDEProjectGroup; Index: integer);
function GroupExists(Group: TIDEProjectGroup): boolean; function GroupExists(Group: TIDEProjectGroup): boolean;
public public
@ -250,7 +250,7 @@ type
function CanRedo: boolean; override; function CanRedo: boolean; override;
procedure Undo; override; procedure Undo; override;
procedure Redo; override; procedure Redo; override;
function NewProjectGroup(AddActiveProject: boolean): boolean; override; function NewProjectGroup(AddActiveProject: boolean; BringToFront: boolean = true): boolean; override;
function LoadProjectGroup(AFileName: string; AOptions: TProjectGroupLoadOptions): boolean; override; function LoadProjectGroup(AFileName: string; AOptions: TProjectGroupLoadOptions): boolean; override;
function SaveProjectGroup: boolean; override; function SaveProjectGroup: boolean; override;
function GetSrcPaths: string; override; function GetSrcPaths: string; override;
@ -260,9 +260,9 @@ type
property OnEditorOptionsChanged: TNotifyEvent read FOnEditorOptionsChanged write FOnEditorOptionsChanged; property OnEditorOptionsChanged: TNotifyEvent read FOnEditorOptionsChanged write FOnEditorOptionsChanged;
end; end;
TEditProjectGroupHandler = procedure(Sender: TObject; AProjectGroup: TProjectGroup); TEditProjectGroupHandler = procedure(Sender: TObject; AProjectGroup: TProjectGroup; BringToFront: boolean);
// Method variant. // Method variant.
TEditProjectGroupEvent = procedure(Sender: TObject; AProjectGroup: TProjectGroup) of object; TEditProjectGroupEvent = procedure(Sender: TObject; AProjectGroup: TProjectGroup; BringToFront: boolean) of object;
var var
OnShowProjectGroupEditor: TEditProjectGroupHandler; // Takes precedence OnShowProjectGroupEditor: TEditProjectGroupHandler; // Takes precedence
@ -549,15 +549,16 @@ begin
Result:=FProjectGroup; Result:=FProjectGroup;
end; end;
function TIDEProjectGroupManager.ShowProjectGroupEditor: Boolean; function TIDEProjectGroupManager.ShowProjectGroupEditor(BringToFront: boolean
): Boolean;
begin begin
Result:=Assigned(FProjectGroup); Result:=Assigned(FProjectGroup);
if Result then if Result then
begin begin
if Assigned(OnShowProjectGroupEditor) then if Assigned(OnShowProjectGroupEditor) then
OnShowProjectGroupEditor(FProjectGroup,FProjectGroup) OnShowProjectGroupEditor(FProjectGroup,FProjectGroup,BringToFront)
else if Assigned(OnShowProjectGroupEditorEvent) then else if Assigned(OnShowProjectGroupEditorEvent) then
OnShowProjectGroupEditorEvent(FProjectGroup,FProjectGroup) OnShowProjectGroupEditorEvent(FProjectGroup,FProjectGroup,BringToFront)
else else
Result:=False; Result:=False;
end; end;
@ -727,6 +728,7 @@ begin
if Screen.GetCurrentModalForm<>nil then if Screen.GetCurrentModalForm<>nil then
exit; exit;
FIDEStarted:=true; FIDEStarted:=true;
debugln(['TIDEProjectGroupManager.OnIdle OpenLastGroupOnStart=',Options.OpenLastGroupOnStart,' LastGroupFile="',Options.LastGroupFile,'"']);
if (CurrentProjectGroup=nil) if (CurrentProjectGroup=nil)
and Options.OpenLastGroupOnStart and Options.OpenLastGroupOnStart
and (Options.LastGroupFile<>'') and (Options.LastGroupFile<>'')
@ -967,8 +969,8 @@ begin
end; end;
function TIDEProjectGroupManager.NewProjectGroup(AddActiveProject: boolean function TIDEProjectGroupManager.NewProjectGroup(AddActiveProject: boolean;
): boolean; BringToFront: boolean): boolean;
var var
AProject: TLazProject; AProject: TLazProject;
aTarget: TIDECompileTarget; aTarget: TIDECompileTarget;
@ -992,7 +994,7 @@ begin
end; end;
end; end;
ShowProjectGroupEditor; ShowProjectGroupEditor(BringToFront);
end; end;
function TIDEProjectGroupManager.LoadProjectGroup(AFileName: string; function TIDEProjectGroupManager.LoadProjectGroup(AFileName: string;
@ -1010,7 +1012,7 @@ begin
if not Result then if not Result then
exit; exit;
if not (pgloSkipDialog in AOptions) then if not (pgloSkipDialog in AOptions) then
ShowProjectGroupEditor; ShowProjectGroupEditor(pgloBringToFront in AOptions);
MnuCmdSaveProjectGroupAs.Enabled:=true; MnuCmdSaveProjectGroupAs.Enabled:=true;
Result:=true; Result:=true;

View File

@ -270,7 +270,7 @@ var
const const
ProjectGroupEditorName = 'ProjectGroupEditor'; ProjectGroupEditorName = 'ProjectGroupEditor';
procedure ShowProjectGroupEditor(Sender: TObject; AProjectGroup: TProjectGroup); procedure ShowProjectGroupEditor(Sender: TObject; AProjectGroup: TProjectGroup; BringToFront: boolean);
procedure CreateProjectGroupEditor(Sender: TObject; aFormName: string; procedure CreateProjectGroupEditor(Sender: TObject; aFormName: string;
var AForm: TCustomForm; DoDisableAutoSizing: boolean); var AForm: TCustomForm; DoDisableAutoSizing: boolean);
procedure SetProjectGroupEditorCallBack; procedure SetProjectGroupEditorCallBack;
@ -286,9 +286,9 @@ const
piTargetCount = 0; piTargetCount = 0;
piActiveTarget = 1; piActiveTarget = 1;
procedure ShowProjectGroupEditor(Sender: TObject; AProjectGroup: TProjectGroup); procedure ShowProjectGroupEditor(Sender: TObject; AProjectGroup: TProjectGroup; BringToFront: boolean);
begin begin
IDEWindowCreators.ShowForm(ProjectGroupEditorCreator.FormName,true); IDEWindowCreators.ShowForm(ProjectGroupEditorCreator.FormName,BringToFront);
if AProjectGroup<>nil then if AProjectGroup<>nil then
ProjectGroupEditorForm.ProjectGroup:=AProjectGroup; ProjectGroupEditorForm.ProjectGroup:=AProjectGroup;
end; end;

View File

@ -83,7 +83,7 @@ end;
procedure ViewProjectGroupsClicked(Sender: TObject); procedure ViewProjectGroupsClicked(Sender: TObject);
begin begin
ShowProjectGroupEditor(Sender,IDEProjectGroupManager.CurrentProjectGroup); ShowProjectGroupEditor(Sender,IDEProjectGroupManager.CurrentProjectGroup,true);
end; end;
procedure Register; procedure Register;