Install Info: extended the dialog by a delete action and an action to show upgrade instructions.

Fri, 23 Oct 2020 20:01:22 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 23 Oct 2020 20:01:22 +0200
changeset 7810
f8afd2238723
parent 7809
f5a61d073100
child 7811
31d56b9bc7bd

Install Info: extended the dialog by a delete action and an action to show upgrade instructions.

eric6.e4p file | annotate | diff | comparison | revisions
eric6/APIs/Python3/eric6.api file | annotate | diff | comparison | revisions
eric6/APIs/Python3/eric6.bas file | annotate | diff | comparison | revisions
eric6/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
eric6/Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.E5Gui.E5PlainTextDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.UI.InstallInfoDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.E5Gui.html file | annotate | diff | comparison | revisions
eric6/E5Gui/E5PlainTextDialog.py file | annotate | diff | comparison | revisions
eric6/E5Gui/E5PlainTextDialog.ui file | annotate | diff | comparison | revisions
eric6/UI/InstallInfoDialog.py file | annotate | diff | comparison | revisions
eric6/i18n/eric6_cs.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_de.qm file | annotate | diff | comparison | revisions
eric6/i18n/eric6_de.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_empty.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_en.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_es.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_fr.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_it.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_pt.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_ru.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_tr.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_zh_CN.ts file | annotate | diff | comparison | revisions
--- a/eric6.e4p	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6.e4p	Fri Oct 23 20:01:22 2020 +0200
@@ -154,6 +154,7 @@
     <Source>eric6/E5Gui/E5PasswordMeter.py</Source>
     <Source>eric6/E5Gui/E5PathPicker.py</Source>
     <Source>eric6/E5Gui/E5PathPickerDialog.py</Source>
+    <Source>eric6/E5Gui/E5PlainTextDialog.py</Source>
     <Source>eric6/E5Gui/E5ProcessDialog.py</Source>
     <Source>eric6/E5Gui/E5ProgressDialog.py</Source>
     <Source>eric6/E5Gui/E5SideBar.py</Source>
@@ -1637,6 +1638,7 @@
     <Form>eric6/Debugger/VariablesFilterDialog.ui</Form>
     <Form>eric6/E5Gui/E5ErrorMessageFilterDialog.ui</Form>
     <Form>eric6/E5Gui/E5ListSelectionDialog.ui</Form>
+    <Form>eric6/E5Gui/E5PlainTextDialog.ui</Form>
     <Form>eric6/E5Gui/E5ProcessDialog.ui</Form>
     <Form>eric6/E5Gui/E5SimpleHelpDialog.ui</Form>
     <Form>eric6/E5Gui/E5StringListEditWidget.ui</Form>
--- a/eric6/APIs/Python3/eric6.api	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6/APIs/Python3/eric6.api	Fri Oct 23 20:01:22 2020 +0200
@@ -1302,6 +1302,8 @@
 eric6.E5Gui.E5PathPickerDialog.E5PathPickerDialog.setTitle?4(title)
 eric6.E5Gui.E5PathPickerDialog.E5PathPickerDialog?1(parent=None)
 eric6.E5Gui.E5PathPickerDialog.getPath?4(parent, title, label, mode=E5PathPickerModes.OpenFileMode, path="", defaultDirectory="", filters=None)
+eric6.E5Gui.E5PlainTextDialog.E5PlainTextDialog.on_copyButton_clicked?4()
+eric6.E5Gui.E5PlainTextDialog.E5PlainTextDialog?1(title="", text="", parent=None)
 eric6.E5Gui.E5ProcessDialog.E5ProcessDialog.keyPressEvent?4(evt)
 eric6.E5Gui.E5ProcessDialog.E5ProcessDialog.normalExit?4()
 eric6.E5Gui.E5ProcessDialog.E5ProcessDialog.normalExitWithoutErrors?4()
@@ -8873,8 +8875,10 @@
 eric6.UI.Info.Program?7
 eric6.UI.Info.Version?7
 eric6.UI.Info.VersionOnly?7
+eric6.UI.InstallInfoDialog.InstallInfoDialog.on_deleteButton_clicked?4()
 eric6.UI.InstallInfoDialog.InstallInfoDialog.on_editButton_toggled?4(checked)
 eric6.UI.InstallInfoDialog.InstallInfoDialog.on_saveButton_clicked?4()
+eric6.UI.InstallInfoDialog.InstallInfoDialog.on_updateButton_clicked?4()
 eric6.UI.InstallInfoDialog.InstallInfoDialog.reject?4()
 eric6.UI.InstallInfoDialog.InstallInfoDialog.wasLoaded?4()
 eric6.UI.InstallInfoDialog.InstallInfoDialog?1(parent=None)
--- a/eric6/APIs/Python3/eric6.bas	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6/APIs/Python3/eric6.bas	Fri Oct 23 20:01:22 2020 +0200
@@ -208,6 +208,7 @@
 E5PathPickerBase QWidget
 E5PathPickerDialog QDialog
 E5PathPickerModes Enum
+E5PlainTextDialog QDialog Ui_E5PlainTextDialog
 E5ProcessDialog QDialog Ui_E5ProcessDialog
 E5ProgressDialog QProgressDialog
 E5SideBar QWidget
Binary file eric6/Documentation/Help/source.qch has changed
--- a/eric6/Documentation/Help/source.qhp	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6/Documentation/Help/source.qhp	Fri Oct 23 20:01:22 2020 +0200
@@ -118,6 +118,7 @@
             <section title="eric6.E5Gui.E5PasswordMeter" ref="eric6.E5Gui.E5PasswordMeter.html" />
             <section title="eric6.E5Gui.E5PathPicker" ref="eric6.E5Gui.E5PathPicker.html" />
             <section title="eric6.E5Gui.E5PathPickerDialog" ref="eric6.E5Gui.E5PathPickerDialog.html" />
+            <section title="eric6.E5Gui.E5PlainTextDialog" ref="eric6.E5Gui.E5PlainTextDialog.html" />
             <section title="eric6.E5Gui.E5ProcessDialog" ref="eric6.E5Gui.E5ProcessDialog.html" />
             <section title="eric6.E5Gui.E5ProgressDialog" ref="eric6.E5Gui.E5ProgressDialog.html" />
             <section title="eric6.E5Gui.E5SideBar" ref="eric6.E5Gui.E5SideBar.html" />
