mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-08 21:58:16 +02:00
startlazarus: wait for initial lazarus to exit, before checking for accepting lazarus
git-svn-id: trunk@64277 -
This commit is contained in:
parent
63d7925005
commit
0eaddeb4c8
@ -136,10 +136,10 @@ type
|
|||||||
FShowSplashOption: boolean;
|
FShowSplashOption: boolean;
|
||||||
function RenameLazarusExecutable(const Directory: string): TModalResult;
|
function RenameLazarusExecutable(const Directory: string): TModalResult;
|
||||||
procedure LazarusProcessStart(Sender: TObject);
|
procedure LazarusProcessStart(Sender: TObject);
|
||||||
procedure WaitForLazarus;
|
|
||||||
public
|
public
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
procedure Initialize;
|
procedure Initialize;
|
||||||
|
procedure WaitForLazarus;
|
||||||
procedure Run;
|
procedure Run;
|
||||||
procedure ShowSplash;
|
procedure ShowSplash;
|
||||||
property ShowSplashOption: boolean read FShowSplashOption write FShowSplashOption;
|
property ShowSplashOption: boolean read FShowSplashOption write FShowSplashOption;
|
||||||
@ -274,6 +274,16 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TLazarusManager.Run;
|
procedure TLazarusManager.Run;
|
||||||
|
|
||||||
|
procedure AddExpandedParam(Params: TStringListUTF8; Param: string);
|
||||||
|
begin
|
||||||
|
// skip startlazarus params
|
||||||
|
if LeftStr(Param,length(StartLazarusPidOpt))=StartLazarusPidOpt then
|
||||||
|
exit;
|
||||||
|
// expand filenames and append
|
||||||
|
Params.Add(ExpandParamFile(Param));
|
||||||
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
Restart: boolean;
|
Restart: boolean;
|
||||||
DefaultDir: String;
|
DefaultDir: String;
|
||||||
@ -286,7 +296,6 @@ var
|
|||||||
Params: TStringListUTF8;
|
Params: TStringListUTF8;
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
WaitForLazarus;
|
|
||||||
try
|
try
|
||||||
StartPath:=ExpandFileNameUTF8(ParamStrUTF8(0));
|
StartPath:=ExpandFileNameUTF8(ParamStrUTF8(0));
|
||||||
if FileIsSymlink(StartPath) then
|
if FileIsSymlink(StartPath) then
|
||||||
@ -402,7 +411,7 @@ begin
|
|||||||
Params.Add(NoSplashScreenOptLong);
|
Params.Add(NoSplashScreenOptLong);
|
||||||
Params.Add(StartedByStartLazarusOpt);
|
Params.Add(StartedByStartLazarusOpt);
|
||||||
for i:=0 to FCmdLineParams.Count-1 do
|
for i:=0 to FCmdLineParams.Count-1 do
|
||||||
Params.Add(ExpandParamFile(FCmdLineParams[i]));
|
AddExpandedParam(Params,FCmdLineParams[i]);
|
||||||
FLazarusProcess.Process.Parameters.AddStrings(Params);
|
FLazarusProcess.Process.Parameters.AddStrings(Params);
|
||||||
finally
|
finally
|
||||||
Params.Free;
|
Params.Free;
|
||||||
|
@ -50,6 +50,7 @@
|
|||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="startlazarus.lpr"/>
|
<Filename Value="startlazarus.lpr"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="StartLazarus"/>
|
||||||
</Unit0>
|
</Unit0>
|
||||||
<Unit1>
|
<Unit1>
|
||||||
<Filename Value="lazarusmanager.pas"/>
|
<Filename Value="lazarusmanager.pas"/>
|
||||||
|
@ -45,12 +45,22 @@ var
|
|||||||
begin
|
begin
|
||||||
redirect_stderr.DoShowWindow := False;
|
redirect_stderr.DoShowWindow := False;
|
||||||
Application.Initialize;
|
Application.Initialize;
|
||||||
LazIDEInstances.PerformCheck;
|
|
||||||
if not LazIDEInstances.StartIDE then
|
|
||||||
Exit;
|
|
||||||
ALazarusManager := TLazarusManager.Create(nil);
|
ALazarusManager := TLazarusManager.Create(nil);
|
||||||
ALazarusManager.Initialize;
|
try
|
||||||
ALazarusManager.Run;
|
// parse params
|
||||||
FreeAndNil(ALazarusManager);
|
ALazarusManager.Initialize;
|
||||||
|
// if started by lazarus, wait for it to exit
|
||||||
|
ALazarusManager.WaitForLazarus;
|
||||||
|
|
||||||
|
// if there is a lazarus instance accepting files, pass files to that
|
||||||
|
LazIDEInstances.PerformCheck;
|
||||||
|
if not LazIDEInstances.StartIDE then
|
||||||
|
Exit;
|
||||||
|
|
||||||
|
// start lazarus
|
||||||
|
ALazarusManager.Run;
|
||||||
|
finally
|
||||||
|
FreeAndNil(ALazarusManager);
|
||||||
|
end;
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user