PipxInterface/PipxWidget.py

changeset 83
d841c572a465
parent 81
b6280afecc83
child 90
0949844ea0e3
--- a/PipxInterface/PipxWidget.py	Tue Sep 17 11:04:00 2024 +0200
+++ b/PipxInterface/PipxWidget.py	Tue Sep 17 11:35:31 2024 +0200
@@ -97,6 +97,12 @@
 
         QTimer.singleShot(0, self.__populatePackages)
 
+        self.__outdatedCheckTimer = QTimer(self)
+        self.__outdatedCheckTimer.timeout.connect(self.__checkOutdatedPackages)
+
+        self.__plugin.preferencesChanged.connect(self.__setOutdatedCheckTimer)
+        QTimer.singleShot(10, self.__setOutdatedCheckTimer)
+
     @pyqtSlot()
     def shutdown(self):
         """
@@ -429,6 +435,23 @@
             self.__checkPackageOutdated(itm)
 
     @pyqtSlot()
+    def __setOutdatedCheckTimer(self):
+        """
+        Private slot to configure the periodic outdated packages check.
+        """
+        interval = self.__plugin.getPreferences("PeriodicOutdatedCheckInterval")
+        # interval is in hours
+        if interval:
+            self.__outdatedCheckTimer.setInterval(
+                interval * 3_600_000  # interval in ms
+            )
+            self.__outdatedCheckTimer.start()
+        else:
+            self.__outdatedCheckTimer.stop()
+
+        self.__plugin.setOutdatedIndicator(self.__hasOutdatedItems())
+
+    @pyqtSlot()
     def __upgradePackage(self):
         """
         Private slot to upgrade the selected package.

eric ide

mercurial