eric7/UI/UserInterface.py

branch
eric7
changeset 8970
188ff9ce8657
parent 8961
262f23f0cfa3
child 8972
54816b8f740f
equal deleted inserted replaced
8969:52a07d67f4ed 8970:188ff9ce8657
2475 """from the internet.</p>""" 2475 """from the internet.</p>"""
2476 )) 2476 ))
2477 self.showVersionsAct.triggered.connect( 2477 self.showVersionsAct.triggered.connect(
2478 self.showAvailableVersionsInfo) 2478 self.showAvailableVersionsInfo)
2479 self.actions.append(self.showVersionsAct) 2479 self.actions.append(self.showVersionsAct)
2480 2480
2481 self.upgradePyQtAct = EricAction(
2482 self.tr('Upgrade PyQt6'),
2483 self.tr('Upgrade PyQt6...'),
2484 0, 0, self, 'upgrade_pyqt6')
2485 self.upgradePyQtAct.setStatusTip(
2486 self.tr('Upgrade PyQt6 and restart eric'))
2487 self.upgradePyQtAct.setWhatsThis(self.tr(
2488 """<b>Upgrade PyQt6...</b>"""
2489 """<p>Upgrade the PyQt6 packages eric depends on and restart"""
2490 """ eric.</p>"""
2491 ))
2492 self.upgradePyQtAct.triggered.connect(self.upgradePyQt)
2493 self.actions.append(self.upgradePyQtAct)
2494
2481 self.showErrorLogAct = EricAction( 2495 self.showErrorLogAct = EricAction(
2482 self.tr('Show Error Log'), 2496 self.tr('Show Error Log'),
2483 self.tr('Show Error &Log...'), 2497 self.tr('Show Error &Log...'),
2484 0, 0, self, 'show_error_log') 2498 0, 0, self, 'show_error_log')
2485 self.showErrorLogAct.setStatusTip(self.tr('Show Error Log')) 2499 self.showErrorLogAct.setStatusTip(self.tr('Show Error Log'))
3586 self.__menus["help"].addAction(self.versionAct) 3600 self.__menus["help"].addAction(self.versionAct)
3587 self.__menus["help"].addSeparator() 3601 self.__menus["help"].addSeparator()
3588 self.__menus["help"].addAction(self.checkUpdateAct) 3602 self.__menus["help"].addAction(self.checkUpdateAct)
3589 self.__menus["help"].addAction(self.showVersionsAct) 3603 self.__menus["help"].addAction(self.showVersionsAct)
3590 self.__menus["help"].addSeparator() 3604 self.__menus["help"].addSeparator()
3605 self.__menus["help"].addAction(self.upgradePyQtAct)
3606 self.__menus["help"].addSeparator()
3591 self.__menus["help"].addAction(self.showInstallInfoAct) 3607 self.__menus["help"].addAction(self.showInstallInfoAct)
3592 self.__menus["help"].addSeparator() 3608 self.__menus["help"].addSeparator()
3593 self.__menus["help"].addAction(self.showErrorLogAct) 3609 self.__menus["help"].addAction(self.showErrorLogAct)
3594 self.__menus["help"].addAction(self.reportBugAct) 3610 self.__menus["help"].addAction(self.reportBugAct)
3595 self.__menus["help"].addAction(self.requestFeatureAct) 3611 self.__menus["help"].addAction(self.requestFeatureAct)
4012 4028
4013 def __showVersions(self): 4029 def __showVersions(self):
4014 """ 4030 """
4015 Private slot to handle the Versions dialog. 4031 Private slot to handle the Versions dialog.
4016 """ 4032 """
4033 from .VersionsDialog import VersionsDialog
4034
4017 try: 4035 try:
4018 try: 4036 try:
4019 from PyQt6 import sip 4037 from PyQt6 import sip
4020 except ImportError: 4038 except ImportError:
4021 import sip 4039 import sip
4084 versionText += ("<tr><td><b>{0}</b></td><td>{1}</td></tr>" 4102 versionText += ("<tr><td><b>{0}</b></td><td>{1}</td></tr>"
4085 ).format(self.tr("Session Type"), session) 4103 ).format(self.tr("Session Type"), session)
4086 4104
4087 versionText += self.tr("""</table>""") 4105 versionText += self.tr("""</table>""")
4088 4106
4089 EricMessageBox.about(self, Program, versionText) 4107 VersionsDialog(self, Program, versionText)
4090 4108
4091 def __reportBug(self): 4109 def __reportBug(self):
4092 """ 4110 """
4093 Private slot to handle the Report Bug dialog. 4111 Private slot to handle the Report Bug dialog.
4094 """ 4112 """
4443 eric7 = os.path.join(getConfig("ericDir"), "eric7.py") 4461 eric7 = os.path.join(getConfig("ericDir"), "eric7.py")
4444 args = [eric7] 4462 args = [eric7]
4445 args.append("--start-session") 4463 args.append("--start-session")
4446 args.extend(self.__restartArgs) 4464 args.extend(self.__restartArgs)
4447 QProcess.startDetached(program, args) 4465 QProcess.startDetached(program, args)
4448 4466
4467 @pyqtSlot()
4468 def upgradePyQt(self):
4469 """
4470 Public slot to upgrade the PyQt packages of the eric7 environment.
4471
4472 @return flag indicating a successful upgrade
4473 @rtype bool
4474 """
4475 yes = EricMessageBox.yesNo(
4476 self,
4477 self.tr("Upgrade PyQt"),
4478 self.tr("""In order to upgrade PyQt eric needs to be closed. It"""
4479 """ will be restarted once the upgrade process has"""
4480 """ finished. This may take some time.\n\nShall the"""
4481 """ upgrade be done now?""")
4482 )
4483
4484 if yes and self.__shutdown():
4485 self.__performUpgrade("pyqt")
4486 return True
4487
4488 return False
4489
4490 def __performUpgrade(self, upgradeType):
4491 """
4492 Private method to perform the requested upgrade operation.
4493
4494 This action needs to shut down eric first, start a non-PyQt application
4495 performing the upgrade of the PyQt packages via pip and restart eric
4496 with the passed arguments. The upgrade process is not visible.
4497
4498 @param upgradeType upgrade operation (one of 'pyqt')
4499 @type str
4500 """
4501 ericApp().closeAllWindows()
4502 program = sys.executable
4503 ericStartArgs = [
4504 os.path.join(getConfig("ericDir"), "eric7.py"),
4505 "--start-session",
4506 ]
4507 ericStartArgs.extend(self.__restartArgs)
4508
4509 upgrader = os.path.join(
4510 os.path.dirname(__file__), "upgrader.py"
4511 )
4512 upgraderArgs = [upgrader, "--" + upgradeType, "--"] + ericStartArgs
4513 QProcess.startDetached(program, upgraderArgs)
4514
4449 def __newWindow(self): 4515 def __newWindow(self):
4450 """ 4516 """
4451 Private slot to start a new instance of eric. 4517 Private slot to start a new instance of eric.
4452 """ 4518 """
4453 if not Preferences.getUI("SingleApplicationMode"): 4519 if not Preferences.getUI("SingleApplicationMode"):

eric ide

mercurial