PoChecker:

- save and restore WindowaSate of individual forms.
- better anchoring of controls on PoCheckerMainForm
- removed some debugln statements

git-svn-id: trunk@46435 -
This commit is contained in:
bart 2014-10-05 10:52:49 +00:00
parent 3ebbc96fd0
commit 192f1c46b5
5 changed files with 58 additions and 25 deletions

View File

@ -95,6 +95,7 @@ begin
FOldHintHidePause := Application.HintHidePause;
Application.HintHidePause := 5000;
LoadConfig;
WindowState := Settings.GraphFormWindowState;
end;
procedure TGraphStatForm.ListViewMouseMove(Sender: TObject; Shift: TShiftState;
@ -164,7 +165,11 @@ procedure TGraphStatForm.SaveConfig;
begin
//debugln('TGraphStatForm.SaveConfig: BoundsRect = ',dbgs(BoundsRect));
if not Assigned(FSettings) then Exit;
Settings.GraphFormGeometry := BoundsRect;
Settings.GraphFormWindowState := WindowState;
if (WindowState = wsNormal) then
Settings.GraphFormGeometry := BoundsRect
else
Settings.GraphFormGeometry := Rect(RestoredLeft, RestoredTop, RestoredLeft + RestoredWidth, RestoredTop + RestoredHeight);
end;
procedure TGraphStatForm.FormCreate(Sender: TObject);

View File

@ -11,6 +11,7 @@ object PoCheckerForm: TPoCheckerForm
Constraints.MinWidth = 600
OnCreate = FormCreate
OnDestroy = FormDestroy
OnShow = FormShow
ShowInTaskBar = stAlways
LCLVersion = '1.3'
Visible = True
@ -18,10 +19,10 @@ object PoCheckerForm: TPoCheckerForm
AnchorSideLeft.Control = SelectTestLabel
AnchorSideTop.Control = SelectTestLabel
AnchorSideTop.Side = asrBottom
Left = 212
Left = 201
Height = 118
Top = 29
Width = 425
Width = 436
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
Enabled = False
@ -42,7 +43,7 @@ object PoCheckerForm: TPoCheckerForm
object SelectTestLabel: TLabel
AnchorSideLeft.Control = OpenBtn
AnchorSideLeft.Side = asrBottom
Left = 212
Left = 201
Height = 15
Top = 8
Width = 93
@ -53,16 +54,15 @@ object PoCheckerForm: TPoCheckerForm
ParentFont = False
end
object OpenBtn: TBitBtn
AnchorSideLeft.Control = RunBtn
AnchorSideLeft.Control = MasterPoListBox
AnchorSideTop.Control = TestListBox
AnchorSideRight.Control = RunBtn
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = ScanDirBtn
Left = 19
Left = 8
Height = 50
Top = 29
Width = 184
Anchors = [akTop]
BorderSpacing.Bottom = 10
Caption = '&Open a po-file'
Glyph.Data = {
@ -105,14 +105,14 @@ object PoCheckerForm: TPoCheckerForm
TabOrder = 1
end
object RunBtn: TBitBtn
AnchorSideLeft.Control = OpenBtn
AnchorSideTop.Control = ScanDirBtn
AnchorSideTop.Side = asrBottom
AnchorSideRight.Side = asrBottom
Left = 19
Left = 8
Height = 50
Top = 149
Width = 184
Anchors = [akTop]
BorderSpacing.Top = 5
Caption = '&Run Selected Tests'
Enabled = False
@ -137,7 +137,7 @@ object PoCheckerForm: TPoCheckerForm
AnchorSideLeft.Control = TestListBox
AnchorSideTop.Control = SelectBasicBtn
AnchorSideTop.Side = asrBottom
Left = 212
Left = 201
Height = 19
Top = 184
Width = 156
@ -149,7 +149,7 @@ object PoCheckerForm: TPoCheckerForm
AnchorSideLeft.Control = TestListBox
AnchorSideTop.Control = TestListBox
AnchorSideTop.Side = asrBottom
Left = 212
Left = 201
Height = 25
Top = 153
Width = 115
@ -163,7 +163,7 @@ object PoCheckerForm: TPoCheckerForm
AnchorSideLeft.Control = SelectBasicBtn
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = SelectBasicBtn
Left = 331
Left = 320
Height = 25
Top = 153
Width = 115
@ -177,7 +177,7 @@ object PoCheckerForm: TPoCheckerForm
AnchorSideLeft.Control = SelectAllBtn
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = SelectAllBtn
Left = 450
Left = 439
Height = 25
Top = 153
Width = 115
@ -191,7 +191,7 @@ object PoCheckerForm: TPoCheckerForm
AnchorSideLeft.Control = TestListBox
AnchorSideTop.Control = FindAllPOsCheckBox
AnchorSideTop.Side = asrBottom
Left = 212
Left = 201
Height = 19
Top = 209
Width = 152
@ -213,11 +213,10 @@ object PoCheckerForm: TPoCheckerForm
AnchorSideRight.Control = RunBtn
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = RunBtn
Left = 19
Left = 8
Height = 50
Top = 89
Width = 184
Anchors = [akTop]
BorderSpacing.Top = 5
BorderSpacing.Bottom = 10
Caption = 'Scan a folder'

View File

@ -53,6 +53,7 @@ type
procedure ChildPoListBoxSelectionChange(Sender: TObject; User: boolean);
procedure ClearChildBtnClick(Sender: TObject);
procedure ClearMasterBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure LangFilterChange(Sender: TObject);
procedure MasterPoListBoxDrawItem(Control: TWinControl; Index: Integer;
ARect: TRect; State: TOwnerDrawState);
@ -316,6 +317,11 @@ begin
SetSelectedPoName('');
end;
procedure TPoCheckerForm.FormShow(Sender: TObject);
begin
WindowState := FPoCheckerSettings.MainFormWindowState;
end;
procedure TPoCheckerForm.MasterPoListBoxDrawItem(Control: TWinControl;
Index: Integer; ARect: TRect; State: TOwnerDrawState);
var
@ -749,11 +755,6 @@ begin
ARect := FitToRect(ARect, Screen.WorkAreaRect);
BoundsRect := ARect;
end;
//DebugLn(' TestOptions after loading = ');
//DebugLn(' ',DbgS(FPoCheckerSettings.TestOptions));
//debugln(' TPoCheckerForm.FormCreate: TestTypes after loading = ');
//DebugLn(' ',DbgS(FPoCheckerSettings.TestTypes));
SetTestTypeCheckBoxes(FPoCheckerSettings.TestTypes);
SetTestOptionCheckBoxes(FPoCheckerSettings.TestOptions);
SelectDirectoryDialog.Filename := FPoCheckerSettings.SelectDirectoryFilename;
@ -780,7 +781,11 @@ begin
FPoCheckerSettings.OpenDialogFilename := OpenDialog.FileName;
FPoCheckerSettings.TestTypes := GetTestTypesFromListBox;
FPoCheckerSettings.TestOptions := GetTestOptions;
FPoCheckerSettings.MainFormGeometry := BoundsRect;
FPoCheckerSettings.MainFormWindowState := WindowState;
if (WindowState = wsNormal) then
FPoCheckerSettings.MainFormGeometry := BoundsRect
else
FPoCheckerSettings.MainFormGeometry := Rect(RestoredLeft, RestoredTop, RestoredLeft + RestoredWidth, RestoredTop + RestoredHeight);
FPoCheckerSettings.MasterPoList := MasterPoListBox.Items;
FPoCheckerSettings.ChildPoList := FChildPoList;
FPoCheckerSettings.SaveConfig;

View File

@ -5,9 +5,9 @@ unit PoCheckerSettings;
interface
uses
Classes, SysUtils, LazConfigStorage,
Classes, SysUtils, LazConfigStorage, Forms,
{$ifdef POCHECKERSTANDALONE}
PoCheckerXMLConfig, Forms,
PoCheckerXMLConfig,
{$else}
BaseIDEIntf,
{$endif}
@ -22,7 +22,10 @@ type
FConfig: TConfigStorage;
FExternalEditorName: String;
FFilename: String;
FGraphFormWindowState: TWindowState;
FMainFormWindowState: TWindowState;
FOpenDialogFilename: String;
FResultsFormWindowState: TWindowState;
FSelectDirectoryFilename: String;
FTestTypes: TPoTestTypes;
FTestOptions: TPoTestOptions;
@ -77,6 +80,9 @@ type
property MainFormGeometry: TRect read FMainFormGeometry write FMainFormGeometry;
property ResultsFormGeometry: TRect read FResultsFormGeometry write FResultsFormGeometry;
property GraphFormGeometry: TRect read FGraphFormGeometry write FGraphFormGeometry;
property MainFormWindowState: TWindowState read FMainFormWindowState write FMainFormWindowState;
property ResultsFormWindowState: TWindowState read FResultsFormWindowState write FResultsFormWindowState;
property GraphFormWindowState: TWindowState read FGraphFormWindowState write FGraphFormWindowState;
end;
function DbgS(PoTestTypes: TPoTestTypes): String; overload;
@ -273,10 +279,20 @@ begin
end;
procedure TPoCheckerSettings.LoadWindowsGeometry;
function IntToWindowState(WSInt: Integer): TWindowState;
begin
if (WSInt in [Ord(Low(TWindowState))..Ord(High(TWindowState))]) then
Result := TWindowState(WSInt)
else
Result := wsNormal;
end;
begin
FConfig.GetValue(pWindowsGeometry+'MainForm/Value',FMainFormGeometry,DefaultRect);
FMainFormWindowState := IntToWindowState(FConfig.GetValue(pWindowsGeometry+'MainForm/WindowState/Value', Ord(wsNormal)));
FConfig.GetValue(pWindowsGeometry+'ResultsForm/Value',FResultsFormGeometry,DefaultRect);
FResultsFormWindowState := IntToWindowState(FConfig.GetValue(pWindowsGeometry+'MainForm/WindowState/Value', Ord(wsNormal)));
FConfig.GetValue(pWindowsGeometry+'GraphForm/Value',FGraphFormGeometry,DefaultRect);
FGraphFormWindowState := IntToWindowState(FConfig.GetValue(pWindowsGeometry+'MainForm/WindowState/Value', Ord(wsNormal)));
end;
function TPoCheckerSettings.LoadExternalEditorName: String;
@ -365,8 +381,11 @@ end;
procedure TPoCheckerSettings.SaveWindowsGeometry;
begin
FConfig.SetDeleteValue(pWindowsGeometry+'MainForm/Value',FMainFormGeometry,DefaultRect);
FConfig.SetDeleteValue(pWindowsGeometry+'MainForm/WindowState/Value',Ord(FMainFormWindowState), Ord(wsNormal));
FConfig.SetDeleteValue(pWindowsGeometry+'ResultsForm/Value',FResultsFormGeometry,DefaultRect);
FConfig.SetDeleteValue(pWindowsGeometry+'ResultsForm/WindowState/Value',Ord(FResultsFormWindowState), Ord(wsNormal));
FConfig.SetDeleteValue(pWindowsGeometry+'GraphForm/Value',FGraphFormGeometry,DefaultRect);
FConfig.SetDeleteValue(pWindowsGeometry+'GraphForm/WindowState/Value',Ord(FGraphFormWindowState), Ord(wsNormal));
end;
procedure TPoCheckerSettings.SaveExternalEditorName;

View File

@ -96,6 +96,7 @@ begin
LogMemo.Lines.Assign(FLog);
GraphStatBtn.Visible := (PoFamilyStats <> nil) and (PoFamilyStats.Count > 0);
LoadConfig;
WindowState := Settings.ResultsFormWindowState;
end;
procedure TResultDlgForm.GraphStatBtnClick(Sender: TObject);
@ -155,7 +156,11 @@ procedure TResultDlgForm.SaveConfig;
begin
//debugln('TResultDlgForm.SaveConfig: BoundsRect = ',dbgs(BoundsRect));
if not Assigned(FSettings) then Exit;
Settings.ResultsFormGeometry := BoundsRect;
Settings.ResultsFormWindowState := WindowState;
if (WindowState = wsNormal) then
Settings.ResultsFormGeometry := BoundsRect
else
Settings.ResultsFormGeometry := Rect(RestoredLeft, RestoredTop, RestoredLeft + RestoredWidth, RestoredTop + RestoredHeight);
end;
end.