On 10.09.2015 11:03, Mattias Gaertner wrote:
The "most users" argument is seldom good. There are basically two groups of users. Those who want a fresh IDE when starting and those who want to continue where they stopped working. I don't think we need another option. Keep it simple and stupid and change "Open last project on start" to "Open last project and packages at start". When project groups arrive this option will probably become "Open last project, groups and packages at start."

I removed the extra settings as you suggested. I decided not to rename the variable/check box. I only changed the caption. See patch. If you think the OpenLastProjectAtStart variable should be renamed as well, I am sure you can do it easily.

Ondrej
Index: ide/environmentopts.pp
===================================================================
--- ide/environmentopts.pp      (revision 49804)
+++ ide/environmentopts.pp      (working copy)
@@ -475,7 +475,6 @@
     FRecentPackageFiles: TStringList;
     FMaxRecentPackageFiles: integer;
     FOpenLastProjectAtStart: boolean;
-    FOpenPackagesAtStart: boolean;
     // Prevent repopulating Recent project files menu with example projects if 
it was already cleared up.
     FAlreadyPopulatedRecentFiles : Boolean;
 
@@ -729,8 +728,6 @@
     property LastOpenPackages: TLastOpenPackagesList read FLastOpenPackages;
     property OpenLastProjectAtStart: boolean read FOpenLastProjectAtStart
                                              write FOpenLastProjectAtStart;
-    property OpenPackagesAtStart: boolean read FOpenPackagesAtStart
-                                             write FOpenPackagesAtStart;
     property FileDialogFilter: string read FFileDialogFilter write 
FFileDialogFilter;
 
     // backup
@@ -1311,7 +1308,6 @@
   FRecentPackageFiles:=TStringList.Create;
   FMaxRecentPackageFiles:=DefaultMaxRecentPackageFiles;
   FOpenLastProjectAtStart:=true;
-  FOpenPackagesAtStart:=true;
 
   // backup
   with FBackupInfoProjectFiles do begin
@@ -1616,12 +1612,11 @@
     
FAutoSaveIntervalInSecs:=FXMLCfg.GetValue(Path+'AutoSave/IntervalInSecs',600);
     
FLastSavedProjectFile:=FXMLCfg.GetValue(Path+'AutoSave/LastSavedProjectFile','');
     
FOpenLastProjectAtStart:=FXMLCfg.GetValue(Path+'AutoSave/OpenLastProjectAtStart',true);
-    
FOpenPackagesAtStart:=FXMLCfg.GetValue(Path+'AutoSave/OpenPackagesAtStart',true);
     FShowCompileDialog:=FXMLCfg.GetValue(Path+'ShowCompileDialog/Value',false);
     
FAutoCloseCompileDialog:=FXMLCfg.GetValue(Path+'AutoCloseCompileDialog/Value',false);
     
FAutoSaveActiveDesktop:=FXMLCfg.GetValue(Path+'AutoSave/ActiveDesktop',True);
     FLastOpenPackages.Clear;
-    if FOpenPackagesAtStart then
+    if FOpenLastProjectAtStart then
     begin
       i := 1;
       repeat
@@ -1946,9 +1941,8 @@
     
FXMLCfg.SetDeleteValue(Path+'AutoSave/IntervalInSecs',FAutoSaveIntervalInSecs,600);
     
FXMLCfg.SetDeleteValue(Path+'AutoSave/LastSavedProjectFile',FLastSavedProjectFile,'');
     
FXMLCfg.SetDeleteValue(Path+'AutoSave/OpenLastProjectAtStart',FOpenLastProjectAtStart,true);
-    
FXMLCfg.SetDeleteValue(Path+'AutoSave/OpenPackagesAtStart',FOpenPackagesAtStart,true);
     FXMLCfg.SetDeleteValue(Path+'AutoSave/ActiveDesktop', 
FAutoSaveActiveDesktop, True);
-    if FOpenPackagesAtStart and (FLastOpenPackages.Count > 0) then
+    if FOpenLastProjectAtStart and (FLastOpenPackages.Count > 0) then
     begin
       for i := 0 to FLastOpenPackages.Count-1 do
         
