To V 0.1.14.0

Various changes (GetMem)

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5423 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
gbamber 2016-12-05 14:22:18 +00:00
parent 8cd1f85737
commit 4614117a31
5 changed files with 76 additions and 85 deletions

View File

@ -1,6 +1,6 @@
[Setup]
AppName=External OPM JSON package Editor
AppVersion=0.1.13.0
AppVersion=0.1.12.0
DefaultDirName={pf}\OPMUtilities
DefaultGroupName=OPM
UninstallDisplayIcon={app}\jsoneditor.exe

View File

@ -24,7 +24,7 @@
<UseVersionInfo Value="True"/>
<AutoIncrementBuild Value="True"/>
<MinorVersionNr Value="1"/>
<RevisionNr Value="13"/>
<RevisionNr Value="14"/>
<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="6">
@ -130,11 +130,6 @@
</Win32>
</Options>
</Linking>
<Other>
<OtherDefines Count="1">
<Define0 Value="IGNOREPICTURE"/>
</OtherDefines>
</Other>
</CompilerOptions>
</Item4>
<Item5 Name="Darwin32">

View File

@ -20,12 +20,11 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<TopLine Value="371"/>
<CursorPos X="5" Y="386"/>
<CursorPos X="60" Y="6"/>
<UsageCount Value="62"/>
<Bookmarks Count="2">
<Item0 Y="482" ID="1"/>
<Item1 Y="751"/>
<Item0 Y="480" ID="1"/>
<Item1 Y="749"/>
</Bookmarks>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
@ -129,123 +128,123 @@
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="umain.pas"/>
<Caret Line="214" Column="18" TopLine="174"/>
<Caret Line="190" Column="19" TopLine="150"/>
</Position1>
<Position2>
<Filename Value="umain.pas"/>
<Caret Line="397" Column="21" TopLine="357"/>
<Caret Line="214" Column="18" TopLine="174"/>
</Position2>
<Position3>
<Filename Value="umain.pas"/>
<Caret Line="403" Column="21" TopLine="363"/>
<Caret Line="397" Column="21" TopLine="357"/>
</Position3>
<Position4>
<Filename Value="umain.pas"/>
<Caret Line="464" Column="70" TopLine="424"/>
<Caret Line="403" Column="21" TopLine="363"/>
</Position4>
<Position5>
<Filename Value="umain.pas"/>
<Caret Line="486" Column="21" TopLine="446"/>
<Caret Line="464" Column="70" TopLine="424"/>
</Position5>
<Position6>
<Filename Value="umain.pas"/>
<Caret Line="598" Column="32" TopLine="558"/>
<Caret Line="486" Column="21" TopLine="446"/>
</Position6>
<Position7>
<Filename Value="umain.pas"/>
<Caret Line="600" Column="37" TopLine="560"/>
<Caret Line="598" Column="32" TopLine="558"/>
</Position7>
<Position8>
<Filename Value="umain.pas"/>
<Caret Line="601" Column="23" TopLine="561"/>
<Caret Line="600" Column="37" TopLine="560"/>
</Position8>
<Position9>
<Filename Value="umain.pas"/>
<Caret Line="620" Column="77" TopLine="580"/>
<Caret Line="601" Column="23" TopLine="561"/>
</Position9>
<Position10>
<Filename Value="umain.pas"/>
<Caret Line="623" Column="37" TopLine="583"/>
<Caret Line="620" Column="77" TopLine="580"/>
</Position10>
<Position11>
<Filename Value="umain.pas"/>
<Caret Line="624" Column="23" TopLine="585"/>
<Caret Line="623" Column="37" TopLine="583"/>
</Position11>
<Position12>
<Filename Value="umain.pas"/>
<Caret Line="628" Column="33" TopLine="589"/>
<Caret Line="624" Column="23" TopLine="585"/>
</Position12>
<Position13>
<Filename Value="umain.pas"/>
<Caret Line="629" Column="42" TopLine="590"/>
<Caret Line="628" Column="33" TopLine="589"/>
</Position13>
<Position14>
<Filename Value="umain.pas"/>
<Caret Line="631" Column="37" TopLine="592"/>
<Caret Line="629" Column="42" TopLine="590"/>
</Position14>
<Position15>
<Filename Value="umain.pas"/>
<Caret Line="632" Column="23" TopLine="593"/>
<Caret Line="631" Column="37" TopLine="592"/>
</Position15>
<Position16>
<Filename Value="umain.pas"/>
<Caret Line="636" Column="65" TopLine="597"/>
<Caret Line="632" Column="23" TopLine="593"/>
</Position16>
<Position17>
<Filename Value="umain.pas"/>
<Caret Line="638" Column="37" TopLine="599"/>
<Caret Line="636" Column="65" TopLine="597"/>
</Position17>
<Position18>
<Filename Value="umain.pas"/>
<Caret Line="639" Column="23" TopLine="600"/>
<Caret Line="638" Column="37" TopLine="599"/>
</Position18>
<Position19>
<Filename Value="umain.pas"/>
<Caret Line="710" Column="61" TopLine="670"/>
<Caret Line="639" Column="23" TopLine="600"/>
</Position19>
<Position20>
<Filename Value="umain.pas"/>
<Caret Line="397" TopLine="360"/>
<Caret Line="710" Column="61" TopLine="670"/>
</Position20>
<Position21>
<Filename Value="umain.pas"/>
<Caret Line="441" Column="5" TopLine="414"/>
<Caret Line="397" TopLine="360"/>
</Position21>
<Position22>
<Filename Value="umain.pas"/>
<Caret Line="444" Column="42" TopLine="141"/>
<Caret Line="441" Column="5" TopLine="414"/>
</Position22>
<Position23>
<Filename Value="umain.pas"/>
<Caret Line="386" Column="27" TopLine="377"/>
<Caret Line="444" Column="42" TopLine="141"/>
</Position23>
<Position24>
<Filename Value="umain.pas"/>
<Caret Line="431" Column="18" TopLine="417"/>
<Caret Line="386" Column="27" TopLine="377"/>
</Position24>
<Position25>
<Filename Value="umain.pas"/>
<Caret Line="367" Column="18" TopLine="363"/>
<Caret Line="431" Column="18" TopLine="417"/>
</Position25>
<Position26>
<Filename Value="umain.pas"/>
<Caret Line="36" Column="71" TopLine="10"/>
<Caret Line="367" Column="18" TopLine="363"/>
</Position26>
<Position27>
<Filename Value="umain.pas"/>
<Caret Line="700" TopLine="682"/>
<Caret Line="36" Column="71" TopLine="10"/>
</Position27>
<Position28>
<Filename Value="umain.pas"/>
<Caret Line="31" Column="60" TopLine="13"/>
<Caret Line="700" TopLine="682"/>
</Position28>
<Position29>
<Filename Value="umain.pas"/>
<Caret Line="417" Column="45" TopLine="393"/>
<Caret Line="31" Column="60" TopLine="13"/>
</Position29>
<Position30>
<Filename Value="umain.pas"/>
<Caret Line="37" Column="66" TopLine="19"/>
<Caret Line="417" Column="45" TopLine="393"/>
</Position30>
</JumpHistory>
</ProjectSession>

