--- a/eric7/UI/UserInterface.py Sat Mar 05 18:10:28 2022 +0100 +++ b/eric7/UI/UserInterface.py Sun Mar 06 19:53:19 2022 +0100 @@ -2452,46 +2452,6 @@ self.versionAct.triggered.connect(self.__showVersions) self.actions.append(self.versionAct) - self.checkUpdateAct = EricAction( - self.tr('Check for Updates'), - self.tr('Check for &Updates...'), 0, 0, self, 'check_updates') - self.checkUpdateAct.setStatusTip(self.tr('Check for Updates')) - self.checkUpdateAct.setWhatsThis(self.tr( - """<b>Check for Updates...</b>""" - """<p>Checks the internet for updates of eric.</p>""" - )) - self.checkUpdateAct.triggered.connect(self.performVersionCheck) - self.actions.append(self.checkUpdateAct) - - self.showVersionsAct = EricAction( - self.tr('Show downloadable versions'), - self.tr('Show &downloadable versions...'), - 0, 0, self, 'show_downloadable_versions') - self.showVersionsAct.setStatusTip( - self.tr('Show the versions available for download')) - self.showVersionsAct.setWhatsThis(self.tr( - """<b>Show downloadable versions...</b>""" - """<p>Shows the eric versions available for download """ - """from the internet.</p>""" - )) - self.showVersionsAct.triggered.connect( - self.showAvailableVersionsInfo) - self.actions.append(self.showVersionsAct) - - self.upgradePyQtAct = EricAction( - self.tr('Upgrade PyQt6'), - self.tr('Upgrade PyQt6...'), - 0, 0, self, 'upgrade_pyqt6') - self.upgradePyQtAct.setStatusTip( - self.tr('Upgrade PyQt6 and restart eric')) - self.upgradePyQtAct.setWhatsThis(self.tr( - """<b>Upgrade PyQt6...</b>""" - """<p>Upgrade the PyQt6 packages eric depends on and restart""" - """ eric.</p>""" - )) - self.upgradePyQtAct.triggered.connect(self.upgradePyQt) - self.actions.append(self.upgradePyQtAct) - self.showErrorLogAct = EricAction( self.tr('Show Error Log'), self.tr('Show Error &Log...'), @@ -3599,11 +3559,6 @@ self.__menus["help"].addSeparator() self.__menus["help"].addAction(self.versionAct) self.__menus["help"].addSeparator() - self.__menus["help"].addAction(self.checkUpdateAct) - self.__menus["help"].addAction(self.showVersionsAct) - self.__menus["help"].addSeparator() - self.__menus["help"].addAction(self.upgradePyQtAct) - self.__menus["help"].addSeparator() self.__menus["help"].addAction(self.showInstallInfoAct) self.__menus["help"].addSeparator() self.__menus["help"].addAction(self.showErrorLogAct) @@ -3971,8 +3926,6 @@ """ Private slot to display the Help menu. """ - self.checkUpdateAct.setEnabled(not self.__inVersionCheck) - self.showVersionsAct.setEnabled(not self.__inVersionCheck) self.showErrorLogAct.setEnabled(self.__hasErrorLog()) infoFileName = Globals.getInstallInfoFilePath() @@ -4458,9 +4411,7 @@ if res and self.__shutdown(): ericApp().closeAllWindows() program = sys.executable - eric7 = os.path.join(getConfig("ericDir"), "eric7.py") - args = [eric7] - args.append("--start-session") + args = ["-m", "eric7", "--start-session"] args.extend(self.__restartArgs) QProcess.startDetached(program, args) @@ -4475,7 +4426,7 @@ yes = EricMessageBox.yesNo( self, self.tr("Upgrade PyQt"), - self.tr("""In order to upgrade PyQt eric needs to be closed. It""" + self.tr("""eric needs to be closed in order to upgrade PyQt. It""" """ will be restarted once the upgrade process has""" """ finished. This may take some time.\n\nShall the""" """ upgrade be done now?""") @@ -4487,6 +4438,53 @@ return False + @pyqtSlot() + def upgradeEric(self): + """ + Public slot to upgrade the eric-ide package of the eric7 environment. + + @return flag indicating a successful upgrade + @rtype bool + """ + yes = EricMessageBox.yesNo( + self, + self.tr("Upgrade Eric"), + self.tr("""eric needs to be closed in order to be upgraded. It""" + """ will be restarted once the upgrade process has""" + """ finished. This may take some time.\n\nShall the""" + """ upgrade be done now?""") + ) + + if yes and self.__shutdown(): + self.__performUpgrade("eric") + return True + + return False + + @pyqtSlot() + def upgradeEricPyQt(self): + """ + Public slot to upgrade the eric-ide and Pyqt packages of the eric7 + environment. + + @return flag indicating a successful upgrade + @rtype bool + """ + yes = EricMessageBox.yesNo( + self, + self.tr("Upgrade Eric"), + self.tr("""eric needs to be closed in order to upgrade eric and""" + """ PyQt. It will be restarted once the upgrade process""" + """ has finished. This may take some time.\n\n Shall""" + """ the upgrade be done now?""") + ) + + if yes and self.__shutdown(): + self.__performUpgrade("ericpyqt") + return True + + return False + def __performUpgrade(self, upgradeType): """ Private method to perform the requested upgrade operation. @@ -4495,15 +4493,13 @@ performing the upgrade of the PyQt packages via pip and restart eric with the passed arguments. The upgrade process is not visible. - @param upgradeType upgrade operation (one of 'pyqt') + @param upgradeType upgrade operation (one of 'eric', 'ericpyqt', + 'pyqt') @type str """ ericApp().closeAllWindows() program = sys.executable - ericStartArgs = [ - os.path.join(getConfig("ericDir"), "eric7.py"), - "--start-session", - ] + ericStartArgs = ["-m", "eric7", "--start-session"] ericStartArgs.extend(self.__restartArgs) upgrader = os.path.join( @@ -7566,13 +7562,9 @@ ############################################## ## Below are methods to check for new versions ############################################## - - def showAvailableVersionsInfo(self): - """ - Public method to show the eric versions available for download. - """ - self.performVersionCheck(manual=True, showVersions=True) - + + # TODO: change performVersionCheck to check against PyPI and do that + # only for the automatic check @pyqtSlot() def performVersionCheck(self, manual=True, alternative=0, showVersions=False):