FXMLCfg.SetValue(Path+'AutoSave/LastOpenPackages/Package'+IntToStr(i+1), 
FLastOpenPackages[i]);
Index: ide/frames/files_options.lfm
===================================================================
--- ide/frames/files_options.lfm        (revision 49804)
+++ ide/frames/files_options.lfm        (working copy)
@@ -43,17 +43,16 @@
     Width = 195
     BorderSpacing.Top = 6
     Caption = 'OpenLastProjectAtStartCheckBox'
-    OnChange = OpenLastProjectAtStartCheckBoxChange
     TabOrder = 0
   end
   object ShowCompileDialogCheckBox: TCheckBox
     AnchorSideLeft.Control = Owner
-    AnchorSideTop.Control = OpenPackagesAtStartCheckBox
+    AnchorSideTop.Control = OpenLastProjectAtStartCheckBox
     AnchorSideTop.Side = asrBottom
     AnchorSideRight.Side = asrBottom
     Left = 2
     Height = 19
-    Top = 88
+    Top = 69
     Width = 180
     BorderSpacing.Top = 2
     Caption = 'ShowCompileDialogCheckBox'
@@ -66,7 +65,7 @@
     AnchorSideTop.Side = asrBottom
     Left = 2
     Height = 15
-    Top = 136
+    Top = 117
     Width = 82
     BorderSpacing.Top = 10
     Caption = 'LazarusDirLabel'
@@ -81,7 +80,7 @@
     AnchorSideBottom.Side = asrBottom
     Left = 542
     Height = 23
-    Top = 151
+    Top = 132
     Width = 25
     Anchors = [akTop, akRight, akBottom]
     Caption = '...'
@@ -95,7 +94,7 @@
     AnchorSideRight.Control = LazarusDirButton
     Left = 2
     Height = 23
-    Top = 151
+    Top = 132
     Width = 540
     Anchors = [akTop, akLeft, akRight]
     ItemHeight = 15
@@ -109,7 +108,7 @@
     AnchorSideRight.Control = CompilerPathButton
     Left = 2
     Height = 23
-    Top = 195
+    Top = 176
     Width = 540
     Anchors = [akTop, akLeft, akRight]
     ItemHeight = 15
@@ -124,7 +123,7 @@
     AnchorSideBottom.Side = asrBottom
     Left = 542
     Height = 23
-    Top = 195
+    Top = 176
     Width = 25
     Anchors = [akTop, akRight, akBottom]
     Caption = '...'
@@ -137,7 +136,7 @@
     AnchorSideTop.Side = asrBottom
     Left = 2
     Height = 15
-    Top = 180
+    Top = 161
     Width = 101
     BorderSpacing.Top = 6
     Caption = 'CompilerPathLabel'
@@ -150,7 +149,7 @@
     AnchorSideRight.Control = FPCSourceDirButton
     Left = 2
     Height = 23
-    Top = 239
+    Top = 220
     Width = 540
     Anchors = [akTop, akLeft, akRight]
     ItemHeight = 15
@@ -165,7 +164,7 @@
     AnchorSideBottom.Side = asrBottom
     Left = 542
     Height = 23
-    Top = 239
+    Top = 220
     Width = 25
     Anchors = [akTop, akRight, akBottom]
     Caption = '...'
@@ -178,7 +177,7 @@
     AnchorSideTop.Side = asrBottom
     Left = 2
     Height = 15
-    Top = 224
+    Top = 205
     Width = 100
     BorderSpacing.Top = 6
     Caption = 'FPCSourceDirLabel'
@@ -190,7 +189,7 @@
     AnchorSideTop.Side = asrBottom
     Left = 2
     Height = 15
-    Top = 268
+    Top = 249
     Width = 81
     BorderSpacing.Top = 6
     Caption = 'MakePathLabel'
@@ -202,7 +201,7 @@
     AnchorSideTop.Side = asrBottom
     Left = 2
     Height = 15
-    Top = 312
+    Top = 293
     Width = 91
     BorderSpacing.Top = 6
     Caption = 'TestBuildDirLabel'
@@ -215,7 +214,7 @@
     AnchorSideRight.Control = MakePathButton
     Left = 2
     Height = 23
-    Top = 283
+    Top = 264
     Width = 540
     Anchors = [akTop, akLeft, akRight]
     ItemHeight = 15
@@ -230,7 +229,7 @@
     AnchorSideBottom.Side = asrBottom
     Left = 542
     Height = 23
-    Top = 283
+    Top = 264
     Width = 25
     Anchors = [akTop, akRight, akBottom]
     Caption = '...'
@@ -244,7 +243,7 @@
     AnchorSideRight.Control = TestBuildDirButton
     Left = 2
     Height = 23
-    Top = 327
+    Top = 308
     Width = 540
     Anchors = [akTop, akLeft, akRight]
     ItemHeight = 15
@@ -259,7 +258,7 @@
     AnchorSideBottom.Side = asrBottom
     Left = 542
     Height = 23
-    Top = 327
+    Top = 308
     Width = 25
     Anchors = [akTop, akRight, akBottom]
     Caption = '...'
@@ -273,7 +272,7 @@
     AnchorSideRight.Side = asrBottom
     Left = 32
     Height = 19
-    Top = 107
+    Top = 88
     Width = 206
     BorderSpacing.Left = 30
     Caption = 'AutoCloseCompileDialogCheckBox'
@@ -285,7 +284,7 @@
     AnchorSideTop.Side = asrBottom
     Left = 2
     Height = 15
-    Top = 356
+    Top = 337
     Width = 153
     Alignment = taRightJustify
     BorderSpacing.Top = 6
@@ -302,7 +301,7 @@
     AnchorSideBottom.Side = asrBottom
     Left = 542
     Height = 23
-    Top = 371
+    Top = 352
     Width = 25
     Anchors = [akTop, akRight, akBottom]
     Caption = '...'
@@ -318,7 +317,7 @@
     AnchorSideRight.Control = CompilerTranslationFileButton
     Left = 2
     Height = 23
-    Top = 371
+    Top = 352
     Width = 540
     Anchors = [akTop, akLeft, akRight]
     ItemHeight = 15
@@ -366,17 +365,4 @@
     BorderSpacing.Around = 2
     TabOrder = 16
   end
-  object OpenPackagesAtStartCheckBox: TCheckBox
-    AnchorSideLeft.Control = OpenLastProjectAtStartCheckBox
-    AnchorSideTop.Control = OpenLastProjectAtStartCheckBox
-    AnchorSideTop.Side = asrBottom
-    AnchorSideRight.Side = asrBottom
-    Left = 32
-    Height = 19
-    Top = 67
-    Width = 186
-    BorderSpacing.Left = 30
-    Caption = 'OpenPackagesAtStartCheckBox'
-    TabOrder = 17
-  end
 end
Index: ide/frames/files_options.pas
===================================================================
--- ide/frames/files_options.pas        (revision 49804)
+++ ide/frames/files_options.pas        (working copy)
@@ -61,7 +61,6 @@
     MaxRecentProjectFilesSpin: TSpinEdit;
     MaxRecentProjectFilesLabel: TLabel;
     OpenLastProjectAtStartCheckBox: TCheckBox;
-    OpenPackagesAtStartCheckBox: TCheckBox;
     ShowCompileDialogCheckBox: TCheckBox;
     TestBuildDirButton:TButton;
     TestBuildDirComboBox:TComboBox;
@@ -69,7 +68,6 @@
     procedure CompilerTranslationFileButtonClick(Sender:TObject);
     procedure FilesButtonClick(Sender: TObject);
     procedure DirectoriesButtonClick(Sender: TObject);
-    procedure OpenLastProjectAtStartCheckBoxChange(Sender: TObject);
     procedure ShowCompileDialogCheckBoxChange(Sender: TObject);
   private
     FOldLazarusDir: string;
@@ -222,7 +220,6 @@
   MaxRecentOpenFilesLabel.Caption:=dlgMaxRecentFiles;
   MaxRecentProjectFilesLabel.Caption:=dlgMaxRecentProjs;
   OpenLastProjectAtStartCheckBox.Caption:=dlgQOpenLastPrj;
