mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-17 04:29:25 +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;
|
||||
end;
|
||||
|
||||
function TAbstractExternalTool.FindParser(const SubTool: string
|
||||
): TExtToolParser;
|
||||
function TAbstractExternalTool.FindParser(const SubTool: string): TExtToolParser;
|
||||
var
|
||||
i: Integer;
|
||||
ParserClass: TExtToolParserClass;
|
||||
|
@ -236,6 +236,7 @@ type
|
||||
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)
|
||||
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
|
||||
lihtProjectClose, // called before IDE closes a project
|
||||
lihtProjectBuilding, // called before IDE builds the project
|
||||
@ -470,6 +471,11 @@ type
|
||||
procedure AddHandlerOnIDEClose(const OnIDECloseEvent: TNotifyEvent;
|
||||
AsLast: boolean = false);
|
||||
procedure RemoveHandlerOnIDEClose(const OnIDECloseEvent: TNotifyEvent);
|
||||
procedure AddHandlerOnProjectOpening(
|
||||
const OnProjectOpeningEvent: TLazProjectChangedFunction;
|
||||
AsLast: boolean = false);
|
||||
procedure RemoveHandlerOnProjectOpening(
|
||||
const OnProjectOpeningEvent: TLazProjectChangedFunction);
|
||||
procedure AddHandlerOnProjectOpened(
|
||||
const OnProjectOpenedEvent: TLazProjectChangedFunction;
|
||||
AsLast: boolean = false);
|
||||
@ -900,6 +906,18 @@ begin
|
||||
RemoveHandler(lihtIDEClose,TMethod(OnIDECloseEvent));
|
||||
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(
|
||||
const OnProjectOpenedEvent: TLazProjectChangedFunction; AsLast: boolean);
|
||||
begin
|
||||
|
@ -3611,8 +3611,11 @@ begin
|
||||
Project1.Flags:=Project1.Flags-[pfUseDefaultCompilerOptions];
|
||||
end;
|
||||
Project1.AutoAddOutputDirToIncPath;
|
||||
// call ProjectOpening handlers
|
||||
HandlerResult:=MainIDE.DoCallProjectChangedHandler(lihtProjectOpening, Project1);
|
||||
MainIDE.UpdateCaption;
|
||||
if ProjInspector<>nil then ProjInspector.LazProject:=Project1;
|
||||
if ProjInspector<>nil then
|
||||
ProjInspector.LazProject:=Project1;
|
||||
// add and load default required packages
|
||||
PkgBoss.OpenProjectDependencies(Project1,true);
|
||||
// rebuild codetools defines
|
||||
@ -3653,7 +3656,7 @@ begin
|
||||
for i:=0 to Project1.UnitCount-1 do
|
||||
Project1.Units[i].ClearModifieds;
|
||||
Project1.Modified:=false;
|
||||
// call handlers
|
||||
// call ProjectOpened handlers
|
||||
HandlerResult:=MainIDE.DoCallProjectChangedHandler(lihtProjectOpened, Project1);
|
||||
if not (HandlerResult in [mrOk,mrCancel,mrAbort]) then
|
||||
HandlerResult:=mrCancel;
|
||||
@ -3676,7 +3679,10 @@ begin
|
||||
try
|
||||
Project1.BeginUpdate(true);
|
||||
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
|
||||
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('InitOpenedProjectFile B3');{$ENDIF}
|
||||
@ -3810,7 +3816,7 @@ begin
|
||||
AnUnitInfo.Loaded := false;
|
||||
end;
|
||||
end;
|
||||
// call handlers
|
||||
// call ProjectOpened handlers
|
||||
HandlerResult:=MainIDE.DoCallProjectChangedHandler(lihtProjectOpened, Project1);
|
||||
if not (HandlerResult in [mrOk,mrCancel,mrAbort]) then
|
||||
HandlerResult:=mrCancel;
|
||||
|
Loading…
Reference in New Issue
Block a user