@@ -4293,6 +4294,10 @@
       <keyword name="E5PathPickerDialog.setPickerPath" id="E5PathPickerDialog.setPickerPath" ref="eric6.E5Gui.E5PathPickerDialog.html#E5PathPickerDialog.setPickerPath" />
       <keyword name="E5PathPickerDialog.setTitle" id="E5PathPickerDialog.setTitle" ref="eric6.E5Gui.E5PathPickerDialog.html#E5PathPickerDialog.setTitle" />
       <keyword name="E5PathPickerModes" id="E5PathPickerModes" ref="eric6.E5Gui.E5PathPicker.html#E5PathPickerModes" />
+      <keyword name="E5PlainTextDialog" id="E5PlainTextDialog" ref="eric6.E5Gui.E5PlainTextDialog.html#E5PlainTextDialog" />
+      <keyword name="E5PlainTextDialog (Constructor)" id="E5PlainTextDialog (Constructor)" ref="eric6.E5Gui.E5PlainTextDialog.html#E5PlainTextDialog.__init__" />
+      <keyword name="E5PlainTextDialog (Module)" id="E5PlainTextDialog (Module)" ref="eric6.E5Gui.E5PlainTextDialog.html" />
+      <keyword name="E5PlainTextDialog.on_copyButton_clicked" id="E5PlainTextDialog.on_copyButton_clicked" ref="eric6.E5Gui.E5PlainTextDialog.html#E5PlainTextDialog.on_copyButton_clicked" />
       <keyword name="E5ProcessDialog" id="E5ProcessDialog" ref="eric6.E5Gui.E5ProcessDialog.html#E5ProcessDialog" />
       <keyword name="E5ProcessDialog (Constructor)" id="E5ProcessDialog (Constructor)" ref="eric6.E5Gui.E5ProcessDialog.html#E5ProcessDialog.__init__" />
       <keyword name="E5ProcessDialog (Module)" id="E5ProcessDialog (Module)" ref="eric6.E5Gui.E5ProcessDialog.html" />
@@ -8710,8 +8715,10 @@
       <keyword name="InstallInfoDialog (Constructor)" id="InstallInfoDialog (Constructor)" ref="eric6.UI.InstallInfoDialog.html#InstallInfoDialog.__init__" />
       <keyword name="InstallInfoDialog (Module)" id="InstallInfoDialog (Module)" ref="eric6.UI.InstallInfoDialog.html" />
       <keyword name="InstallInfoDialog.__saveData" id="InstallInfoDialog.__saveData" ref="eric6.UI.InstallInfoDialog.html#InstallInfoDialog.__saveData" />
+      <keyword name="InstallInfoDialog.on_deleteButton_clicked" id="InstallInfoDialog.on_deleteButton_clicked" ref="eric6.UI.InstallInfoDialog.html#InstallInfoDialog.on_deleteButton_clicked" />
       <keyword name="InstallInfoDialog.on_editButton_toggled" id="InstallInfoDialog.on_editButton_toggled" ref="eric6.UI.InstallInfoDialog.html#InstallInfoDialog.on_editButton_toggled" />
       <keyword name="InstallInfoDialog.on_saveButton_clicked" id="InstallInfoDialog.on_saveButton_clicked" ref="eric6.UI.InstallInfoDialog.html#InstallInfoDialog.on_saveButton_clicked" />
+      <keyword name="InstallInfoDialog.on_updateButton_clicked" id="InstallInfoDialog.on_updateButton_clicked" ref="eric6.UI.InstallInfoDialog.html#InstallInfoDialog.on_updateButton_clicked" />
       <keyword name="InstallInfoDialog.reject" id="InstallInfoDialog.reject" ref="eric6.UI.InstallInfoDialog.html#InstallInfoDialog.reject" />
       <keyword name="InstallInfoDialog.wasLoaded" id="InstallInfoDialog.wasLoaded" ref="eric6.UI.InstallInfoDialog.html#InstallInfoDialog.wasLoaded" />
       <keyword name="Interface" id="Interface" ref="eric6.Utilities.ClassBrowsers.idlclbr.html#Interface" />
@@ -18112,6 +18119,7 @@
       <file>eric6.E5Gui.E5PasswordMeter.html</file>
       <file>eric6.E5Gui.E5PathPicker.html</file>
       <file>eric6.E5Gui.E5PathPickerDialog.html</file>
+      <file>eric6.E5Gui.E5PlainTextDialog.html</file>
       <file>eric6.E5Gui.E5ProcessDialog.html</file>
       <file>eric6.E5Gui.E5ProgressDialog.html</file>
       <file>eric6.E5Gui.E5SideBar.html</file>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/Documentation/Source/eric6.E5Gui.E5PlainTextDialog.html	Fri Oct 23 20:01:22 2020 +0200
@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.E5Gui.E5PlainTextDialog</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body>
+<a NAME="top" ID="top"></a>
+<h1>eric6.E5Gui.E5PlainTextDialog</h1>
+
+<p>
+Module implementing a dialog to show some plain text.
+</p>
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+
+<tr>
+<td><a href="#E5PlainTextDialog">E5PlainTextDialog</a></td>
+<td>Class implementing a dialog to show some plain text.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr />
+<hr />
+<a NAME="E5PlainTextDialog" ID="E5PlainTextDialog"></a>
+<h2>E5PlainTextDialog</h2>
+
+<p>
+    Class implementing a dialog to show some plain text.
+</p>
+<h3>Derived from</h3>
+QDialog, Ui_E5PlainTextDialog
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#E5PlainTextDialog.__init__">E5PlainTextDialog</a></td>
+<td>Constructor</td>
+</tr>
+<tr>
+<td><a href="#E5PlainTextDialog.on_copyButton_clicked">on_copyButton_clicked</a></td>
+<td>Private slot to copy the text to the clipboard.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<a NAME="E5PlainTextDialog.__init__" ID="E5PlainTextDialog.__init__"></a>
+<h4>E5PlainTextDialog (Constructor)</h4>
+<b>E5PlainTextDialog</b>(<i>title="", text="", parent=None</i>)
+
+<p>
+        Constructor
+</p>
+<dl>
+
+<dt><i>title</i> (str)</dt>
+<dd>
+title of the window
+</dd>
+<dt><i>text</i> (str)</dt>
+<dd>
+text to be shown
+</dd>
+<dt><i>parent</i> (QWidget)</dt>
+<dd>
+reference to the parent widget
+</dd>
+</dl>
+<a NAME="E5PlainTextDialog.on_copyButton_clicked" ID="E5PlainTextDialog.on_copyButton_clicked"></a>
+<h4>E5PlainTextDialog.on_copyButton_clicked</h4>
+<b>on_copyButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to copy the text to the clipboard.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.UI.InstallInfoDialog.html	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6/Documentation/Source/eric6.UI.InstallInfoDialog.html	Fri Oct 23 20:01:22 2020 +0200
@@ -36,7 +36,7 @@
 
 <tr>
 <td><a href="#InstallInfoDialog">InstallInfoDialog</a></td>