-  OpenPackagesAtStartCheckBox.Caption:=dlgQOpenPackages;
   ShowCompileDialogCheckBox.Visible:=false;
   AutoCloseCompileDialogCheckBox.Visible:=false;
   LazarusDirLabel.Caption:=dlgLazarusDir;
@@ -275,12 +272,6 @@
   Result := dlgEnvFiles;
 end;
 
-procedure TFilesOptionsFrame.OpenLastProjectAtStartCheckBoxChange(
-  Sender: TObject);
-begin
-  OpenPackagesAtStartCheckBox.Enabled := 
OpenLastProjectAtStartCheckBox.Checked;
-end;
-
 function TFilesOptionsFrame.Check: Boolean;
 begin
   Result := False;
@@ -369,7 +360,6 @@
 
     // open last project at start
     OpenLastProjectAtStartCheckBox.Checked:=OpenLastProjectAtStart;
-    OpenPackagesAtStartCheckBox.Checked:=OpenPackagesAtStart;
 
     // compile dialog
     fOldShowCompileDialog:=ShowCompileDialog;
@@ -401,7 +391,6 @@
     MaxRecentOpenFiles := MaxRecentOpenFilesSpin.Value;
     MaxRecentProjectFiles := MaxRecentProjectFilesSpin.Value;
     OpenLastProjectAtStart:=OpenLastProjectAtStartCheckBox.Checked;
-    OpenPackagesAtStart:=OpenPackagesAtStartCheckBox.Checked;
     ShowCompileDialog := ShowCompileDialogCheckBox.Checked;
     AutoCloseCompileDialog := AutoCloseCompileDialogCheckBox.Checked;
   end;
Index: ide/lazarusidestrconsts.pas
===================================================================
--- ide/lazarusidestrconsts.pas (revision 49804)
+++ ide/lazarusidestrconsts.pas (working copy)
@@ -1338,8 +1338,7 @@
   dlgEnvOtherFiles = 'Other Files';
   dlgMaxRecentFiles = 'Max recent files';
   dlgMaxRecentProjs = 'Max recent project files';
-  dlgQOpenLastPrj = 'Open last project at start';
-  dlgQOpenPackages = 'Open packages';
+  dlgQOpenLastPrj = 'Open last project and packages at start';
   dlgLazarusDir = 'Lazarus directory (default for all projects)';
   dlgFpcExecutable = 'Compiler executable (e.g. %s)';
   dlgFpcSrcPath = 'FPC source directory';
Index: ide/main.pp
===================================================================
--- ide/main.pp (revision 49804)
+++ ide/main.pp (working copy)
@@ -2221,21 +2221,18 @@
         IDEProtocolOpts.Save;
         if ProjectLoaded then
         begin
-          if EnvironmentOptions.OpenPackagesAtStart then
+          PkgOpenFlags:=[pofAddToRecent];
+          for I := 0 to EnvironmentOptions.LastOpenPackages.Count-1 do
           begin
-            PkgOpenFlags:=[pofAddToRecent];
-            for I := 0 to EnvironmentOptions.LastOpenPackages.Count-1 do
-            begin
-              AFilename:=EnvironmentOptions.LastOpenPackages[I];
-              if AFilename='' then
-                continue;
-              if i<EnvironmentOptions.LastOpenPackages.Count-1 then
-                Include(PkgOpenFlags,pofMultiOpen)
-              else
-                Exclude(PkgOpenFlags,pofMultiOpen);
-              if 
PkgBoss.DoOpenPackageFile(AFilename,PkgOpenFlags,true)=mrAbort then begin
-                break;
-              end;
+            AFilename:=EnvironmentOptions.LastOpenPackages[I];
+            if AFilename='' then
+              continue;
+            if i<EnvironmentOptions.LastOpenPackages.Count-1 then
+              Include(PkgOpenFlags,pofMultiOpen)
+            else
+              Exclude(PkgOpenFlags,pofMultiOpen);
+            if PkgBoss.DoOpenPackageFile(AFilename,PkgOpenFlags,true)=mrAbort 
then begin
+              break;
             end;
           end;
         end else
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to