eric7/PluginManager/PluginManager.py

branch
eric7
changeset 9031
8c9013b363bc
parent 9016
6f079c524e99
child 9134
8caa0936e258
--- a/eric7/PluginManager/PluginManager.py	Wed Apr 20 15:10:04 2022 +0200
+++ b/eric7/PluginManager/PluginManager.py	Fri Apr 22 16:43:25 2022 +0200
@@ -63,6 +63,8 @@
         before a plugin is deactivated
     @signal pluginDeactivated(moduleName, pluginObject) emitted just after
         a plugin was deactivated
+    @signal pluginRepositoryFileDownloaded() emitted to indicate a completed
+        download of the plugin repository file
     """
     shutdown = pyqtSignal()
     pluginAboutToBeActivated = pyqtSignal(str, object)
@@ -70,6 +72,7 @@
     allPlugginsActivated = pyqtSignal()
     pluginAboutToBeDeactivated = pyqtSignal(str, object)
     pluginDeactivated = pyqtSignal(str, object)
+    pluginRepositoryFileDownloaded = pyqtSignal()
     
     def __init__(self, parent=None, disabledPlugins=None, doLoadPlugins=True,
                  develPlugin=None):
@@ -1231,8 +1234,15 @@
         Public method to check the availability of updates of plug-ins.
         """
         period = Preferences.getPluginManager("UpdatesCheckInterval")
+        # 0 = off
+        # 1 = daily
+        # 2 = weekly
+        # 3 = monthly
+        # 4 = always
+        
         if period == 0 or not self.__ui.isOnline():
             return
+        
         elif period in [1, 2, 3]:
             lastModified = QFileInfo(self.pluginRepositoryFile).lastModified()
             if lastModified.isValid() and lastModified.date().isValid():
@@ -1247,10 +1257,21 @@
                     # daily, weekly, monthly
                     return
         
+        self.downLoadRepositoryFile()
+    
+    def downLoadRepositoryFile(self, url=None):
+        """
+        Public method to download the plugin repository file.
+        
+        @param url URL to get the plugin repository file from
+            (defaults to None)
+        @type QUrl or str (optional)
+        """
         self.__updateAvailable = False
         
-        request = QNetworkRequest(
-            QUrl(Preferences.getUI("PluginRepositoryUrl7")))
+        if url is None:
+            url = Preferences.getUI("PluginRepositoryUrl7")
+        request = QNetworkRequest(QUrl(url))
         request.setAttribute(
             QNetworkRequest.Attribute.CacheLoadControlAttribute,
             QNetworkRequest.CacheLoadControl.AlwaysNetwork)
@@ -1310,6 +1331,8 @@
                 
                 if self.__updateAvailable:
                     self.__ui.activatePluginRepositoryViewer()
+                else:
+                    self.pluginRepositoryFileDownloaded.emit()
     
     def checkPluginEntry(self, name, short, description, url, author, version,
                          filename, status):

eric ide

mercurial