IDE: Make the checkboxes in Clean Build Dialog persistent. Issue #29810.

git-svn-id: trunk@51924 -
This commit is contained in:
juha 2016-03-11 22:59:58 +00:00
parent 2feaa60235
commit 4a3707c89c
4 changed files with 76 additions and 39 deletions

View File

@ -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'

View File

@ -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;

View File

@ -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);

View File

@ -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';