mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 02:19:32 +02:00
Opkman: Move update thread to main form.
git-svn-id: trunk@60492 -
This commit is contained in:
parent
5207c624ac
commit
bcc2eb9097
@ -34,7 +34,7 @@ uses
|
|||||||
// IdeIntf
|
// IdeIntf
|
||||||
LazIDEIntf, PackageIntf, PackageLinkIntf, PackageDependencyIntf, IDECommands,
|
LazIDEIntf, PackageIntf, PackageLinkIntf, PackageDependencyIntf, IDECommands,
|
||||||
// OPM
|
// OPM
|
||||||
opkman_downloader, opkman_serializablepackages, opkman_installer, opkman_updates;
|
opkman_downloader, opkman_serializablepackages, opkman_installer, opkman_mainfrm;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
@ -117,14 +117,6 @@ begin
|
|||||||
if Assigned(PackageDownloader) then
|
if Assigned(PackageDownloader) then
|
||||||
if PackageDownloader.DownloadingJSON then
|
if PackageDownloader.DownloadingJSON then
|
||||||
PackageDownloader.Cancel;
|
PackageDownloader.Cancel;
|
||||||
if Assigned(Updates) then
|
|
||||||
begin
|
|
||||||
Updates.StopUpdate;
|
|
||||||
Updates.Terminate;
|
|
||||||
while Assigned(Updates) do
|
|
||||||
CheckSynchronize(100); // wait for update thread to terminate
|
|
||||||
// Remains the slightest chance of a mem leak, since the update thread needs still enough cpu time to finish running the destructor
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -145,12 +137,10 @@ begin
|
|||||||
FTimer.Enabled := False;
|
FTimer.Enabled := False;
|
||||||
if (not LazarusIDE.IDEIsClosing) then
|
if (not LazarusIDE.IDEIsClosing) then
|
||||||
begin
|
begin
|
||||||
if Options.CheckForUpdates <> 5 then
|
if (Options.CheckForUpdates <> 5) and (not Assigned(MainFrm)) then
|
||||||
begin
|
begin
|
||||||
PackageDownloader.DownloadJSON(Options.ConTimeOut*1000, True);
|
PackageDownloader.DownloadJSON(Options.ConTimeOut*1000, True);
|
||||||
LazarusIDE.AddHandlerOnIDEClose(@DoOnIDEClose);
|
LazarusIDE.AddHandlerOnIDEClose(@DoOnIDEClose);
|
||||||
Updates := TUpdates.Create;
|
|
||||||
Updates.StartUpdate;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
@ -9,6 +9,7 @@ object MainFrm: TMainFrm
|
|||||||
Constraints.MinHeight = 400
|
Constraints.MinHeight = 400
|
||||||
Constraints.MinWidth = 700
|
Constraints.MinWidth = 700
|
||||||
KeyPreview = True
|
KeyPreview = True
|
||||||
|
OnCloseQuery = FormCloseQuery
|
||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
OnDestroy = FormDestroy
|
OnDestroy = FormDestroy
|
||||||
OnKeyDown = FormKeyDown
|
OnKeyDown = FormKeyDown
|
||||||
|
@ -38,7 +38,7 @@ uses
|
|||||||
// IdeIntf
|
// IdeIntf
|
||||||
IDECommands, PackageIntf,
|
IDECommands, PackageIntf,
|
||||||
// OpkMan
|
// OpkMan
|
||||||
opkman_downloader, opkman_installer,
|
opkman_downloader, opkman_installer, opkman_updates,
|
||||||
opkman_serializablepackages, opkman_visualtree, opkman_const, opkman_common,
|
opkman_serializablepackages, opkman_visualtree, opkman_const, opkman_common,
|
||||||
opkman_progressfrm, opkman_zipper, opkman_packagelistfrm, opkman_options,
|
opkman_progressfrm, opkman_zipper, opkman_packagelistfrm, opkman_options,
|
||||||
opkman_optionsfrm, opkman_createrepositorypackagefrm, opkman_maindm,
|
opkman_optionsfrm, opkman_createrepositorypackagefrm, opkman_maindm,
|
||||||
@ -114,6 +114,7 @@ type
|
|||||||
tbUpdate: TToolButton;
|
tbUpdate: TToolButton;
|
||||||
tbOpenRepo: TToolButton;
|
tbOpenRepo: TToolButton;
|
||||||
procedure bReturnClick(Sender: TObject);
|
procedure bReturnClick(Sender: TObject);
|
||||||
|
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
||||||
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||||
procedure miCopyToClpBrdClick(Sender: TObject);
|
procedure miCopyToClpBrdClick(Sender: TObject);
|
||||||
procedure miCreateJSONForUpdatesClick(Sender: TObject);
|
procedure miCreateJSONForUpdatesClick(Sender: TObject);
|
||||||
@ -234,6 +235,8 @@ begin
|
|||||||
SetupControls;
|
SetupControls;
|
||||||
SetupColors;
|
SetupColors;
|
||||||
GetPackageList;
|
GetPackageList;
|
||||||
|
Updates := TUpdates.Create;
|
||||||
|
Updates.StartUpdate;
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1256,6 +1259,18 @@ begin
|
|||||||
miJSONShowClick(miJSONShow);
|
miJSONShowClick(miJSONShow);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TMainFrm.FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
||||||
|
begin
|
||||||
|
if Assigned(Updates) then
|
||||||
|
begin
|
||||||
|
Updates.StopUpdate;
|
||||||
|
Updates.Terminate;
|
||||||
|
while Assigned(Updates) do
|
||||||
|
CheckSynchronize(100); // wait for update thread to terminate
|
||||||
|
// Remains the slightest chance of a mem leak, since the update thread needs still enough cpu time to finish running the destructor
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TMainFrm.miNameAscClick(Sender: TObject);
|
procedure TMainFrm.miNameAscClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
|
Loading…
Reference in New Issue
Block a user