diff --git a/ide/buildprojectdlg.lfm b/ide/buildprojectdlg.lfm index d4a5c45f8d..39b3b9db90 100644 --- a/ide/buildprojectdlg.lfm +++ b/ide/buildprojectdlg.lfm @@ -1,22 +1,22 @@ object CleanBuildProjectDialog: TCleanBuildProjectDialog Left = 275 - Height = 492 + Height = 545 Top = 250 Width = 537 BorderIcons = [biSystemMenu, biMaximize] Caption = 'CleanBuildProjectDialog' - ClientHeight = 492 + ClientHeight = 545 ClientWidth = 537 OnClose = FormClose OnCreate = FormCreate OnDestroy = FormDestroy OnResize = FormResize Position = poScreenCenter - LCLVersion = '1.5' + LCLVersion = '1.7' object ButtonPanel1: TButtonPanel Left = 6 - Height = 37 - Top = 449 + Height = 36 + Top = 503 Width = 525 OKButton.Name = 'OKButton' OKButton.DefaultCaption = True @@ -36,9 +36,9 @@ object CleanBuildProjectDialog: TCleanBuildProjectDialog AnchorSideTop.Control = ProjOutMaskComboBox AnchorSideTop.Side = asrCenter Left = 10 - Height = 24 - Top = 12 - Width = 145 + Height = 21 + Top = 15 + Width = 137 BorderSpacing.Left = 10 Caption = 'ProjOutCheckBox' Checked = True @@ -51,9 +51,9 @@ object CleanBuildProjectDialog: TCleanBuildProjectDialog AnchorSideTop.Control = ProjSrcMaskComboBox AnchorSideTop.Side = asrCenter Left = 10 - Height = 24 - Top = 47 - Width = 141 + Height = 21 + Top = 49 + Width = 133 Caption = 'ProjSrcCheckBox' Checked = True OnChange = ProjSrcCheckBoxChange @@ -65,9 +65,9 @@ object CleanBuildProjectDialog: TCleanBuildProjectDialog AnchorSideTop.Control = PkgOutMaskComboBox AnchorSideTop.Side = asrCenter Left = 10 - Height = 24 - Top = 82 - Width = 142 + Height = 21 + Top = 83 + Width = 134 Caption = 'PkgOutCheckBox' Checked = True OnChange = PkgOutCheckBoxChange @@ -79,9 +79,9 @@ object CleanBuildProjectDialog: TCleanBuildProjectDialog AnchorSideTop.Control = PkgSrcMaskComboBox AnchorSideTop.Side = asrCenter Left = 10 - Height = 24 + Height = 21 Top = 117 - Width = 138 + Width = 130 Caption = 'PkgSrcCheckBox' Checked = True OnChange = PkgSrcCheckBoxChange @@ -93,13 +93,13 @@ object CleanBuildProjectDialog: TCleanBuildProjectDialog AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 232 - Height = 29 + Height = 31 Top = 10 Width = 299 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 10 BorderSpacing.Right = 6 - ItemHeight = 0 + ItemHeight = 23 OnChange = ProjOutMaskComboBoxChange TabOrder = 4 Text = 'ProjOutMaskComboBox' @@ -111,12 +111,12 @@ object CleanBuildProjectDialog: TCleanBuildProjectDialog AnchorSideRight.Control = ProjOutMaskComboBox AnchorSideRight.Side = asrBottom Left = 232 - Height = 29 - Top = 45 + Height = 31 + Top = 44 Width = 299 Anchors = [akTop, akLeft, akRight] - BorderSpacing.Top = 6 - ItemHeight = 0 + BorderSpacing.Top = 3 + ItemHeight = 23 OnChange = ProjOutMaskComboBoxChange TabOrder = 5 Text = 'ProjSrcMaskComboBox' @@ -128,12 +128,12 @@ object CleanBuildProjectDialog: TCleanBuildProjectDialog AnchorSideRight.Control = ProjOutMaskComboBox AnchorSideRight.Side = asrBottom Left = 232 - Height = 29 - Top = 80 + Height = 31 + Top = 78 Width = 299 Anchors = [akTop, akLeft, akRight] - BorderSpacing.Top = 6 - ItemHeight = 0 + BorderSpacing.Top = 3 + ItemHeight = 23 OnChange = ProjOutMaskComboBoxChange TabOrder = 6 Text = 'PkgOutMaskComboBox' @@ -145,12 +145,12 @@ object CleanBuildProjectDialog: TCleanBuildProjectDialog AnchorSideRight.Control = ProjOutMaskComboBox AnchorSideRight.Side = asrBottom Left = 232 - Height = 29 - Top = 115 + Height = 31 + Top = 112 Width = 299 Anchors = [akTop, akLeft, akRight] - BorderSpacing.Top = 6 - ItemHeight = 0 + BorderSpacing.Top = 3 + ItemHeight = 23 OnChange = ProjOutMaskComboBoxChange TabOrder = 7 Text = 'PkgSrcMaskComboBox' @@ -159,10 +159,10 @@ object CleanBuildProjectDialog: TCleanBuildProjectDialog AnchorSideRight.Control = ProjOutMaskComboBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = ButtonPanel1 - Left = 429 - Height = 29 - Top = 414 - Width = 102 + Left = 438 + Height = 27 + Top = 470 + Width = 93 Anchors = [akRight, akBottom] AutoSize = True BorderSpacing.Top = 6 @@ -179,8 +179,8 @@ object CleanBuildProjectDialog: TCleanBuildProjectDialog AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = DeleteButton Left = 10 - Height = 235 - Top = 173 + Height = 292 + Top = 172 Width = 521 Anchors = [akTop, akLeft, akRight, akBottom] ReadOnly = True @@ -194,8 +194,8 @@ object CleanBuildProjectDialog: TCleanBuildProjectDialog AnchorSideTop.Side = asrBottom Left = 10 Height = 17 - Top = 150 - Width = 90 + Top = 149 + Width = 79 BorderSpacing.Top = 6 BorderSpacing.Bottom = 6 Caption = 'PreviewLabel' diff --git a/ide/buildprojectdlg.pas b/ide/buildprojectdlg.pas index d93d679fd0..c43e484319 100644 --- a/ide/buildprojectdlg.pas +++ b/ide/buildprojectdlg.pas @@ -37,7 +37,7 @@ uses IDEDialogs, IDEImagesIntf, PackageIntf, // IDE PackageDefs, PackageSystem, InputHistory, LazarusIDEStrConsts, Project, - IDEProcs; + EnvironmentOpts, IDEProcs; type TBuildProjectDialogItem = class @@ -160,6 +160,11 @@ procedure TCleanBuildProjectDialog.FormClose(Sender: TObject; end; begin + EnvironmentOptions.CleanBuildProjOut:=ProjOutCheckBox.Checked; + EnvironmentOptions.CleanBuildProjSrc:=ProjSrcCheckBox.Checked; + EnvironmentOptions.CleanBuildPkgOut :=PkgOutCheckBox.Checked; + EnvironmentOptions.CleanBuildPkgSrc :=PkgSrcCheckBox.Checked; + FProject.CleanOutputFileMask:=ProjOutMaskComboBox.Text; FProject.CleanSourcesFileMask:=ProjSrcMaskComboBox.Text; InputHistories.CleanOutputFileMask:=PkgOutMaskComboBox.Text; @@ -588,6 +593,11 @@ begin PkgSrcMaskComboBox.Items.Assign(List); PkgSrcMaskComboBox.Text:=InputHistories.CleanSourcesFileMask; + ProjOutCheckBox.Checked:=EnvironmentOptions.CleanBuildProjOut; + ProjSrcCheckBox.Checked:=EnvironmentOptions.CleanBuildProjSrc; + PkgOutCheckBox.Checked :=EnvironmentOptions.CleanBuildPkgOut; + PkgSrcCheckBox.Checked :=EnvironmentOptions.CleanBuildPkgSrc; + if AProject.CompilerOptions.UnitOutputDirectory='' then begin ProjOutCheckBox.Enabled:=false; ProjOutCheckBox.Checked:=false; diff --git a/ide/environmentopts.pp b/ide/environmentopts.pp index d28fece39a..7fdaa8d09f 100644 --- a/ide/environmentopts.pp +++ b/ide/environmentopts.pp @@ -481,6 +481,12 @@ type FUseBuildModes: Boolean; FIsGlobalMode: TStrToBoolEvent; + // Clean build project dialog + FCleanBuildProjOut: Boolean; + FCleanBuildProjSrc: Boolean; + FCleanBuildPkgOut: Boolean; + FCleanBuildPkgSrc: Boolean; + // Primary-config verification FLastCalledByLazarusFullPath: String; @@ -730,6 +736,12 @@ type property BuildMatrixOptions: TBuildMatrixOptions read FBuildMatrixOptions; property UseBuildModes: Boolean read FUseBuildModes write FUseBuildModes; + // Clean build project dialog + property CleanBuildProjOut: Boolean read FCleanBuildProjOut write FCleanBuildProjOut; + property CleanBuildProjSrc: Boolean read FCleanBuildProjSrc write FCleanBuildProjSrc; + property CleanBuildPkgOut: Boolean read FCleanBuildPkgOut write FCleanBuildPkgOut; + property CleanBuildPkgSrc: Boolean read FCleanBuildPkgSrc write FCleanBuildPkgSrc; + // Debugger procedure SaveDebuggerPropertiesList; procedure SaveDebuggerProperties(DebuggerClass: String; Properties: TDebuggerProperties); @@ -1616,6 +1628,12 @@ begin FConfigStore.UndoAppendBasePath; FUseBuildModes:=FXMLCfg.GetValue(Path+'Build/UseBuildModes',false); + // Clean build project dialog + FCleanBuildProjOut:=FXMLCfg.GetValue(Path+'CleanBuild/ProjOut',true); + FCleanBuildProjSrc:=FXMLCfg.GetValue(Path+'CleanBuild/ProjSrc',true); + FCleanBuildPkgOut:=FXMLCfg.GetValue(Path+'CleanBuild/PkgOut',true); + FCleanBuildPkgSrc:=FXMLCfg.GetValue(Path+'CleanBuild/PkgSrc',true); + // backup LoadBackupInfo(FBackupInfoProjectFiles,Path+'BackupProjectFiles/',DefaultBackupTypeProject); LoadBackupInfo(FBackupInfoOtherFiles,Path+'BackupOtherFiles/',DefaultBackupTypeOther); @@ -1984,6 +2002,12 @@ begin FConfigStore.UndoAppendBasePath; FXMLCfg.SetDeleteValue(Path+'Build/UseBuildModes',FUseBuildModes,false); + // Clean build project dialog + FXMLCfg.SetDeleteValue(Path+'CleanBuild/ProjOut',FCleanBuildProjOut,true); + FXMLCfg.SetDeleteValue(Path+'CleanBuild/ProjSrc',FCleanBuildProjSrc,true); + FXMLCfg.SetDeleteValue(Path+'CleanBuild/PkgOut',FCleanBuildPkgOut,true); + FXMLCfg.SetDeleteValue(Path+'CleanBuild/PkgSrc',FCleanBuildPkgSrc,true); + // backup SaveBackupInfo(FBackupInfoProjectFiles,Path+'BackupProjectFiles/',DefaultBackupTypeProject); SaveBackupInfo(FBackupInfoOtherFiles,Path+'BackupOtherFiles/',DefaultBackupTypeOther); diff --git a/ide/lazarusidestrconsts.pas b/ide/lazarusidestrconsts.pas index 3451aab9cf..bb082ee451 100644 --- a/ide/lazarusidestrconsts.pas +++ b/ide/lazarusidestrconsts.pas @@ -5999,6 +5999,8 @@ resourcestring lisCleanUpAndBuildProject = 'Clean up and build project'; lisBuildFollowingModes = 'Build the following modes'; lisSelectedModesWereBuilt = 'Selected %d modes were successfully built.'; + + // Clean Build Project Dialog lisProjectOutputDirectory = 'Project output directory'; lisProjectSourceDirectories = 'Project source directories'; lisPackageOutputDirectories = 'Package output directories'; @@ -6007,6 +6009,7 @@ resourcestring lisCleanUpAndBuild = 'Clean up and build'; lisCBPFiles = '%s (%s files)'; lisCBPReallyDeleteSourceFiles = 'Really delete %s source files%s%s'; + lisChangesWereNotSaved = 'Changes were not saved'; lisDoYouStillWantToOpenAnotherProject = 'Do you still want to open another project?'; lisDiscardChangesAndOpenProject = 'Discard changes and open project';