diff --git a/applications/json_packager/deploywin/json_packager.iss b/applications/json_packager/deploywin/json_packager.iss index c0aefd54a..0c3851e94 100644 --- a/applications/json_packager/deploywin/json_packager.iss +++ b/applications/json_packager/deploywin/json_packager.iss @@ -1,6 +1,6 @@ [Setup] AppName=External OPM JSON package Editor -AppVersion=0.2.5.0 +AppVersion=0.2.6.0 DefaultDirName={pf}\OPMUtilities DefaultGroupName=OPM UninstallDisplayIcon={app}\jsoneditor.exe diff --git a/applications/json_packager/deploywin/locale/jsoneditor.en.po b/applications/json_packager/deploywin/locale/jsoneditor.en.po index 502d4dc32..8b0514e38 100644 --- a/applications/json_packager/deploywin/locale/jsoneditor.en.po +++ b/applications/json_packager/deploywin/locale/jsoneditor.en.po @@ -144,6 +144,10 @@ msgstr "&Help" msgid "About.." msgstr "About.." +#: tfrmmain.mnu_helpautoloadlastfile.caption +msgid "Auto-load last saved file" +msgstr "" + #: tfrmmain.mnu_helpdisablewarnings.caption msgid "Disable warnings" msgstr "Disable warnings" diff --git a/applications/json_packager/deploywin/locale/jsoneditor.es.po b/applications/json_packager/deploywin/locale/jsoneditor.es.po index 9ff512124..c424a72d1 100644 --- a/applications/json_packager/deploywin/locale/jsoneditor.es.po +++ b/applications/json_packager/deploywin/locale/jsoneditor.es.po @@ -145,6 +145,10 @@ msgstr "&Ayuda" msgid "About.." msgstr "Acerca de.." +#: tfrmmain.mnu_helpautoloadlastfile.caption +msgid "Auto-load last saved file" +msgstr "Carga automática último archivo guardado" + #: tfrmmain.mnu_helpdisablewarnings.caption msgid "Disable warnings" msgstr "Deshabilitar advertencias" @@ -376,4 +380,3 @@ msgstr "¿Quieres copiar %s a la carpeta %s?" #: umain.rsyoumayneedto msgid "(You may need to restart the app to see the change)" msgstr "(Quizás necesites reiniciar la aplicación para ver los cambios)" - diff --git a/applications/json_packager/jsonpackage.lpi b/applications/json_packager/jsonpackage.lpi index 9e84862b8..cefc29554 100644 --- a/applications/json_packager/jsonpackage.lpi +++ b/applications/json_packager/jsonpackage.lpi @@ -28,8 +28,7 @@ - - + diff --git a/applications/json_packager/jsonpackage.lps b/applications/json_packager/jsonpackage.lps index dcbe310e3..8440695d1 100644 --- a/applications/json_packager/jsonpackage.lps +++ b/applications/json_packager/jsonpackage.lps @@ -3,14 +3,14 @@ - - + + - + - + @@ -20,8 +20,8 @@ - - + + @@ -29,11 +29,11 @@ - + - - - + + + @@ -41,7 +41,7 @@ - + @@ -49,7 +49,7 @@ - + @@ -155,9 +155,9 @@ - - - + + + @@ -352,20 +352,32 @@ - + - - + - + + + + + + + + + + + + + + @@ -373,123 +385,123 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/applications/json_packager/jsonpackage.res b/applications/json_packager/jsonpackage.res index 44ddf3942..d7b4fdeee 100644 Binary files a/applications/json_packager/jsonpackage.res and b/applications/json_packager/jsonpackage.res differ diff --git a/applications/json_packager/locale/jsoneditor.en.po b/applications/json_packager/locale/jsoneditor.en.po index 502d4dc32..8b0514e38 100644 --- a/applications/json_packager/locale/jsoneditor.en.po +++ b/applications/json_packager/locale/jsoneditor.en.po @@ -144,6 +144,10 @@ msgstr "&Help" msgid "About.." msgstr "About.." +#: tfrmmain.mnu_helpautoloadlastfile.caption +msgid "Auto-load last saved file" +msgstr "" + #: tfrmmain.mnu_helpdisablewarnings.caption msgid "Disable warnings" msgstr "Disable warnings" diff --git a/applications/json_packager/locale/jsoneditor.es.mo b/applications/json_packager/locale/jsoneditor.es.mo index 6e6fa8518..eafbd7ce3 100644 Binary files a/applications/json_packager/locale/jsoneditor.es.mo and b/applications/json_packager/locale/jsoneditor.es.mo differ diff --git a/applications/json_packager/locale/jsoneditor.es.po b/applications/json_packager/locale/jsoneditor.es.po index 9ff512124..c424a72d1 100644 --- a/applications/json_packager/locale/jsoneditor.es.po +++ b/applications/json_packager/locale/jsoneditor.es.po @@ -145,6 +145,10 @@ msgstr "&Ayuda" msgid "About.." msgstr "Acerca de.." +#: tfrmmain.mnu_helpautoloadlastfile.caption +msgid "Auto-load last saved file" +msgstr "Carga automática último archivo guardado" + #: tfrmmain.mnu_helpdisablewarnings.caption msgid "Disable warnings" msgstr "Deshabilitar advertencias" @@ -376,4 +380,3 @@ msgstr "¿Quieres copiar %s a la carpeta %s?" #: umain.rsyoumayneedto msgid "(You may need to restart the app to see the change)" msgstr "(Quizás necesites reiniciar la aplicación para ver los cambios)" - diff --git a/applications/json_packager/locale/jsoneditor.po b/applications/json_packager/locale/jsoneditor.po index 68b86b3ff..927cc26f8 100644 --- a/applications/json_packager/locale/jsoneditor.po +++ b/applications/json_packager/locale/jsoneditor.po @@ -133,6 +133,10 @@ msgstr "" msgid "About.." msgstr "" +#: tfrmmain.mnu_helpautoloadlastfile.caption +msgid "Auto-load last saved file" +msgstr "" + #: tfrmmain.mnu_helpdisablewarnings.caption msgid "Disable warnings" msgstr "" diff --git a/applications/json_packager/umain.lfm b/applications/json_packager/umain.lfm index 9a665587f..e3d362da1 100644 --- a/applications/json_packager/umain.lfm +++ b/applications/json_packager/umain.lfm @@ -1,7 +1,7 @@ object frmMain: TfrmMain - Left = 450 + Left = 930 Height = 398 - Top = 207 + Top = 221 Width = 618 Anchors = [] BorderIcons = [biSystemMenu] @@ -250,6 +250,11 @@ object frmMain: TfrmMain Caption = 'Disable warnings' OnClick = mnu_helpDisableWarningsClick end + object mnu_helpAutoloadLastFile: TMenuItem + AutoCheck = True + Caption = 'Auto-load last saved file' + OnClick = mnu_helpAutoloadLastFileClick + end object mnu_lang: TMenuItem Caption = 'Languages..' object mnu_lang_en: TMenuItem diff --git a/applications/json_packager/umain.lrj b/applications/json_packager/umain.lrj index 278984feb..050c7dd71 100644 --- a/applications/json_packager/umain.lrj +++ b/applications/json_packager/umain.lrj @@ -26,6 +26,7 @@ {"hash":2812976,"name":"tfrmmain.mnu_help.caption","sourcebytes":[38,72,101,108,112],"value":"&Help"}, {"hash":186260755,"name":"tfrmmain.mnu_helpshowhints.caption","sourcebytes":[83,104,111,119,32,80,111,112,117,112,32,72,105,110,116,115],"value":"Show Popup Hints"}, {"hash":253903779,"name":"tfrmmain.mnu_helpdisablewarnings.caption","sourcebytes":[68,105,115,97,98,108,101,32,119,97,114,110,105,110,103,115],"value":"Disable warnings"}, +{"hash":213647893,"name":"tfrmmain.mnu_helpautoloadlastfile.caption","sourcebytes":[65,117,116,111,45,108,111,97,100,32,108,97,115,116,32,115,97,118,101,100,32,102,105,108,101],"value":"Auto-load last saved file"}, {"hash":187646702,"name":"tfrmmain.mnu_lang.caption","sourcebytes":[76,97,110,103,117,97,103,101,115,46,46],"value":"Languages.."}, {"hash":206450904,"name":"tfrmmain.mnu_lang_en.caption","sourcebytes":[69,110,103,108,105,115,104],"value":"English"}, {"hash":174974108,"name":"tfrmmain.mnu_lang_es.caption","sourcebytes":[69,115,112,97,195,177,111,108],"value":"Espa\u00F1ol"}, diff --git a/applications/json_packager/umain.pas b/applications/json_packager/umain.pas index b9522f54c..42ddf2094 100644 --- a/applications/json_packager/umain.pas +++ b/applications/json_packager/umain.pas @@ -64,7 +64,8 @@ unit umain; 0.2.3.0: ResourceStrings Updated (minesadorada) 0.2.4.0: Bugfix: regression error: DisableInOPM (minesadorada) 0.2.5.0: BugFix: regression error: CreateUniqueINIFile (minesadorada) - 0.2.6.0: ?? + 0.2.6.0: Added feature - Help menu/AutoLoad Last File + 0.2.7.0: ?? } {$mode objfpc}{$H+} @@ -78,7 +79,7 @@ uses lclintf, lclVersion, LResources, Spin, {$IFDEF PO_BUILTINRES}LazUTF8Classes{$ENDIF}; const - C_DEBUGMESSAGES = False; + C_DEBUGMESSAGES = False; // TRUE ONLY IN DEV MODE! type @@ -152,6 +153,7 @@ type MainMenu1: TMainMenu; FileMenu: TMenuItem; LoadItem: TMenuItem; + mnu_helpAutoloadLastFile: TMenuItem; mnu_fileExit: TMenuItem; mnu_fileNew: TMenuItem; mnu_helpDisableWarnings: TMenuItem; @@ -180,6 +182,7 @@ type procedure mnu_fileNewClick(Sender: TObject); procedure mnu_fileSaveClick(Sender: TObject); procedure mnu_helpAboutClick(Sender: TObject); + procedure mnu_helpAutoloadLastFileClick(Sender: TObject); procedure mnu_helpDisableWarningsClick(Sender: TObject); procedure mnu_helpShowHintsClick(Sender: TObject); procedure mnu_lang_enClick(Sender: TObject); @@ -190,7 +193,8 @@ type private { private declarations } JSONPackage: TUpdatePackage; - bForceSaveAs, bShowPopupHints, bDisableWarnings, bDirty, bIsVirgin: boolean; + bForceSaveAs, bShowPopupHints, bDisableWarnings,bAutoLoadLast, + bDirty, bIsVirgin: boolean; sJSONFilePath: string; sUpdateDirectory, sZipDirectory: string; slErrorList: TStrings; @@ -210,6 +214,7 @@ type ArrayLblPackageInternalVersion: array of TLabel; // End of Package Information controls iNumLpkFilesVisible: integer; + procedure LoadJSONFromFile(sFileName:String); procedure AddPackageFileToList; procedure RemovePackageFileFromList; procedure ResetPackageFileControlsToOne; @@ -846,6 +851,13 @@ begin bIsVirgin := CFG.ReadBool('Options', 'Virgin', True); bShowPopupHints := bIsVirgin; mnu_helpShowHints.Checked := bShowPopupHints; + + // On startup, default to FALSE + bAutoLoadLast:=CFG.ReadBool('Options', 'AutoLoadLastFile',FALSE); + mnu_helpAutoloadLastFile.Checked:=bAutoLoadLast; + sJSONFilePath:=CFG.ReadString('Options','LastSavedJSON','unknown'); + if C_DEBUGMESSAGES = True then // Dev only + ShowMessage(sJSONFilePath); // Override here if the user has re-enabled them bShowPopupHints := CFG.ReadBool('Options', 'ShowPopupHints', bShowPopupHints); mnu_helpShowHints.Checked := bShowPopupHints; @@ -878,24 +890,20 @@ procedure TfrmMain.FormShow(Sender: TObject); begin bDirty := False; AddPackageFileToList; -end; + If sJSONFilePath <> 'unknown' then + If (FileExistsUTF8(sJSONFilePath)) AND (bAutoLoadLast=TRUE) then + LoadJSONFromFile(sJSONFilePath); -procedure TfrmMain.LoadItemClick(Sender: TObject); +end; +procedure TfrmMain.LoadJSONFromFile(sFileName:String); var i: integer; Quad: TVersionQuad; begin - FileOpen1.Dialog.InitialDir := - CFG.ReadString('Options', 'LastLoadedJSONPath', sUpdateDirectory); - FileOpen1.Dialog.Filter := 'JSON|*.json'; - if FileOpen1.Dialog.Execute then - begin - ResetPackageFileControlsToOne; // So iNumLpkFilesVisible=1 - sJSONFilePath := FileOpen1.Dialog.Filename; - CFG.WriteString('Options', 'LastLoadedJSONPath', ExtractFileDir(sJSONFilePath)); - JSONPackage := TUpdatePackage.Create; + ResetPackageFileControlsToOne; // So iNumLpkFilesVisible=1 + JSONPackage := TUpdatePackage.Create; try - if JSONPackage.LoadFromFile(FileOpen1.Dialog.FileName) then + if JSONPackage.LoadFromFile(sFileName) then begin edt_UpdateZipName.Text := JSONPackage.UpdatePackageData.Name; edt_DownloadZipURL.Text := JSONPackage.UpdatePackageData.DownloadZipURL; @@ -934,10 +942,23 @@ begin end else ShowMessageFmt(rsThereWasAPro, - [ExtractFilename(FileOpen1.Dialog.FileName)]); + [ExtractFilename(sFileName)]); finally JSONPackage.Free; end; +end; + +procedure TfrmMain.LoadItemClick(Sender: TObject); +begin + FileOpen1.Dialog.InitialDir := + CFG.ReadString('Options', 'LastLoadedJSONPath', sUpdateDirectory); + FileOpen1.Dialog.Filter := 'JSON|*.json'; + if FileOpen1.Dialog.Execute then + begin + sJSONFilePath := FileOpen1.Dialog.Filename; + CFG.WriteString('Options', 'LastLoadedJSONPath', ExtractFileDir(sJSONFilePath)); + ResetPackageFileControlsToOne; // So iNumLpkFilesVisible=1 + LoadJSONFromFile(sJSONFilePath); end; end; @@ -1009,6 +1030,13 @@ begin MessageDlg(rsAbout + ' ' + Application.Title, s, mtInformation, [mbOK], 0); end; +procedure TfrmMain.mnu_helpAutoloadLastFileClick(Sender: TObject); +begin + bAutoLoadLast:= NOT bAutoLoadLast; + mnu_helpAutoloadLastFile.Checked:=bAutoLoadLast; + CFG.WriteBool('Options', 'AutoLoadLastFile',bAutoLoadLast); +end; + procedure TfrmMain.mnu_helpDisableWarningsClick(Sender: TObject); begin bDisableWarnings := not bDisableWarnings; @@ -1177,8 +1205,11 @@ begin FileSaveAs1.Dialog.InitialDir := sUpdateDirectory; FileSaveAs1.Dialog.FileName := 'update_' + ExtractFilenameOnly(edt_UpdateZipName.Text) + '.json'; + if FileSaveAs1.Dialog.Execute then - sJSONFilePath := FileSaveAs1.Dialog.FileName + begin + sJSONFilePath := FileSaveAs1.Dialog.FileName; + end else Exit; end; @@ -1207,11 +1238,17 @@ begin if MessageDlg(rsOverwrite + ' ' + sJSONFilePath + '?', mtConfirmation, [mbYes, mbNo], 0, mbYes) = mrYes then if JSONPackage.SaveToFile(sJSONFilePath) then - ShowMessage(sJSONFilePath + ' ' + rsSavedOK); + begin + ShowMessage(sJSONFilePath + ' ' + rsSavedOK); + CFG.WriteString('Options','LastSavedJSON',sJSONFilePath); + end; end else if JSONPackage.SaveToFile(sJSONFilePath) then - ShowMessage(sJSONFilePath + rsSavedOK) + begin + ShowMessage(sJSONFilePath + rsSavedOK); + CFG.WriteString('Options','LastSavedJSON',sJSONFilePath); + end else ShowMessage(rsSaveUnsucces); bDirty := False;