From 0e58363f6e7753828650b8b0214953f1c21f00d5 Mon Sep 17 00:00:00 2001 From: balazs Date: Tue, 6 Oct 2020 18:28:09 +0000 Subject: [PATCH] Opkman: Improve OPM interface. git-svn-id: trunk@63965 - --- components/buildintf/packagelinkintf.pas | 2 ++ .../onlinepackagemanager/opkman_intf.pas | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/components/buildintf/packagelinkintf.pas b/components/buildintf/packagelinkintf.pas index 93bafc94de..8fc9c28ca2 100644 --- a/components/buildintf/packagelinkintf.pas +++ b/components/buildintf/packagelinkintf.pas @@ -124,6 +124,8 @@ type function FindOnlineLink(const AName: String): TPackageLink; virtual; abstract; procedure AddPackageListNotification(ANotification: TNotifyEvent); virtual; abstract; procedure RemovePackageListNotification(ANotification: TNotifyEvent); virtual; abstract; + function IsPackageListLoaded: Boolean; virtual; abstract; + procedure GetPackageList; virtual; abstract; end; var diff --git a/components/onlinepackagemanager/opkman_intf.pas b/components/onlinepackagemanager/opkman_intf.pas index 0454a100c7..681edf5b2b 100644 --- a/components/onlinepackagemanager/opkman_intf.pas +++ b/components/onlinepackagemanager/opkman_intf.pas @@ -77,6 +77,8 @@ type function FindOnlineLink(const AName: String): TPackageLink; override; procedure AddPackageListNotification(ANotification: TNotifyEvent); override; procedure RemovePackageListNotification(ANotification: TNotifyEvent); override; + function IsPackageListLoaded: Boolean; override; + procedure GetPackageList; override; end; implementation @@ -147,10 +149,7 @@ begin if (not LazarusIDE.IDEIsClosing) then begin if (Options.CheckForUpdates <> 5) and (not Assigned(MainFrm)) then - begin - PackageDownloader.DownloadJSON(Options.ConTimeOut*1000, True); - LazarusIDE.AddHandlerOnIDEClose(@DoOnIDEClose); - end; + GetPackageList; end; end; end; @@ -198,6 +197,17 @@ begin FPackageListNotifications.Remove(TMethod(ANotification)); end; +function TOPMInterfaceEx.IsPackageListLoaded: Boolean; +begin + Result := Assigned(SerializablePackages) and (SerializablePackages.Count > 0); +end; + +procedure TOPMInterfaceEx.GetPackageList; +begin + PackageDownloader.DownloadJSON(Options.ConTimeOut*1000, True); + LazarusIDE.AddHandlerOnIDEClose(@DoOnIDEClose); +end; + procedure TOPMInterfaceEx.SynchronizePackages; var I, J: Integer;