-<td>Class documentation goes here.</td>
+<td>Class implementing a dialog to show information about the installation.</td>
 </tr>
 </table>
 <h3>Functions</h3>
@@ -50,7 +50,7 @@
 <h2>InstallInfoDialog</h2>
 
 <p>
-    Class documentation goes here.
+    Class implementing a dialog to show information about the installation.
 </p>
 <h3>Derived from</h3>
 QDialog, Ui_InstallInfoDialog
@@ -77,6 +77,10 @@
 <td>Private method to save the data.</td>
 </tr>
 <tr>
+<td><a href="#InstallInfoDialog.on_deleteButton_clicked">on_deleteButton_clicked</a></td>
+<td>Private slot deleting the install information file.</td>
+</tr>
+<tr>
 <td><a href="#InstallInfoDialog.on_editButton_toggled">on_editButton_toggled</a></td>
 <td>Private slot to switch the dialog into edit mode.</td>
 </tr>
@@ -85,8 +89,12 @@
 <td>Private slot handling the save button press.</td>
 </tr>
 <tr>
+<td><a href="#InstallInfoDialog.on_updateButton_clicked">on_updateButton_clicked</a></td>
+<td>Private slot to show some upgrade instructions.</td>
+</tr>
+<tr>
 <td><a href="#InstallInfoDialog.reject">reject</a></td>
-<td>Private slot handling the closing of the dialog.</td>
+<td>Public slot handling the closing of the dialog.</td>
 </tr>
 <tr>
 <td><a href="#InstallInfoDialog.wasLoaded">wasLoaded</a></td>
@@ -120,6 +128,13 @@
 <p>
         Private method to save the data.
 </p>
+<a NAME="InstallInfoDialog.on_deleteButton_clicked" ID="InstallInfoDialog.on_deleteButton_clicked"></a>
+<h4>InstallInfoDialog.on_deleteButton_clicked</h4>
+<b>on_deleteButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot deleting the install information file.
+</p>
 <a NAME="InstallInfoDialog.on_editButton_toggled" ID="InstallInfoDialog.on_editButton_toggled"></a>
 <h4>InstallInfoDialog.on_editButton_toggled</h4>
 <b>on_editButton_toggled</b>(<i>checked</i>)
@@ -141,12 +156,19 @@
 <p>
         Private slot handling the save button press.
 </p>
+<a NAME="InstallInfoDialog.on_updateButton_clicked" ID="InstallInfoDialog.on_updateButton_clicked"></a>
+<h4>InstallInfoDialog.on_updateButton_clicked</h4>
+<b>on_updateButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to show some upgrade instructions.
+</p>
 <a NAME="InstallInfoDialog.reject" ID="InstallInfoDialog.reject"></a>
 <h4>InstallInfoDialog.reject</h4>
 <b>reject</b>(<i></i>)
 
 <p>
-        Private slot handling the closing of the dialog.
+        Public slot handling the closing of the dialog.
 </p>
 <a NAME="InstallInfoDialog.wasLoaded" ID="InstallInfoDialog.wasLoaded"></a>
 <h4>InstallInfoDialog.wasLoaded</h4>
--- a/eric6/Documentation/Source/index-eric6.E5Gui.html	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6/Documentation/Source/index-eric6.E5Gui.html	Fri Oct 23 20:01:22 2020 +0200
@@ -141,6 +141,10 @@
 <td>Module implementing a dialog to enter a file system path using a file picker.</td>
 </tr>
 <tr>
+<td><a href="eric6.E5Gui.E5PlainTextDialog.html">E5PlainTextDialog</a></td>
+<td>Module implementing a dialog to show some plain text.</td>
+</tr>
+<tr>
 <td><a href="eric6.E5Gui.E5ProcessDialog.html">E5ProcessDialog</a></td>
 <td>Module implementing a dialog starting a process and showing its output.</td>
 </tr>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/E5Gui/E5PlainTextDialog.py	Fri Oct 23 20:01:22 2020 +0200
@@ -0,0 +1,49 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2020 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to show some plain text.
+"""
+
+from PyQt5.QtCore import pyqtSlot
+from PyQt5.QtGui import QGuiApplication
+from PyQt5.QtWidgets import QDialog, QDialogButtonBox
+
+from .Ui_E5PlainTextDialog import Ui_E5PlainTextDialog
+
+
+class E5PlainTextDialog(QDialog, Ui_E5PlainTextDialog):
+    """
+    Class implementing a dialog to show some plain text.
+    """
+    def __init__(self, title="", text="", parent=None):
+        """
+        Constructor
+        
+        @param title title of the window
+        @type str
+        @param text text to be shown
+        @type str
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super(E5PlainTextDialog, self).__init__(parent)
+        self.setupUi(self)
+        
+        self.copyButton = self.buttonBox.addButton(
+            self.tr("Copy to Clipboard"), QDialogButtonBox.ActionRole)
+        self.copyButton.clicked.connect(self.on_copyButton_clicked)
+        
+        self.setWindowTitle(title)
+        self.textEdit.setPlainText(text)
+    
+    @pyqtSlot()
+    def on_copyButton_clicked(self):
+        """
+        Private slot to copy the text to the clipboard.
+        """
+        txt = self.textEdit.toPlainText()
+        cb = QGuiApplication.clipboard()
+        cb.setText(txt)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/E5Gui/E5PlainTextDialog.ui	Fri Oct 23 20:01:22 2020 +0200
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>E5PlainTextDialog</class>
+ <widget class="QDialog" name="E5PlainTextDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>500</width>
+    <height>400</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string/>
+  </property>
+  <property name="sizeGripEnabled">
+   <bool>true</bool>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QPlainTextEdit" name="textEdit">
+     <property name="readOnly">
+      <bool>true</bool>
+     </property>
+     <property name="textInteractionFlags">
+      <set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Close</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>E5PlainTextDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>E5PlainTextDialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
--- a/eric6/UI/InstallInfoDialog.py	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6/UI/InstallInfoDialog.py	Fri Oct 23 20:01:22 2020 +0200
@@ -8,9 +8,10 @@
 """
 
 import json
+import os
 
 from PyQt5.QtCore import pyqtSlot
-from PyQt5.QtWidgets import QDialog
+from PyQt5.QtWidgets import QDialog, QDialogButtonBox
 
 from E5Gui import E5MessageBox
 
@@ -20,7 +21,6 @@
 import UI.PixmapCache
 
 
-# TODO: add button to delete the info file
 class InstallInfoDialog(QDialog, Ui_InstallInfoDialog):
     """
     Class implementing a dialog to show information about the installation.
@@ -35,6 +35,13 @@
         super(InstallInfoDialog, self).__init__(parent)
         self.setupUi(self)
         
+        self.__deleteButton = self.buttonBox.addButton(
+            self.tr("Delete Info"), QDialogButtonBox.ActionRole)
+        self.__deleteButton.clicked.connect(self.on_deleteButton_clicked)
+        self.__updateButton = self.buttonBox.addButton(
+            self.tr("Upgrade Instructions"), QDialogButtonBox.ActionRole)
+        self.__updateButton.clicked.connect(self.on_updateButton_clicked)
+        
         self.__edited = False
         self.__loaded = True
         
@@ -42,6 +49,9 @@
         self.saveButton.setIcon(UI.PixmapCache.getIcon("fileSave"))
         
         infoFileName = Globals.getInstallInfoFilePath()
+        
+        self.__deleteButton.setEnabled(os.path.exists(infoFileName))
+        
         try:
             with open(infoFileName, "r") as infoFile:
                 self.__info = json.load(infoFile)
@@ -82,6 +92,8 @@
                 self.installDateTimeLabel.setText(
                     self.__info["installed_on"] if self.__info["installed_on"]
                     else self.tr("unknown"))
+            
+            self.__updateButton.setEnabled(bool(self.__info["exe"]))
         except EnvironmentError as err:
             E5MessageBox.critical(
                 self,
@@ -92,6 +104,8 @@
             )
             self.__loaded = False
             self.__info = {}
+            
+            self.__updateButton.setEnabled(False)
     
     def wasLoaded(self):
         """
@@ -177,3 +191,67 @@
                         " not be written.</p><p>Reason: {0}</p>""")
                 .format(str(err))
             )
+    
+    @pyqtSlot()
+    def on_deleteButton_clicked(self):
+        """
+        Private slot deleting the install information file.
+        """
+        res = E5MessageBox.yesNo(
+            self,
+            self.tr("Delete Installation Information"),
+            self.tr("""Do you really want to delete the installation"""
+                    """ information? It will be recreated at the next"""
+                    """ start."""))
+        if not res:
+            return
+        
+        infoFileName = Globals.getInstallInfoFilePath()
+        os.remove(infoFileName)
+        
+        # local data will be deleted automatically
+        self.__edited = False
+        
+        self.close()
+    
+    @pyqtSlot()
+    def on_updateButton_clicked(self):
+        """
+        Private slot to show some upgrade instructions.
+        """
+        updateTextList = []
+        cmdPrefix = ""
+        
+        if self.__info["sudo"]:
+            if Globals.isWindowsPlatform():
+                updateTextList.append(
+                    self.tr("Perform the following step(s) with Administrator"
+                            " privileges.\n"))
+            else:
+                cmdPrefix = "sudo "
+        
+        if self.__info["pip"]:
+            updateTextList.append(
+                "{0}{1} -m pip install --upgrade eric-ide".format(
+                    cmdPrefix, self.__info["exe"],
+                )
+            )
+        else:
+            if (
+                "install_cwd" in self.__info and
+                bool(self.__info["install_cwd"])
+            ):
+                updateTextList.append(
+                    "cd {0}".format(self.__info["install_cwd"])
+                )
+            updateTextList.append(
+                "{0}{1} {2}".format(
+                    cmdPrefix, self.__info["exe"], self.__info["argv"],
+                )
+            )
+        
+        from E5Gui.E5PlainTextDialog import E5PlainTextDialog
+        dlg = E5PlainTextDialog(
+            title=self.tr("Upgrade Instructions"),
+            text="\n".join(updateTextList))
+        dlg.exec()
--- a/eric6/i18n/eric6_cs.ts	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6/i18n/eric6_cs.ts	Fri Oct 23 20:01:22 2020 +0200
@@ -10251,6 +10251,14 @@
     </message>
 </context>
 <context>
+    <name>E5PlainTextDialog</name>
+    <message>
+        <location filename="../E5Gui/E5PlainTextDialog.py" line="35"/>
+        <source>Copy to Clipboard</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5ProcessDialog</name>
     <message>
         <location filename="../E5Gui/E5ProcessDialog.ui" line="26"/>
@@ -41177,52 +41185,52 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>Yes</source>
         <translation type="unfinished">Ano</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>No</source>
         <translation type="unfinished">Ne</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="64"/>
+        <location filename="../UI/InstallInfoDialog.py" line="75"/>
         <source>&apos;eric-ide&apos; was installed from PyPI using the pip command.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="70"/>
+        <location filename="../UI/InstallInfoDialog.py" line="81"/>
         <source>The information shown in this dialog was guessed at the first start of eric.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>Load Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>&lt;p&gt;The file containing the install information could not be read.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>The install information was edited. Unsaved changes will be lost. Save first?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>Save Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>&lt;p&gt;The file containing the install information could not be written.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -41232,17 +41240,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="50"/>
+        <location filename="../UI/InstallInfoDialog.py" line="61"/>
         <source>Installed as Administrator:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="52"/>
+        <location filename="../UI/InstallInfoDialog.py" line="63"/>
         <source>Installed with sudo:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="82"/>
+        <location filename="../UI/InstallInfoDialog.py" line="93"/>
         <source>unknown</source>
         <translation type="unfinished">neznámý</translation>
     </message>
@@ -41252,10 +41260,36 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="76"/>
+        <location filename="../UI/InstallInfoDialog.py" line="87"/>
         <source>The installation information was provided by the user.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="39"/>
