5459 """ |
5459 """ |
5460 Public method to show the eric5 versions available for download. |
5460 Public method to show the eric5 versions available for download. |
5461 """ |
5461 """ |
5462 self.performVersionCheck(manual=True, showVersions=True) |
5462 self.performVersionCheck(manual=True, showVersions=True) |
5463 |
5463 |
5464 def performVersionCheck(self, manual=True, alternative=0, showVersions=False): |
5464 def performVersionCheck(self, manual=True, alternative=0, showVersions=False): |
5465 """ |
5465 """ |
5466 Public method to check the internet for an eric5 update. |
5466 Public method to check the internet for an eric5 update. |
5467 |
5467 |
5468 @param manual flag indicating an invocation via the menu (boolean) |
5468 @param manual flag indicating an invocation via the menu (boolean) |
5469 @param alternative index of server to download from (integer) |
5469 @param alternative index of server to download from (integer) |
5525 return |
5525 return |
5526 |
5526 |
5527 reply = self.sender() |
5527 reply = self.sender() |
5528 if reply in self.__replies: |
5528 if reply in self.__replies: |
5529 self.__replies.remove(reply) |
5529 self.__replies.remove(reply) |
5530 if reply.error() != QNetworkReply.NoError: |
5530 if reply.error() == QNetworkReply.NoError: |
|
5531 ioEncoding = Preferences.getSystem("IOEncoding") |
|
5532 versions = str(reply.readAll(), ioEncoding, 'replace').splitlines() |
|
5533 if reply.error() != QNetworkReply.NoError or versions[0].startswith("<"): |
|
5534 # network error or an error page |
5531 self.httpAlternative += 1 |
5535 self.httpAlternative += 1 |
5532 if self.httpAlternative >= len(self.__httpAlternatives): |
5536 if self.httpAlternative >= len(self.__httpAlternatives): |
5533 self.__inVersionCheck = False |
5537 self.__inVersionCheck = False |
5534 if self.__versionCheckProgress is not None: |
5538 if self.__versionCheckProgress is not None: |
5535 self.__versionCheckProgress.reset() |
5539 self.__versionCheckProgress.reset() |
5536 self.__versionCheckProgress = None |
5540 self.__versionCheckProgress = None |
5537 E5MessageBox.warning(self, |
5541 firstFailure = Preferences.Prefs.settings.value( |
5538 self.trUtf8("Error getting versions information"), |
5542 "Updates/FirstFailedCheckDate", QDate.currentDate()) |
5539 self.trUtf8("""The versions information could not be downloaded.""" |
5543 failedDuration = firstFailure.daysTo(QDate.currentDate()) |
5540 """ Please go online and try again.""")) |
5544 Preferences.Prefs.settings.setValue( |
|
5545 "Updates/FirstFailedCheckDate", firstFailure) |
|
5546 if self.manualUpdatesCheck: |
|
5547 E5MessageBox.warning(self, |
|
5548 self.trUtf8("Error getting versions information"), |
|
5549 self.trUtf8("""The versions information could not be""" |
|
5550 """ downloaded.""" |
|
5551 """ Please go online and try again.""")) |
|
5552 elif failedDuration > 7: |
|
5553 E5MessageBox.warning(self, |
|
5554 self.trUtf8("Error getting versions information"), |
|
5555 self.trUtf8("""The versions information could not be""" |
|
5556 """ downloaded for the last 7 days.""" |
|
5557 """ Please go online and try again.""")) |
5541 return |
5558 return |
5542 else: |
5559 else: |
5543 self.performVersionCheck(self.manualUpdatesCheck, self.httpAlternative, |
5560 self.performVersionCheck(self.manualUpdatesCheck, self.httpAlternative, |
5544 self.showAvailableVersions) |
5561 self.showAvailableVersions) |
5545 return |
5562 return |
5546 |
5563 |
5547 self.__inVersionCheck = False |
5564 self.__inVersionCheck = False |
5548 if self.__versionCheckProgress is not None: |
5565 if self.__versionCheckProgress is not None: |
5549 self.__versionCheckProgress.reset() |
5566 self.__versionCheckProgress.reset() |
5550 self.__versionCheckProgress = None |
5567 self.__versionCheckProgress = None |
5551 ioEncoding = Preferences.getSystem("IOEncoding") |
|
5552 versions = str(reply.readAll(), ioEncoding, 'replace').splitlines() |
|
5553 self.__updateVersionsUrls(versions) |
5568 self.__updateVersionsUrls(versions) |
5554 if self.showAvailableVersions: |
5569 if self.showAvailableVersions: |
5555 self.__showAvailableVersionInfos(versions) |
5570 self.__showAvailableVersionInfos(versions) |
5556 else: |
5571 else: |
|
5572 Preferences.Prefs.settings.remove("Updates/FirstFailedCheckDate") |
5557 Preferences.Prefs.settings.setValue( |
5573 Preferences.Prefs.settings.setValue( |
5558 "Updates/LastCheckDate", QDate.currentDate()) |
5574 "Updates/LastCheckDate", QDate.currentDate()) |
5559 self.__versionCheckResult(versions) |
5575 self.__versionCheckResult(versions) |
5560 |
5576 |
5561 def __updateVersionsUrls(self, versions): |
5577 def __updateVersionsUrls(self, versions): |