diff --git a/src/application/ljv.application.version.pas b/src/application/ljv.application.version.pas index a318b2e..fa5ca75 100644 --- a/src/application/ljv.application.version.pas +++ b/src/application/ljv.application.version.pas @@ -27,11 +27,11 @@ interface const - cVersion = '0.1.5.27'; + cVersion = '0.1.6.28'; cVersionMajor = 0; cVersionMinor = 1; - cVersionRevision = 5; - cVersionBuild = 27; + cVersionRevision = 6; + cVersionBuild = 28; implementation diff --git a/src/forms/ljv.forms.main.lfm b/src/forms/ljv.forms.main.lfm index d4ff68e..2c7d826 100644 --- a/src/forms/ljv.forms.main.lfm +++ b/src/forms/ljv.forms.main.lfm @@ -2,19 +2,21 @@ object frmMain: TfrmMain Left = 338 Height = 563 Top = 250 - Width = 1017 + Width = 1021 + AllowDropFiles = True Caption = 'frmMain' ClientHeight = 563 - ClientWidth = 1017 + ClientWidth = 1021 OnCreate = FormCreate OnDestroy = FormDestroy + OnDropFiles = FormDropFiles SessionProperties = 'Top;Left;Height;Width;WindowState' object psMain: TPairSplitter Cursor = crDefault Left = 224 Height = 563 Top = 0 - Width = 793 + Width = 797 Align = alClient Position = 400 object pssTree: TPairSplitterSide @@ -51,17 +53,17 @@ object frmMain: TfrmMain Left = 405 Height = 563 Top = 0 - Width = 388 - ClientWidth = 388 + Width = 392 + ClientWidth = 392 ClientHeight = 563 object panItem: TPanel Left = 0 Height = 80 Top = 0 - Width = 388 + Width = 392 Align = alTop ClientHeight = 80 - ClientWidth = 388 + ClientWidth = 392 TabOrder = 0 object lblType: TLabel Left = 8 @@ -90,13 +92,20 @@ object frmMain: TfrmMain end object panValue: TPanel Left = 0 - Height = 475 - Top = 88 - Width = 388 - Align = alBottom + Height = 451 + Top = 112 + Width = 392 Anchors = [akTop, akLeft, akRight, akBottom] TabOrder = 1 end + object lblValue: TLabel + Left = 0 + Height = 17 + Top = 88 + Width = 54 + Caption = 'lblValue' + ParentColor = False + end end end object lbFiles: TListBox @@ -123,7 +132,7 @@ object frmMain: TfrmMain StoredValues = <> Formatted = False Active = False - Left = 768 - Top = 400 + Left = 80 + Top = 464 end end diff --git a/src/forms/ljv.forms.main.lrj b/src/forms/ljv.forms.main.lrj index 0c881a7..7ce1f46 100644 --- a/src/forms/ljv.forms.main.lrj +++ b/src/forms/ljv.forms.main.lrj @@ -2,5 +2,6 @@ {"hash":227686302,"name":"tfrmmain.caption","sourcebytes":[102,114,109,77,97,105,110],"value":"frmMain"}, {"hash":43106325,"name":"tfrmmain.lbltype.caption","sourcebytes":[108,98,108,84,121,112,101],"value":"lblType"}, {"hash":43075653,"name":"tfrmmain.lblname.caption","sourcebytes":[108,98,108,78,97,109,101],"value":"lblName"}, -{"hash":151678324,"name":"tfrmmain.lblcount.caption","sourcebytes":[108,98,108,67,111,117,110,116],"value":"lblCount"} +{"hash":151678324,"name":"tfrmmain.lblcount.caption","sourcebytes":[108,98,108,67,111,117,110,116],"value":"lblCount"}, +{"hash":152863893,"name":"tfrmmain.lblvalue.caption","sourcebytes":[108,98,108,86,97,108,117,101],"value":"lblValue"} ]} diff --git a/src/forms/ljv.forms.main.pas b/src/forms/ljv.forms.main.pas index 4c0b2d4..2a06444 100644 --- a/src/forms/ljv.forms.main.pas +++ b/src/forms/ljv.forms.main.pas @@ -45,6 +45,8 @@ interface { TfrmMain } TfrmMain = class(TForm) + lblValue: TLabel; + panValue: TPanel; JSONPropStorage: TJSONPropStorage; lblCount: TLabel; lblName: TLabel; @@ -55,10 +57,10 @@ TfrmMain = class(TForm) pssNode: TPairSplitterSide; Splitter1: TSplitter; vstJSON: TVirtualStringTree; - panValue: TPanel; panItem: TPanel; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); + procedure FormDropFiles(Sender: TObject; const FileNames: array of string); procedure lbFilesSelectionChange(Sender: TObject; User: boolean); procedure vstJSONChange(Sender: TBaseVirtualTree; Node: PVirtualNode); procedure vstJSONGetNodeDataSize(Sender: TBaseVirtualTree; @@ -69,6 +71,8 @@ TfrmMain = class(TForm) FJSON: TJSONData; FFileList: Array of String; + procedure AddFile(const AFilename: String); + procedure ClearTree; function FormatBytes(ABytes: Int64): String; procedure SetupPropStorage; @@ -119,6 +123,7 @@ implementation rsLabelCountObject = 'Members: %d'; rsLabelCountNA = 'N/A'; + rsCaptionValue = 'Value'; rsLabelFormated = 'Formated'; rsLabelBinary = 'Binary'; rsLabelHexadecimal = 'Hexadecimal'; @@ -156,6 +161,7 @@ procedure TfrmMain.FormCreate(Sender: TObject); begin SetupPropStorage; Caption:= Format(rsFormCaption, [cVersion]); + lblValue.Caption:= rsCaptionValue; ClearLabels; CorrectPSCursor; ProcessParams; @@ -179,6 +185,20 @@ procedure TfrmMain.FormDestroy(Sender: TObject); ShutdownPropStorage; end; +procedure TfrmMain.FormDropFiles(Sender: TObject; + const FileNames: array of string); +var + filename: String; +begin + for filename in FileNames do + begin + AddFile(filename); + end; + UpdateFileList; + ClearTree; + ClearLabels; +end; + procedure TfrmMain.lbFilesSelectionChange(Sender: TObject; User: boolean); var index: Integer; @@ -499,8 +519,41 @@ function TfrmMain.FormatBytes(ABytes: Int64): String; end; end; +procedure TfrmMain.AddFile(const AFilename: String); +var + len: Integer; +begin + if Pos('*', AFilename) > 0 then + begin + // Get all files + end + else + begin + if FileExists(AFilename) then + begin + len:= Length(FFileList); + SetLength(FFileList, len + 1); + FFileList[len]:= AFilename; + end; + end; +end; + +procedure TfrmMain.ClearTree; +begin + if vstJSON.RootNodeCount > 0 then + begin + vstJSON.BeginUpdate; + vstJSON.Clear; + vstJSON.EndUpdate; + end; +end; + procedure TfrmMain.SetupPropStorage; begin + if not DirectoryExists(GetAppConfigDir(False)) then + begin + CreateDir(GetAppConfigDir(False)); + end; JSONPropStorage.JSONFileName:= GetAppConfigFile(False); JSONPropStorage.RootObjectPath:= 'Application'; JSONPropStorage.Active:= True; @@ -528,7 +581,6 @@ procedure TfrmMain.ClearLabels; procedure TfrmMain.ProcessParams; var index: Integer; - len: Integer; params: Integer; param: String; begin @@ -536,19 +588,7 @@ procedure TfrmMain.ProcessParams; for index:= 1 to params do begin param:=ParamStr(index); - if Pos('*', param) > 0 then - begin - // Get all files - end - else - begin - if FileExists(param) then - begin - len:= Length(FFileList); - SetLength(FFileList, len + 1); - FFileList[len]:= param; - end; - end; + AddFile(param); end; end; @@ -556,6 +596,10 @@ procedure TfrmMain.UpdateFileList; var filename: String; begin + if lbFiles.Count > 0 then + begin + lbFiles.Clear; + end; for filename in FFileList do begin lbFiles.Items.Add(ExtractFileName(filename)); diff --git a/src/i18n/lazJSONViewer.pot b/src/i18n/lazJSONViewer.pot index 6b74823..9a87365 100644 --- a/src/i18n/lazJSONViewer.pot +++ b/src/i18n/lazJSONViewer.pot @@ -14,6 +14,10 @@ msgstr "" msgid " B" msgstr "" +#: ljv.forms.main.rscaptionvalue +msgid "Value" +msgstr "" + #: ljv.forms.main.rsformcaption #, object-pascal-format msgid "JSON Viewer v%s" @@ -171,3 +175,7 @@ msgstr "" msgid "lblType" msgstr "" +#: tfrmmain.lblvalue.caption +msgid "lblValue" +msgstr "" + diff --git a/src/i18n/lazJSONViewer.pt.po b/src/i18n/lazJSONViewer.pt.po index 1928843..4cac2d8 100644 --- a/src/i18n/lazJSONViewer.pt.po +++ b/src/i18n/lazJSONViewer.pt.po @@ -15,6 +15,10 @@ msgstr "" msgid " B" msgstr " B" +#: ljv.forms.main.rscaptionvalue +msgid "Value" +msgstr "Valor" + #: ljv.forms.main.rsformcaption #, object-pascal-format msgid "JSON Viewer v%s" @@ -172,3 +176,7 @@ msgstr "lblName" msgid "lblType" msgstr "lblType" +#: tfrmmain.lblvalue.caption +msgid "lblValue" +msgstr "" + diff --git a/src/i18n/lazJSONViewer.pt_PT.po b/src/i18n/lazJSONViewer.pt_PT.po index 7361907..75ffdaa 100644 --- a/src/i18n/lazJSONViewer.pt_PT.po +++ b/src/i18n/lazJSONViewer.pt_PT.po @@ -15,6 +15,10 @@ msgstr "" msgid " B" msgstr " B" +#: ljv.forms.main.rscaptionvalue +msgid "Value" +msgstr "Valor" + #: ljv.forms.main.rsformcaption #, object-pascal-format msgid "JSON Viewer v%s" @@ -172,3 +176,7 @@ msgstr "lblName" msgid "lblType" msgstr "lblType" +#: tfrmmain.lblvalue.caption +msgid "lblValue" +msgstr "" + diff --git a/src/lazJSONViewer.lpi b/src/lazJSONViewer.lpi index fc4ad9d..3b17179 100644 --- a/src/lazJSONViewer.lpi +++ b/src/lazJSONViewer.lpi @@ -23,8 +23,8 @@ - - + + @@ -170,10 +170,12 @@ + +