You've already forked lazarus-ccr
0.1.10.0: Exception handling for Load + Save (minesadorada)
Error check for duplicate lpk entries (minesadorada) git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5408 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -24,7 +24,7 @@
|
|||||||
<UseVersionInfo Value="True"/>
|
<UseVersionInfo Value="True"/>
|
||||||
<AutoIncrementBuild Value="True"/>
|
<AutoIncrementBuild Value="True"/>
|
||||||
<MinorVersionNr Value="1"/>
|
<MinorVersionNr Value="1"/>
|
||||||
<RevisionNr Value="9"/>
|
<RevisionNr Value="10"/>
|
||||||
<StringTable Comments="Buld configured for Win Linux and Darwin" FileDescription="An editor for OnlinePackageManager update JSON files" InternalName="jsoneditor" LegalCopyright="(c)2016 usernames lainz and minesadorada @ forum.lazarus.freepascal.org" LegalTrademarks="GPL code" OriginalFilename="jsoneditor" ProductName="Lazarus and Freepascal" ProductVersion="1.x and 3.x"/>
|
<StringTable Comments="Buld configured for Win Linux and Darwin" FileDescription="An editor for OnlinePackageManager update JSON files" InternalName="jsoneditor" LegalCopyright="(c)2016 usernames lainz and minesadorada @ forum.lazarus.freepascal.org" LegalTrademarks="GPL code" OriginalFilename="jsoneditor" ProductName="Lazarus and Freepascal" ProductVersion="1.x and 3.x"/>
|
||||||
</VersionInfo>
|
</VersionInfo>
|
||||||
<BuildModes Count="5">
|
<BuildModes Count="5">
|
||||||
|
@ -20,11 +20,12 @@
|
|||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
<IsVisibleTab Value="True"/>
|
<IsVisibleTab Value="True"/>
|
||||||
<TopLine Value="790"/>
|
<TopLine Value="13"/>
|
||||||
<CursorPos X="23" Y="811"/>
|
<CursorPos X="62" Y="28"/>
|
||||||
<UsageCount Value="56"/>
|
<UsageCount Value="56"/>
|
||||||
<Bookmarks Count="1">
|
<Bookmarks Count="2">
|
||||||
<Item0 Y="465" ID="1"/>
|
<Item0 Y="468" ID="1"/>
|
||||||
|
<Item1 X="8" Y="737"/>
|
||||||
</Bookmarks>
|
</Bookmarks>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
<LoadedDesigner Value="True"/>
|
<LoadedDesigner Value="True"/>
|
||||||
@ -103,9 +104,6 @@
|
|||||||
<TopLine Value="10428"/>
|
<TopLine Value="10428"/>
|
||||||
<CursorPos X="29" Y="10452"/>
|
<CursorPos X="29" Y="10452"/>
|
||||||
<UsageCount Value="11"/>
|
<UsageCount Value="11"/>
|
||||||
<Bookmarks Count="1">
|
|
||||||
<Item0 X="86" Y="1718"/>
|
|
||||||
</Bookmarks>
|
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit11>
|
</Unit11>
|
||||||
<Unit12>
|
<Unit12>
|
||||||
@ -119,124 +117,124 @@
|
|||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="30" HistoryIndex="29">
|
<JumpHistory Count="30" HistoryIndex="29">
|
||||||
<Position1>
|
<Position1>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="C:\NewPascalDarwin\lazarus\lcl\grids.pas"/>
|
||||||
<Caret Line="748" Column="47" TopLine="747"/>
|
<Caret Line="1395" Column="21" TopLine="1371"/>
|
||||||
</Position1>
|
</Position1>
|
||||||
<Position2>
|
<Position2>
|
||||||
<Filename Value="C:\NewPascalDarwin\lazarus\lcl\grids.pas"/>
|
<Filename Value="C:\NewPascalDarwin\lazarus\lcl\grids.pas"/>
|
||||||
<Caret Line="456" Column="14" TopLine="456"/>
|
<Caret Line="745" Column="27" TopLine="709"/>
|
||||||
</Position2>
|
</Position2>
|
||||||
<Position3>
|
<Position3>
|
||||||
<Filename Value="C:\NewPascalDarwin\lazarus\lcl\grids.pas"/>
|
<Filename Value="C:\NewPascalDarwin\lazarus\lcl\grids.pas"/>
|
||||||
<Caret Line="1721" Column="21" TopLine="1694"/>
|
<Caret Line="114" Column="3" TopLine="76"/>
|
||||||
</Position3>
|
</Position3>
|
||||||
<Position4>
|
<Position4>
|
||||||
<Filename Value="C:\NewPascalDarwin\lazarus\lcl\grids.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="1395" Column="21" TopLine="1371"/>
|
<Caret Line="155" TopLine="134"/>
|
||||||
</Position4>
|
</Position4>
|
||||||
<Position5>
|
<Position5>
|
||||||
<Filename Value="C:\NewPascalDarwin\lazarus\lcl\grids.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="745" Column="27" TopLine="709"/>
|
<Caret Line="308" Column="3" TopLine="306"/>
|
||||||
</Position5>
|
</Position5>
|
||||||
<Position6>
|
<Position6>
|
||||||
<Filename Value="C:\NewPascalDarwin\lazarus\lcl\grids.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="114" Column="3" TopLine="76"/>
|
<Caret Line="796" Column="19" TopLine="766"/>
|
||||||
</Position6>
|
</Position6>
|
||||||
<Position7>
|
<Position7>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="155" TopLine="134"/>
|
<Caret Line="46" Column="40" TopLine="31"/>
|
||||||
</Position7>
|
</Position7>
|
||||||
<Position8>
|
<Position8>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="C:\NewPascalDarwin\fpc\rtl\objpas\classes\classesh.inc"/>
|
||||||
<Caret Line="308" Column="3" TopLine="306"/>
|
<Caret Line="498" Column="37" TopLine="465"/>
|
||||||
</Position8>
|
</Position8>
|
||||||
<Position9>
|
<Position9>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="796" Column="19" TopLine="766"/>
|
<Caret Line="450" Column="47" TopLine="426"/>
|
||||||
</Position9>
|
</Position9>
|
||||||
<Position10>
|
<Position10>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="46" Column="40" TopLine="31"/>
|
<Caret Line="298" Column="27" TopLine="285"/>
|
||||||
</Position10>
|
</Position10>
|
||||||
<Position11>
|
<Position11>
|
||||||
<Filename Value="C:\NewPascalDarwin\fpc\rtl\objpas\classes\classesh.inc"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="498" Column="37" TopLine="465"/>
|
<Caret Line="313" Column="46" TopLine="290"/>
|
||||||
</Position11>
|
</Position11>
|
||||||
<Position12>
|
<Position12>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="450" Column="47" TopLine="426"/>
|
<Caret Line="316" Column="65" TopLine="293"/>
|
||||||
</Position12>
|
</Position12>
|
||||||
<Position13>
|
<Position13>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="298" Column="27" TopLine="285"/>
|
<Caret Line="313" Column="46" TopLine="289"/>
|
||||||
</Position13>
|
</Position13>
|
||||||
<Position14>
|
<Position14>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="313" Column="46" TopLine="290"/>
|
<Caret Line="320" TopLine="296"/>
|
||||||
</Position14>
|
</Position14>
|
||||||
<Position15>
|
<Position15>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="316" Column="65" TopLine="293"/>
|
<Caret Line="310" Column="29" TopLine="295"/>
|
||||||
</Position15>
|
</Position15>
|
||||||
<Position16>
|
<Position16>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="313" Column="46" TopLine="289"/>
|
<Caret Line="672" Column="56" TopLine="635"/>
|
||||||
</Position16>
|
</Position16>
|
||||||
<Position17>
|
<Position17>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="320" TopLine="296"/>
|
<Caret Line="810" Column="41" TopLine="787"/>
|
||||||
</Position17>
|
</Position17>
|
||||||
<Position18>
|
<Position18>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="310" Column="29" TopLine="295"/>
|
<Caret Line="812" Column="36" TopLine="786"/>
|
||||||
</Position18>
|
</Position18>
|
||||||
<Position19>
|
<Position19>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="672" Column="56" TopLine="635"/>
|
<Caret Line="813" Column="5" TopLine="790"/>
|
||||||
</Position19>
|
</Position19>
|
||||||
<Position20>
|
<Position20>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="810" Column="41" TopLine="787"/>
|
<Caret Line="811" TopLine="787"/>
|
||||||
</Position20>
|
</Position20>
|
||||||
<Position21>
|
<Position21>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="812" Column="36" TopLine="786"/>
|
<Caret Line="814" Column="5" TopLine="787"/>
|
||||||
</Position21>
|
</Position21>
|
||||||
<Position22>
|
<Position22>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="813" Column="5" TopLine="790"/>
|
<Caret Line="812" Column="24" TopLine="784"/>
|
||||||
</Position22>
|
</Position22>
|
||||||
<Position23>
|
<Position23>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="811" TopLine="787"/>
|
<Caret Line="811" Column="11" TopLine="788"/>
|
||||||
</Position23>
|
</Position23>
|
||||||
<Position24>
|
<Position24>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="814" Column="5" TopLine="787"/>
|
<Caret Line="813" Column="6" TopLine="789"/>
|
||||||
</Position24>
|
</Position24>
|
||||||
<Position25>
|
<Position25>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="812" Column="24" TopLine="784"/>
|
<Caret Line="489" TopLine="481"/>
|
||||||
</Position25>
|
</Position25>
|
||||||
<Position26>
|
<Position26>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="811" Column="11" TopLine="788"/>
|
<Caret Line="819" TopLine="789"/>
|
||||||
</Position26>
|
</Position26>
|
||||||
<Position27>
|
<Position27>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="813" Column="6" TopLine="789"/>
|
<Caret Line="813" TopLine="789"/>
|
||||||
</Position27>
|
</Position27>
|
||||||
<Position28>
|
<Position28>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="489" TopLine="481"/>
|
<Caret Line="79" Column="26" TopLine="50"/>
|
||||||
</Position28>
|
</Position28>
|
||||||
<Position29>
|
<Position29>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="819" TopLine="789"/>
|
<Caret Line="812" TopLine="795"/>
|
||||||
</Position29>
|
</Position29>
|
||||||
<Position30>
|
<Position30>
|
||||||
<Filename Value="umain.pas"/>
|
<Filename Value="umain.pas"/>
|
||||||
<Caret Line="813" TopLine="789"/>
|
<Caret Line="735" Column="33" TopLine="720"/>
|
||||||
</Position30>
|
</Position30>
|
||||||
</JumpHistory>
|
</JumpHistory>
|
||||||
</ProjectSession>
|
</ProjectSession>
|
||||||
|
Binary file not shown.
@ -22,9 +22,11 @@ unit umain;
|
|||||||
Version History
|
Version History
|
||||||
===============
|
===============
|
||||||
0.0.0.0 Original code by lainz
|
0.0.0.0 Original code by lainz
|
||||||
..to 0.1.6.0 Refactored and updated by minesadorada
|
..to 0.1.6.0 Refactored and updated (minesadorada)
|
||||||
0.1.7.0: Bugfix by lainz
|
0.1.7.0: Bugfix (lainz)
|
||||||
0.1.8.0: Config file change by minesadorada
|
0.1.8.0: Config file change (minesadorada)
|
||||||
|
0.1.10.0: Exception handling for Load + Save (minesadorada)
|
||||||
|
Error check for duplicate lpk entries (minesadorada)
|
||||||
}
|
}
|
||||||
{$mode objfpc}{$H+}
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
@ -76,7 +78,7 @@ type
|
|||||||
public
|
public
|
||||||
constructor Create;
|
constructor Create;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
procedure LoadFromFile(AFileName: string);
|
function LoadFromFile(AFileName: string):Boolean;
|
||||||
function SaveToFile(AFileName: string): boolean;
|
function SaveToFile(AFileName: string): boolean;
|
||||||
published
|
published
|
||||||
property Package: TPackageData read FPackage write FPackage;
|
property Package: TPackageData read FPackage write FPackage;
|
||||||
@ -461,8 +463,9 @@ begin
|
|||||||
sJSONFilePath := FileOpen1.Dialog.Filename;
|
sJSONFilePath := FileOpen1.Dialog.Filename;
|
||||||
CFG.WriteString('Options', 'LastLoadedJSONPath', ExtractFileDir(sJSONFilePath));
|
CFG.WriteString('Options', 'LastLoadedJSONPath', ExtractFileDir(sJSONFilePath));
|
||||||
JSONPackage := TPackage.Create;
|
JSONPackage := TPackage.Create;
|
||||||
JSONPackage.LoadFromFile(FileOpen1.Dialog.FileName);
|
TRY
|
||||||
|
if JSONPackage.LoadFromFile(FileOpen1.Dialog.FileName) then
|
||||||
|
begin
|
||||||
editName.Text := JSONPackage.Package.Name;
|
editName.Text := JSONPackage.Package.Name;
|
||||||
editDownloadURL.Text := JSONPackage.Package.DownloadURL;
|
editDownloadURL.Text := JSONPackage.Package.DownloadURL;
|
||||||
cbForceUpdate.Checked := JSONPackage.Package.ForceUpdate;
|
cbForceUpdate.Checked := JSONPackage.Package.ForceUpdate;
|
||||||
@ -473,9 +476,14 @@ begin
|
|||||||
stringPackageFiles.Cells[0, i + 1] := JSONPackage.PackageFiles.Items[i].Name;
|
stringPackageFiles.Cells[0, i + 1] := JSONPackage.PackageFiles.Items[i].Name;
|
||||||
stringPackageFiles.Cells[1, i + 1] := JSONPackage.PackageFiles.Items[i].Version;
|
stringPackageFiles.Cells[1, i + 1] := JSONPackage.PackageFiles.Items[i].Version;
|
||||||
end;
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
ShowMessageFmt('There was a problem loading "%s" - is it corrupted or in the wrong format?',
|
||||||
|
[ExtractFilename(FileOpen1.Dialog.FileName)]);
|
||||||
|
finally
|
||||||
JSONPackage.Free;
|
JSONPackage.Free;
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmMain.mnu_fileNewClick(Sender: TObject);
|
procedure TfrmMain.mnu_fileNewClick(Sender: TObject);
|
||||||
@ -724,7 +732,9 @@ begin
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
if JSONPackage.SaveToFile(sJSONFilePath) then
|
if JSONPackage.SaveToFile(sJSONFilePath) then
|
||||||
ShowMessage(sJSONFilePath + rsSavedOK);
|
ShowMessage(sJSONFilePath + rsSavedOK)
|
||||||
|
else
|
||||||
|
ShowMessage(rsSaveUnsucces);
|
||||||
bDirty := False;
|
bDirty := False;
|
||||||
finally
|
finally
|
||||||
JSONPackage.Free;
|
JSONPackage.Free;
|
||||||
@ -795,11 +805,12 @@ begin
|
|||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPackage.LoadFromFile(AFileName: string);
|
Function TPackage.LoadFromFile(AFileName: string):Boolean;
|
||||||
var
|
var
|
||||||
DeStreamer: TJSONDeStreamer;
|
DeStreamer: TJSONDeStreamer;
|
||||||
s: TStringList;
|
s: TStringList;
|
||||||
begin
|
begin
|
||||||
|
Result:=TRUE;
|
||||||
s := TStringList.Create;
|
s := TStringList.Create;
|
||||||
TRY
|
TRY
|
||||||
s.LoadFromFile(AFileName);
|
s.LoadFromFile(AFileName);
|
||||||
@ -807,8 +818,7 @@ begin
|
|||||||
TRY
|
TRY
|
||||||
DeStreamer.JSONToObject(s.Text, Self);
|
DeStreamer.JSONToObject(s.Text, Self);
|
||||||
EXCEPT
|
EXCEPT
|
||||||
On E:Exception do
|
On E:Exception do Result:=FALSE;
|
||||||
ShowMessage('The json file appears to be corrupted or in the wrong format');
|
|
||||||
end;
|
end;
|
||||||
Finally
|
Finally
|
||||||
DeStreamer.Free;
|
DeStreamer.Free;
|
||||||
@ -831,7 +841,7 @@ begin
|
|||||||
s.SaveToFile(AFileName);
|
s.SaveToFile(AFileName);
|
||||||
Result := True;
|
Result := True;
|
||||||
except
|
except
|
||||||
ShowMessage(rsSaveUnsucces);
|
|
||||||
end;
|
end;
|
||||||
finally
|
finally
|
||||||
Streamer.Free;
|
Streamer.Free;
|
||||||
|
Reference in New Issue
Block a user