add option to use runnable destination only when file is in project

This commit is contained in:
Basile Burg 2016-04-11 08:29:15 +02:00
parent dfc479617c
commit ac5fa27f88
1 changed files with 10 additions and 0 deletions

View File

@ -211,6 +211,7 @@ type
fRunnableDestination: string; fRunnableDestination: string;
fSymStringExpander: ICESymStringExpander; fSymStringExpander: ICESymStringExpander;
fCovModUt: boolean; fCovModUt: boolean;
fAlwaysUseDest: boolean;
fDoc: TCESynMemo; fDoc: TCESynMemo;
fFirstTimeCoedit: boolean; fFirstTimeCoedit: boolean;
fActionHandler: TCEActionProviderSubject; fActionHandler: TCEActionProviderSubject;
@ -396,6 +397,7 @@ type
fMaxRecentDocs: integer; fMaxRecentDocs: integer;
fDcdPort: word; fDcdPort: word;
fRunnableDest: TCEPathname; fRunnableDest: TCEPathname;
fAlwaysUseDest: boolean;
function getAdditionalPATH: string; function getAdditionalPATH: string;
procedure setAdditionalPATH(const value: string); procedure setAdditionalPATH(const value: string);
function getDubCompiler: TCECompiler; function getDubCompiler: TCECompiler;
@ -413,6 +415,7 @@ type
property dubCompiler: TCECompiler read getDubCompiler write setDubCompiler; property dubCompiler: TCECompiler read getDubCompiler write setDubCompiler;
property nativeProjecCompiler: TCECompiler read getNativeProjecCompiler write setNativeProjecCompiler; property nativeProjecCompiler: TCECompiler read getNativeProjecCompiler write setNativeProjecCompiler;
property runnableDestination: TCEPathname read fRunnableDest write setRunnableDestination; property runnableDestination: TCEPathname read fRunnableDest write setRunnableDestination;
property runnableDestinationAlways: boolean read fAlwaysUseDest write fAlwaysUseDest;
// published for ICEEditableOptions but stored by DCD wrapper since it reloads before CEMainForm // published for ICEEditableOptions but stored by DCD wrapper since it reloads before CEMainForm
property dcdPort: word read fDcdPort write fDcdPort stored false; property dcdPort: word read fDcdPort write fDcdPort stored false;
@ -519,6 +522,7 @@ begin
fDcdPort := DcdWrapper.port; fDcdPort := DcdWrapper.port;
fCovModUt:= CEMainForm.fCovModUt; fCovModUt:= CEMainForm.fCovModUt;
fRunnableDest := CEMainForm.fRunnableDestination; fRunnableDest := CEMainForm.fRunnableDestination;
fAlwaysUseDest := CEMainForm.fAlwaysUseDest;
end else if src = fBackup then end else if src = fBackup then
begin begin
fCovModUt:=fBackup.fCovModUt; fCovModUt:=fBackup.fCovModUt;
@ -528,6 +532,7 @@ begin
fReloadLastDocuments:=fBackup.fReloadLastDocuments; fReloadLastDocuments:=fBackup.fReloadLastDocuments;
fFloatingWidgetOnTop := fBackup.fFloatingWidgetOnTop; fFloatingWidgetOnTop := fBackup.fFloatingWidgetOnTop;
CEMainForm.fRunnableDestination := fBackup.fRunnableDest; CEMainForm.fRunnableDestination := fBackup.fRunnableDest;
CEmainForm.fAlwaysUseDest := fBackup.fAlwaysUseDest;
end end
else inherited; else inherited;
end; end;
@ -541,6 +546,7 @@ begin
CEMainForm.fFileMru.maxCount := fMaxRecentDocs; CEMainForm.fFileMru.maxCount := fMaxRecentDocs;
CEMainForm.updateFloatingWidgetOnTop(fFloatingWidgetOnTop); CEMainForm.updateFloatingWidgetOnTop(fFloatingWidgetOnTop);
CEMainForm.fRunnableDestination := fRunnableDest; CEMainForm.fRunnableDestination := fRunnableDest;
CEMainForm.fAlwaysUseDest := fAlwaysUseDest;
DcdWrapper.port:=fDcdPort; DcdWrapper.port:=fDcdPort;
end else if dst = fBackup then end else if dst = fBackup then
begin begin
@ -551,6 +557,7 @@ begin
fBackup.fDcdPort:=fDcdPort; fBackup.fDcdPort:=fDcdPort;
fBackup.fCovModUt:=fCovModUt; fBackup.fCovModUt:=fCovModUt;
fBackup.fRunnableDest:= fRunnableDest; fBackup.fRunnableDest:= fRunnableDest;
fBackup.fAlwaysUseDest := fAlwaysUseDest;
end end
else inherited; else inherited;
end; end;
@ -1878,6 +1885,9 @@ begin
exit; exit;
if fRunnableDestination.isNotEmpty then if fRunnableDestination.isNotEmpty then
begin begin
if not fAlwaysUseDest and assigned(fProjectInterface)
and not fProjectInterface.isSource(fDoc.fileName) then
exit;
if FilenameIsAbsolute(fRunnableDestination) then if FilenameIsAbsolute(fRunnableDestination) then
begin begin
if fRunnableDestination.dirExists then if fRunnableDestination.dirExists then