mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-08 09:20:49 +02:00
IdeIntf: A new ProjectOpening event. Triggered before a project opens. Issue #36899.
git-svn-id: trunk@63085 -
This commit is contained in:
parent
bc9d1a87a3
commit
7ef32e6a3a
@ -1402,8 +1402,7 @@ begin
|
|||||||
Result:=nil;
|
Result:=nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TAbstractExternalTool.FindParser(const SubTool: string
|
function TAbstractExternalTool.FindParser(const SubTool: string): TExtToolParser;
|
||||||
): TExtToolParser;
|
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
ParserClass: TExtToolParserClass;
|
ParserClass: TExtToolParserClass;
|
||||||
|
@ -236,6 +236,7 @@ type
|
|||||||
lihtSaveAsEditorFile, // called after user selected a new filename for an editor file
|
lihtSaveAsEditorFile, // called after user selected a new filename for an editor file
|
||||||
lihtIDERestoreWindows, // called when IDE is restoring the windows (before opening the first project)
|
lihtIDERestoreWindows, // called when IDE is restoring the windows (before opening the first project)
|
||||||
lihtIDEClose, // called when IDE is shutting down (after closequery, so no more interactivity)
|
lihtIDEClose, // called when IDE is shutting down (after closequery, so no more interactivity)
|
||||||
|
lihtProjectOpening,// called before IDE opens a project
|
||||||
lihtProjectOpened,// called after IDE opened a project
|
lihtProjectOpened,// called after IDE opened a project
|
||||||
lihtProjectClose, // called before IDE closes a project
|
lihtProjectClose, // called before IDE closes a project
|
||||||
lihtProjectBuilding, // called before IDE builds the project
|
lihtProjectBuilding, // called before IDE builds the project
|
||||||
@ -470,6 +471,11 @@ type
|
|||||||
procedure AddHandlerOnIDEClose(const OnIDECloseEvent: TNotifyEvent;
|
procedure AddHandlerOnIDEClose(const OnIDECloseEvent: TNotifyEvent;
|
||||||
AsLast: boolean = false);
|
AsLast: boolean = false);
|
||||||
procedure RemoveHandlerOnIDEClose(const OnIDECloseEvent: TNotifyEvent);
|
procedure RemoveHandlerOnIDEClose(const OnIDECloseEvent: TNotifyEvent);
|
||||||
|
procedure AddHandlerOnProjectOpening(
|
||||||
|
const OnProjectOpeningEvent: TLazProjectChangedFunction;
|
||||||
|
AsLast: boolean = false);
|
||||||
|
procedure RemoveHandlerOnProjectOpening(
|
||||||
|
const OnProjectOpeningEvent: TLazProjectChangedFunction);
|
||||||
procedure AddHandlerOnProjectOpened(
|
procedure AddHandlerOnProjectOpened(
|
||||||
const OnProjectOpenedEvent: TLazProjectChangedFunction;
|
const OnProjectOpenedEvent: TLazProjectChangedFunction;
|
||||||
AsLast: boolean = false);
|
AsLast: boolean = false);
|
||||||
@ -900,6 +906,18 @@ begin
|
|||||||
RemoveHandler(lihtIDEClose,TMethod(OnIDECloseEvent));
|
RemoveHandler(lihtIDEClose,TMethod(OnIDECloseEvent));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TLazIDEInterface.AddHandlerOnProjectOpening(
|
||||||
|
const OnProjectOpeningEvent: TLazProjectChangedFunction; AsLast: boolean);
|
||||||
|
begin
|
||||||
|
AddHandler(lihtProjectOpening,TMethod(OnProjectOpeningEvent),AsLast);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TLazIDEInterface.RemoveHandlerOnProjectOpening(
|
||||||
|
const OnProjectOpeningEvent: TLazProjectChangedFunction);
|
||||||
|
begin
|
||||||
|
RemoveHandler(lihtProjectOpening,TMethod(OnProjectOpeningEvent));
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TLazIDEInterface.AddHandlerOnProjectOpened(
|
procedure TLazIDEInterface.AddHandlerOnProjectOpened(
|
||||||
const OnProjectOpenedEvent: TLazProjectChangedFunction; AsLast: boolean);
|
const OnProjectOpenedEvent: TLazProjectChangedFunction; AsLast: boolean);
|
||||||
begin
|
begin
|
||||||
|
@ -3611,8 +3611,11 @@ begin
|
|||||||
Project1.Flags:=Project1.Flags-[pfUseDefaultCompilerOptions];
|
Project1.Flags:=Project1.Flags-[pfUseDefaultCompilerOptions];
|
||||||
end;
|
end;
|
||||||
Project1.AutoAddOutputDirToIncPath;
|
Project1.AutoAddOutputDirToIncPath;
|
||||||
|
// call ProjectOpening handlers
|
||||||
|
HandlerResult:=MainIDE.DoCallProjectChangedHandler(lihtProjectOpening, Project1);
|
||||||
MainIDE.UpdateCaption;
|
MainIDE.UpdateCaption;
|
||||||
if ProjInspector<>nil then ProjInspector.LazProject:=Project1;
|
if ProjInspector<>nil then
|
||||||
|
ProjInspector.LazProject:=Project1;
|
||||||
// add and load default required packages
|
// add and load default required packages
|
||||||
PkgBoss.OpenProjectDependencies(Project1,true);
|
PkgBoss.OpenProjectDependencies(Project1,true);
|
||||||
// rebuild codetools defines
|
// rebuild codetools defines
|
||||||
@ -3653,7 +3656,7 @@ begin
|
|||||||
for i:=0 to Project1.UnitCount-1 do
|
for i:=0 to Project1.UnitCount-1 do
|
||||||
Project1.Units[i].ClearModifieds;
|
Project1.Units[i].ClearModifieds;
|
||||||
Project1.Modified:=false;
|
Project1.Modified:=false;
|
||||||
// call handlers
|
// call ProjectOpened handlers
|
||||||
HandlerResult:=MainIDE.DoCallProjectChangedHandler(lihtProjectOpened, Project1);
|
HandlerResult:=MainIDE.DoCallProjectChangedHandler(lihtProjectOpened, Project1);
|
||||||
if not (HandlerResult in [mrOk,mrCancel,mrAbort]) then
|
if not (HandlerResult in [mrOk,mrCancel,mrAbort]) then
|
||||||
HandlerResult:=mrCancel;
|
HandlerResult:=mrCancel;
|
||||||
@ -3676,7 +3679,10 @@ begin
|
|||||||
try
|
try
|
||||||
Project1.BeginUpdate(true);
|
Project1.BeginUpdate(true);
|
||||||
try
|
try
|
||||||
if ProjInspector<>nil then ProjInspector.LazProject:=Project1;
|
// call ProjectOpening handlers
|
||||||
|
HandlerResult:=MainIDE.DoCallProjectChangedHandler(lihtProjectOpening, Project1);
|
||||||
|
if ProjInspector<>nil then
|
||||||
|
ProjInspector.LazProject:=Project1;
|
||||||
|
|
||||||
// read project info file
|
// read project info file
|
||||||
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('InitOpenedProjectFile B3');{$ENDIF}
|
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('InitOpenedProjectFile B3');{$ENDIF}
|
||||||
@ -3810,7 +3816,7 @@ begin
|
|||||||
AnUnitInfo.Loaded := false;
|
AnUnitInfo.Loaded := false;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
// call handlers
|
// call ProjectOpened handlers
|
||||||
HandlerResult:=MainIDE.DoCallProjectChangedHandler(lihtProjectOpened, Project1);
|
HandlerResult:=MainIDE.DoCallProjectChangedHandler(lihtProjectOpened, Project1);
|
||||||
if not (HandlerResult in [mrOk,mrCancel,mrAbort]) then
|
if not (HandlerResult in [mrOk,mrCancel,mrAbort]) then
|
||||||
HandlerResult:=mrCancel;
|
HandlerResult:=mrCancel;
|
||||||
|
Loading…
Reference in New Issue
Block a user