From 9369efb9de9df706f23c0db0beb521a19c55c15f Mon Sep 17 00:00:00 2001 From: Gustavo Carreno Date: Tue, 2 Feb 2021 00:02:51 +0000 Subject: [PATCH] feat: Persistence of window size/sate saved - JSON Prop Storage with Top, Left, Width, Height and WindowState - Need to enquire about both PairSplitter.Pos Closes: #8 --- src/application/ljv.application.version.pas | 6 +++--- src/forms/ljv.forms.main.lfm | 8 ++++++++ src/forms/ljv.forms.main.pas | 20 +++++++++++++++++++- src/lazJSONViewer.lpi | 4 ++-- src/lazJSONViewer.res | Bin 139748 -> 139748 bytes 5 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/application/ljv.application.version.pas b/src/application/ljv.application.version.pas index b75cd7d..8bc5bac 100644 --- a/src/application/ljv.application.version.pas +++ b/src/application/ljv.application.version.pas @@ -5,11 +5,11 @@ interface const - cVersion = '0.1.4.26'; + cVersion = '0.1.5.27'; cVersionMajor = 0; cVersionMinor = 1; - cVersionRevision = 4; - cVersionBuild = 26; + cVersionRevision = 5; + cVersionBuild = 27; implementation diff --git a/src/forms/ljv.forms.main.lfm b/src/forms/ljv.forms.main.lfm index 5282627..d4ff68e 100644 --- a/src/forms/ljv.forms.main.lfm +++ b/src/forms/ljv.forms.main.lfm @@ -8,6 +8,7 @@ object frmMain: TfrmMain ClientWidth = 1017 OnCreate = FormCreate OnDestroy = FormDestroy + SessionProperties = 'Top;Left;Height;Width;WindowState' object psMain: TPairSplitter Cursor = crDefault Left = 224 @@ -118,4 +119,11 @@ object frmMain: TfrmMain Top = 0 Width = 5 end + object JSONPropStorage: TJSONPropStorage + StoredValues = <> + Formatted = False + Active = False + Left = 768 + Top = 400 + end end diff --git a/src/forms/ljv.forms.main.pas b/src/forms/ljv.forms.main.pas index 0c64afb..4c0b2d4 100644 --- a/src/forms/ljv.forms.main.pas +++ b/src/forms/ljv.forms.main.pas @@ -35,7 +35,7 @@ interface , Dialogs , ExtCtrls , StdCtrls -, PairSplitter +, PairSplitter, JSONPropStorage , fpjson , VirtualTrees ; @@ -45,6 +45,7 @@ interface { TfrmMain } TfrmMain = class(TForm) + JSONPropStorage: TJSONPropStorage; lblCount: TLabel; lblName: TLabel; lblType: TLabel; @@ -70,6 +71,9 @@ TfrmMain = class(TForm) function FormatBytes(ABytes: Int64): String; + procedure SetupPropStorage; + procedure ShutdownPropStorage; + procedure ClearLabels; procedure CorrectPSCursor; procedure ProcessParams; @@ -150,6 +154,7 @@ implementation procedure TfrmMain.FormCreate(Sender: TObject); begin + SetupPropStorage; Caption:= Format(rsFormCaption, [cVersion]); ClearLabels; CorrectPSCursor; @@ -171,6 +176,7 @@ procedure TfrmMain.FormDestroy(Sender: TObject); begin FJSON.Free; end; + ShutdownPropStorage; end; procedure TfrmMain.lbFilesSelectionChange(Sender: TObject; User: boolean); @@ -493,6 +499,18 @@ function TfrmMain.FormatBytes(ABytes: Int64): String; end; end; +procedure TfrmMain.SetupPropStorage; +begin + JSONPropStorage.JSONFileName:= GetAppConfigFile(False); + JSONPropStorage.RootObjectPath:= 'Application'; + JSONPropStorage.Active:= True; +end; + +procedure TfrmMain.ShutdownPropStorage; +begin + JSONPropStorage.Active:= False; +end; + procedure TfrmMain.CorrectPSCursor; begin psMain.Cursor:= crHSplit; diff --git a/src/lazJSONViewer.lpi b/src/lazJSONViewer.lpi index 822a577..fc4ad9d 100644 --- a/src/lazJSONViewer.lpi +++ b/src/lazJSONViewer.lpi @@ -23,8 +23,8 @@ - - + + diff --git a/src/lazJSONViewer.res b/src/lazJSONViewer.res index d85f2444a4a7d2ec3cc2576826169934f3a6ba73..f6476383cdef2aa673d89ee2b57f538cd3244b82 100644 GIT binary patch delta 38 ucmaEInB&P|jtwR3%+d_3lgrt^vYRsKF&HtJHy3lX7jrOfFXmt>lmr0${tHC_ delta 38 ucmaEInB&P|jtwR3%u)<2lgrt^vYRmIF&HtJH5YTV7jrOfFXmt>lmr0$rVBv;