From c667795cc332b1d7419cee10d460bded452d28f2 Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Thu, 17 Sep 2015 06:48:08 +0200 Subject: [PATCH] more for #10, modification system + fix switches passed to DUB --- src/ce_dubproject.pas | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/ce_dubproject.pas b/src/ce_dubproject.pas index de92547a..10d5058e 100644 --- a/src/ce_dubproject.pas +++ b/src/ce_dubproject.pas @@ -25,7 +25,9 @@ type fConfigIx: integer; fBinKind: TProjectBinaryKind; fBasePath: string; + fModificationCount: integer; // + procedure doModified; procedure updateFields; procedure updatePackageNameFromJson; procedure udpateConfigsFromJson; @@ -38,6 +40,9 @@ type constructor create(aOwner: TComponent); override; destructor destroy; override; // + procedure beginModification; + procedure endModification; + // function filename: string; function basePath: string; procedure loadFromFile(const aFilename: string); @@ -295,9 +300,9 @@ begin dubproc.CurrentDirectory := extractFilePath(fFilename); dubproc.ShowWindow := swoHIDE; if fBuiltTypeIx <> 0 then - dubproc.Parameters.Add('build=' + fBuildTypes.Strings[fBuiltTypeIx]); + dubproc.Parameters.Add('--build=' + fBuildTypes.Strings[fBuiltTypeIx]); if fConfigIx <> 0 then - dubproc.Parameters.Add('config=' + fConfigs.Strings[fConfigIx]); + dubproc.Parameters.Add('--config=' + fConfigs.Strings[fConfigIx]); dubproc.Execute; while dubproc.Running do dubProcOutput(dubproc); @@ -524,6 +529,26 @@ begin updateSourcesFromJson; updateTargetKindFromJson; 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} function isValidDubProject(const filename: string): boolean;