View File

@ -1,7 +1,7 @@
unit umain;
{ OnlinePackageManager Update JSON Editor
Copyright (C)2016 usernames lainz, minesadorada @ http://forum.lazarus.freepascal.org/index.php
Copyright (C)2016 usernames lainz, minesadorada, GetMem @ http://forum.lazarus.freepascal.org/index.php
This source is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
@ -33,8 +33,9 @@ unit umain;
Comment out Self.AutoAdjustLayout line in Form.Create (GetMem)
Removed StrUtils from uses (minesadorada)
Fixed memory leaks with CFG and slErrorList (minesadorada)
Moved inline procedure CreateUniqueINI to separate function (minesadorada)
Added Const C_DEBUGMESSAGES=TRUE/FALSE (minesadorada)
Moved inline procedure CreateUniqueINI to separate function
Added Const C_DEBUGMESSAGES=TRUE/FALSE
0.1.14.0: Various changes (GetMem)
}
{$mode objfpc}{$H+}
@ -51,8 +52,7 @@ CONST C_DEBUGMESSAGES=FALSE;
type
{ TPackage }
{ TUpdatePackageFiles }
TUpdatePackageFiles = class(TCollectionItem)
@ -81,18 +81,20 @@ type
property DownloadZipURL: string read FDownloadZipURL write FDownloadZipURL;
end;
TPackage = class(TPersistent)
{ TUpdatePackage }
TUpdatePackage = class(TPersistent)
private
FPackage: TUpdatePackageData;
FPackageFiles: TPackageFilesList;
FUpdatePackageData: TUpdatePackageData;
FUpdatePackageFiles: TPackageFilesList;
public
constructor Create;
destructor Destroy; override;
function LoadFromFile(AFileName: string): boolean;
function SaveToFile(AFileName: string): boolean;
published
property Package: TUpdatePackageData read FPackage write FPackage;
property PackageFiles: TPackageFilesList read FPackageFiles write FPackageFiles;
property UpdatePackageData: TUpdatePackageData read FUpdatePackageData write FUpdatePackageData;
property UpdatePackageFiles: TPackageFilesList read FUpdatePackageFiles write FUpdatePackageFiles;
end;
{ TfrmMain }
@ -149,7 +151,7 @@ type
procedure spd_CheckURLClick(Sender: TObject);
private
{ private declarations }
JSONPackage: TPackage;
JSONPackage: TUpdatePackage;
bForceSaveAs, bShowPopupHints, bDisableWarnings, bDirty, bIsVirgin: boolean;
sJSONFilePath: string;
sUpdateDirectory, sZipDirectory: string;
@ -375,16 +377,13 @@ begin
begin
if MessageDlg(rsFileMayBeUns, mtConfirmation, [mbYes, mbNo], 0, mbNo) = mrNo then
CanClose := False;
end
else
begin
CFG.WriteBool('Options', 'Virgin', False);
CFG.WriteBool('Options', 'DiableWarnings', bDisableWarnings);
CFG.UpdateFile;
Application.ProcessMessages;
CFG.Free;
slErrorList.Free;
end;
CFG.WriteBool('Options', 'Virgin', False);
CFG.WriteBool('Options', 'DiableWarnings', bDisableWarnings);
CFG.UpdateFile;
Application.ProcessMessages;
CFG.Free;
slErrorList.Free;
end;
function TfrmMain.CreateUniqueINI(var aCount: integer):Boolean;
// Recursively loop until correct INI found, or new one created
@ -407,10 +406,8 @@ var
sLang: string;
iIniCount:Integer;
begin
{
Self.AutoAdjustLayout(lapAutoAdjustForDPI, Self.DesignTimeDPI,
Screen.PixelsPerInch, Self.Width, ScaleX(Self.Width, Self.DesignTimeDPI));
}
// Enable AutoSize again to get correct Height
editName.AutoSize := True;
editDownloadZipURL.AutoSize := True;
@ -480,19 +477,19 @@ begin
begin
sJSONFilePath := FileOpen1.Dialog.Filename;
CFG.WriteString('Options', 'LastLoadedJSONPath', ExtractFileDir(sJSONFilePath));
JSONPackage := TPackage.Create;
JSONPackage := TUpdatePackage.Create;
try
if JSONPackage.LoadFromFile(FileOpen1.Dialog.FileName) then
begin
editName.Text := JSONPackage.Package.Name;
editDownloadZipURL.Text := JSONPackage.Package.DownloadZipURL;
cbForceUpdate.Checked := JSONPackage.Package.ForceUpdate;
editName.Text := JSONPackage.UpdatePackageData.Name;
editDownloadZipURL.Text := JSONPackage.UpdatePackageData.DownloadZipURL;
cbForceUpdate.Checked := JSONPackage.UpdatePackageData.ForceUpdate;
stringPackageFiles.RowCount := JSONPackage.PackageFiles.Count + 1;
for i := 0 to JSONPackage.PackageFiles.Count - 1 do
stringPackageFiles.RowCount := JSONPackage.UpdatePackageFiles.Count + 1;
for i := 0 to JSONPackage.UpdatePackageFiles.Count - 1 do
begin
stringPackageFiles.Cells[0, i + 1] := JSONPackage.PackageFiles.Items[i].Name;
stringPackageFiles.Cells[1, i + 1] := JSONPackage.PackageFiles.Items[i].Version;
stringPackageFiles.Cells[0, i + 1] := JSONPackage.UpdatePackageFiles.Items[i].Name;
stringPackageFiles.Cells[1, i + 1] := JSONPackage.UpdatePackageFiles.Items[i].Version;
end;
end
else
@ -727,15 +724,15 @@ begin
Exit;
end;
JSONPackage := TPackage.Create;
JSONPackage := TUpdatePackage.Create;
try
JSONPackage.Package.Name := editName.Text;
JSONPackage.Package.DownloadZipURL := editDownloadZipURL.Text;
JSONPackage.Package.ForceUpdate := cbForceUpdate.Checked;
JSONPackage.UpdatePackageData.Name := editName.Text;
JSONPackage.UpdatePackageData.DownloadZipURL := editDownloadZipURL.Text;
JSONPackage.UpdatePackageData.ForceUpdate := cbForceUpdate.Checked;
for i := 1 to stringPackageFiles.RowCount - 1 do
begin
with JSONPackage.PackageFiles.Add do
with JSONPackage.UpdatePackageFiles.Add do
begin
Name := stringPackageFiles.Cells[0, i];
Version := stringPackageFiles.Cells[1, i];
@ -801,24 +798,24 @@ end;
{ TPackage }
constructor TPackage.Create;
constructor TUpdatePackage.Create;
begin
FPackage := TUpdatePackageData.Create;
FPackageFiles := TPackageFilesList.Create;
FUpdatePackageData := TUpdatePackageData.Create;
FUpdatePackageFiles := TPackageFilesList.Create;
end;
destructor TPackage.Destroy;
destructor TUpdatePackage.Destroy;
var
c: TCollectionItem;
begin
FPackage.Free;
for c in FPackageFiles do
FUpdatePackageData.Free;
for c in FUpdatePackageFiles do
c.Free;
FPackageFiles.Free;
FUpdatePackageFiles.Free;
inherited Destroy;
end;
function TPackage.LoadFromFile(AFileName: string): boolean;
function TUpdatePackage.LoadFromFile(AFileName: string): boolean;
var
DeStreamer: TJSONDeStreamer;
s: TStringList;
@ -841,7 +838,7 @@ begin
end;
end;
function TPackage.SaveToFile(AFileName: string): boolean;
function TUpdatePackage.SaveToFile(AFileName: string): boolean;
var
Streamer: TJSONStreamer;
s: TStringList;