UI/UserInterface.py

changeset 4629
99aaac59be4f
parent 4621
b46304716d28
child 4630
7b0e38956b5c
equal deleted inserted replaced
4627:a33560bd2d2d 4629:99aaac59be4f
49 import Preferences 49 import Preferences
50 import Utilities 50 import Utilities
51 51
52 import UI.PixmapCache 52 import UI.PixmapCache
53 53
54 from E5Network.E5NetworkIcon import E5NetworkIcon
54 from E5Network.E5NetworkProxyFactory import E5NetworkProxyFactory, \ 55 from E5Network.E5NetworkProxyFactory import E5NetworkProxyFactory, \
55 proxyAuthenticationRequired 56 proxyAuthenticationRequired
56 try: 57 try:
57 from E5Network.E5SslErrorHandler import E5SslErrorHandler 58 from E5Network.E5SslErrorHandler import E5SslErrorHandler
58 SSL_AVAILABLE = True 59 SSL_AVAILABLE = True
2816 self.sbLanguage, self.sbEol, self.sbZoom) 2817 self.sbLanguage, self.sbEol, self.sbZoom)
2817 2818
2818 from VCS.StatusMonitorLed import StatusMonitorLed 2819 from VCS.StatusMonitorLed import StatusMonitorLed
2819 self.sbVcsMonitorLed = StatusMonitorLed(self.project, self.__statusBar) 2820 self.sbVcsMonitorLed = StatusMonitorLed(self.project, self.__statusBar)
2820 self.__statusBar.addPermanentWidget(self.sbVcsMonitorLed) 2821 self.__statusBar.addPermanentWidget(self.sbVcsMonitorLed)
2822
2823 self.networkIcon = E5NetworkIcon(self.__statusBar)
2824 self.__statusBar.addPermanentWidget(self.networkIcon)
2821 2825
2822 def __initExternalToolsActions(self): 2826 def __initExternalToolsActions(self):
2823 """ 2827 """
2824 Private slot to create actions for the configured external tools. 2828 Private slot to create actions for the configured external tools.
2825 """ 2829 """
5929 self.__saveCurrentViewProfile(True) 5933 self.__saveCurrentViewProfile(True)
5930 Preferences.saveToolGroups(self.toolGroups, self.currentToolGroup) 5934 Preferences.saveToolGroups(self.toolGroups, self.currentToolGroup)
5931 Preferences.syncPreferences() 5935 Preferences.syncPreferences()
5932 self.shutdownCalled = True 5936 self.shutdownCalled = True
5933 return True 5937 return True
5938
5939 def isOnline(self):
5940 """
5941 Public method to get the online state.
5942
5943 @return online state
5944 @rtype bool
5945 """
5946 return self.networkIcon.isOnline()
5934 5947
5935 ############################################## 5948 ##############################################
5936 ## Below are methods to check for new versions 5949 ## Below are methods to check for new versions
5937 ############################################## 5950 ##############################################
5938 5951
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

eric ide

mercurial