To 0.1.9.0

* Checks for lpk duplicates
* Exception catch on Load json

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5407 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
gbamber
2016-12-04 17:48:43 +00:00
parent 81532a65bb
commit c0c7cae9ae
5 changed files with 115 additions and 52 deletions

View File

@ -24,7 +24,7 @@
<UseVersionInfo Value="True"/>
<AutoIncrementBuild Value="True"/>
<MinorVersionNr Value="1"/>
<RevisionNr Value="8"/>
<RevisionNr Value="9"/>
<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>
<BuildModes Count="5">

View File

@ -3,14 +3,14 @@
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Linux64"/>
<Units Count="11">
<BuildModes Active="Win64"/>
<Units Count="13">
<Unit0>
<Filename Value="jsonpackage.lpr"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="1"/>
<EditorIndex Value="3"/>
<CursorPos Y="30"/>
<UsageCount Value="53"/>
<UsageCount Value="56"/>
<Loaded Value="True"/>
</Unit0>
<Unit1>
@ -20,11 +20,11 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<TopLine Value="348"/>
<CursorPos X="18" Y="369"/>
<UsageCount Value="53"/>
<TopLine Value="790"/>
<CursorPos X="23" Y="811"/>
<UsageCount Value="56"/>
<Bookmarks Count="1">
<Item0 Y="459"/>
<Item0 Y="465" ID="1"/>
</Bookmarks>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
@ -32,7 +32,7 @@
<Unit2>
<Filename Value="ugenericcollection.pas"/>
<IsPartOfProject Value="True"/>
<UsageCount Value="53"/>
<UsageCount Value="56"/>
</Unit2>
<Unit3>
<Filename Value="D:\Lazarusprojects\golfml\egacalculator\source\umainform.pas"/>
@ -96,127 +96,147 @@
<UsageCount Value="10"/>
<DefaultSyntaxHighlighter Value="LFM"/>
</Unit10>
<Unit11>
<Filename Value="C:\NewPascalDarwin\lazarus\lcl\grids.pas"/>
<UnitName Value="Grids"/>
<EditorIndex Value="2"/>
<TopLine Value="10428"/>
<CursorPos X="29" Y="10452"/>
<UsageCount Value="11"/>
<Bookmarks Count="1">
<Item0 X="86" Y="1718"/>
</Bookmarks>
<Loaded Value="True"/>
</Unit11>
<Unit12>
<Filename Value="C:\NewPascalDarwin\fpc\rtl\objpas\classes\classesh.inc"/>
<EditorIndex Value="1"/>
<TopLine Value="517"/>
<CursorPos X="3" Y="478"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit12>
</Units>
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="umain.pas"/>
<Caret Line="365" Column="83" TopLine="342"/>
<Caret Line="748" Column="47" TopLine="747"/>
</Position1>
<Position2>
<Filename Value="umain.pas"/>
<Caret Line="319" TopLine="316"/>
<Filename Value="C:\NewPascalDarwin\lazarus\lcl\grids.pas"/>
<Caret Line="456" Column="14" TopLine="456"/>
</Position2>
<Position3>
<Filename Value="umain.pas"/>
<Caret Line="471" Column="52" TopLine="467"/>
<Filename Value="C:\NewPascalDarwin\lazarus\lcl\grids.pas"/>
<Caret Line="1721" Column="21" TopLine="1694"/>
</Position3>
<Position4>
<Filename Value="umain.pas"/>
<Caret Line="319" Column="3" TopLine="317"/>
<Filename Value="C:\NewPascalDarwin\lazarus\lcl\grids.pas"/>
<Caret Line="1395" Column="21" TopLine="1371"/>
</Position4>
<Position5>
<Filename Value="umain.pas"/>
<Caret Line="331" Column="39" TopLine="328"/>
<Filename Value="C:\NewPascalDarwin\lazarus\lcl\grids.pas"/>
<Caret Line="745" Column="27" TopLine="709"/>
</Position5>
<Position6>
<Filename Value="umain.pas"/>
<Caret Line="431" Column="3" TopLine="429"/>
<Filename Value="C:\NewPascalDarwin\lazarus\lcl\grids.pas"/>
<Caret Line="114" Column="3" TopLine="76"/>
</Position6>
<Position7>
<Filename Value="umain.pas"/>
<Caret Line="315" Column="33" TopLine="305"/>
<Caret Line="155" TopLine="134"/>
</Position7>
<Position8>
<Filename Value="umain.pas"/>
<Caret Line="712" Column="30" TopLine="677"/>
<Caret Line="308" Column="3" TopLine="306"/>
</Position8>
<Position9>
<Filename Value="umain.pas"/>
<Caret Line="463" TopLine="440"/>
<Caret Line="796" Column="19" TopLine="766"/>
</Position9>
<Position10>
<Filename Value="umain.pas"/>
<Caret Line="140" Column="70" TopLine="122"/>
<Caret Line="46" Column="40" TopLine="31"/>
</Position10>
<Position11>
<Filename Value="umain.pas"/>
<Caret Line="25" Column="13"/>
<Filename Value="C:\NewPascalDarwin\fpc\rtl\objpas\classes\classesh.inc"/>
<Caret Line="498" Column="37" TopLine="465"/>
</Position11>
<Position12>
<Filename Value="umain.pas"/>
<Caret Line="306" Column="3" TopLine="271"/>
<Caret Line="450" Column="47" TopLine="426"/>
</Position12>
<Position13>
<Filename Value="umain.pas"/>
<Caret Line="35" Column="35" TopLine="13"/>
<Caret Line="298" Column="27" TopLine="285"/>
</Position13>
<Position14>
<Filename Value="umain.pas"/>
<Caret Line="371" Column="25" TopLine="353"/>
<Caret Line="313" Column="46" TopLine="290"/>
</Position14>
<Position15>
<Filename Value="umain.pas"/>
<Caret Line="380" Column="44" TopLine="360"/>
<Caret Line="316" Column="65" TopLine="293"/>
</Position15>
<Position16>
<Filename Value="umain.pas"/>
<Caret Line="386" Column="2" TopLine="359"/>
<Caret Line="313" Column="46" TopLine="289"/>
</Position16>
<Position17>
<Filename Value="umain.pas"/>
<Caret Line="2" Column="28"/>
<Caret Line="320" TopLine="296"/>
</Position17>
<Position18>
<Filename Value="umain.pas"/>
<Caret Line="140" Column="44" TopLine="114"/>
<Caret Line="310" Column="29" TopLine="295"/>
</Position18>
<Position19>
<Filename Value="umain.pas"/>
<Caret Line="362" Column="58" TopLine="357"/>
<Caret Line="672" Column="56" TopLine="635"/>
</Position19>
<Position20>
<Filename Value="umain.pas"/>
<Caret Line="360" Column="121" TopLine="337"/>
<Caret Line="810" Column="41" TopLine="787"/>
</Position20>
<Position21>
<Filename Value="umain.pas"/>
<Caret Line="361" Column="39" TopLine="349"/>
<Caret Line="812" Column="36" TopLine="786"/>
</Position21>
<Position22>
<Filename Value="umain.pas"/>
<Caret Line="360" Column="70" TopLine="337"/>
<Caret Line="813" Column="5" TopLine="790"/>
</Position22>
<Position23>
<Filename Value="umain.pas"/>
<Caret Line="361" Column="58" TopLine="337"/>
<Caret Line="811" TopLine="787"/>
</Position23>
<Position24>
<Filename Value="umain.pas"/>
<Caret Line="33" Column="22" TopLine="20"/>
<Caret Line="814" Column="5" TopLine="787"/>
</Position24>
<Position25>
<Filename Value="umain.pas"/>
<Caret Line="658" Column="77" TopLine="634"/>
<Caret Line="812" Column="24" TopLine="784"/>
</Position25>
<Position26>
<Filename Value="umain.pas"/>
<Caret Line="659" Column="77" TopLine="491"/>
<Caret Line="811" Column="11" TopLine="788"/>
</Position26>
<Position27>
<Filename Value="umain.pas"/>
<Caret Line="388" TopLine="357"/>
<Caret Line="813" Column="6" TopLine="789"/>
</Position27>
<Position28>
<Filename Value="umain.pas"/>
<Caret Line="145" TopLine="137"/>
<Caret Line="489" TopLine="481"/>
</Position28>
<Position29>
<Filename Value="umain.pas"/>
<Caret Line="465" Column="23" TopLine="461"/>
<Caret Line="819" TopLine="789"/>
</Position29>
<Position30>
<Filename Value="umain.pas"/>
<Caret Line="311" TopLine="303"/>
<Caret Line="813" TopLine="789"/>
</Position30>
</JumpHistory>
</ProjectSession>

