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"/> <UseVersionInfo Value="True"/>
<AutoIncrementBuild Value="True"/> <AutoIncrementBuild Value="True"/>
<MinorVersionNr Value="1"/> <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"/> <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">

View File

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

View File

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

View File

@ -82,7 +82,6 @@ type
property Package: TPackageData read FPackage write FPackage; property Package: TPackageData read FPackage write FPackage;
property PackageFiles: TPackageFilesList read FPackageFiles write FPackageFiles; property PackageFiles: TPackageFilesList read FPackageFiles write FPackageFiles;
end; end;
{ TfrmMain } { TfrmMain }
TfrmMain = class(TForm) TfrmMain = class(TForm)
@ -137,6 +136,8 @@ type
procedure SaveAsItemClick(Sender: TObject); procedure SaveAsItemClick(Sender: TObject);
procedure sb_editNameClick(Sender: TObject); procedure sb_editNameClick(Sender: TObject);
procedure spd_CheckURLClick(Sender: TObject); procedure spd_CheckURLClick(Sender: TObject);
procedure stringPackageFilesCellProcess(Sender: TObject; aCol,
aRow: Integer; processType: TCellProcessType; var aValue: string);
private private
{ private declarations } { private declarations }
JSONPackage: TPackage; JSONPackage: TPackage;
@ -150,6 +151,7 @@ type
procedure CtrlHidePopup(Sender: TObject); procedure CtrlHidePopup(Sender: TObject);
procedure CtrlSetUpPopupHandlers; procedure CtrlSetUpPopupHandlers;
procedure CtrlMakeDirty(Sender: TObject); procedure CtrlMakeDirty(Sender: TObject);
function IsADuplicateLPK:Boolean;
public public
{ public declarations } { public declarations }
end; end;
@ -300,6 +302,26 @@ begin
end; 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); procedure TfrmMain.btnAddClick(Sender: TObject);
begin begin
stringPackageFiles.RowCount := stringPackageFiles.RowCount + 1; stringPackageFiles.RowCount := stringPackageFiles.RowCount + 1;
@ -645,6 +667,13 @@ begin
Result := True; Result := True;
end; end;
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; end;
procedure TfrmMain.SaveAsItemClick(Sender: TObject); procedure TfrmMain.SaveAsItemClick(Sender: TObject);
@ -742,6 +771,11 @@ begin
end; end;
end; end;
procedure TfrmMain.stringPackageFilesCellProcess(Sender: TObject; aCol,
aRow: Integer; processType: TCellProcessType; var aValue: string);
begin
end;
{ TPackage } { TPackage }
constructor TPackage.Create; constructor TPackage.Create;
@ -767,12 +801,20 @@ var
s: TStringList; s: TStringList;
begin begin
s := TStringList.Create; s := TStringList.Create;
TRY
s.LoadFromFile(AFileName); s.LoadFromFile(AFileName);
DeStreamer := TJSONDeStreamer.Create(nil); DeStreamer := TJSONDeStreamer.Create(nil);
TRY
DeStreamer.JSONToObject(s.Text, Self); 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; DeStreamer.Free;
s.Free; s.Free;
end; end;
end;
function TPackage.SaveToFile(AFileName: string): boolean; function TPackage.SaveToFile(AFileName: string): boolean;
var var