unify the field name used by the project observers to store the proj ref

This commit is contained in:
Basile Burg 2020-03-09 00:59:12 +01:00
parent 8a519c1c49
commit c98c996e7b
2 changed files with 169 additions and 169 deletions

View File

@ -401,7 +401,7 @@ type
fMultidoc: IMultiDocHandler; fMultidoc: IMultiDocHandler;
fProcInputHandler: IProcInputHandler; fProcInputHandler: IProcInputHandler;
fUpdateCount: NativeInt; fUpdateCount: NativeInt;
fProject: ICommonProject; fProj: ICommonProject;
fFreeProj: ICommonProject; fFreeProj: ICommonProject;
fProjBeforeGroup: ICommonProject; fProjBeforeGroup: ICommonProject;
fDubProject: TDubProject; fDubProject: TDubProject;
@ -581,7 +581,7 @@ type
TLastDocsAndProjs = class(TWritableLfmTextComponent) TLastDocsAndProjs = class(TWritableLfmTextComponent)
private private
fDocuments: TStringList; fDocuments: TStringList;
fProject: string; fProjName: string;
fDocIndex: integer; fDocIndex: integer;
fProjectGroup: string; fProjectGroup: string;
fProjectIndex: integer; fProjectIndex: integer;
@ -592,7 +592,7 @@ type
published published
property documentIndex: integer read fDocIndex write fDocIndex; property documentIndex: integer read fDocIndex write fDocIndex;
property documents: TStringList read fDocuments write setDocuments; property documents: TStringList read fDocuments write setDocuments;
property project: string read fProject write fProject; property project: string read fProjName write fProjName;
property projectGroup: string read fProjectGroup write fProjectGroup; property projectGroup: string read fProjectGroup write fProjectGroup;
property projectIndex: integer read fProjectIndex write fProjectIndex; property projectIndex: integer read fProjectIndex write fProjectIndex;
public public
@ -1051,9 +1051,9 @@ begin
pix := grp.reloadedProjectIndex; pix := grp.reloadedProjectIndex;
prj := MainForm.fFreeProj; prj := MainForm.fFreeProj;
if assigned(prj) then if assigned(prj) then
fProject := prj.filename; fProjName := prj.filename;
fProjectGroup := getProjectGroup.groupFilename; fProjectGroup := getProjectGroup.groupFilename;
if prj = MainForm.fProject then if prj = MainForm.fProj then
fProjectIndex :=- 1 fProjectIndex :=- 1
else else
fProjectIndex := pix; fProjectIndex := pix;
@ -1074,16 +1074,16 @@ begin
if dst.fProjFromCommandLine then if dst.fProjFromCommandLine then
exit; exit;
if fProject.isNotEmpty and fProject.fileExists then if fProjName.isNotEmpty and fProjName.fileExists then
begin begin
dst.openProj(fProject); dst.openProj(fProjName);
if not assigned(dst.fProject) then if not assigned(dst.fProj) then
exit; exit;
hdl := getMultiDocHandler; hdl := getMultiDocHandler;
if assigned(hdl) then if assigned(hdl) then
mem := hdl.findDocument(dst.fProject.filename); mem := hdl.findDocument(dst.fProj.filename);
if mem.isNotNil then if mem.isNotNil then
if dst.fProject.getFormat = pfDEXED then if dst.fProj.getFormat = pfDEXED then
mem.Highlighter := LfmSyn mem.Highlighter := LfmSyn
else else
mem.Highlighter := JsSyn; mem.Highlighter := JsSyn;
@ -2059,7 +2059,7 @@ begin
// see: http://forum.lazarus.freepascal.org/index.php/topic,30616.0.htm // see: http://forum.lazarus.freepascal.org/index.php/topic,30616.0.htm
if fAppliOpts.reloadLastDocuments then if fAppliOpts.reloadLastDocuments then
LoadLastDocsAndProj; LoadLastDocsAndProj;
if not assigned(fProject) then if not assigned(fProj) then
newDubProj; newDubProj;
DockMaster.ResetSplitters; DockMaster.ResetSplitters;
@ -2253,8 +2253,8 @@ begin
if d.modified and not d.isTemporary then if d.modified and not d.isTemporary then
d.save; d.save;
end; end;
if assigned(fProject) and fProject.modified then if assigned(fProj) and fProj.modified then
fProject.saveToFile(fProject.filename); fProj.saveToFile(fProj.filename);
for i := 0 to fProjectGroup.projectCount-1 do for i := 0 to fProjectGroup.projectCount-1 do
if fProjectGroup.projectModified(i) then if fProjectGroup.projectModified(i) then
fProjectGroup.getProject(i).saveToFile(fProjectGroup.getProject(i).filename); fProjectGroup.getProject(i).saveToFile(fProjectGroup.getProject(i).filename);
@ -2283,7 +2283,7 @@ end;
procedure TMainForm.updateProjectBasedAction(sender: TObject); procedure TMainForm.updateProjectBasedAction(sender: TObject);
begin begin
TAction(sender).Enabled := assigned(fProject) {and not fProjActionsLock}; TAction(sender).Enabled := assigned(fProj) {and not fProjActionsLock};
end; end;
procedure TMainForm.updateDocEditBasedAction(sender: TObject); procedure TMainForm.updateDocEditBasedAction(sender: TObject);
@ -2411,12 +2411,12 @@ end;
{$REGION IProjectObserver ----------------------------------------------------} {$REGION IProjectObserver ----------------------------------------------------}
procedure TMainForm.projNew(project: ICommonProject); procedure TMainForm.projNew(project: ICommonProject);
begin begin
fProject := project; fProj := project;
case fProject.getFormat of case fProj.getFormat of
pfDEXED: fNativeProject := TNativeProject(fProject.getProject); pfDEXED: fNativeProject := TNativeProject(fProj.getProject);
pfDUB: fDubProject := TDubProject(fProject.getProject); pfDUB: fDubProject := TDubProject(fProj.getProject);
end; end;
if not fProject.inGroup then if not fProj.inGroup then
fFreeProj := project; fFreeProj := project;
end; end;
@ -2429,9 +2429,9 @@ procedure TMainForm.projClosing(project: ICommonProject);
begin begin
if project = fFreeProj then if project = fFreeProj then
fFreeProj := nil; fFreeProj := nil;
if fProject <> project then if fProj <> project then
exit; exit;
fProject := nil; fProj := nil;
fDubProject := nil; fDubProject := nil;
fNativeProject := nil; fNativeProject := nil;
showProjTitle; showProjTitle;
@ -2439,17 +2439,17 @@ end;
procedure TMainForm.projFocused(project: ICommonProject); procedure TMainForm.projFocused(project: ICommonProject);
begin begin
fProject := project; fProj := project;
case fProject.getFormat of case fProj.getFormat of
pfDEXED: fNativeProject := TNativeProject(fProject.getProject); pfDEXED: fNativeProject := TNativeProject(fProj.getProject);
pfDUB: fDubProject := TDubProject(fProject.getProject); pfDUB: fDubProject := TDubProject(fProj.getProject);
end; end;
if not fProject.inGroup then if not fProj.inGroup then
fFreeProj := project fFreeProj := project
else if project = fFreeProj then else if project = fFreeProj then
fFreeProj := nil; fFreeProj := nil;
if assigned(fProject) then if assigned(fProj) then
actProjGitBranchesUpdExecute(nil); actProjGitBranchesUpdExecute(nil);
showProjTitle; showProjTitle;
@ -2477,7 +2477,7 @@ begin
fMsgs.message('Build duration: ' + formatTicksAsDuration(GetTickCount64 - fCompStart), fMsgs.message('Build duration: ' + formatTicksAsDuration(GetTickCount64 - fCompStart),
project, amcProj, amkInf); project, amcProj, amkInf);
end; end;
if fRunProjAfterCompile and assigned(fProject) then if fRunProjAfterCompile and assigned(fProj) then
begin begin
if not success then if not success then
runprev := dlgYesNo('last build failed, continue and run ?') = mrYes; runprev := dlgYesNo('last build failed, continue and run ?') = mrYes;
@ -2486,7 +2486,7 @@ begin
if fRunProjAfterCompArg and if fRunProjAfterCompArg and
not InputQuery('Execution arguments', '', runargs) then not InputQuery('Execution arguments', '', runargs) then
runargs := ''; runargs := '';
fProject.run(runargs); fProj.run(runargs);
end; end;
end; end;
fRunProjAfterCompile := false; fRunProjAfterCompile := false;
@ -2642,9 +2642,9 @@ end;
procedure TMainForm.actProjOpenContFoldExecute(Sender: TObject); procedure TMainForm.actProjOpenContFoldExecute(Sender: TObject);
begin begin
if not assigned(fProject) or not fProject.filename.fileExists then if not assigned(fProj) or not fProj.filename.fileExists then
exit; exit;
getExplorer.browse(fProject.filename.extractFilePath); getExplorer.browse(fProj.filename.extractFilePath);
fExplWidg.showWidget; fExplWidg.showWidget;
end; end;
@ -2709,12 +2709,12 @@ end;
procedure TMainForm.actFileAddToProjExecute(Sender: TObject); procedure TMainForm.actFileAddToProjExecute(Sender: TObject);
begin begin
if fDoc.isNil or not assigned(fProject) then if fDoc.isNil or not assigned(fProj) then
exit; exit;
if fProject.filename = fDoc.fileName then if fProj.filename = fDoc.fileName then
exit; exit;
if fProject.getFormat = pfDEXED then if fProj.getFormat = pfDEXED then
begin begin
if fDoc.fileName.fileExists and not fDoc.isTemporary then if fDoc.fileName.fileExists and not fDoc.isTemporary then
fNativeProject.addSource(fDoc.fileName) fNativeProject.addSource(fDoc.fileName)
@ -2898,16 +2898,16 @@ begin
if fDoc.isTemporary then if fDoc.isTemporary then
result := of_yes; result := of_yes;
end end
else if assigned(fProject) then else if assigned(fProj) then
begin begin
if ifInProject in fRunnablesOptions.outputFolderConditions then if ifInProject in fRunnablesOptions.outputFolderConditions then
begin begin
if fProject.isSource(fDoc.fileName) then if fProj.isSource(fDoc.fileName) then
result := of_yes; result := of_yes;
end end
else if ifSaved in fRunnablesOptions.outputFolderConditions then else if ifSaved in fRunnablesOptions.outputFolderConditions then
begin begin
if not fProject.isSource(fDoc.fileName) and not fDoc.isTemporary then if not fProj.isSource(fDoc.fileName) and not fDoc.isTemporary then
result := of_yes; result := of_yes;
end; end;
end end
@ -3503,16 +3503,16 @@ end;
procedure TMainForm.actProjCompileExecute(Sender: TObject); procedure TMainForm.actProjCompileExecute(Sender: TObject);
begin begin
if fAppliOpts.autoSaveProjectFiles then if fAppliOpts.autoSaveProjectFiles then
saveModifiedProjectFiles(fProject); saveModifiedProjectFiles(fProj);
fProject.compile; fProj.compile;
end; end;
procedure TMainForm.actProjCompileAndRunExecute(Sender: TObject); procedure TMainForm.actProjCompileAndRunExecute(Sender: TObject);
begin begin
fRunProjAfterCompile := true; fRunProjAfterCompile := true;
if fAppliOpts.autoSaveProjectFiles then if fAppliOpts.autoSaveProjectFiles then
saveModifiedProjectFiles(fProject); saveModifiedProjectFiles(fProj);
fProject.compile; fProj.compile;
end; end;
procedure TMainForm.actProjCompAndRunWithArgsExecute(Sender: TObject); procedure TMainForm.actProjCompAndRunWithArgsExecute(Sender: TObject);
@ -3520,25 +3520,25 @@ begin
fRunProjAfterCompile := true; fRunProjAfterCompile := true;
fRunProjAfterCompArg := true; fRunProjAfterCompArg := true;
if fAppliOpts.autoSaveProjectFiles then if fAppliOpts.autoSaveProjectFiles then
saveModifiedProjectFiles(fProject); saveModifiedProjectFiles(fProj);
fProject.compile; fProj.compile;
end; end;
procedure TMainForm.actProjRunExecute(Sender: TObject); procedure TMainForm.actProjRunExecute(Sender: TObject);
begin begin
if fProject.binaryKind <> executable then if fProj.binaryKind <> executable then
dlgOkInfo('Non executable projects cant be run') dlgOkInfo('Non executable projects cant be run')
else else
begin begin
if not fProject.targetUpToDate and if not fProj.targetUpToDate and
(dlgYesNo('The project output is not up-to-date, rebuild ?') = mrYes) then (dlgYesNo('The project output is not up-to-date, rebuild ?') = mrYes) then
begin begin
if fAppliOpts.autoSaveProjectFiles then if fAppliOpts.autoSaveProjectFiles then
saveModifiedProjectFiles(fProject); saveModifiedProjectFiles(fProj);
fProject.compile; fProj.compile;
end; end;
if fProject.outputFilename.fileExists or (fProject.getFormat = pfDUB) then if fProj.outputFilename.fileExists or (fProj.getFormat = pfDUB) then
fProject.run; fProj.run;
end; end;
end; end;
@ -3547,7 +3547,7 @@ var
runargs: string = ''; runargs: string = '';
begin begin
if InputQuery('Execution arguments', '', runargs) then if InputQuery('Execution arguments', '', runargs) then
fProject.run(runargs); fProj.run(runargs);
end; end;
{$ENDREGION} {$ENDREGION}
@ -3743,8 +3743,8 @@ end;
procedure TMainForm.showProjTitle; procedure TMainForm.showProjTitle;
begin begin
if assigned(fProject) and fProject.filename.fileExists then if assigned(fProj) and fProj.filename.fileExists then
caption := format('dexed - %s', [shortenPath(fProject.filename, 30)]) caption := format('dexed - %s', [shortenPath(fProj.filename, 30)])
else else
caption := 'dexed'; caption := 'dexed';
end; end;
@ -3753,29 +3753,29 @@ procedure TMainForm.saveProjSource(const document: TDexedMemo);
var var
fname: string; fname: string;
begin begin
if not assigned(fProject) or checkProjectLock or if not assigned(fProj) or checkProjectLock or
(fProject.filename <> document.fileName) then (fProj.filename <> document.fileName) then
exit; exit;
fname := fProject.filename; fname := fProj.filename;
document.saveToFile(fname); document.saveToFile(fname);
fProject.reload; fProj.reload;
end; end;
function TMainForm.closeProj: boolean; function TMainForm.closeProj: boolean;
begin begin
if not assigned(fProject) then if not assigned(fProj) then
exit(true); exit(true);
result := false; result := false;
if fProject = fFreeProj then if fProj = fFreeProj then
begin begin
if checkProjectLock then if checkProjectLock then
exit; exit;
fProject.getProject.Free; fProj.getProject.Free;
fFreeProj := nil; fFreeProj := nil;
end; end;
fProject := nil; fProj := nil;
fNativeProject := nil; fNativeProject := nil;
fDubProject := nil; fDubProject := nil;
showProjTitle; showProjTitle;
@ -3786,8 +3786,8 @@ procedure TMainForm.actProjNewDialogExecute(Sender: TObject);
var var
r: TModalResult; r: TModalResult;
begin begin
if assigned(fProject) and not fProject.inGroup and fProject.modified and if assigned(fProj) and not fProj.inGroup and fProj.modified and
(dlgFileChangeClose(fProject.filename, UnsavedProj) = mrCancel) then (dlgFileChangeClose(fProj.filename, UnsavedProj) = mrCancel) then
exit; exit;
if not closeProj then if not closeProj then
exit; exit;
@ -3803,8 +3803,8 @@ end;
procedure TMainForm.actProjNewDubJsonExecute(Sender: TObject); procedure TMainForm.actProjNewDubJsonExecute(Sender: TObject);
begin begin
if assigned(fProject) and not fProject.inGroup and fProject.modified and if assigned(fProj) and not fProj.inGroup and fProj.modified and
(dlgFileChangeClose(fProject.filename, UnsavedProj) = mrCancel) then (dlgFileChangeClose(fProj.filename, UnsavedProj) = mrCancel) then
exit; exit;
if not closeProj then if not closeProj then
exit; exit;
@ -3813,8 +3813,8 @@ end;
procedure TMainForm.actProjNewNativeExecute(Sender: TObject); procedure TMainForm.actProjNewNativeExecute(Sender: TObject);
begin begin
if assigned(fProject) and not fProject.inGroup and fProject.modified and if assigned(fProj) and not fProj.inGroup and fProj.modified and
(dlgFileChangeClose(fProject.filename, UnsavedProj) = mrCancel) then (dlgFileChangeClose(fProj.filename, UnsavedProj) = mrCancel) then
exit; exit;
if not closeProj then if not closeProj then
exit; exit;
@ -3825,25 +3825,25 @@ procedure TMainForm.newNativeProj;
begin begin
fNativeProject := TNativeProject.Create(nil); fNativeProject := TNativeProject.Create(nil);
fNativeProject.Name := 'CurrentProject'; fNativeProject.Name := 'CurrentProject';
fProject := fNativeProject as ICommonProject; fProj := fNativeProject as ICommonProject;
showProjTitle; showProjTitle;
end; end;
procedure TMainForm.newDubProj; procedure TMainForm.newDubProj;
begin begin
fDubProject := TDubProject.create(nil); fDubProject := TDubProject.create(nil);
fProject := fDubProject as ICommonProject; fProj := fDubProject as ICommonProject;
showProjTitle; showProjTitle;
end; end;
procedure TMainForm.saveProj; procedure TMainForm.saveProj;
begin begin
fProject.saveToFile(fProject.filename); fProj.saveToFile(fProj.filename);
end; end;
procedure TMainForm.saveProjAs(const fname: string); procedure TMainForm.saveProjAs(const fname: string);
begin begin
fProject.saveToFile(fname); fProj.saveToFile(fname);
showProjTitle; showProjTitle;
end; end;
@ -3864,17 +3864,17 @@ begin
exit; exit;
end; end;
fProject.loadFromFile(fname); fProj.loadFromFile(fname);
showProjTitle; showProjTitle;
fProject.activate; fProj.activate;
end; end;
procedure TMainForm.mruProjItemClick(Sender: TObject); procedure TMainForm.mruProjItemClick(Sender: TObject);
begin begin
if checkProjectLock then if checkProjectLock then
exit; exit;
if assigned(fProject) and not fProject.inGroup and fProject.modified and if assigned(fProj) and not fProj.inGroup and fProj.modified and
(dlgFileChangeClose(fProject.filename, UnsavedProj) = mrCancel) then (dlgFileChangeClose(fProj.filename, UnsavedProj) = mrCancel) then
exit; exit;
openProj(TMenuItem(Sender).Hint); openProj(TMenuItem(Sender).Hint);
end; end;
@ -3888,14 +3888,14 @@ begin
exit; exit;
fProjectGroup.closeGroup; fProjectGroup.closeGroup;
fProjectGroup.openGroup(TMenuItem(Sender).Hint); fProjectGroup.openGroup(TMenuItem(Sender).Hint);
if (fProject = nil) and (fProjectGroup.getProjectIndex < fProjectGroup.projectCount) then if (fProj = nil) and (fProjectGroup.getProjectIndex < fProjectGroup.projectCount) then
fProjectGroup.getProject(fProjectGroup.getProjectIndex).activate(); fProjectGroup.getProject(fProjectGroup.getProjectIndex).activate();
end; end;
procedure TMainForm.actProjCloseExecute(Sender: TObject); procedure TMainForm.actProjCloseExecute(Sender: TObject);
begin begin
if assigned(fProject) and not fProject.inGroup and fProject.modified and if assigned(fProj) and not fProj.inGroup and fProj.modified and
(dlgFileChangeClose(fProject.filename, UnsavedProj) = mrCancel) then (dlgFileChangeClose(fProj.filename, UnsavedProj) = mrCancel) then
exit; exit;
closeProj; closeProj;
end; end;
@ -3904,16 +3904,16 @@ procedure TMainForm.actProjSaveAsExecute(Sender: TObject);
begin begin
if checkProjectLock then if checkProjectLock then
exit; exit;
if (fProject.getFormat = pfDUB) and TDubProject(fProject.getProject).isSDL then if (fProj.getFormat = pfDUB) and TDubProject(fProj.getProject).isSDL then
begin begin
fMsgs.message(DubSdlWarning, fProject, amcProj, amkWarn); fMsgs.message(DubSdlWarning, fProj, amcProj, amkWarn);
exit; exit;
end; end;
with TSaveDialog.Create(nil) do with TSaveDialog.Create(nil) do
try try
Filter := 'DUB json|*.json|DUB sdl|*.sdl|Dexed project|*.dprj'; Filter := 'DUB json|*.json|DUB sdl|*.sdl|Dexed project|*.dprj';
if fProject.filename.fileExists then if fProj.filename.fileExists then
InitialDir := fproject.filename.extractFileDir; InitialDir := fProj.filename.extractFileDir;
if execute then if execute then
saveProjAs(filename.normalizePath); saveProjAs(filename.normalizePath);
finally finally
@ -3923,16 +3923,16 @@ end;
procedure TMainForm.actProjSaveExecute(Sender: TObject); procedure TMainForm.actProjSaveExecute(Sender: TObject);
begin begin
if not assigned(fProject) then if not assigned(fProj) then
exit; exit;
if (fProject.getFormat = pfDUB) and TDubProject(fProject.getProject).isSDL then if (fProj.getFormat = pfDUB) and TDubProject(fProj.getProject).isSDL then
begin begin
fMsgs.message(DubSdlWarning, fProject, amcProj, amkWarn); fMsgs.message(DubSdlWarning, fProj, amcProj, amkWarn);
exit; exit;
end; end;
if checkProjectLock then if checkProjectLock then
exit; exit;
if fProject.filename.isNotEmpty then if fProj.filename.isNotEmpty then
saveProj saveProj
else else
actProjSaveAs.Execute; actProjSaveAs.Execute;
@ -3942,8 +3942,8 @@ procedure TMainForm.actProjOpenExecute(Sender: TObject);
begin begin
if checkProjectLock then if checkProjectLock then
exit; exit;
if assigned(fProject) and fProject.modified and if assigned(fProj) and fProj.modified and
(dlgFileChangeClose(fProject.filename, UnsavedProj) = mrCancel) then (dlgFileChangeClose(fProj.filename, UnsavedProj) = mrCancel) then
exit; exit;
with TOpenDialog.Create(nil) do with TOpenDialog.Create(nil) do
try try
@ -3959,8 +3959,8 @@ procedure TMainForm.actProjEditorExecute(Sender: TObject);
var var
win: TControl = nil; win: TControl = nil;
begin begin
if assigned(fProject) then if assigned(fProj) then
case fProject.getFormat of case fProj.getFormat of
pfDUB: win := DockMaster.GetAnchorSite(fDubProjWidg); pfDUB: win := DockMaster.GetAnchorSite(fDubProjWidg);
pfDEXED: win := DockMaster.GetAnchorSite(fPrjCfWidg); pfDEXED: win := DockMaster.GetAnchorSite(fPrjCfWidg);
end end
@ -3974,18 +3974,18 @@ end;
procedure TMainForm.actProjSourceExecute(Sender: TObject); procedure TMainForm.actProjSourceExecute(Sender: TObject);
begin begin
if not assigned(fProject) or not fProject.filename.fileExists then if not assigned(fProj) or not fProj.filename.fileExists then
exit; exit;
if (fProject.getFormat = pfDUB) and TDubProject(fProject.getProject).isSDL then if (fProj.getFormat = pfDUB) and TDubProject(fProj.getProject).isSDL then
begin begin
fMsgs.message(DubSdlWarning, fProject, amcProj, amkWarn); fMsgs.message(DubSdlWarning, fProj, amcProj, amkWarn);
exit; exit;
end; end;
openFile(fProject.filename); openFile(fProj.filename);
fDoc.isProjectDescription := true; fDoc.isProjectDescription := true;
if fProject.getFormat = pfDEXED then if fProj.getFormat = pfDEXED then
fDoc.Highlighter := LfmSyn fDoc.Highlighter := LfmSyn
else else
fDoc.Highlighter := JsSyn; fDoc.Highlighter := JsSyn;
@ -3993,25 +3993,25 @@ end;
procedure TMainForm.actProjOptViewExecute(Sender: TObject); procedure TMainForm.actProjOptViewExecute(Sender: TObject);
begin begin
if not assigned(fProject) then if not assigned(fProj) then
exit; exit;
dlgOkInfo(fProject.getCommandLine, 'Compilation command line'); dlgOkInfo(fProj.getCommandLine, 'Compilation command line');
end; end;
procedure TMainForm.actProjTestExecute(Sender: TObject); procedure TMainForm.actProjTestExecute(Sender: TObject);
begin begin
if not assigned(fProject) then if not assigned(fProj) then
exit; exit;
if checkProjectLock then if checkProjectLock then
exit; exit;
fProject.test; fProj.test;
end; end;
procedure TMainForm.actProjStopCompExecute(Sender: TObject); procedure TMainForm.actProjStopCompExecute(Sender: TObject);
begin begin
if fProject = nil then if fProj = nil then
exit; exit;
fProject.stopCompilation(); fProj.stopCompilation();
end; end;
procedure TMainForm.actProjDscanExecute(Sender: TObject); procedure TMainForm.actProjDscanExecute(Sender: TObject);
@ -4024,7 +4024,7 @@ var
s1: string; s1: string;
s2: string; s2: string;
begin begin
if fProject = nil then if fProj = nil then
exit; exit;
pth := exeFullName('dscanner' + exeExt); pth := exeFullName('dscanner' + exeExt);
@ -4037,21 +4037,21 @@ begin
prc.Options := [poUsePipes, poStderrToOutPut {$IFDEF WINDOWS}, poNewConsole{$ENDIF}]; prc.Options := [poUsePipes, poStderrToOutPut {$IFDEF WINDOWS}, poNewConsole{$ENDIF}];
prc.ShowWindow:= swoHIDE; prc.ShowWindow:= swoHIDE;
prc.Parameters.Add('-S'); prc.Parameters.Add('-S');
s1 := fProject.basePath + 'dscanner.ini'; s1 := fProj.basePath + 'dscanner.ini';
s2 := fProject.basePath + '.dscanner.ini'; s2 := fProj.basePath + '.dscanner.ini';
if s1.fileExists then if s1.fileExists then
prc.Parameters.Add('--config='+s1) prc.Parameters.Add('--config='+s1)
else if s2.fileExists then else if s2.fileExists then
prc.Parameters.Add('--config='+s2) prc.Parameters.Add('--config='+s2)
else if not fDscanUnittests then else if not fDscanUnittests then
prc.Parameters.Add('--skipTests'); prc.Parameters.Add('--skipTests');
for i := 0 to fProject.sourcesCount-1 do for i := 0 to fProj.sourcesCount-1 do
prc.Parameters.Add(fProject.sourceAbsolute(i)); prc.Parameters.Add(fProj.sourceAbsolute(i));
prc.Execute; prc.Execute;
processOutputToStrings(prc, lst); processOutputToStrings(prc, lst);
while prc.Running do; while prc.Running do;
for msg in lst do for msg in lst do
fMsgs.message(msg, fProject, amcProj, amkWarn); fMsgs.message(msg, fProj, amcProj, amkWarn);
finally finally
prc.Free; prc.Free;
lst.Free; lst.Free;
@ -4073,11 +4073,11 @@ begin
p.Options := [poUsePipes, poNoConsole, poStderrToOutPut]; p.Options := [poUsePipes, poNoConsole, poStderrToOutPut];
p.ShowWindow:= swoHIDE; p.ShowWindow:= swoHIDE;
p.Parameters.Add('pull'); p.Parameters.Add('pull');
p.CurrentDirectory:= fProject.basePath; p.CurrentDirectory:= fProj.basePath;
p.Execute; p.Execute;
processOutputToStrings(p,r); processOutputToStrings(p,r);
for i := 0 to r.Count-1 do for i := 0 to r.Count-1 do
fMsgs.message(r[i], fProject, amcProj, amkAuto); fMsgs.message(r[i], fProj, amcProj, amkAuto);
while p.Running do ; while p.Running do ;
p.Parameters.Clear; p.Parameters.Clear;
p.Parameters.Add('submodule'); p.Parameters.Add('submodule');
@ -4088,7 +4088,7 @@ begin
processOutputToStrings(p,r); processOutputToStrings(p,r);
while p.Running do ; while p.Running do ;
for i := 0 to r.Count-1 do for i := 0 to r.Count-1 do
fMsgs.message(r[i], fProject, amcProj, amkAuto); fMsgs.message(r[i], fProj, amcProj, amkAuto);
end; end;
finally; finally;
actProjGitBranchesUpd.Execute; actProjGitBranchesUpd.Execute;
@ -4104,7 +4104,7 @@ var
i: integer; i: integer;
b: string; b: string;
begin begin
if not assigned(fProject) then if not assigned(fProj) then
exit; exit;
p := TProcess.Create(nil); p := TProcess.Create(nil);
r := TStringList.Create; r := TStringList.Create;
@ -4117,12 +4117,12 @@ begin
p.ShowWindow:= swoHIDE; p.ShowWindow:= swoHIDE;
p.Parameters.Add('checkout'); p.Parameters.Add('checkout');
p.Parameters.Add(b); p.Parameters.Add(b);
p.CurrentDirectory:= fProject.basePath; p.CurrentDirectory:= fProj.basePath;
p.Execute; p.Execute;
processOutputToStrings(p,r); processOutputToStrings(p,r);
while p.Running do ; while p.Running do ;
for i := 0 to r.Count-1 do for i := 0 to r.Count-1 do
fMsgs.message(r[i], fProject, amcProj, amkAuto); fMsgs.message(r[i], fProj, amcProj, amkAuto);
end; end;
finally; finally;
actProjGitBranchesUpd.Execute; actProjGitBranchesUpd.Execute;
@ -4139,13 +4139,13 @@ var
m: TMenuItem; m: TMenuItem;
a: boolean; a: boolean;
begin begin
if not assigned(fProject) then if not assigned(fProj) then
exit; exit;
a := mnuGitBranch.Count >= 2; a := mnuGitBranch.Count >= 2;
if a then if a then
while mnuGitBranch.Count <> 2 do while mnuGitBranch.Count <> 2 do
mnuGitBranch.delete(mnuGitBranch.Count-1); mnuGitBranch.delete(mnuGitBranch.Count-1);
if not DirectoryExistsUTF8(fProject.basePath + DirectorySeparator + '.git') then if not DirectoryExistsUTF8(fProj.basePath + DirectorySeparator + '.git') then
exit; exit;
p := TProcess.Create(nil); p := TProcess.Create(nil);
r := TStringList.Create; r := TStringList.Create;
@ -4157,7 +4157,7 @@ begin
p.ShowWindow:= swoHIDE; p.ShowWindow:= swoHIDE;
p.Parameters.Add('branch'); p.Parameters.Add('branch');
p.Parameters.Add('--list'); p.Parameters.Add('--list');
p.CurrentDirectory:= fProject.basePath; p.CurrentDirectory:= fProj.basePath;
p.Execute; p.Execute;
processOutputToStrings(p,r); processOutputToStrings(p,r);
while p.Running do ; while p.Running do ;
@ -4186,7 +4186,7 @@ begin
r.Clear; r.Clear;
r.LoadFromStream(p.Stderr); r.LoadFromStream(p.Stderr);
for i := 0 to r.Count-1 do for i := 0 to r.Count-1 do
fMsgs.message(r[i], fProject, amcProj, amkAuto); fMsgs.message(r[i], fProj, amcProj, amkAuto);
end; end;
finally finally
p.Free; p.Free;
@ -4214,7 +4214,7 @@ begin
finally finally
free; free;
end; end;
if (fProject = nil) and (fProjectGroup.getProjectIndex < fProjectGroup.projectCount) then if (fProj = nil) and (fProjectGroup.getProjectIndex < fProjectGroup.projectCount) then
fProjectGroup.getProject(fProjectGroup.getProjectIndex).activate(); fProjectGroup.getProject(fProjectGroup.getProjectIndex).activate();
end; end;
@ -4252,9 +4252,9 @@ var
e: TStrings; e: TStrings;
s: string; s: string;
begin begin
if not assigned(fProject) or (fProject.getFormat <> pfDUB) then if not assigned(fProj) or (fProj.getFormat <> pfDUB) then
exit; exit;
p := TDubProject(fProject.getProject); p := TDubProject(fProj.getProject);
e := p.getPersistentEnvironment; e := p.getPersistentEnvironment;
s := e.strictText; s := e.strictText;
if InputQuery('Persistent project environment', 'values (key=value;key=value;...)', s) then if InputQuery('Persistent project environment', 'values (key=value;key=value;...)', s) then
@ -4291,7 +4291,7 @@ begin
exit; exit;
if fProjectGroup.projectCount = 0 then if fProjectGroup.projectCount = 0 then
exit; exit;
fProjBeforeGroup := fProject; fProjBeforeGroup := fProj;
fGroupCompilationCnt := 0; fGroupCompilationCnt := 0;
fIsCompilingGroup := true; fIsCompilingGroup := true;
fMsgs.message('start compiling a project group...', nil, amcAll, amkInf); fMsgs.message('start compiling a project group...', nil, amcAll, amkInf);
@ -4314,13 +4314,13 @@ begin
break; break;
end; end;
end; end;
fProject.compile; fProj.compile;
// sequential // sequential
if (async = awNo) then if (async = awNo) then
begin begin
while fProjActionsLock do while fProjActionsLock do
Application.ProcessMessages; Application.ProcessMessages;
if not fProject.compiled then if not fProj.compiled then
begin begin
fMsgs.message('group compilation has stopped because of a failure', fMsgs.message('group compilation has stopped because of a failure',
nil, amcAll, amkErr); nil, amcAll, amkErr);

