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