--- a/eric6/UI/InstallInfoDialog.py Thu Oct 22 17:59:54 2020 +0200 +++ b/eric6/UI/InstallInfoDialog.py Thu Oct 22 19:42:29 2020 +0200 @@ -1,5 +1,8 @@ # -*- coding: utf-8 -*- +# Copyright (c) 2020 Detlev Offenbach <detlev@die-offenbachs.de> +# + """ Module implementing a dialog to show information about the installation. """ @@ -17,9 +20,10 @@ import UI.PixmapCache +# TODO: add button to delete the info file class InstallInfoDialog(QDialog, Ui_InstallInfoDialog): """ - Class documentation goes here. + Class implementing a dialog to show information about the installation. """ def __init__(self, parent=None): """ @@ -49,11 +53,13 @@ self.sudoLabel2.setText( self.tr("Yes") if self.__info["sudo"] else self.tr("No")) self.userLabel.setText(self.__info["user"]) + self.installedFromEdit.setText(self.__info["install_cwd"]) self.interpreteEdit.setText(self.__info["exe"]) self.commandEdit.setText(self.__info["argv"]) self.installPathEdit.setText(self.__info["eric"]) self.virtenvLabel.setText( self.tr("Yes") if self.__info["virtualenv"] else self.tr("No")) + self.remarksEdit.setPlainText(self.__info["remarks"]) if self.__info["pip"]: self.pipLabel.setText(self.tr( "'eric-ide' was installed from PyPI using the pip" @@ -66,11 +72,16 @@ " the first start of eric.")) else: self.guessLabel.hide() - self.remarksEdit.setPlainText(self.__info["remarks"]) - if "installed_on" in self.__info: - self.installDateTimeLabel.setText(self.__info["installed_on"]) + if self.__info["edited"]: + self.userProvidedLabel.setText(self.tr( + "The installation information was provided by the user." + )) else: - self.installDateTimeLabel.setText(self.tr("unknown")) + self.userProvidedLabel.hide() + if self.__info["installed_on"]: + self.installDateTimeLabel.setText( + self.__info["installed_on"] if self.__info["installed_on"] + else self.tr("unknown")) except EnvironmentError as err: E5MessageBox.critical( self, @@ -99,6 +110,7 @@ @param checked flag giving the button check state @type bool """ + self.installedFromEdit.setReadOnly(not checked) self.interpreteEdit.setReadOnly(not checked) self.commandEdit.setReadOnly(not checked) self.installPathEdit.setReadOnly(not checked) @@ -118,7 +130,7 @@ @pyqtSlot() def reject(self): """ - Private slot handling the closing of the dialog. + Public slot handling the closing of the dialog. """ if self.__edited: yes = E5MessageBox.yesNo( @@ -136,16 +148,25 @@ """ Private method to save the data. """ - self.__info["exe"] = self.interpreteEdit.text() - self.__info["argv"] = self.commandEdit.text() - self.__info["eric"] = self.installPathEdit.text() + if self.installedFromEdit.text() != self.__info["install_cwd"]: + self.__info["install_cwd"] = self.installedFromEdit.text() + self.__info["install_cwd_edited"] = True + if self.interpreteEdit.text() != self.__info["exe"]: + self.__info["exe"] = self.interpreteEdit.text() + self.__info["exe_edited"] = True + if self.commandEdit.text() != self.__info["argv"]: + self.__info["argv"] = self.commandEdit.text() + self.__info["argv_edited"] = True + if self.installPathEdit.text() != self.__info["eric"]: + self.__info["eric"] = self.installPathEdit.text() + self.__info["eric_edited"] = True self.__info["remarks"] = self.remarksEdit.toPlainText() self.__info["edited"] = True infoFileName = Globals.getInstallInfoFilePath() try: with open(infoFileName, "w") as infoFile: - json.dump(self.__info, infoFile, indent=2) + json.dump(self.__info, infoFile, indent=2) self.__edited = False self.editButton.setChecked(False) except EnvironmentError as err: