@@ -20,22 +20,25 @@ TC4DWizardIDEToolBarsBuild = class
2020 FINTAServices: INTAServices;
2121 FToolBarBuild: TToolBar;
2222 FToolButtonBuildAllGroup: TToolButton;
23+ FToolButtonCleanAndBuild: TToolButton;
2324 FToolButtonBuildInRelease: TToolButton;
2425 FToolButtonRefresh: TToolButton;
2526 FComboBox: TComboBox;
2627 procedure NewToolBarBuild ;
27- procedure OnC4DToolButtonBuildRefreshClick (Sender: TObject);
28- procedure OnC4DToolButtonBuildInReleaseClick (Sender: TObject);
2928 procedure RemoveToolBarBuild ;
30- procedure AddButtonRefreshBuild ;
31- procedure AddButtonBuildInRelease ;
3229 procedure AddComboBoxBuild ;
3330 procedure FillComboBoxBuild ;
3431 function GetReferenceToolBar : string;
3532 function GetIniFile : TIniFile;
3633 procedure ComboBoxClick (Sender: TObject);
3734 procedure AddButtonBuildAllGroup ;
3835 procedure OnC4DToolButtonBuildAllGroupClick (Sender: TObject);
36+ procedure AddButtonCleanAndBuild ;
37+ procedure OnC4DToolButtonCleanAndBuildClick (Sender: TObject);
38+ procedure AddButtonBuildInRelease ;
39+ procedure OnC4DToolButtonBuildInReleaseClick (Sender: TObject);
40+ procedure AddButtonRefreshBuild ;
41+ procedure OnC4DToolButtonBuildRefreshClick (Sender: TObject);
3942 protected
4043 constructor Create;
4144 public
@@ -149,6 +152,7 @@ procedure TC4DWizardIDEToolBarsBuild.NewToolBarBuild;
149152 FToolBarBuild.AutoSize := True;
150153
151154 Self.AddButtonBuildAllGroup;
155+ Self.AddButtonCleanAndBuild;
152156 Self.AddButtonBuildInRelease;
153157 Self.AddButtonRefreshBuild;
154158 Self.AddComboBoxBuild;
@@ -180,7 +184,7 @@ procedure TC4DWizardIDEToolBarsBuild.AddButtonBuildAllGroup;
180184
181185 FToolButtonBuildAllGroup := TToolButton.Create(FToolBarBuild);
182186 FToolButtonBuildAllGroup.Parent := FToolBarBuild;
183- FToolButtonBuildAllGroup.Caption := ' Build all group projects ' ;
187+ FToolButtonBuildAllGroup.Caption := TC4DConsts.TOOL_BAR_BUILD_TOOL_BUTTON_BuildAllGroup_CAPTION ;
184188 FToolButtonBuildAllGroup.Hint := FToolButtonBuildAllGroup.Caption;
185189 FToolButtonBuildAllGroup.ShowHint := True;
186190 FToolButtonBuildAllGroup.Name := TC4DConsts.TOOL_BAR_BUILD_TOOL_BUTTON_BuildAllGroup_NAME;
@@ -192,6 +196,26 @@ procedure TC4DWizardIDEToolBarsBuild.AddButtonBuildAllGroup;
192196 FToolButtonBuildAllGroup.AutoSize := True;
193197end ;
194198
199+ procedure TC4DWizardIDEToolBarsBuild.AddButtonCleanAndBuild ;
200+ begin
201+ FToolButtonCleanAndBuild := TToolButton(FToolBarBuild.FindComponent(TC4DConsts.TOOL_BAR_BUILD_TOOL_BUTTON_CleanAndBuild_NAME));
202+ if (FToolButtonCleanAndBuild <> nil )then
203+ FToolButtonCleanAndBuild.Free;
204+
205+ FToolButtonCleanAndBuild := TToolButton.Create(FToolBarBuild);
206+ FToolButtonCleanAndBuild.Parent := FToolBarBuild;
207+ FToolButtonCleanAndBuild.Caption := TC4DConsts.TOOL_BAR_BUILD_TOOL_BUTTON_CleanAndBuild_CAPTION;
208+ FToolButtonCleanAndBuild.Hint := FToolButtonCleanAndBuild.Caption;
209+ FToolButtonCleanAndBuild.ShowHint := True;
210+ FToolButtonCleanAndBuild.Name := TC4DConsts.TOOL_BAR_BUILD_TOOL_BUTTON_CleanAndBuild_NAME;
211+ FToolButtonCleanAndBuild.Style := tbsButton;
212+ FToolButtonCleanAndBuild.ImageIndex := TC4DWizardIDEImageListMain.GetInstance.ImgIndexCleanAndStart;
213+ FToolButtonCleanAndBuild.Visible := True;
214+ FToolButtonCleanAndBuild.Left := FToolButtonBuildAllGroup.Left + FToolButtonBuildAllGroup.Width;
215+ FToolButtonCleanAndBuild.OnClick := OnC4DToolButtonCleanAndBuildClick;
216+ FToolButtonCleanAndBuild.AutoSize := True;
217+ end ;
218+
195219procedure TC4DWizardIDEToolBarsBuild.AddButtonBuildInRelease ;
196220begin
197221 FToolButtonBuildInRelease := TToolButton(FToolBarBuild.FindComponent(TC4DConsts.TOOL_BAR_BUILD_TOOL_BUTTON_BuildInRelease_NAME));
@@ -200,14 +224,14 @@ procedure TC4DWizardIDEToolBarsBuild.AddButtonBuildInRelease;
200224
201225 FToolButtonBuildInRelease := TToolButton.Create(FToolBarBuild);
202226 FToolButtonBuildInRelease.Parent := FToolBarBuild;
203- FToolButtonBuildInRelease.Caption := ' Build Project In Release ' ;
227+ FToolButtonBuildInRelease.Caption := TC4DConsts.TOOL_BAR_BUILD_TOOL_BUTTON_BuildInRelease_CAPTION ;
204228 FToolButtonBuildInRelease.Hint := FToolButtonBuildInRelease.Caption;
205229 FToolButtonBuildInRelease.ShowHint := True;
206230 FToolButtonBuildInRelease.Name := TC4DConsts.TOOL_BAR_BUILD_TOOL_BUTTON_BuildInRelease_NAME;
207231 FToolButtonBuildInRelease.Style := tbsButton;
208232 FToolButtonBuildInRelease.ImageIndex := TC4DWizardIDEImageListMain.GetInstance.ImgIndexPlayBlue;
209233 FToolButtonBuildInRelease.Visible := True;
210- FToolButtonBuildInRelease.Left := FToolButtonBuildAllGroup .Left + FToolButtonBuildAllGroup .Width;
234+ FToolButtonBuildInRelease.Left := FToolButtonCleanAndBuild .Left + FToolButtonCleanAndBuild .Width;
211235 FToolButtonBuildInRelease.OnClick := OnC4DToolButtonBuildInReleaseClick;
212236 FToolButtonBuildInRelease.AutoSize := True;
213237end ;
@@ -220,7 +244,7 @@ procedure TC4DWizardIDEToolBarsBuild.AddButtonRefreshBuild;
220244
221245 FToolButtonRefresh := TToolButton.Create(FToolBarBuild);
222246 FToolButtonRefresh.Parent := FToolBarBuild;
223- FToolButtonRefresh.Caption := ' Get Current Build Configuration ' ;
247+ FToolButtonRefresh.Caption := TC4DConsts.TOOL_BAR_BUILD_TOOL_BUTTON_REFRESH_CAPTION ;
224248 FToolButtonRefresh.Hint := FToolButtonRefresh.Caption;
225249 FToolButtonRefresh.ShowHint := True;
226250 FToolButtonRefresh.Name := TC4DConsts.TOOL_BAR_BUILD_TOOL_BUTTON_REFRESH_NAME;
@@ -240,7 +264,7 @@ procedure TC4DWizardIDEToolBarsBuild.AddComboBoxBuild;
240264
241265 FComboBox := TComboBox.Create(FToolBarBuild);
242266 FComboBox.Parent := FToolBarBuild;
243- FComboBox.Hint := ' Alter Build Configuration ' ;
267+ FComboBox.Hint := TC4DConsts.TOOL_BAR_BUILD_COMBOBOX_HINT ;
244268 FComboBox.ShowHint := True;
245269 FComboBox.Name := TC4DConsts.TOOL_BAR_BUILD_COMBOBOX_NAME;
246270 FComboBox.Style := csDropDownList;
@@ -278,7 +302,7 @@ procedure TC4DWizardIDEToolBarsBuild.OnC4DToolButtonBuildAllGroupClick(Sender: T
278302begin
279303 LIOTAProjectGroup := (BorlandIDEServices as IOTAModuleServices).MainProjectGroup; // TC4DWizardUtilsOTA.GetCurrentProjectGroup
280304 if (LIOTAProjectGroup = nil )then
281- raise Exception.Create(' Nenhum grupo selecionado ' );
305+ raise Exception.Create(' No groups selected ' );
282306
283307 LClearMessages := True;
284308 for LContProjetos := 0 to Pred(LIOTAProjectGroup.ProjectCount)do
@@ -290,6 +314,31 @@ procedure TC4DWizardIDEToolBarsBuild.OnC4DToolButtonBuildAllGroupClick(Sender: T
290314 end ;
291315end ;
292316
317+ procedure TC4DWizardIDEToolBarsBuild.OnC4DToolButtonCleanAndBuildClick (Sender: TObject);
318+ var
319+ LIOTAProject: IOTAProject;
320+ LCurrentBinaryPath: string;
321+ begin
322+ LIOTAProject := TC4DWizardUtilsOTA.GetCurrentProject;
323+ if (LIOTAProject = nil )then
324+ Exit;
325+
326+ if (TC4DWizardUtils.FileNameIsC4DWizardDPROJ(LIOTAProject.FileName))then
327+ TC4DWizardUtils.ShowMsgAndAbort(' Cannot clean or build on project: ' + TC4DConsts.C4D_WIZARD_DPROJ);
328+
329+ LCurrentBinaryPath := TC4DWizardUtilsOTA.GetBinaryPathCurrent;
330+ if (FileExists(LCurrentBinaryPath))then
331+ if (TC4DWizardUtils.ProcessWindowsExists(ExtractFileName(LCurrentBinaryPath), LCurrentBinaryPath))then
332+ TC4DWizardUtils.ShowMsgAndAbort(' Operations not allowed, the application is already running.' );
333+
334+ if (not TC4DWizardUtilsOTA.CleanCurrentProject)then
335+ TC4DWizardUtils.ShowMsgAndAbort(' Unable to clean the project' );
336+
337+ LIOTAProject
338+ .ProjectBuilder
339+ .BuildProject(cmOTABuild, True, True);
340+ end ;
341+
293342procedure TC4DWizardIDEToolBarsBuild.OnC4DToolButtonBuildInReleaseClick (Sender: TObject);
294343var
295344 LIOTAProject: IOTAProject;
0 commit comments