mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-20 12:19:31 +02:00
added Abort Build
git-svn-id: trunk@4385 -
This commit is contained in:
parent
0a7ac9d03a
commit
8a77658903
@ -320,7 +320,11 @@ begin
|
||||
TheProcess.WaitOnExit;
|
||||
TheProcess.Free;
|
||||
end;
|
||||
if not ErrorOccurred then
|
||||
if ErrorOccurred then
|
||||
Result:=mrCancel
|
||||
else if TheOutputFilter.Aborted then
|
||||
Result:=mrAbort
|
||||
else
|
||||
Result:=mrOk;
|
||||
except
|
||||
on e: EOutputFilterError do begin
|
||||
|
@ -157,15 +157,16 @@ const
|
||||
|
||||
// compile menu
|
||||
ecBuild = ecUserFirst + 400;
|
||||
ecRun = ecUserFirst + 401;
|
||||
ecPause = ecUserFirst + 402;
|
||||
ecStepInto = ecUserFirst + 403;
|
||||
ecStepOver = ecUserFirst + 404;
|
||||
ecRunToCursor = ecUserFirst + 405;
|
||||
ecStopProgram = ecUserFirst + 406;
|
||||
ecBuildAll = ecUserFirst + 407;
|
||||
ecBuildLazarus = ecUserFirst + 408;
|
||||
ecBuildAll = ecUserFirst + 401;
|
||||
ecAbortBuild = ecUserFirst + 402;
|
||||
ecRun = ecUserFirst + 403;
|
||||
ecPause = ecUserFirst + 404;
|
||||
ecStepInto = ecUserFirst + 405;
|
||||
ecStepOver = ecUserFirst + 406;
|
||||
ecRunToCursor = ecUserFirst + 407;
|
||||
ecStopProgram = ecUserFirst + 408;
|
||||
ecResetDebugger = ecUserFirst + 409;
|
||||
ecBuildLazarus = ecUserFirst + 410;
|
||||
|
||||
// project menu
|
||||
ecNewProject = ecUserFirst + 500;
|
||||
@ -628,6 +629,7 @@ begin
|
||||
// run menu (menu string resource)
|
||||
ecBuild : Result:= srkmecBuild;
|
||||
ecBuildAll : Result:= srkmecBuildAll;
|
||||
ecAbortBuild : Result:= srkmecAbortBuild;
|
||||
ecRun : Result:= srkmecRun;
|
||||
ecPause : Result:= srkmecPause;
|
||||
ecStepInto : Result:= lisMenuStepInto;
|
||||
@ -1474,6 +1476,7 @@ begin
|
||||
C:=Categories[AddCategory('RunMenu',srkmCatRunMenu,caAll)];
|
||||
Add(C,'Build project/program',ecBuild,VK_F9,[ssCtrl],VK_UNKNOWN,[]);
|
||||
Add(C,'Build all files of project/program',ecBuildAll,VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
Add(C,'Abort building',ecAbortBuild,VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
Add(C,'Run program',ecRun,VK_F9,[],VK_UNKNOWN,[]);
|
||||
Add(C,'Pause program',ecPause,VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
Add(C,'Step into',ecStepInto,VK_F7,[],VK_UNKNOWN,[]);
|
||||
|
@ -195,6 +195,7 @@ resourcestring
|
||||
|
||||
lisMenuBuild = 'Build';
|
||||
lisMenuBuildAll = 'Build all';
|
||||
lisMenuAbortBuild = 'Abort Build';
|
||||
lisMenuProjectRun = 'Run';
|
||||
lisMenuPause = 'Pause';
|
||||
lisMenuStepInto = 'Step into';
|
||||
@ -1131,6 +1132,7 @@ resourcestring
|
||||
// run menu
|
||||
srkmecBuild = 'build program/project';
|
||||
srkmecBuildAll = 'build all files of program/project';
|
||||
srkmecAbortBuild = 'abort build';
|
||||
srkmecRun = 'run program';
|
||||
srkmecPause = 'pause program';
|
||||
srkmecStopProgram = 'stop program';
|
||||
|
19
ide/main.pp
19
ide/main.pp
@ -183,6 +183,7 @@ type
|
||||
// run menu
|
||||
procedure mnuBuildProjectClicked(Sender : TObject);
|
||||
procedure mnuBuildAllProjectClicked(Sender : TObject);
|
||||
procedure mnuAbortBuildProjectClicked(Sender : TObject);
|
||||
procedure mnuRunProjectClicked(Sender : TObject);
|
||||
procedure mnuPauseProjectClicked(Sender : TObject);
|
||||
procedure mnuStepIntoProjectClicked(Sender : TObject);
|
||||
@ -496,6 +497,7 @@ type
|
||||
procedure DoWarnAmbigiousFiles;
|
||||
function DoSaveForBuild: TModalResult; override;
|
||||
function DoBuildProject(BuildAll: boolean): TModalResult;
|
||||
function DoAbortBuild: TModalResult;
|
||||
function DoInitProjectRun: TModalResult; override;
|
||||
function DoRunProject: TModalResult;
|
||||
function SomethingOfProjectIsModified: boolean;
|
||||
@ -1492,6 +1494,7 @@ begin
|
||||
inherited;
|
||||
itmProjectBuild.OnClick := @mnuBuildProjectClicked;
|
||||
itmProjectBuildAll.OnClick := @mnuBuildAllProjectClicked;
|
||||
itmProjectAbortBuild.OnClick := @mnuAbortBuildProjectClicked;
|
||||
itmProjectRun.OnClick := @mnuRunProjectClicked;
|
||||
itmProjectPause.Enabled := false;
|
||||
itmProjectPause.OnClick := @mnuPauseProjectClicked;
|
||||
@ -1792,6 +1795,7 @@ begin
|
||||
|
||||
ecBuild,
|
||||
ecBuildAll: DoBuildProject(Command=ecBuildAll);
|
||||
ecAbortBuild: DoAbortBuild;
|
||||
|
||||
ecRun: DoRunProject;
|
||||
ecPause: DebugBoss.DoPauseProject;
|
||||
@ -2265,6 +2269,11 @@ Begin
|
||||
DoBuildProject(true);
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.mnuAbortBuildProjectClicked(Sender : TObject);
|
||||
Begin
|
||||
DoAbortBuild;
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.mnuRunProjectClicked(Sender : TObject);
|
||||
begin
|
||||
DoRunProject;
|
||||
@ -5572,6 +5581,13 @@ begin
|
||||
DoCheckFilesOnDisk;
|
||||
end;
|
||||
|
||||
function TMainIDE.DoAbortBuild: TModalResult;
|
||||
begin
|
||||
Result:=mrOk;
|
||||
if ToolStatus<>itBuilder then exit;
|
||||
TheOutputFilter.StopExecute:=true;
|
||||
end;
|
||||
|
||||
function TMainIDE.DoInitProjectRun: TModalResult;
|
||||
var
|
||||
ProgramFilename, WorkingDir: String;
|
||||
@ -9338,6 +9354,9 @@ end.
|
||||
|
||||
{ =============================================================================
|
||||
$Log$
|
||||
Revision 1.620 2003/07/08 11:30:22 mattias
|
||||
added Abort Build
|
||||
|
||||
Revision 1.619 2003/07/07 18:06:05 mattias
|
||||
fixed switching TARGET_OS
|
||||
|
||||
|
@ -297,6 +297,7 @@ type
|
||||
// run menu
|
||||
itmProjectBuild: TMenuItem;
|
||||
itmProjectBuildAll: TMenuItem;
|
||||
itmProjectAbortBuild: TMenuItem;
|
||||
itmProjectRun: TMenuItem;
|
||||
itmProjectPause: TMenuItem;
|
||||
itmProjectStepInto: TMenuItem;
|
||||
@ -1112,6 +1113,11 @@ begin
|
||||
itmProjectBuildAll.Graphic:=LoadPixmap('menu_buildall');
|
||||
mnuRun.Add(itmProjectBuildAll);
|
||||
|
||||
itmProjectAbortBuild := TMenuItem.Create(Self);
|
||||
itmProjectAbortBuild.Name:='itmProjectAbortBuild';
|
||||
itmProjectAbortBuild.Caption := lisMenuAbortBuild;
|
||||
mnuRun.Add(itmProjectAbortBuild);
|
||||
|
||||
mnuRun.Add(CreateMenuSeparator);
|
||||
|
||||
itmProjectRun := TMenuItem.Create(Self);
|
||||
@ -1426,6 +1432,7 @@ begin
|
||||
// run menu
|
||||
itmProjectBuild.ShortCut:=CommandToShortCut(ecBuild);
|
||||
itmProjectBuildAll.ShortCut:=CommandToShortCut(ecBuildAll);
|
||||
itmProjectAbortBuild.ShortCut:=CommandToShortCut(ecAbortBuild);
|
||||
itmProjectRun.ShortCut:=CommandToShortCut(ecRun);
|
||||
itmProjectPause.ShortCut:=CommandToShortCut(ecPause);
|
||||
itmProjectStepInto.ShortCut:=CommandToShortCut(ecStepInto);
|
||||
|
@ -72,6 +72,7 @@ type
|
||||
procedure InternalSetCurrentDirectory(const Dir: string);
|
||||
public
|
||||
ErrorExists: boolean;
|
||||
Aborted: boolean;
|
||||
function Execute(TheProcess: TProcess): boolean;
|
||||
function GetSourcePosition(const Line: string; var Filename:string;
|
||||
var CaretXY: TPoint; var MsgType: TErrorType): boolean;
|
||||
@ -159,9 +160,16 @@ begin
|
||||
|
||||
OutputLine:='';
|
||||
ErrorExists:=true;
|
||||
Aborted:=false;
|
||||
repeat
|
||||
Application.ProcessMessages;
|
||||
if StopExecute then exit;
|
||||
if StopExecute then begin
|
||||
TheProcess.Terminate(0);
|
||||
Aborted:=true;
|
||||
Result:=false;
|
||||
ReadLine('aborted',true);
|
||||
break;
|
||||
end;
|
||||
|
||||
if TheProcess.Output<>nil then
|
||||
Count:=TheProcess.Output.Read(Buf[1],length(Buf))
|
||||
|
Loading…
Reference in New Issue
Block a user