UI/UserInterface.py

changeset 5429
bb3bebb6d6bb
parent 5400
5cdca61d8cd8
child 5437
272547f9afa0
equal deleted inserted replaced
5428:94dd4e83968f 5429:bb3bebb6d6bb
39 from PyQt5 import QtWebEngineWidgets # __IGNORE_WARNING__ 39 from PyQt5 import QtWebEngineWidgets # __IGNORE_WARNING__
40 WEBENGINE_AVAILABLE = True 40 WEBENGINE_AVAILABLE = True
41 except ImportError: 41 except ImportError:
42 WEBENGINE_AVAILABLE = False 42 WEBENGINE_AVAILABLE = False
43 43
44 from .Info import Version, BugAddress, Program, FeatureAddress 44 from .Info import Version, VersionOnly, BugAddress, Program, FeatureAddress
45 from . import Config 45 from . import Config
46 46
47 from E5Gui.E5SingleApplication import E5SingleApplicationServer 47 from E5Gui.E5SingleApplication import E5SingleApplicationServer
48 from E5Gui.E5Action import E5Action, createActionGroup 48 from E5Gui.E5Action import E5Action, createActionGroup
49 from E5Gui.E5ToolBarManager import E5ToolBarManager 49 from E5Gui.E5ToolBarManager import E5ToolBarManager
6323 @param alternative index of server to download from (integer) 6323 @param alternative index of server to download from (integer)
6324 @keyparam showVersions flag indicating the show versions mode (boolean) 6324 @keyparam showVersions flag indicating the show versions mode (boolean)
6325 """ 6325 """
6326 if self.isOnline(): 6326 if self.isOnline():
6327 if not manual: 6327 if not manual:
6328 if Version.startswith("@@"): 6328 if VersionOnly.startswith("@@"):
6329 return 6329 return
6330 else: 6330 else:
6331 period = Preferences.getUI("PerformVersionCheck") 6331 period = Preferences.getUI("PerformVersionCheck")
6332 if period == 0: 6332 if period == 0:
6333 return 6333 return
6483 @param versions contents of the downloaded versions file (list of 6483 @param versions contents of the downloaded versions file (list of
6484 strings) 6484 strings)
6485 """ 6485 """
6486 url = "" 6486 url = ""
6487 try: 6487 try:
6488 if "-snapshot-" in Version: 6488 if "-snapshot-" in VersionOnly:
6489 # check snapshot version 6489 # check snapshot version
6490 if versions[2][0] == "6" and versions[2] > Version: 6490 if versions[2][0] == "6" and versions[2] > VersionOnly:
6491 res = E5MessageBox.yesNo( 6491 res = E5MessageBox.yesNo(
6492 self, 6492 self,
6493 self.tr("Update available"), 6493 self.tr("Update available"),
6494 self.tr( 6494 self.tr(
6495 """The update to <b>{0}</b> of eric6 is""" 6495 """The update to <b>{0}</b> of eric6 is"""
6496 """ available at <b>{1}</b>. Would you like to""" 6496 """ available at <b>{1}</b>. Would you like to"""
6497 """ get it?""") 6497 """ get it?""")
6498 .format(versions[2], versions[3]), 6498 .format(versions[2], versions[3]),
6499 yesDefault=True) 6499 yesDefault=True)
6500 url = res and versions[3] or '' 6500 url = res and versions[3] or ''
6501 elif versions[0] > Version: 6501 elif versions[0] > VersionOnly:
6502 res = E5MessageBox.yesNo( 6502 res = E5MessageBox.yesNo(
6503 self, 6503 self,
6504 self.tr("Update available"), 6504 self.tr("Update available"),
6505 self.tr( 6505 self.tr(
6506 """The update to <b>{0}</b> of eric6 is""" 6506 """The update to <b>{0}</b> of eric6 is"""
6517 self.tr( 6517 self.tr(
6518 """You are using the latest version of""" 6518 """You are using the latest version of"""
6519 """ eric6""")) 6519 """ eric6"""))
6520 else: 6520 else:
6521 # check release version 6521 # check release version
6522 if versions[0] > Version: 6522 if versions[0] > VersionOnly:
6523 res = E5MessageBox.yesNo( 6523 res = E5MessageBox.yesNo(
6524 self, 6524 self,
6525 self.tr("Update available"), 6525 self.tr("Update available"),
6526 self.tr( 6526 self.tr(
6527 """The update to <b>{0}</b> of eric6 is""" 6527 """The update to <b>{0}</b> of eric6 is"""
6638 @param required required version (string) 6638 @param required required version (string)
6639 @param snapshot required snapshot version (string) 6639 @param snapshot required snapshot version (string)
6640 @return flag indicating, that the version is newer than the required 6640 @return flag indicating, that the version is newer than the required
6641 one (boolean) 6641 one (boolean)
6642 """ 6642 """
6643 if Version.startswith("@@"): 6643 if VersionOnly.startswith("@@"):
6644 # development version, always newer 6644 # development version, always newer
6645 return True 6645 return True
6646 6646
6647 if "-snapshot-" in Version: 6647 if VersionOnly.startswith("rev_"):
6648 # installed from cloned sources, always newer
6649 return True
6650
6651 if "-snapshot-" in VersionOnly:
6648 # check snapshot version 6652 # check snapshot version
6649 if snapshot is None: 6653 if snapshot is None:
6650 return True 6654 return True
6651 else: 6655 else:
6652 vers = Version.split("-snapshot-")[1] 6656 vers = VersionOnly.split("-snapshot-")[1]
6653 return vers.split()[0] > snapshot 6657 return vers > snapshot
6654 6658
6655 return Version.split()[0] > required 6659 versionTuple = self.__versionToTuple(VersionOnly)
6660 if isinstance(required, str):
6661 required = self.__versionToTuple(required)
6662 return versionTuple > required
6663
6664 def __versionToTuple(self, version):
6665 """
6666 Private method to convert a version string into a tuple.
6667
6668 @param version version string
6669 @type str
6670 @return version tuple
6671 @rtype tuple of int and str
6672 """
6673 versionParts = []
6674 for part in version.split("."):
6675 part = part.strip()
6676 if part:
6677 try:
6678 part = int(part)
6679 except ValueError:
6680 # not an integer
6681 pass
6682 versionParts.append(part)
6683 return tuple(versionParts)
6656 6684
6657 ################################# 6685 #################################
6658 ## Below are some utility methods 6686 ## Below are some utility methods
6659 ################################# 6687 #################################
6660 6688

eric ide

mercurial