5950 |
5963 |
5951 @param manual flag indicating an invocation via the menu (boolean) |
5964 @param manual flag indicating an invocation via the menu (boolean) |
5952 @param alternative index of server to download from (integer) |
5965 @param alternative index of server to download from (integer) |
5953 @keyparam showVersions flag indicating the show versions mode (boolean) |
5966 @keyparam showVersions flag indicating the show versions mode (boolean) |
5954 """ |
5967 """ |
5955 if not manual: |
5968 if self.isOnline(): |
5956 if Version.startswith("@@"): |
5969 if not manual: |
5957 return |
5970 if Version.startswith("@@"): |
5958 else: |
|
5959 period = Preferences.getUI("PerformVersionCheck") |
|
5960 if period == 0: |
|
5961 return |
5971 return |
5962 elif period in [2, 3, 4]: |
5972 else: |
5963 lastCheck = Preferences.Prefs.settings.value( |
5973 period = Preferences.getUI("PerformVersionCheck") |
5964 "Updates/LastCheckDate", QDate(1970, 1, 1)) |
5974 if period == 0: |
5965 if lastCheck.isValid(): |
5975 return |
5966 now = QDate.currentDate() |
5976 elif period in [2, 3, 4]: |
5967 if period == 2 and lastCheck.day() == now.day(): |
5977 lastCheck = Preferences.Prefs.settings.value( |
5968 # daily |
5978 "Updates/LastCheckDate", QDate(1970, 1, 1)) |
5969 return |
5979 if lastCheck.isValid(): |
5970 elif period == 3 and lastCheck.daysTo(now) < 7: |
5980 now = QDate.currentDate() |
5971 # weekly |
5981 if period == 2 and lastCheck.day() == now.day(): |
5972 return |
5982 # daily |
5973 elif period == 4 and (lastCheck.daysTo(now) < |
5983 return |
5974 lastCheck.daysInMonth()): |
5984 elif period == 3 and lastCheck.daysTo(now) < 7: |
5975 # monthly |
5985 # weekly |
5976 return |
5986 return |
5977 |
5987 elif period == 4 and (lastCheck.daysTo(now) < |
5978 self.__inVersionCheck = True |
5988 lastCheck.daysInMonth()): |
5979 self.manualUpdatesCheck = manual |
5989 # monthly |
5980 self.showAvailableVersions = showVersions |
5990 return |
5981 self.httpAlternative = alternative |
5991 |
5982 url = QUrl(self.__httpAlternatives[alternative]) |
5992 self.__inVersionCheck = True |
5983 self.__versionCheckCanceled = False |
5993 self.manualUpdatesCheck = manual |
5984 if manual: |
5994 self.showAvailableVersions = showVersions |
5985 if self.__versionCheckProgress is None: |
5995 self.httpAlternative = alternative |
5986 self.__versionCheckProgress = E5ProgressDialog( |
5996 url = QUrl(self.__httpAlternatives[alternative]) |
5987 "", self.tr("&Cancel"), |
5997 self.__versionCheckCanceled = False |
5988 0, len(self.__httpAlternatives), |
5998 if manual: |
5989 self.tr("%v/%m"), self) |
5999 if self.__versionCheckProgress is None: |
5990 self.__versionCheckProgress.setWindowTitle( |
6000 self.__versionCheckProgress = E5ProgressDialog( |
5991 self.tr("Version Check")) |
6001 "", self.tr("&Cancel"), |
5992 self.__versionCheckProgress.setMinimumDuration(0) |
6002 0, len(self.__httpAlternatives), |
5993 self.__versionCheckProgress.canceled.connect( |
6003 self.tr("%v/%m"), self) |
5994 self.__versionsDownloadCanceled) |
6004 self.__versionCheckProgress.setWindowTitle( |
5995 self.__versionCheckProgress.setLabelText( |
6005 self.tr("Version Check")) |
5996 self.tr("Trying host {0}").format(url.host())) |
6006 self.__versionCheckProgress.setMinimumDuration(0) |
5997 self.__versionCheckProgress.setValue(alternative) |
6007 self.__versionCheckProgress.canceled.connect( |
5998 request = QNetworkRequest(url) |
6008 self.__versionsDownloadCanceled) |
5999 request.setAttribute(QNetworkRequest.CacheLoadControlAttribute, |
6009 self.__versionCheckProgress.setLabelText( |
6000 QNetworkRequest.AlwaysNetwork) |
6010 self.tr("Trying host {0}").format(url.host())) |
6001 reply = self.__networkManager.get(request) |
6011 self.__versionCheckProgress.setValue(alternative) |
6002 reply.finished.connect(self.__versionsDownloadDone) |
6012 request = QNetworkRequest(url) |
6003 self.__replies.append(reply) |
6013 request.setAttribute(QNetworkRequest.CacheLoadControlAttribute, |
|
6014 QNetworkRequest.AlwaysNetwork) |
|
6015 reply = self.__networkManager.get(request) |
|
6016 reply.finished.connect(self.__versionsDownloadDone) |
|
6017 self.__replies.append(reply) |
|
6018 else: |
|
6019 if manual: |
|
6020 E5MessageBox.warning( |
|
6021 self, |
|
6022 self.tr("Error getting versions information"), |
|
6023 self.tr("""The versions information cannot not be""" |
|
6024 """ downloaded because you are <b>offline</b>.""" |
|
6025 """ Please go online and try again.""")) |
6004 |
6026 |
6005 @pyqtSlot() |
6027 @pyqtSlot() |
6006 def __versionsDownloadDone(self): |
6028 def __versionsDownloadDone(self): |
6007 """ |
6029 """ |
6008 Private slot called, after the versions file has been downloaded |
6030 Private slot called, after the versions file has been downloaded |