You've already forked lazarus-ccr
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:
@ -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">
|
||||
|
@ -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>
|
||||
|
Binary file not shown.
@ -96,6 +96,7 @@ object frmMain: TfrmMain
|
||||
RowCount = 1
|
||||
TabOrder = 3
|
||||
TitleStyle = tsNative
|
||||
OnCellProcess = stringPackageFilesCellProcess
|
||||
ColWidths = (
|
||||
150
|
||||
150
|
||||
|
@ -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,12 +801,20 @@ 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;
|
||||
var
|
||||
|
Reference in New Issue
Block a user