--- 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.