more for #10, modification system

+ fix switches passed to DUB
This commit is contained in:
Basile Burg 2015-09-17 06:48:08 +02:00
parent c19c1c20d0
commit c667795cc3
1 changed files with 27 additions and 2 deletions

View File

@ -25,7 +25,9 @@ type
fConfigIx: integer; fConfigIx: integer;
fBinKind: TProjectBinaryKind; fBinKind: TProjectBinaryKind;
fBasePath: string; fBasePath: string;
fModificationCount: integer;
// //
procedure doModified;
procedure updateFields; procedure updateFields;
procedure updatePackageNameFromJson; procedure updatePackageNameFromJson;
procedure udpateConfigsFromJson; procedure udpateConfigsFromJson;
@ -38,6 +40,9 @@ type
constructor create(aOwner: TComponent); override; constructor create(aOwner: TComponent); override;
destructor destroy; override; destructor destroy; override;
// //
procedure beginModification;
procedure endModification;
//
function filename: string; function filename: string;
function basePath: string; function basePath: string;
procedure loadFromFile(const aFilename: string); procedure loadFromFile(const aFilename: string);
@ -295,9 +300,9 @@ begin
dubproc.CurrentDirectory := extractFilePath(fFilename); dubproc.CurrentDirectory := extractFilePath(fFilename);
dubproc.ShowWindow := swoHIDE; dubproc.ShowWindow := swoHIDE;
if fBuiltTypeIx <> 0 then if fBuiltTypeIx <> 0 then
dubproc.Parameters.Add('build=' + fBuildTypes.Strings[fBuiltTypeIx]); dubproc.Parameters.Add('--build=' + fBuildTypes.Strings[fBuiltTypeIx]);
if fConfigIx <> 0 then if fConfigIx <> 0 then
dubproc.Parameters.Add('config=' + fConfigs.Strings[fConfigIx]); dubproc.Parameters.Add('--config=' + fConfigs.Strings[fConfigIx]);
dubproc.Execute; dubproc.Execute;
while dubproc.Running do while dubproc.Running do
dubProcOutput(dubproc); dubProcOutput(dubproc);
@ -524,6 +529,26 @@ begin
updateSourcesFromJson; updateSourcesFromJson;
updateTargetKindFromJson; updateTargetKindFromJson;
end; end;
procedure TCEDubProject.beginModification;
begin
fModificationCount += 1;
end;
procedure TCEDubProject.endModification;
begin
fModificationCount -=1;
if fModificationCount <= 0 then
doModified;
end;
procedure TCEDubProject.doModified;
begin
fModificationCount := 0;
fModified:=true;
updateFields;
subjProjChanged(fProjectSubject, self as ICECommonProject);
end;
{$ENDREGION} {$ENDREGION}
function isValidDubProject(const filename: string): boolean; function isValidDubProject(const filename: string): boolean;