mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-13 18:49:19 +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
|
||||
LazIDEIntf, PackageIntf, PackageLinkIntf, PackageDependencyIntf, IDECommands,
|
||||
// OPM
|
||||
opkman_downloader, opkman_serializablepackages, opkman_installer, opkman_updates;
|
||||
opkman_downloader, opkman_serializablepackages, opkman_installer, opkman_mainfrm;
|
||||
|
||||
type
|
||||
|
||||
@ -117,14 +117,6 @@ begin
|
||||
if Assigned(PackageDownloader) then
|
||||
if PackageDownloader.DownloadingJSON then
|
||||
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;
|
||||
|
||||
|
||||
@ -145,12 +137,10 @@ begin
|
||||
FTimer.Enabled := False;
|
||||
if (not LazarusIDE.IDEIsClosing) then
|
||||
begin
|
||||
if Options.CheckForUpdates <> 5 then
|
||||
if (Options.CheckForUpdates <> 5) and (not Assigned(MainFrm)) then
|
||||
begin
|
||||
PackageDownloader.DownloadJSON(Options.ConTimeOut*1000, True);
|
||||
LazarusIDE.AddHandlerOnIDEClose(@DoOnIDEClose);
|
||||
Updates := TUpdates.Create;
|
||||
Updates.StartUpdate;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
@ -9,6 +9,7 @@ object MainFrm: TMainFrm
|
||||
Constraints.MinHeight = 400
|
||||
Constraints.MinWidth = 700
|
||||
KeyPreview = True
|
||||
OnCloseQuery = FormCloseQuery
|
||||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
OnKeyDown = FormKeyDown
|
||||
|
@ -38,7 +38,7 @@ uses
|
||||
// IdeIntf
|
||||
IDECommands, PackageIntf,
|
||||
// OpkMan
|
||||
opkman_downloader, opkman_installer,
|
||||
opkman_downloader, opkman_installer, opkman_updates,
|
||||
opkman_serializablepackages, opkman_visualtree, opkman_const, opkman_common,
|
||||
opkman_progressfrm, opkman_zipper, opkman_packagelistfrm, opkman_options,
|
||||
opkman_optionsfrm, opkman_createrepositorypackagefrm, opkman_maindm,
|
||||
@ -114,6 +114,7 @@ type
|
||||
tbUpdate: TToolButton;
|
||||
tbOpenRepo: TToolButton;
|
||||
procedure bReturnClick(Sender: TObject);
|
||||
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
||||
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||
procedure miCopyToClpBrdClick(Sender: TObject);
|
||||
procedure miCreateJSONForUpdatesClick(Sender: TObject);
|
||||
@ -234,6 +235,8 @@ begin
|
||||
SetupControls;
|
||||
SetupColors;
|
||||
GetPackageList;
|
||||
Updates := TUpdates.Create;
|
||||
Updates.StartUpdate;
|
||||
end
|
||||
end;
|
||||
|
||||
@ -1256,6 +1259,18 @@ begin
|
||||
miJSONShowClick(miJSONShow);
|
||||
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);
|
||||
var
|
||||
|
Loading…
Reference in New Issue
Block a user