eric6/UI/InstallInfoDialog.py

changeset 7809
f5a61d073100
parent 7808
da107cd00f63
child 7810
f8afd2238723
diff -r da107cd00f63 -r f5a61d073100 eric6/UI/InstallInfoDialog.py
--- 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:

eric ide

mercurial