+        <source>Delete Info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="255"/>
+        <source>Upgrade Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Delete Installation Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Do you really want to delete the installation information? It will be recreated at the next start.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="228"/>
+        <source>Perform the following step(s) with Administrator privileges.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>InterfacePage</name>
Binary file eric6/i18n/eric6_de.qm has changed
--- a/eric6/i18n/eric6_de.ts	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6/i18n/eric6_de.ts	Fri Oct 23 20:01:22 2020 +0200
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="de">
+<!DOCTYPE TS><TS version="2.0" language="de" sourcelanguage="">
 <context>
     <name>AboutDialog</name>
     <message>
@@ -2053,8 +2052,8 @@
     </message>
     <message>
         <location filename="../WebBrowser/Bookmarks/BookmarksMenu.py" line="170"/>
-        <source>Open in New Tab	Ctrl+LMB</source>
-        <translation>In neuem Register öffnen	Strg+LMK</translation>
+        <source>Open in New Tab<byte value="x9"/>Ctrl+LMB</source>
+        <translation>In neuem Register öffnen<byte value="x9"/>Strg+LMK</translation>
     </message>
     <message>
         <location filename="../WebBrowser/Bookmarks/BookmarksMenu.py" line="174"/>
@@ -2122,8 +2121,8 @@
     </message>
     <message>
         <location filename="../WebBrowser/Bookmarks/BookmarksToolBar.py" line="90"/>
-        <source>Open in New Tab	Ctrl+LMB</source>
-        <translation>In neuem Register öffnen	Strg+LMK</translation>
+        <source>Open in New Tab<byte value="x9"/>Ctrl+LMB</source>
+        <translation>In neuem Register öffnen<byte value="x9"/>Strg+LMK</translation>
     </message>
     <message>
         <location filename="../WebBrowser/Bookmarks/BookmarksToolBar.py" line="94"/>
@@ -9971,6 +9970,14 @@
     </message>
 </context>
 <context>
+    <name>E5PlainTextDialog</name>
+    <message>
+        <location filename="../E5Gui/E5PlainTextDialog.py" line="35"/>
+        <source>Copy to Clipboard</source>
+        <translation>In die Zwischenablage kopieren</translation>
+    </message>
+</context>
+<context>
     <name>E5ProcessDialog</name>
     <message>
         <location filename="../E5Gui/E5ProcessDialog.ui" line="26"/>
@@ -38172,52 +38179,52 @@
         <translation>Bemerkungen:</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>Yes</source>
         <translation>Ja</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>No</source>
         <translation>Nein</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="64"/>
+        <location filename="../UI/InstallInfoDialog.py" line="75"/>
         <source>&apos;eric-ide&apos; was installed from PyPI using the pip command.</source>
         <translation>&apos;eric-ide&apos; wurde von PyPI mittel pip Befehl installiert.</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="70"/>
+        <location filename="../UI/InstallInfoDialog.py" line="81"/>
         <source>The information shown in this dialog was guessed at the first start of eric.</source>
         <translation>Die in diesem Dialog angezeigte Information wurde beim ersten Start von eric erraten.</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>Load Install Information</source>
         <translation>Installationsinformation laden</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>&lt;p&gt;The file containing the install information could not be read.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Datei mit den Installationsinformationen konnte nicht geladen werden.&lt;/p&gt;&lt;p&gt;Ursache: {0}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>Install Information</source>
         <translation>Installationsinformationen</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>The install information was edited. Unsaved changes will be lost. Save first?</source>
         <translation>Die Installationsinformation wurde editiert. Ungesicherte Änderungen gehen verloren. Sichern?</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>Save Install Information</source>
         <translation>Installationsinformation sichern</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>&lt;p&gt;The file containing the install information could not be written.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Datei mit den Installationsinformationen konnte nicht geschrieben werden.&lt;/p&gt;&lt;p&gt;Ursache: {0}&lt;/p&gt;</translation>
     </message>
@@ -38227,17 +38234,17 @@
         <translation>Installationszeitpunkt:</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="50"/>
+        <location filename="../UI/InstallInfoDialog.py" line="61"/>
         <source>Installed as Administrator:</source>
         <translation>Als Administrator installiert:</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="52"/>
+        <location filename="../UI/InstallInfoDialog.py" line="63"/>
         <source>Installed with sudo:</source>
         <translation>Mit &apos;sudo&apos; installiert:</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="82"/>
+        <location filename="../UI/InstallInfoDialog.py" line="93"/>
         <source>unknown</source>
         <translation>unbekannt</translation>
     </message>
@@ -38247,10 +38254,37 @@
         <translation>Installiert von:</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="76"/>
+        <location filename="../UI/InstallInfoDialog.py" line="87"/>
         <source>The installation information was provided by the user.</source>
         <translation>Die Installationsinformationen wurden durch den Nutzer eingegeben.</translation>
     </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="39"/>
+        <source>Delete Info</source>
+        <translation>Info löschen</translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="255"/>
+        <source>Upgrade Instructions</source>
+        <translation>Aktualisierungsanweisungen</translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Delete Installation Information</source>
+        <translation>Löscht die Installationsinformationen</translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Do you really want to delete the installation information? It will be recreated at the next start.</source>
+        <translation>Sollen die Installationsinformationen wirklich gelöscht werden? Sie werden beim nächsten Start neu erzeugt.</translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="228"/>
+        <source>Perform the following step(s) with Administrator privileges.
+</source>
+        <translation>Führe die folgenden Schritte mit Administratorrechten aus.
+</translation>
+    </message>
 </context>
 <context>
     <name>InterfacePage</name>
@@ -44460,12 +44494,12 @@
     </message>
     <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1050"/>
-        <source>µPy Chart</source>
+        <source>&#xc2;&#xb5;Py Chart</source>
         <translation>µPy Chart</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1130"/>
-        <source>µPy Files</source>
+        <source>&#xc2;&#xb5;Py Files</source>
         <translation>µPy Dateien</translation>
     </message>
     <message>
@@ -83461,8 +83495,8 @@
     </message>
     <message>
         <location filename="../WebBrowser/WebBrowserView.py" line="676"/>
-        <source>Open Link in New Tab	Ctrl+LMB</source>
-        <translation>Link in neuem Fenster öffnen	Strg+LMK</translation>
+        <source>Open Link in New Tab<byte value="x9"/>Ctrl+LMB</source>
+        <translation>Link in neuem Fenster öffnen<byte value="x9"/>Strg+LMK</translation>
     </message>
     <message>
         <location filename="../WebBrowser/WebBrowserView.py" line="682"/>
--- a/eric6/i18n/eric6_empty.ts	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6/i18n/eric6_empty.ts	Fri Oct 23 20:01:22 2020 +0200
@@ -9866,6 +9866,14 @@
     </message>
 </context>
 <context>
+    <name>E5PlainTextDialog</name>
+    <message>
+        <location filename="../E5Gui/E5PlainTextDialog.py" line="35"/>
+        <source>Copy to Clipboard</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5ProcessDialog</name>
     <message>
         <location filename="../E5Gui/E5ProcessDialog.ui" line="26"/>
@@ -37951,52 +37959,52 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>Yes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>No</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="64"/>
+        <location filename="../UI/InstallInfoDialog.py" line="75"/>
         <source>&apos;eric-ide&apos; was installed from PyPI using the pip command.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="70"/>
+        <location filename="../UI/InstallInfoDialog.py" line="81"/>
         <source>The information shown in this dialog was guessed at the first start of eric.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>Load Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>&lt;p&gt;The file containing the install information could not be read.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>The install information was edited. Unsaved changes will be lost. Save first?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>Save Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>&lt;p&gt;The file containing the install information could not be written.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -38006,17 +38014,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="50"/>
+        <location filename="../UI/InstallInfoDialog.py" line="61"/>
         <source>Installed as Administrator:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="52"/>
+        <location filename="../UI/InstallInfoDialog.py" line="63"/>
         <source>Installed with sudo:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="82"/>
+        <location filename="../UI/InstallInfoDialog.py" line="93"/>
         <source>unknown</source>
         <translation type="unfinished"></translation>
     </message>
@@ -38026,10 +38034,36 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="76"/>
+        <location filename="../UI/InstallInfoDialog.py" line="87"/>
         <source>The installation information was provided by the user.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="39"/>
+        <source>Delete Info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="255"/>
+        <source>Upgrade Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Delete Installation Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Do you really want to delete the installation information? It will be recreated at the next start.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="228"/>
+        <source>Perform the following step(s) with Administrator privileges.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>InterfacePage</name>
--- a/eric6/i18n/eric6_en.ts	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6/i18n/eric6_en.ts	Fri Oct 23 20:01:22 2020 +0200
@@ -9881,6 +9881,14 @@
     </message>
 </context>
 <context>
+    <name>E5PlainTextDialog</name>
+    <message>
+        <location filename="../E5Gui/E5PlainTextDialog.py" line="35"/>
+        <source>Copy to Clipboard</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5ProcessDialog</name>
     <message>
         <location filename="../E5Gui/E5ProcessDialog.ui" line="26"/>
@@ -37984,52 +37992,52 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>Yes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>No</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="64"/>
+        <location filename="../UI/InstallInfoDialog.py" line="75"/>
         <source>&apos;eric-ide&apos; was installed from PyPI using the pip command.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="70"/>
+        <location filename="../UI/InstallInfoDialog.py" line="81"/>
         <source>The information shown in this dialog was guessed at the first start of eric.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>Load Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>&lt;p&gt;The file containing the install information could not be read.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>The install information was edited. Unsaved changes will be lost. Save first?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>Save Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>&lt;p&gt;The file containing the install information could not be written.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -38039,17 +38047,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="50"/>
+        <location filename="../UI/InstallInfoDialog.py" line="61"/>
         <source>Installed as Administrator:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="52"/>
+        <location filename="../UI/InstallInfoDialog.py" line="63"/>
         <source>Installed with sudo:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="82"/>
+        <location filename="../UI/InstallInfoDialog.py" line="93"/>
         <source>unknown</source>
         <translation type="unfinished"></translation>
     </message>
@@ -38059,10 +38067,36 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="76"/>
+        <location filename="../UI/InstallInfoDialog.py" line="87"/>
         <source>The installation information was provided by the user.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="39"/>
+        <source>Delete Info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="255"/>
+        <source>Upgrade Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Delete Installation Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Do you really want to delete the installation information? It will be recreated at the next start.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="228"/>
+        <source>Perform the following step(s) with Administrator privileges.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>InterfacePage</name>
--- a/eric6/i18n/eric6_es.ts	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6/i18n/eric6_es.ts	Fri Oct 23 20:01:22 2020 +0200
@@ -9965,6 +9965,14 @@
     </message>
 </context>
 <context>
+    <name>E5PlainTextDialog</name>
+    <message>
+        <location filename="../E5Gui/E5PlainTextDialog.py" line="35"/>
+        <source>Copy to Clipboard</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5ProcessDialog</name>
     <message>
         <location filename="../E5Gui/E5ProcessDialog.ui" line="26"/>
@@ -38173,52 +38181,52 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>Yes</source>
         <translation type="unfinished">Si</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>No</source>
         <translation type="unfinished">No</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="64"/>
+        <location filename="../UI/InstallInfoDialog.py" line="75"/>
         <source>&apos;eric-ide&apos; was installed from PyPI using the pip command.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="70"/>
+        <location filename="../UI/InstallInfoDialog.py" line="81"/>
         <source>The information shown in this dialog was guessed at the first start of eric.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>Load Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>&lt;p&gt;The file containing the install information could not be read.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>The install information was edited. Unsaved changes will be lost. Save first?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>Save Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>&lt;p&gt;The file containing the install information could not be written.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -38228,17 +38236,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="50"/>
+        <location filename="../UI/InstallInfoDialog.py" line="61"/>
         <source>Installed as Administrator:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="52"/>
+        <location filename="../UI/InstallInfoDialog.py" line="63"/>
         <source>Installed with sudo:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="82"/>
+        <location filename="../UI/InstallInfoDialog.py" line="93"/>
         <source>unknown</source>
         <translation type="unfinished">desconocido</translation>
     </message>
@@ -38248,10 +38256,36 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="76"/>
+        <location filename="../UI/InstallInfoDialog.py" line="87"/>
         <source>The installation information was provided by the user.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="39"/>
+        <source>Delete Info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="255"/>
+        <source>Upgrade Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Delete Installation Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Do you really want to delete the installation information? It will be recreated at the next start.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="228"/>
+        <source>Perform the following step(s) with Administrator privileges.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>InterfacePage</name>
--- a/eric6/i18n/eric6_fr.ts	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6/i18n/eric6_fr.ts	Fri Oct 23 20:01:22 2020 +0200
@@ -10226,6 +10226,14 @@
     </message>
 </context>
 <context>
+    <name>E5PlainTextDialog</name>
+    <message>
+        <location filename="../E5Gui/E5PlainTextDialog.py" line="35"/>
+        <source>Copy to Clipboard</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5ProcessDialog</name>
     <message>
         <location filename="../E5Gui/E5ProcessDialog.ui" line="26"/>
@@ -40519,52 +40527,52 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>Yes</source>
         <translation type="unfinished">Oui</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>No</source>
         <translation type="unfinished">Non</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="64"/>
+        <location filename="../UI/InstallInfoDialog.py" line="75"/>
         <source>&apos;eric-ide&apos; was installed from PyPI using the pip command.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="70"/>
+        <location filename="../UI/InstallInfoDialog.py" line="81"/>
         <source>The information shown in this dialog was guessed at the first start of eric.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>Load Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>&lt;p&gt;The file containing the install information could not be read.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>The install information was edited. Unsaved changes will be lost. Save first?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>Save Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>&lt;p&gt;The file containing the install information could not be written.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -40574,17 +40582,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="50"/>
+        <location filename="../UI/InstallInfoDialog.py" line="61"/>
         <source>Installed as Administrator:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="52"/>
+        <location filename="../UI/InstallInfoDialog.py" line="63"/>
         <source>Installed with sudo:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="82"/>
+        <location filename="../UI/InstallInfoDialog.py" line="93"/>
         <source>unknown</source>
         <translation type="unfinished">inconnu</translation>
     </message>
@@ -40594,10 +40602,36 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="76"/>
+        <location filename="../UI/InstallInfoDialog.py" line="87"/>
         <source>The installation information was provided by the user.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="39"/>
+        <source>Delete Info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="255"/>
+        <source>Upgrade Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Delete Installation Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Do you really want to delete the installation information? It will be recreated at the next start.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="228"/>
+        <source>Perform the following step(s) with Administrator privileges.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>InterfacePage</name>
--- a/eric6/i18n/eric6_it.ts	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6/i18n/eric6_it.ts	Fri Oct 23 20:01:22 2020 +0200
@@ -10448,6 +10448,14 @@
     </message>
 </context>
 <context>
+    <name>E5PlainTextDialog</name>
+    <message>
+        <location filename="../E5Gui/E5PlainTextDialog.py" line="35"/>
+        <source>Copy to Clipboard</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5ProcessDialog</name>
     <message>
         <location filename="../E5Gui/E5ProcessDialog.ui" line="26"/>
@@ -42739,52 +42747,52 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>Yes</source>
         <translation type="unfinished">Si</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>No</source>
         <translation type="unfinished">No</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="64"/>
+        <location filename="../UI/InstallInfoDialog.py" line="75"/>
         <source>&apos;eric-ide&apos; was installed from PyPI using the pip command.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="70"/>
+        <location filename="../UI/InstallInfoDialog.py" line="81"/>
         <source>The information shown in this dialog was guessed at the first start of eric.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>Load Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>&lt;p&gt;The file containing the install information could not be read.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>The install information was edited. Unsaved changes will be lost. Save first?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>Save Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>&lt;p&gt;The file containing the install information could not be written.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -42794,17 +42802,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="50"/>
+        <location filename="../UI/InstallInfoDialog.py" line="61"/>
         <source>Installed as Administrator:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="52"/>
+        <location filename="../UI/InstallInfoDialog.py" line="63"/>
         <source>Installed with sudo:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="82"/>
+        <location filename="../UI/InstallInfoDialog.py" line="93"/>
         <source>unknown</source>
         <translation type="unfinished"></translation>
     </message>
@@ -42814,10 +42822,36 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="76"/>
+        <location filename="../UI/InstallInfoDialog.py" line="87"/>
         <source>The installation information was provided by the user.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="39"/>
+        <source>Delete Info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="255"/>
+        <source>Upgrade Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Delete Installation Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Do you really want to delete the installation information? It will be recreated at the next start.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="228"/>
+        <source>Perform the following step(s) with Administrator privileges.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>InterfacePage</name>
--- a/eric6/i18n/eric6_pt.ts	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6/i18n/eric6_pt.ts	Fri Oct 23 20:01:22 2020 +0200
@@ -10452,6 +10452,14 @@
     </message>
 </context>
 <context>
+    <name>E5PlainTextDialog</name>
+    <message>
+        <location filename="../E5Gui/E5PlainTextDialog.py" line="35"/>
+        <source>Copy to Clipboard</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5ProcessDialog</name>
     <message>
         <location filename="../E5Gui/E5ProcessDialog.ui" line="26"/>
@@ -42322,52 +42330,52 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>Yes</source>
         <translation type="unfinished">Sim</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>No</source>
         <translation type="unfinished">Não</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="64"/>
+        <location filename="../UI/InstallInfoDialog.py" line="75"/>
         <source>&apos;eric-ide&apos; was installed from PyPI using the pip command.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="70"/>
+        <location filename="../UI/InstallInfoDialog.py" line="81"/>
         <source>The information shown in this dialog was guessed at the first start of eric.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>Load Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>&lt;p&gt;The file containing the install information could not be read.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>The install information was edited. Unsaved changes will be lost. Save first?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>Save Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>&lt;p&gt;The file containing the install information could not be written.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -42377,17 +42385,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="50"/>
+        <location filename="../UI/InstallInfoDialog.py" line="61"/>
         <source>Installed as Administrator:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="52"/>
+        <location filename="../UI/InstallInfoDialog.py" line="63"/>
         <source>Installed with sudo:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="82"/>
+        <location filename="../UI/InstallInfoDialog.py" line="93"/>
         <source>unknown</source>
         <translation type="unfinished">desconhecido</translation>
     </message>
@@ -42397,10 +42405,36 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="76"/>
+        <location filename="../UI/InstallInfoDialog.py" line="87"/>
         <source>The installation information was provided by the user.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="39"/>
+        <source>Delete Info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="255"/>
+        <source>Upgrade Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Delete Installation Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Do you really want to delete the installation information? It will be recreated at the next start.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="228"/>
+        <source>Perform the following step(s) with Administrator privileges.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>InterfacePage</name>
--- a/eric6/i18n/eric6_ru.ts	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6/i18n/eric6_ru.ts	Fri Oct 23 20:01:22 2020 +0200
@@ -10010,6 +10010,14 @@
     </message>
 </context>
 <context>
+    <name>E5PlainTextDialog</name>
+    <message>
+        <location filename="../E5Gui/E5PlainTextDialog.py" line="35"/>
+        <source>Copy to Clipboard</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5ProcessDialog</name>
     <message>
         <location filename="../E5Gui/E5ProcessDialog.ui" line="26"/>
@@ -38308,52 +38316,52 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>Yes</source>
         <translation type="unfinished">Да</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>No</source>
         <translation type="unfinished">Нет</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="64"/>
+        <location filename="../UI/InstallInfoDialog.py" line="75"/>
         <source>&apos;eric-ide&apos; was installed from PyPI using the pip command.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="70"/>
+        <location filename="../UI/InstallInfoDialog.py" line="81"/>
         <source>The information shown in this dialog was guessed at the first start of eric.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>Load Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>&lt;p&gt;The file containing the install information could not be read.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>The install information was edited. Unsaved changes will be lost. Save first?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>Save Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>&lt;p&gt;The file containing the install information could not be written.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -38363,17 +38371,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="50"/>
+        <location filename="../UI/InstallInfoDialog.py" line="61"/>
         <source>Installed as Administrator:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="52"/>
+        <location filename="../UI/InstallInfoDialog.py" line="63"/>
         <source>Installed with sudo:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="82"/>
+        <location filename="../UI/InstallInfoDialog.py" line="93"/>
         <source>unknown</source>
         <translation type="unfinished"></translation>
     </message>
@@ -38383,10 +38391,36 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="76"/>
+        <location filename="../UI/InstallInfoDialog.py" line="87"/>
         <source>The installation information was provided by the user.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="39"/>
+        <source>Delete Info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="255"/>
+        <source>Upgrade Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Delete Installation Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Do you really want to delete the installation information? It will be recreated at the next start.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="228"/>
+        <source>Perform the following step(s) with Administrator privileges.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>InterfacePage</name>
--- a/eric6/i18n/eric6_tr.ts	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6/i18n/eric6_tr.ts	Fri Oct 23 20:01:22 2020 +0200
@@ -10296,6 +10296,14 @@
     </message>
 </context>
 <context>
+    <name>E5PlainTextDialog</name>
+    <message>
+        <location filename="../E5Gui/E5PlainTextDialog.py" line="35"/>
+        <source>Copy to Clipboard</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5ProcessDialog</name>
     <message>
         <location filename="../E5Gui/E5ProcessDialog.ui" line="26"/>
@@ -41380,52 +41388,52 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>Yes</source>
         <translation type="unfinished">Evet</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>No</source>
         <translation type="unfinished">Hayır</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="64"/>
+        <location filename="../UI/InstallInfoDialog.py" line="75"/>
         <source>&apos;eric-ide&apos; was installed from PyPI using the pip command.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="70"/>
+        <location filename="../UI/InstallInfoDialog.py" line="81"/>
         <source>The information shown in this dialog was guessed at the first start of eric.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>Load Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>&lt;p&gt;The file containing the install information could not be read.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>The install information was edited. Unsaved changes will be lost. Save first?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>Save Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>&lt;p&gt;The file containing the install information could not be written.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -41435,17 +41443,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="50"/>
+        <location filename="../UI/InstallInfoDialog.py" line="61"/>
         <source>Installed as Administrator:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="52"/>
+        <location filename="../UI/InstallInfoDialog.py" line="63"/>
         <source>Installed with sudo:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="82"/>
+        <location filename="../UI/InstallInfoDialog.py" line="93"/>
         <source>unknown</source>
         <translation type="unfinished">bilinmeyen</translation>
     </message>
@@ -41455,10 +41463,36 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="76"/>
+        <location filename="../UI/InstallInfoDialog.py" line="87"/>
         <source>The installation information was provided by the user.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="39"/>
+        <source>Delete Info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="255"/>
+        <source>Upgrade Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Delete Installation Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Do you really want to delete the installation information? It will be recreated at the next start.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="228"/>
+        <source>Perform the following step(s) with Administrator privileges.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>InterfacePage</name>
--- a/eric6/i18n/eric6_zh_CN.ts	Thu Oct 22 19:42:29 2020 +0200
+++ b/eric6/i18n/eric6_zh_CN.ts	Fri Oct 23 20:01:22 2020 +0200
@@ -10300,6 +10300,14 @@
     </message>
 </context>
 <context>
+    <name>E5PlainTextDialog</name>
+    <message>
+        <location filename="../E5Gui/E5PlainTextDialog.py" line="35"/>
+        <source>Copy to Clipboard</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5ProcessDialog</name>
     <message>
         <location filename="../E5Gui/E5ProcessDialog.ui" line="26"/>
@@ -41934,52 +41942,52 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>Yes</source>
         <translation type="unfinished">是</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="60"/>
+        <location filename="../UI/InstallInfoDialog.py" line="71"/>
         <source>No</source>
         <translation type="unfinished">否</translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="64"/>
+        <location filename="../UI/InstallInfoDialog.py" line="75"/>
         <source>&apos;eric-ide&apos; was installed from PyPI using the pip command.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="70"/>
+        <location filename="../UI/InstallInfoDialog.py" line="81"/>
         <source>The information shown in this dialog was guessed at the first start of eric.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>Load Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="86"/>
+        <location filename="../UI/InstallInfoDialog.py" line="99"/>
         <source>&lt;p&gt;The file containing the install information could not be read.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="136"/>
+        <location filename="../UI/InstallInfoDialog.py" line="151"/>
         <source>The install information was edited. Unsaved changes will be lost. Save first?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>Save Install Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="173"/>
+        <location filename="../UI/InstallInfoDialog.py" line="188"/>
         <source>&lt;p&gt;The file containing the install information could not be written.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -41989,17 +41997,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="50"/>
+        <location filename="../UI/InstallInfoDialog.py" line="61"/>
         <source>Installed as Administrator:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="52"/>
+        <location filename="../UI/InstallInfoDialog.py" line="63"/>
         <source>Installed with sudo:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="82"/>
+        <location filename="../UI/InstallInfoDialog.py" line="93"/>
         <source>unknown</source>
         <translation type="unfinished">未知</translation>
     </message>
@@ -42009,10 +42017,36 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/InstallInfoDialog.py" line="76"/>
+        <location filename="../UI/InstallInfoDialog.py" line="87"/>
         <source>The installation information was provided by the user.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="39"/>
+        <source>Delete Info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="255"/>
+        <source>Upgrade Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Delete Installation Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="201"/>
+        <source>Do you really want to delete the installation information? It will be recreated at the next start.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/InstallInfoDialog.py" line="228"/>
+        <source>Perform the following step(s) with Administrator privileges.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>InterfacePage</name>

eric ide

mercurial