eric6/UI/UserInterface.py

changeset 7948
6cbd0c086887
parent 7947
e609e65bbcfd
child 7952
1849f61cf2b6
equal deleted inserted replaced
7947:e609e65bbcfd 7948:6cbd0c086887
7003 7003
7004 @param manual flag indicating an invocation via the menu (boolean) 7004 @param manual flag indicating an invocation via the menu (boolean)
7005 @param alternative index of server to download from (integer) 7005 @param alternative index of server to download from (integer)
7006 @param showVersions flag indicating the show versions mode (boolean) 7006 @param showVersions flag indicating the show versions mode (boolean)
7007 """ 7007 """
7008 if self.isOnline(): 7008 if not manual:
7009 if not manual: 7009 if VersionOnly.startswith("@@"):
7010 if VersionOnly.startswith("@@"): 7010 return
7011 else:
7012 period = Preferences.getUI("PerformVersionCheck")
7013 if period == 0:
7011 return 7014 return
7012 else: 7015 elif period in [2, 3, 4]:
7013 period = Preferences.getUI("PerformVersionCheck") 7016 lastCheck = Preferences.Prefs.settings.value(
7014 if period == 0: 7017 "Updates/LastCheckDate", QDate(1970, 1, 1))
7015 return 7018 if lastCheck.isValid():
7016 elif period in [2, 3, 4]: 7019 now = QDate.currentDate()
7017 lastCheck = Preferences.Prefs.settings.value( 7020 if period == 2 and lastCheck.day() == now.day():
7018 "Updates/LastCheckDate", QDate(1970, 1, 1)) 7021 # daily
7019 if lastCheck.isValid(): 7022 return
7020 now = QDate.currentDate() 7023 elif period == 3 and lastCheck.daysTo(now) < 7:
7021 if period == 2 and lastCheck.day() == now.day(): 7024 # weekly
7022 # daily 7025 return
7023 return 7026 elif period == 4 and (lastCheck.daysTo(now) <
7024 elif period == 3 and lastCheck.daysTo(now) < 7: 7027 lastCheck.daysInMonth()):
7025 # weekly 7028 # monthly
7026 return 7029 return
7027 elif period == 4 and (lastCheck.daysTo(now) < 7030
7028 lastCheck.daysInMonth()): 7031 self.__inVersionCheck = True
7029 # monthly 7032 self.manualUpdatesCheck = manual
7030 return 7033 self.showAvailableVersions = showVersions
7031 7034 self.httpAlternative = alternative
7032 self.__inVersionCheck = True 7035 url = QUrl(self.__httpAlternatives[alternative])
7033 self.manualUpdatesCheck = manual 7036 self.__versionCheckCanceled = False
7034 self.showAvailableVersions = showVersions 7037 if manual:
7035 self.httpAlternative = alternative 7038 if self.__versionCheckProgress is None:
7036 url = QUrl(self.__httpAlternatives[alternative]) 7039 self.__versionCheckProgress = E5ProgressDialog(
7037 self.__versionCheckCanceled = False 7040 "", self.tr("&Cancel"),
7038 if manual: 7041 0, len(self.__httpAlternatives),
7039 if self.__versionCheckProgress is None: 7042 self.tr("%v/%m"), self)
7040 self.__versionCheckProgress = E5ProgressDialog( 7043 self.__versionCheckProgress.setWindowTitle(
7041 "", self.tr("&Cancel"), 7044 self.tr("Version Check"))
7042 0, len(self.__httpAlternatives), 7045 self.__versionCheckProgress.setMinimumDuration(0)
7043 self.tr("%v/%m"), self) 7046 self.__versionCheckProgress.canceled.connect(
7044 self.__versionCheckProgress.setWindowTitle( 7047 self.__versionsDownloadCanceled)
7045 self.tr("Version Check")) 7048 self.__versionCheckProgress.setLabelText(
7046 self.__versionCheckProgress.setMinimumDuration(0) 7049 self.tr("Trying host {0}").format(url.host()))
7047 self.__versionCheckProgress.canceled.connect( 7050 self.__versionCheckProgress.setValue(alternative)
7048 self.__versionsDownloadCanceled) 7051 request = QNetworkRequest(url)
7049 self.__versionCheckProgress.setLabelText( 7052 request.setAttribute(QNetworkRequest.CacheLoadControlAttribute,
7050 self.tr("Trying host {0}").format(url.host())) 7053 QNetworkRequest.AlwaysNetwork)
7051 self.__versionCheckProgress.setValue(alternative) 7054 reply = self.__networkManager.get(request)
7052 request = QNetworkRequest(url) 7055 reply.finished.connect(lambda: self.__versionsDownloadDone(reply))
7053 request.setAttribute(QNetworkRequest.CacheLoadControlAttribute, 7056 self.__replies.append(reply)
7054 QNetworkRequest.AlwaysNetwork) 7057
7055 reply = self.__networkManager.get(request)
7056 reply.finished.connect(lambda: self.__versionsDownloadDone(reply))
7057 self.__replies.append(reply)
7058 else:
7059 if manual:
7060 E5MessageBox.warning(
7061 self,
7062 self.tr("Error getting versions information"),
7063 self.tr("""The versions information cannot not be"""
7064 """ downloaded because you are <b>offline</b>."""
7065 """ Please go online and try again."""))
7066
7067 @pyqtSlot() 7058 @pyqtSlot()
7068 def __versionsDownloadDone(self, reply): 7059 def __versionsDownloadDone(self, reply):
7069 """ 7060 """
7070 Private slot called, after the versions file has been downloaded 7061 Private slot called, after the versions file has been downloaded
7071 from the internet. 7062 from the internet.

eric ide

mercurial