mirror of https://gitlab.com/basile.b/dexed.git
unify the field name used by the project observers to store the proj ref
This commit is contained in:
parent
8a519c1c49
commit
c98c996e7b
244
src/u_main.pas
244
src/u_main.pas
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue