UI/UserInterface.py

changeset 3039
8dd0165d805d
parent 3034
7ce719013078
child 3060
5883ce99ee12
child 3071
83d066710d60
equal deleted inserted replaced
3038:7fe9a53280bd 3039:8dd0165d805d
1585 self.versionAct.setStatusTip(self.trUtf8( 1585 self.versionAct.setStatusTip(self.trUtf8(
1586 'Display version information')) 1586 'Display version information'))
1587 self.versionAct.setWhatsThis(self.trUtf8( 1587 self.versionAct.setWhatsThis(self.trUtf8(
1588 """<b>Show Versions</b>""" 1588 """<b>Show Versions</b>"""
1589 """<p>Display version information.</p>""" 1589 """<p>Display version information.</p>"""
1590 )) 1590 ))
1591 self.versionAct.triggered[()].connect(self.__showVersions) 1591 self.versionAct.triggered[()].connect(self.__showVersions)
1592 self.actions.append(self.versionAct) 1592 self.actions.append(self.versionAct)
1593 1593
1594 self.checkUpdateAct = E5Action( 1594 self.checkUpdateAct = E5Action(
1595 self.trUtf8('Check for Updates'), 1595 self.trUtf8('Check for Updates'),
1596 self.trUtf8('Check for &Updates...'), 0, 0, self, 'check_updates') 1596 self.trUtf8('Check for &Updates...'), 0, 0, self, 'check_updates')
1597 self.checkUpdateAct.setStatusTip(self.trUtf8('Check for Updates')) 1597 self.checkUpdateAct.setStatusTip(self.trUtf8('Check for Updates'))
1598 self.checkUpdateAct.setWhatsThis(self.trUtf8( 1598 self.checkUpdateAct.setWhatsThis(self.trUtf8(
1599 """<b>Check for Updates...</b>""" 1599 """<b>Check for Updates...</b>"""
1600 """<p>Checks the internet for updates of eric5.</p>""" 1600 """<p>Checks the internet for updates of eric5.</p>"""
1601 )) 1601 ))
1602 self.checkUpdateAct.triggered[()].connect(self.performVersionCheck) 1602 self.checkUpdateAct.triggered[()].connect(self.performVersionCheck)
1603 self.actions.append(self.checkUpdateAct) 1603 self.actions.append(self.checkUpdateAct)
1604 1604
1605 self.showVersionsAct = E5Action( 1605 self.showVersionsAct = E5Action(
1606 self.trUtf8('Show downloadable versions'), 1606 self.trUtf8('Show downloadable versions'),
1610 self.trUtf8('Show the versions available for download')) 1610 self.trUtf8('Show the versions available for download'))
1611 self.showVersionsAct.setWhatsThis(self.trUtf8( 1611 self.showVersionsAct.setWhatsThis(self.trUtf8(
1612 """<b>Show downloadable versions...</b>""" 1612 """<b>Show downloadable versions...</b>"""
1613 """<p>Shows the eric5 versions available for download """ 1613 """<p>Shows the eric5 versions available for download """
1614 """from the internet.</p>""" 1614 """from the internet.</p>"""
1615 )) 1615 ))
1616 self.showVersionsAct.triggered[()].connect( 1616 self.showVersionsAct.triggered[()].connect(
1617 self.showAvailableVersionsInfo) 1617 self.showAvailableVersionsInfo)
1618 self.actions.append(self.showVersionsAct) 1618 self.actions.append(self.showVersionsAct)
1619 1619
1620 self.reportBugAct = E5Action( 1620 self.reportBugAct = E5Action(
1623 0, 0, self, 'report_bug') 1623 0, 0, self, 'report_bug')
1624 self.reportBugAct.setStatusTip(self.trUtf8('Report a bug')) 1624 self.reportBugAct.setStatusTip(self.trUtf8('Report a bug'))
1625 self.reportBugAct.setWhatsThis(self.trUtf8( 1625 self.reportBugAct.setWhatsThis(self.trUtf8(
1626 """<b>Report Bug...</b>""" 1626 """<b>Report Bug...</b>"""
1627 """<p>Opens a dialog to report a bug.</p>""" 1627 """<p>Opens a dialog to report a bug.</p>"""
1628 )) 1628 ))
1629 self.reportBugAct.triggered[()].connect(self.__reportBug) 1629 self.reportBugAct.triggered[()].connect(self.__reportBug)
1630 self.actions.append(self.reportBugAct) 1630 self.actions.append(self.reportBugAct)
1631 1631
1632 self.requestFeatureAct = E5Action( 1632 self.requestFeatureAct = E5Action(
1633 self.trUtf8('Request Feature'), 1633 self.trUtf8('Request Feature'),
1636 self.requestFeatureAct.setStatusTip(self.trUtf8( 1636 self.requestFeatureAct.setStatusTip(self.trUtf8(
1637 'Send a feature request')) 1637 'Send a feature request'))
1638 self.requestFeatureAct.setWhatsThis(self.trUtf8( 1638 self.requestFeatureAct.setWhatsThis(self.trUtf8(
1639 """<b>Request Feature...</b>""" 1639 """<b>Request Feature...</b>"""
1640 """<p>Opens a dialog to send a feature request.</p>""" 1640 """<p>Opens a dialog to send a feature request.</p>"""
1641 )) 1641 ))
1642 self.requestFeatureAct.triggered[()].connect(self.__requestFeature) 1642 self.requestFeatureAct.triggered[()].connect(self.__requestFeature)
1643 self.actions.append(self.requestFeatureAct) 1643 self.actions.append(self.requestFeatureAct)
1644 1644
1645 self.utActGrp = createActionGroup(self) 1645 self.utActGrp = createActionGroup(self)
1646 1646
2907 versionText += """<tr><td><b>QScintilla</b></td><td>{0}</td></tr>"""\ 2907 versionText += """<tr><td><b>QScintilla</b></td><td>{0}</td></tr>"""\
2908 .format(QSCINTILLA_VERSION_STR) 2908 .format(QSCINTILLA_VERSION_STR)
2909 try: 2909 try:
2910 from PyQt4.QtWebKit import qWebKitVersion 2910 from PyQt4.QtWebKit import qWebKitVersion
2911 versionText += """<tr><td><b>WebKit</b></td><td>{0}</td></tr>"""\ 2911 versionText += """<tr><td><b>WebKit</b></td><td>{0}</td></tr>"""\
2912 .format(qWebKitVersion()) 2912 .format(qWebKitVersion())
2913 except ImportError: 2913 except ImportError:
2914 pass 2914 pass
2915 versionText += """<tr><td><b>{0}</b></td><td>{1}</td></tr>"""\ 2915 versionText += """<tr><td><b>{0}</b></td><td>{1}</td></tr>"""\
2916 .format(Program, Version) 2916 .format(Program, Version)
2917 versionText += self.trUtf8("""</table>""") 2917 versionText += self.trUtf8("""</table>""")
4042 self, 4042 self,
4043 self.trUtf8('Problem'), 4043 self.trUtf8('Problem'),
4044 self.trUtf8( 4044 self.trUtf8(
4045 '<p>The file <b>{0}</b> does not exist or' 4045 '<p>The file <b>{0}</b> does not exist or'
4046 ' is zero length.</p>') 4046 ' is zero length.</p>')
4047 .format(fn)) 4047 .format(fn))
4048 return 4048 return
4049 except EnvironmentError: 4049 except EnvironmentError:
4050 E5MessageBox.critical( 4050 E5MessageBox.critical(
4051 self, 4051 self,
4052 self.trUtf8('Problem'), 4052 self.trUtf8('Problem'),
4053 self.trUtf8( 4053 self.trUtf8(
4054 '<p>The file <b>{0}</b> does not exist or' 4054 '<p>The file <b>{0}</b> does not exist or'
4055 ' is zero length.</p>') 4055 ' is zero length.</p>')
4056 .format(fn)) 4056 .format(fn))
4057 return 4057 return
4058 4058
4059 if Utilities.isMacPlatform(): 4059 if Utilities.isMacPlatform():
4060 designer, args = Utilities.prepareQtMacBundle( 4060 designer, args = Utilities.prepareQtMacBundle(
4061 "designer", version, args) 4061 "designer", version, args)
4109 self, 4109 self,
4110 self.trUtf8('Problem'), 4110 self.trUtf8('Problem'),
4111 self.trUtf8( 4111 self.trUtf8(
4112 '<p>The file <b>{0}</b> does not exist or' 4112 '<p>The file <b>{0}</b> does not exist or'
4113 ' is zero length.</p>') 4113 ' is zero length.</p>')
4114 .format(fn)) 4114 .format(fn))
4115 return 4115 return
4116 except EnvironmentError: 4116 except EnvironmentError:
4117 E5MessageBox.critical( 4117 E5MessageBox.critical(
4118 self, 4118 self,
4119 self.trUtf8('Problem'), 4119 self.trUtf8('Problem'),
4120 self.trUtf8( 4120 self.trUtf8(
4121 '<p>The file <b>{0}</b> does not exist or' 4121 '<p>The file <b>{0}</b> does not exist or'
4122 ' is zero length.</p>') 4122 ' is zero length.</p>')
4123 .format(fn)) 4123 .format(fn))
4124 return 4124 return
4125 4125
4126 if Utilities.isMacPlatform(): 4126 if Utilities.isMacPlatform():
4127 linguist, args = Utilities.prepareQtMacBundle( 4127 linguist, args = Utilities.prepareQtMacBundle(
4128 "linguist", version, args) 4128 "linguist", version, args)
4277 self, 4277 self,
4278 self.trUtf8('Problem'), 4278 self.trUtf8('Problem'),
4279 self.trUtf8( 4279 self.trUtf8(
4280 '<p>The file <b>{0}</b> does not exist or' 4280 '<p>The file <b>{0}</b> does not exist or'
4281 ' is zero length.</p>') 4281 ' is zero length.</p>')
4282 .format(fn)) 4282 .format(fn))
4283 return 4283 return
4284 except EnvironmentError: 4284 except EnvironmentError:
4285 E5MessageBox.critical( 4285 E5MessageBox.critical(
4286 self, 4286 self,
4287 self.trUtf8('Problem'), 4287 self.trUtf8('Problem'),
4288 self.trUtf8( 4288 self.trUtf8(
4289 '<p>The file <b>{0}</b> does not exist or' 4289 '<p>The file <b>{0}</b> does not exist or'
4290 ' is zero length.</p>') 4290 ' is zero length.</p>')
4291 .format(fn)) 4291 .format(fn))
4292 return 4292 return
4293 4293
4294 if not os.path.isfile(viewer) or \ 4294 if not os.path.isfile(viewer) or \
4295 not proc.startDetached(sys.executable, args): 4295 not proc.startDetached(sys.executable, args):
4296 E5MessageBox.critical( 4296 E5MessageBox.critical(
4328 self, 4328 self,
4329 self.trUtf8('Problem'), 4329 self.trUtf8('Problem'),
4330 self.trUtf8( 4330 self.trUtf8(
4331 '<p>The file <b>{0}</b> does not exist or' 4331 '<p>The file <b>{0}</b> does not exist or'
4332 ' is zero length.</p>') 4332 ' is zero length.</p>')
4333 .format(fn)) 4333 .format(fn))
4334 return 4334 return
4335 except EnvironmentError: 4335 except EnvironmentError:
4336 if not ignore: 4336 if not ignore:
4337 E5MessageBox.critical( 4337 E5MessageBox.critical(
4338 self, 4338 self,
4339 self.trUtf8('Problem'), 4339 self.trUtf8('Problem'),
4340 self.trUtf8( 4340 self.trUtf8(
4341 '<p>The file <b>{0}</b> does not exist or' 4341 '<p>The file <b>{0}</b> does not exist or'
4342 ' is zero length.</p>') 4342 ' is zero length.</p>')
4343 .format(fn)) 4343 .format(fn))
4344 return 4344 return
4345 4345
4346 if not os.path.isfile(viewer) or \ 4346 if not os.path.isfile(viewer) or \
4347 not proc.startDetached(sys.executable, args): 4347 not proc.startDetached(sys.executable, args):
4348 E5MessageBox.critical( 4348 E5MessageBox.critical(
4450 4450
4451 E5MessageBox.information( 4451 E5MessageBox.information(
4452 self, 4452 self,
4453 self.trUtf8("External Tools"), 4453 self.trUtf8("External Tools"),
4454 self.trUtf8("""No toolgroup entry '{0}' found.""") 4454 self.trUtf8("""No toolgroup entry '{0}' found.""")
4455 .format(toolGroupName) 4455 .format(toolGroupName)
4456 ) 4456 )
4457 4457
4458 def __toolExecute(self, act): 4458 def __toolExecute(self, act):
4459 """ 4459 """
4460 Private slot to execute a particular tool. 4460 Private slot to execute a particular tool.
4616 E5MessageBox.warning( 4616 E5MessageBox.warning(
4617 self, 4617 self,
4618 self.trUtf8("Documentation Missing"), 4618 self.trUtf8("Documentation Missing"),
4619 self.trUtf8("""<p>The documentation starting point""" 4619 self.trUtf8("""<p>The documentation starting point"""
4620 """ "<b>{0}</b>" could not be found.</p>""") 4620 """ "<b>{0}</b>" could not be found.</p>""")
4621 .format(home)) 4621 .format(home))
4622 return 4622 return
4623 4623
4624 if not home.endswith(".chm"): 4624 if not home.endswith(".chm"):
4625 if Utilities.isWindowsPlatform(): 4625 if Utilities.isWindowsPlatform():
4626 home = "file:///" + Utilities.fromNativeSeparators(home) 4626 home = "file:///" + Utilities.fromNativeSeparators(home)
4673 E5MessageBox.warning( 4673 E5MessageBox.warning(
4674 self, 4674 self,
4675 self.trUtf8("Documentation Missing"), 4675 self.trUtf8("Documentation Missing"),
4676 self.trUtf8("""<p>The documentation starting point""" 4676 self.trUtf8("""<p>The documentation starting point"""
4677 """ "<b>{0}</b>" could not be found.</p>""") 4677 """ "<b>{0}</b>" could not be found.</p>""")
4678 .format(home)) 4678 .format(home))
4679 return 4679 return
4680 4680
4681 if not home.endswith(".chm"): 4681 if not home.endswith(".chm"):
4682 if Utilities.isWindowsPlatform(): 4682 if Utilities.isWindowsPlatform():
4683 home = "file:///" + Utilities.fromNativeSeparators(home) 4683 home = "file:///" + Utilities.fromNativeSeparators(home)
4742 E5MessageBox.warning( 4742 E5MessageBox.warning(
4743 self, 4743 self,
4744 self.trUtf8("Documentation Missing"), 4744 self.trUtf8("Documentation Missing"),
4745 self.trUtf8("""<p>The documentation starting point""" 4745 self.trUtf8("""<p>The documentation starting point"""
4746 """ "<b>{0}</b>" could not be found.</p>""") 4746 """ "<b>{0}</b>" could not be found.</p>""")
4747 .format(home)) 4747 .format(home))
4748 return 4748 return
4749 4749
4750 if Utilities.isWindowsPlatform(): 4750 if Utilities.isWindowsPlatform():
4751 home = "file:///" + Utilities.fromNativeSeparators(home) 4751 home = "file:///" + Utilities.fromNativeSeparators(home)
4752 else: 4752 else:
4800 E5MessageBox.warning( 4800 E5MessageBox.warning(
4801 self, 4801 self,
4802 self.trUtf8("Documentation Missing"), 4802 self.trUtf8("Documentation Missing"),
4803 self.trUtf8("""<p>The documentation starting point""" 4803 self.trUtf8("""<p>The documentation starting point"""
4804 """ "<b>{0}</b>" could not be found.</p>""") 4804 """ "<b>{0}</b>" could not be found.</p>""")
4805 .format(home)) 4805 .format(home))
4806 return 4806 return
4807 4807
4808 if Utilities.isWindowsPlatform(): 4808 if Utilities.isWindowsPlatform():
4809 home = "file:///" + Utilities.fromNativeSeparators(home) 4809 home = "file:///" + Utilities.fromNativeSeparators(home)
4810 else: 4810 else:
4862 E5MessageBox.warning( 4862 E5MessageBox.warning(
4863 self, 4863 self,
4864 self.trUtf8("Documentation Missing"), 4864 self.trUtf8("Documentation Missing"),
4865 self.trUtf8("""<p>The documentation starting point""" 4865 self.trUtf8("""<p>The documentation starting point"""
4866 """ "<b>{0}</b>" could not be found.</p>""") 4866 """ "<b>{0}</b>" could not be found.</p>""")
4867 .format(home)) 4867 .format(home))
4868 return 4868 return
4869 4869
4870 if Utilities.isWindowsPlatform(): 4870 if Utilities.isWindowsPlatform():
4871 home = "file:///" + Utilities.fromNativeSeparators(home) 4871 home = "file:///" + Utilities.fromNativeSeparators(home)
4872 else: 4872 else:
4898 E5MessageBox.warning( 4898 E5MessageBox.warning(
4899 self, 4899 self,
4900 self.trUtf8("Documentation Missing"), 4900 self.trUtf8("Documentation Missing"),
4901 self.trUtf8("""<p>The documentation starting point""" 4901 self.trUtf8("""<p>The documentation starting point"""
4902 """ "<b>{0}</b>" could not be found.</p>""") 4902 """ "<b>{0}</b>" could not be found.</p>""")
4903 .format(home)) 4903 .format(home))
4904 return 4904 return
4905 4905
4906 if Utilities.isWindowsPlatform(): 4906 if Utilities.isWindowsPlatform():
4907 home = "file:///" + Utilities.fromNativeSeparators(home) 4907 home = "file:///" + Utilities.fromNativeSeparators(home)
4908 else: 4908 else:
4946 E5MessageBox.warning( 4946 E5MessageBox.warning(
4947 self, 4947 self,
4948 self.trUtf8("Documentation Missing"), 4948 self.trUtf8("Documentation Missing"),
4949 self.trUtf8("""<p>The documentation starting point""" 4949 self.trUtf8("""<p>The documentation starting point"""
4950 """ "<b>{0}</b>" could not be found.</p>""") 4950 """ "<b>{0}</b>" could not be found.</p>""")
4951 .format(home)) 4951 .format(home))
4952 return 4952 return
4953 4953
4954 if Utilities.isWindowsPlatform(): 4954 if Utilities.isWindowsPlatform():
4955 home = "file:///" + Utilities.fromNativeSeparators(home) 4955 home = "file:///" + Utilities.fromNativeSeparators(home)
4956 else: 4956 else:
5372 E5MessageBox.critical( 5372 E5MessageBox.critical(
5373 self, 5373 self,
5374 self.trUtf8("Save tasks"), 5374 self.trUtf8("Save tasks"),
5375 self.trUtf8( 5375 self.trUtf8(
5376 "<p>The tasks file <b>{0}</b> could not be written.</p>") 5376 "<p>The tasks file <b>{0}</b> could not be written.</p>")
5377 .format(fn)) 5377 .format(fn))
5378 return 5378 return
5379 5379
5380 from E5XML.TasksWriter import TasksWriter 5380 from E5XML.TasksWriter import TasksWriter
5381 TasksWriter(f, False).writeXML() 5381 TasksWriter(f, False).writeXML()
5382 f.close() 5382 f.close()
5398 E5MessageBox.critical( 5398 E5MessageBox.critical(
5399 self, 5399 self,
5400 self.trUtf8("Read tasks"), 5400 self.trUtf8("Read tasks"),
5401 self.trUtf8( 5401 self.trUtf8(
5402 "<p>The tasks file <b>{0}</b> could not be read.</p>") 5402 "<p>The tasks file <b>{0}</b> could not be read.</p>")
5403 .format(fn)) 5403 .format(fn))
5404 5404
5405 def __writeSession(self): 5405 def __writeSession(self):
5406 """ 5406 """
5407 Private slot to write the session data to an XML file (.e4s). 5407 Private slot to write the session data to an XML file (.e4s).
5408 """ 5408 """
5416 E5MessageBox.critical( 5416 E5MessageBox.critical(
5417 self, 5417 self,
5418 self.trUtf8("Save session"), 5418 self.trUtf8("Save session"),
5419 self.trUtf8( 5419 self.trUtf8(
5420 "<p>The session file <b>{0}</b> could not be written.</p>") 5420 "<p>The session file <b>{0}</b> could not be written.</p>")
5421 .format(fn)) 5421 .format(fn))
5422 5422
5423 def __readSession(self): 5423 def __readSession(self):
5424 """ 5424 """
5425 Private slot to read in the session file (.e4s). 5425 Private slot to read in the session file (.e4s).
5426 """ 5426 """
5429 E5MessageBox.critical( 5429 E5MessageBox.critical(
5430 self, 5430 self,
5431 self.trUtf8("Read session"), 5431 self.trUtf8("Read session"),
5432 self.trUtf8( 5432 self.trUtf8(
5433 "<p>The session file <b>{0}</b> could not be read.</p>") 5433 "<p>The session file <b>{0}</b> could not be read.</p>")
5434 .format(fn)) 5434 .format(fn))
5435 return 5435 return
5436 5436
5437 f = QFile(fn) 5437 f = QFile(fn)
5438 if f.open(QIODevice.ReadOnly): 5438 if f.open(QIODevice.ReadOnly):
5439 from E5XML.SessionReader import SessionReader 5439 from E5XML.SessionReader import SessionReader
5444 E5MessageBox.critical( 5444 E5MessageBox.critical(
5445 self, 5445 self,
5446 self.trUtf8("Read session"), 5446 self.trUtf8("Read session"),
5447 self.trUtf8( 5447 self.trUtf8(
5448 "<p>The session file <b>{0}</b> could not be read.</p>") 5448 "<p>The session file <b>{0}</b> could not be read.</p>")
5449 .format(fn)) 5449 .format(fn))
5450 5450
5451 def showFindFileByNameDialog(self): 5451 def showFindFileByNameDialog(self):
5452 """ 5452 """
5453 Public slot to show the Find File by Name dialog. 5453 Public slot to show the Find File by Name dialog.
5454 """ 5454 """
5626 else: 5626 else:
5627 E5MessageBox.information( 5627 E5MessageBox.information(
5628 self, 5628 self,
5629 self.trUtf8("Drop Error"), 5629 self.trUtf8("Drop Error"),
5630 self.trUtf8("""<p><b>{0}</b> is not a file.</p>""") 5630 self.trUtf8("""<p><b>{0}</b> is not a file.</p>""")
5631 .format(fname)) 5631 .format(fname))
5632 5632
5633 self.inDragDrop = False 5633 self.inDragDrop = False
5634 5634
5635 ########################################################## 5635 ##########################################################
5636 ## Below are methods needed for shutting down the IDE 5636 ## Below are methods needed for shutting down the IDE
5765 self.__versionCheckCanceled = False 5765 self.__versionCheckCanceled = False
5766 if manual: 5766 if manual:
5767 if self.__versionCheckProgress is None: 5767 if self.__versionCheckProgress is None:
5768 self.__versionCheckProgress = \ 5768 self.__versionCheckProgress = \
5769 QProgressDialog("", self.trUtf8("&Cancel"), 5769 QProgressDialog("", self.trUtf8("&Cancel"),
5770 0, len(self.__httpAlternatives), self) 5770 0, len(self.__httpAlternatives), self)
5771 self.__versionCheckProgress.setMinimumDuration(0) 5771 self.__versionCheckProgress.setMinimumDuration(0)
5772 self.__versionCheckProgress.canceled.connect( 5772 self.__versionCheckProgress.canceled.connect(
5773 self.__versionsDownloadCanceled) 5773 self.__versionsDownloadCanceled)
5774 self.__versionCheckProgress.setLabelText( 5774 self.__versionCheckProgress.setLabelText(
5775 self.trUtf8("Trying host {0}").format(url.host())) 5775 self.trUtf8("Trying host {0}").format(url.host()))
5882 self.trUtf8("Update available"), 5882 self.trUtf8("Update available"),
5883 self.trUtf8( 5883 self.trUtf8(
5884 """The update to <b>{0}</b> of eric5 is""" 5884 """The update to <b>{0}</b> of eric5 is"""
5885 """ available at <b>{1}</b>. Would you like to""" 5885 """ available at <b>{1}</b>. Would you like to"""
5886 """ get it?""") 5886 """ get it?""")
5887 .format(versions[2], versions[3]), 5887 .format(versions[2], versions[3]),
5888 yesDefault=True) 5888 yesDefault=True)
5889 url = res and versions[3] or '' 5889 url = res and versions[3] or ''
5890 elif versions[0] > Version: 5890 elif versions[0] > Version:
5891 res = E5MessageBox.yesNo( 5891 res = E5MessageBox.yesNo(
5892 self, 5892 self,
5893 self.trUtf8("Update available"), 5893 self.trUtf8("Update available"),
5894 self.trUtf8( 5894 self.trUtf8(
5895 """The update to <b>{0}</b> of eric5 is""" 5895 """The update to <b>{0}</b> of eric5 is"""
5896 """ available at <b>{1}</b>. Would you like to""" 5896 """ available at <b>{1}</b>. Would you like to"""
5897 """ get it?""") 5897 """ get it?""")
5898 .format(versions[0], versions[1]), 5898 .format(versions[0], versions[1]),
5899 yesDefault=True) 5899 yesDefault=True)
5900 url = res and versions[1] or '' 5900 url = res and versions[1] or ''
5901 else: 5901 else:
5902 if self.manualUpdatesCheck: 5902 if self.manualUpdatesCheck:
5903 E5MessageBox.information( 5903 E5MessageBox.information(
5914 self.trUtf8("Update available"), 5914 self.trUtf8("Update available"),
5915 self.trUtf8( 5915 self.trUtf8(
5916 """The update to <b>{0}</b> of eric5 is""" 5916 """The update to <b>{0}</b> of eric5 is"""
5917 """ available at <b>{1}</b>. Would you like""" 5917 """ available at <b>{1}</b>. Would you like"""
5918 """ to get it?""") 5918 """ to get it?""")
5919 .format(versions[0], versions[1]), 5919 .format(versions[0], versions[1]),
5920 yesDefault=True) 5920 yesDefault=True)
5921 url = res and versions[1] or '' 5921 url = res and versions[1] or ''
5922 else: 5922 else:
5923 if self.manualUpdatesCheck: 5923 if self.manualUpdatesCheck:
5924 E5MessageBox.information( 5924 E5MessageBox.information(
5961 5961
5962 versionText += """<tr><td>{0}</td><td><a href="{1}">{2}</a>""" \ 5962 versionText += """<tr><td>{0}</td><td><a href="{1}">{2}</a>""" \
5963 """</td></tr>""".format( 5963 """</td></tr>""".format(
5964 versions[line], versions[line + 1], 5964 versions[line], versions[line + 1],
5965 'sourceforge' in versions[line + 1] and 5965 'sourceforge' in versions[line + 1] and
5966 "SourceForge" or versions[line + 1]) 5966 "SourceForge" or versions[line + 1])
5967 line += 2 5967 line += 2
5968 versionText += self.trUtf8("""</table>""") 5968 versionText += self.trUtf8("""</table>""")
5969 5969
5970 E5MessageBox.about(self, Program, versionText) 5970 E5MessageBox.about(self, Program, versionText)
5971 5971

eric ide

mercurial