prevent unsaved message when just config index is modified

This commit is contained in:
Basile Burg 2016-07-10 00:33:38 +02:00
parent 1a4240fe9e
commit 21f181aa10
1 changed files with 22 additions and 25 deletions

View File

@ -48,17 +48,17 @@ type
fCompiled: boolean; fCompiled: boolean;
fSymStringExpander: ICESymStringExpander; fSymStringExpander: ICESymStringExpander;
procedure updateOutFilename; procedure updateOutFilename;
procedure doChanged; procedure doChanged(modified: boolean = true);
procedure getBaseConfig; procedure getBaseConfig;
procedure setLibAliases(const value: TStringList); procedure setLibAliases(value: TStringList);
procedure subMemberChanged(sender : TObject); procedure subMemberChanged(sender : TObject);
procedure setOptsColl(const value: TCollection); procedure setOptsColl(value: TCollection);
procedure setRoot(const value: string); procedure setRoot(const value: string);
procedure setSrcs(const value: TStringList); procedure setSrcs(value: TStringList);
procedure setConfIx(value: Integer); procedure setConfIx(value: Integer);
function getConfig(const ix: integer): TCompilerConfiguration; function getConfig(value: integer): TCompilerConfiguration;
function getCurrConf: TCompilerConfiguration; function getCurrConf: TCompilerConfiguration;
function runPrePostProcess(const processInfo: TCompileProcOptions): Boolean; function runPrePostProcess(processInfo: TCompileProcOptions): Boolean;
// passes pre/post/executed project/ outputs as bubles. // passes pre/post/executed project/ outputs as bubles.
procedure runProcOutput(sender: TObject); procedure runProcOutput(sender: TObject);
// passes compilation message as "to be guessed" // passes compilation message as "to be guessed"
@ -82,7 +82,7 @@ type
constructor create(aOwner: TComponent); override; constructor create(aOwner: TComponent); override;
destructor destroy; override; destructor destroy; override;
procedure beginUpdate; procedure beginUpdate;
procedure endUpdate; procedure endUpdate(modified: boolean = true);
procedure reset; procedure reset;
procedure addDefaults; procedure addDefaults;
procedure addSource(const aFilename: string); procedure addSource(const aFilename: string);
@ -211,7 +211,7 @@ begin
result.onChanged := @subMemberChanged; result.onChanged := @subMemberChanged;
end; end;
procedure TCENativeProject.setOptsColl(const value: TCollection); procedure TCENativeProject.setOptsColl(value: TCollection);
var var
i: nativeInt; i: nativeInt;
begin begin
@ -273,14 +273,14 @@ begin
inherited customSaveToFile(aFilename); inherited customSaveToFile(aFilename);
end; end;
procedure TCENativeProject.setLibAliases(const value: TStringList); procedure TCENativeProject.setLibAliases(value: TStringList);
begin begin
beginUpdate; beginUpdate;
fLibAliases.Assign(value); fLibAliases.Assign(value);
endUpdate; endUpdate;
end; end;
procedure TCENativeProject.setSrcs(const value: TStringList); procedure TCENativeProject.setSrcs(value: TStringList);
begin begin
beginUpdate; beginUpdate;
fSrcs.Assign(value); fSrcs.Assign(value);
@ -291,10 +291,12 @@ end;
procedure TCENativeProject.setConfIx(value: Integer); procedure TCENativeProject.setConfIx(value: Integer);
begin begin
beginUpdate; beginUpdate;
if value < 0 then value := 0; if value < 0 then
if value > fConfigs.Count-1 then value := fConfigs.Count-1; value := 0;
if value > fConfigs.Count-1 then
value := fConfigs.Count-1;
fConfIx := value; fConfIx := value;
endUpdate; endUpdate(false);
end; end;
procedure TCENativeProject.getBaseConfig; procedure TCENativeProject.getBaseConfig;
@ -326,23 +328,18 @@ begin
Inc(fUpdateCount); Inc(fUpdateCount);
end; end;
procedure TCENativeProject.endUpdate; procedure TCENativeProject.endUpdate(modified: boolean = true);
begin begin
Dec(fUpdateCount); Dec(fUpdateCount);
if fUpdateCount > 0 then if fUpdateCount > 0 then
begin
{$IFDEF DEBUG}
DebugLn('project update count > 0');
{$ENDIF}
exit; exit;
end;
fUpdateCount := 0; fUpdateCount := 0;
doChanged; doChanged(modified);
end; end;
procedure TCENativeProject.doChanged; procedure TCENativeProject.doChanged(modified: boolean = true);
begin begin
fModified := true; fModified := modified;
updateOutFilename; updateOutFilename;
getBaseConfig; getBaseConfig;
subjProjChanged(fProjectSubject, self); subjProjChanged(fProjectSubject, self);
@ -350,9 +347,9 @@ begin
fOnChange(Self); fOnChange(Self);
end; end;
function TCENativeProject.getConfig(const ix: integer): TCompilerConfiguration; function TCENativeProject.getConfig(value: integer): TCompilerConfiguration;
begin begin
result := TCompilerConfiguration(fConfigs.Items[ix]); result := TCompilerConfiguration(fConfigs.Items[value]);
result.onChanged := @subMemberChanged; result.onChanged := @subMemberChanged;
end; end;
@ -668,7 +665,7 @@ begin
fCanBeRun := fOutputFilename.fileExists; fCanBeRun := fOutputFilename.fileExists;
end; end;
function TCENativeProject.runPrePostProcess(const processInfo: TCompileProcOptions): Boolean; function TCENativeProject.runPrePostProcess(processInfo: TCompileProcOptions): Boolean;
var var
lst: TStringList; lst: TStringList;
com: boolean; com: boolean;