View File

@ -96,6 +96,7 @@ object frmMain: TfrmMain
RowCount = 1
TabOrder = 3
TitleStyle = tsNative
OnCellProcess = stringPackageFilesCellProcess
ColWidths = (
150
150

View File

@ -82,7 +82,6 @@ type
property Package: TPackageData read FPackage write FPackage;
property PackageFiles: TPackageFilesList read FPackageFiles write FPackageFiles;
end;
{ TfrmMain }
TfrmMain = class(TForm)
@ -137,6 +136,8 @@ type
procedure SaveAsItemClick(Sender: TObject);
procedure sb_editNameClick(Sender: TObject);
procedure spd_CheckURLClick(Sender: TObject);
procedure stringPackageFilesCellProcess(Sender: TObject; aCol,
aRow: Integer; processType: TCellProcessType; var aValue: string);
private
{ private declarations }
JSONPackage: TPackage;
@ -150,6 +151,7 @@ type
procedure CtrlHidePopup(Sender: TObject);
procedure CtrlSetUpPopupHandlers;
procedure CtrlMakeDirty(Sender: TObject);
function IsADuplicateLPK:Boolean;
public
{ public declarations }
end;
@ -300,6 +302,26 @@ begin
end;
function TfrmMain.IsADuplicateLPK:Boolean;
Var
TempStringList:TStrings;
iCount:Integer;
begin
Result:=FALSE;
TempStringList:=TstringList.Create;
TRY
For iCount:=0 to Pred(stringPackageFiles.RowCount) do
begin
If TempStringlist.IndexOf(stringPackageFiles.Cells[0,iCount]) = -1 then
TempStringList.Add(stringPackageFiles.Cells[0,iCount])
else
Result:=TRUE;
end;
finally
TempStringList.Free;
end;
end;
procedure TfrmMain.btnAddClick(Sender: TObject);
begin
stringPackageFiles.RowCount := stringPackageFiles.RowCount + 1;
@ -645,6 +667,13 @@ begin
Result := True;
end;
end;
If IsADuplicateLPK then
begin
stringPackageFiles.Color := clYellow;
slErrorList.Add('- There are one or more .lpk entries with the same name.'
+ LineEnding + '- Every .lpk entry must have a unique name.');
Result := True;
end;
end;
procedure TfrmMain.SaveAsItemClick(Sender: TObject);
@ -742,6 +771,11 @@ begin
end;
end;
procedure TfrmMain.stringPackageFilesCellProcess(Sender: TObject; aCol,
aRow: Integer; processType: TCellProcessType; var aValue: string);
begin
end;
{ TPackage }
constructor TPackage.Create;
@ -767,11 +801,19 @@ var
s: TStringList;
begin
s := TStringList.Create;
TRY
s.LoadFromFile(AFileName);
DeStreamer := TJSONDeStreamer.Create(nil);
TRY
DeStreamer.JSONToObject(s.Text, Self);
EXCEPT
On E:Exception do
ShowMessage('The json file appears to be corrupted or in the wrong format');
end;
Finally
DeStreamer.Free;
s.Free;
end;
end;
function TPackage.SaveToFile(AFileName: string): boolean;