View File

@ -51,7 +51,7 @@ type
fActOpenFile: TAction; fActOpenFile: TAction;
fActSelConf: TAction; fActSelConf: TAction;
fActBuildConf: TAction; fActBuildConf: TAction;
fProject: ICommonProject; fProj: ICommonProject;
fFileNode, fConfNode: TTreeNode; fFileNode, fConfNode: TTreeNode;
fLastFileOrFolder: string; fLastFileOrFolder: string;
fSymStringExpander: ISymStringExpander; fSymStringExpander: ISymStringExpander;
@ -238,10 +238,10 @@ end;
procedure TProjectInspectWidget.actBuildExecute(sender: TObject); procedure TProjectInspectWidget.actBuildExecute(sender: TObject);
begin begin
if fProject <> nil then if fProj <> nil then
begin begin
actOpenFileExecute(sender); actOpenFileExecute(sender);
fProject.compile; fProj.compile;
end; end;
end; end;
{$ENDREGION} {$ENDREGION}
@ -271,7 +271,7 @@ end;
procedure TProjectInspectWidget.projNew(project: ICommonProject); procedure TProjectInspectWidget.projNew(project: ICommonProject);
begin begin
fLastFileOrFolder := ''; fLastFileOrFolder := '';
fProject := project; fProj := project;
if Visible then if Visible then
updateImperative; updateImperative;
updateButtons; updateButtons;
@ -279,11 +279,11 @@ end;
procedure TProjectInspectWidget.projClosing(project: ICommonProject); procedure TProjectInspectWidget.projClosing(project: ICommonProject);
begin begin
if not assigned(fProject) then if not assigned(fProj) then
exit; exit;
if project <> fProject then if project <> fProj then
exit; exit;
fProject := nil; fProj := nil;
fLastFileOrFolder := ''; fLastFileOrFolder := '';
updateImperative; updateImperative;
end; end;
@ -291,7 +291,7 @@ end;
procedure TProjectInspectWidget.projFocused(project: ICommonProject); procedure TProjectInspectWidget.projFocused(project: ICommonProject);
begin begin
fLastFileOrFolder := ''; fLastFileOrFolder := '';
fProject := project; fProj := project;
TreeFilterEdit1.Text:= ''; TreeFilterEdit1.Text:= '';
DetectNewDubSources(nil); DetectNewDubSources(nil);
updateButtons; updateButtons;
@ -301,9 +301,9 @@ end;
procedure TProjectInspectWidget.projChanged(project: ICommonProject); procedure TProjectInspectWidget.projChanged(project: ICommonProject);
begin begin
if not assigned(fProject) then if not assigned(fProj) then
exit; exit;
if fProject <> project then if fProj <> project then
exit; exit;
if Visible then if Visible then
beginDelayedUpdate; beginDelayedUpdate;
@ -322,7 +322,7 @@ var
ce: boolean; ce: boolean;
sp: integer; sp: integer;
begin begin
ce := fProject.getFormat = pfDEXED; ce := fProj.getFormat = pfDEXED;
btnRemFold.Visible:= ce; btnRemFold.Visible:= ce;
btnAddFold.Visible:= ce; btnAddFold.Visible:= ce;
@ -386,10 +386,10 @@ end;
procedure TProjectInspectWidget.TreeSelectionChanged(Sender: TObject); procedure TProjectInspectWidget.TreeSelectionChanged(Sender: TObject);
begin begin
actUpdate(sender); actUpdate(sender);
if not assigned(fProject) or Tree.Selected.isNil then if not assigned(fProj) or Tree.Selected.isNil then
exit; exit;
if (Tree.Selected.Parent = fFileNode) then if (Tree.Selected.Parent = fFileNode) then
fLastFileOrFolder := expandFilenameEx(fProject.basePath,tree.Selected.Text) fLastFileOrFolder := expandFilenameEx(fProj.basePath,tree.Selected.Text)
else else
fLastFileOrFolder := tree.Selected.Text; fLastFileOrFolder := tree.Selected.Text;
end; end;
@ -399,7 +399,7 @@ var
fname: string; fname: string;
i: integer; i: integer;
begin begin
if not assigned(fProject) or Tree.Selected.isNil then if not assigned(fProj) or Tree.Selected.isNil then
exit; exit;
if Tree.Selected.Parent <> fConfNode then if Tree.Selected.Parent <> fConfNode then
@ -414,7 +414,7 @@ begin
else else
begin begin
i := Tree.Selected.Index; i := Tree.Selected.Index;
fProject.setActiveConfigurationIndex(i); fProj.setActiveConfigurationIndex(i);
beginDelayedUpdate; beginDelayedUpdate;
end; end;
end; end;
@ -434,14 +434,14 @@ end;
procedure TProjectInspectWidget.DetectNewDubSources(const document: TDexedMemo procedure TProjectInspectWidget.DetectNewDubSources(const document: TDexedMemo
); );
begin begin
if not assigned(fProject) or (fProject.getFormat <> pfDUB) then if not assigned(fProj) or (fProj.getFormat <> pfDUB) then
exit; exit;
if document.isNotNil then if document.isNotNil then
begin begin
if document.fileName.contains(fProject.basePath) then if document.fileName.contains(fProj.basePath) then
TDubProject(fProject.getProject).updateSourcesList; TDubProject(fProj.getProject).updateSourcesList;
end end
else TDubProject(fProject.getProject).updateSourcesList; else TDubProject(fProj.getProject).updateSourcesList;
//updateImperative; //updateImperative;
end; end;
@ -450,10 +450,10 @@ var
fname: string; fname: string;
proj: TNativeProject; proj: TNativeProject;
begin begin
if not assigned(fProject) or (fProject.getFormat = pfDUB) then if not assigned(fProj) or (fProj.getFormat = pfDUB) then
exit; exit;
proj := TNativeProject(fProject.getProject); proj := TNativeProject(fProj.getProject);
with TOpenDialog.Create(nil) do with TOpenDialog.Create(nil) do
try try
options := options + [ofAllowMultiSelect]; options := options + [ofAllowMultiSelect];
@ -481,17 +481,17 @@ var
proj: TNativeProject; proj: TNativeProject;
i: integer; i: integer;
begin begin
if not assigned(fProject) or (fProject.getFormat = pfDUB) then if not assigned(fProj) or (fProj.getFormat = pfDUB) then
exit; exit;
dir := ''; dir := '';
proj := TNativeProject(fProject.getProject); proj := TNativeProject(fProj.getProject);
if fLastFileOrFolder.fileExists then if fLastFileOrFolder.fileExists then
dir := fLastFileOrFolder.extractFilePath dir := fLastFileOrFolder.extractFilePath
else if fLastFileOrFolder.dirExists then else if fLastFileOrFolder.dirExists then
dir := fLastFileOrFolder dir := fLastFileOrFolder
else if fProject.fileName.fileExists then else if fProj.fileName.fileExists then
dir := fProject.fileName.extractFilePath; dir := fProj.fileName.extractFilePath;
if selectDirectory('sources', dir, dir, true, 0) then if selectDirectory('sources', dir, dir, true, 0) then
begin begin
proj.beginUpdate; proj.beginUpdate;
@ -517,16 +517,16 @@ var
proj: TNativeProject; proj: TNativeProject;
i: Integer; i: Integer;
begin begin
if not assigned(fProject) or (fProject.getFormat = pfDUB) if not assigned(fProj) or (fProj.getFormat = pfDUB)
or Tree.Selected.isNil or (Tree.Selected.Parent <> fFileNode) then or Tree.Selected.isNil or (Tree.Selected.Parent <> fFileNode) then
exit; exit;
proj := TNativeProject(fProject.getProject); proj := TNativeProject(fProj.getProject);
fname := Tree.Selected.Text; fname := Tree.Selected.Text;
i := proj.Sources.IndexOf(fname); i := proj.Sources.IndexOf(fname);
if i = -1 then if i = -1 then
exit; exit;
fname := fProject.sourceAbsolute(i); fname := fProj.sourceAbsolute(i);
dir := fname.extractFilePath; dir := fname.extractFilePath;
if not dir.dirExists then if not dir.dirExists then
exit; exit;
@ -547,15 +547,15 @@ procedure TProjectInspectWidget.btnReloadClick(Sender: TObject);
var var
f: string; f: string;
begin begin
if assigned(fProject) then if assigned(fProj) then
begin begin
f := fProject.filename; f := fProj.filename;
if not f.fileExists then if not f.fileExists then
exit; exit;
if fProject.modified and if fProj.modified and
(dlgYesNo('The project seems to be modified, save before reloading') = mrYes) then (dlgYesNo('The project seems to be modified, save before reloading') = mrYes) then
fProject.saveToFile(f); fProj.saveToFile(f);
fProject.loadFromFile(f); fProj.loadFromFile(f);
end; end;
end; end;
@ -565,11 +565,11 @@ var
proj: TNativeProject; proj: TNativeProject;
i, j: integer; i, j: integer;
begin begin
if not assigned(fProject) or (fProject.getFormat = pfDUB) if not assigned(fProj) or (fProj.getFormat = pfDUB)
or Tree.Selected.isNil or (Tree.Selected.Parent <> fFileNode) then or Tree.Selected.isNil or (Tree.Selected.Parent <> fFileNode) then
exit; exit;
proj := TNativeProject(fProject.getProject); proj := TNativeProject(fProj.getProject);
proj.beginUpdate; proj.beginUpdate;
for j:= 0 to Tree.SelectionCount-1 do for j:= 0 to Tree.SelectionCount-1 do
begin begin
@ -612,10 +612,10 @@ begin
getMultiDocHandler.openDocument(value); getMultiDocHandler.openDocument(value);
end; end;
begin begin
if not assigned(fProject) or (fProject.getFormat = pfDUB) then if not assigned(fProj) or (fProj.getFormat = pfDUB) then
exit; exit;
proj := TNativeProject(fProject.getProject); proj := TNativeProject(fProj.getProject);
lst := TStringList.Create; lst := TStringList.Create;
proj.beginUpdate; proj.beginUpdate;
try for fname in fnames do try for fname in fnames do
@ -659,26 +659,26 @@ begin
fConfNode.DeleteChildren; fConfNode.DeleteChildren;
fFileNode.DeleteChildren; fFileNode.DeleteChildren;
if not assigned(fProject) then if not assigned(fProj) then
exit; exit;
Tree.BeginUpdate; Tree.BeginUpdate;
if not fFileListAsTree then if not fFileListAsTree then
for i := 0 to fProject.sourcesCount-1 do for i := 0 to fProj.sourcesCount-1 do
begin begin
itm := Tree.Items.AddChild(fFileNode, fProject.sourceRelative(i)); itm := Tree.Items.AddChild(fFileNode, fProj.sourceRelative(i));
itm.Data:= NewStr(fProject.sourceAbsolute(i)); itm.Data:= NewStr(fProj.sourceAbsolute(i));
itm.ImageIndex := 2; itm.ImageIndex := 2;
itm.SelectedIndex := 2; itm.SelectedIndex := 2;
end end
else else
// first pass only creates the folders so that they're shown on top // first pass only creates the folders so that they're shown on top
for j := 0 to 1 do for j := 0 to 1 do
for i := 0 to fProject.sourcesCount-1 do for i := 0 to fProj.sourcesCount-1 do
begin begin
fld := ''; fld := '';
rng.init(fProject.sourceRelative(i)); rng.init(fProj.sourceRelative(i));
itm := fFileNode; itm := fFileNode;
while not rng.empty do while not rng.empty do
begin begin
@ -692,7 +692,7 @@ begin
// reached fname // reached fname
if rng.empty and (j = 1) then if rng.empty and (j = 1) then
begin begin
itm.Data:= NewStr(fProject.sourceAbsolute(i)); itm.Data:= NewStr(fProj.sourceAbsolute(i));
itm.ImageIndex := 2; itm.ImageIndex := 2;
itm.SelectedIndex := 2; itm.SelectedIndex := 2;
end end
@ -707,10 +707,10 @@ begin
end; end;
j := fProject.getActiveConfigurationIndex; j := fProj.getActiveConfigurationIndex;
for i := 0 to fProject.configurationCount-1 do for i := 0 to fProj.configurationCount-1 do
begin begin
conf := fProject.configurationName(i); conf := fProj.configurationName(i);
if i = j then if i = j then
conf += ' (active)'; conf += ' (active)';
itm := Tree.Items.AddChild(fConfNode, conf); itm := Tree.Items.AddChild(fConfNode, conf);