Merged with the default branch to prepare the 18.07 release. maintenance

Mon, 02 Jul 2018 18:59:30 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 02 Jul 2018 18:59:30 +0200
branch
maintenance
changeset 6395
613e37fabd96
parent 6320
4c45d163c6ac (current diff)
parent 6394
17ecf4a340e7 (diff)
child 6399
c0a7436ccaaa

Merged with the default branch to prepare the 18.07 release.

APIs/Python3/eric6.api file | annotate | diff | comparison | revisions
Debugger/DebugServer.py file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.html file | annotate | diff | comparison | revisions
Helpviewer/HelpBrowserWV.py file | annotate | diff | comparison | revisions
Plugins/PluginVirtualenvInterface.py file | annotate | diff | comparison | revisions
Plugins/UiExtensionPlugins/VirtualenvInterface/VirtualenvConfigurationDialog.py file | annotate | diff | comparison | revisions
Plugins/UiExtensionPlugins/VirtualenvInterface/VirtualenvConfigurationDialog.ui file | annotate | diff | comparison | revisions
Plugins/UiExtensionPlugins/VirtualenvInterface/VirtualenvExecDialog.py file | annotate | diff | comparison | revisions
Plugins/UiExtensionPlugins/VirtualenvInterface/VirtualenvExecDialog.ui file | annotate | diff | comparison | revisions
Plugins/UiExtensionPlugins/VirtualenvInterface/__init__.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationDialog.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerPythonPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerPythonPage.ui file | annotate | diff | comparison | revisions
Preferences/__init__.py file | annotate | diff | comparison | revisions
QScintilla/Shell.py file | annotate | diff | comparison | revisions
UI/Previewers/PreviewerHTML.py file | annotate | diff | comparison | revisions
UI/UserInterface.py file | annotate | diff | comparison | revisions
changelog file | annotate | diff | comparison | revisions
eric6.e4p file | annotate | diff | comparison | revisions
i18n/eric6_cs.ts file | annotate | diff | comparison | revisions
i18n/eric6_de.qm file | annotate | diff | comparison | revisions
i18n/eric6_de.ts file | annotate | diff | comparison | revisions
i18n/eric6_empty.ts file | annotate | diff | comparison | revisions
i18n/eric6_en.ts file | annotate | diff | comparison | revisions
i18n/eric6_es.qm file | annotate | diff | comparison | revisions
i18n/eric6_es.ts file | annotate | diff | comparison | revisions
i18n/eric6_fr.ts file | annotate | diff | comparison | revisions
i18n/eric6_it.ts file | annotate | diff | comparison | revisions
i18n/eric6_pt.ts file | annotate | diff | comparison | revisions
i18n/eric6_ru.qm file | annotate | diff | comparison | revisions
i18n/eric6_ru.ts file | annotate | diff | comparison | revisions
i18n/eric6_tr.ts file | annotate | diff | comparison | revisions
i18n/eric6_zh_CN.ts file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric6.api	Sat Jun 02 12:46:57 2018 +0200
+++ b/APIs/Python3/eric6.api	Mon Jul 02 18:59:30 2018 +0200
@@ -424,15 +424,17 @@
 eric6.Debugger.DebugServer.DebugServer.getBreakPointModel?4()
 eric6.Debugger.DebugServer.DebugServer.getClientCapabilities?4(clientType)
 eric6.Debugger.DebugServer.DebugServer.getClientInterpreter?4()
+eric6.Debugger.DebugServer.DebugServer.getClientType?4()
 eric6.Debugger.DebugServer.DebugServer.getExtensions?4(language)
 eric6.Debugger.DebugServer.DebugServer.getHostAddress?4(localhost)
 eric6.Debugger.DebugServer.DebugServer.getSupportedLanguages?4(shellOnly=False)
 eric6.Debugger.DebugServer.DebugServer.getWatchPointModel?4()
+eric6.Debugger.DebugServer.DebugServer.isClientProcessUp?4()
 eric6.Debugger.DebugServer.DebugServer.isConnected?4()
 eric6.Debugger.DebugServer.DebugServer.passiveDebugStarted?7
 eric6.Debugger.DebugServer.DebugServer.passiveStartUp?4(fn, exc)
 eric6.Debugger.DebugServer.DebugServer.preferencesChanged?4()
-eric6.Debugger.DebugServer.DebugServer.registerDebuggerInterface?4(interfaceName, getRegistryData)
+eric6.Debugger.DebugServer.DebugServer.registerDebuggerInterface?4(interfaceName, getRegistryData, reregister=False)
 eric6.Debugger.DebugServer.DebugServer.remoteBanner?4()
 eric6.Debugger.DebugServer.DebugServer.remoteBreakpoint?4(fn, line, setBreakpoint, cond=None, temp=False)
 eric6.Debugger.DebugServer.DebugServer.remoteCapabilities?4()
@@ -441,13 +443,13 @@
 eric6.Debugger.DebugServer.DebugServer.remoteClientVariables?4(scope, filterList, framenr=0)
 eric6.Debugger.DebugServer.DebugServer.remoteCompletion?4(text)
 eric6.Debugger.DebugServer.DebugServer.remoteContinue?4(special=False)
-eric6.Debugger.DebugServer.DebugServer.remoteCoverage?4(interpreter, fn, argv, wd, env, autoClearShell=True, erase=False, forProject=False, runInConsole=False, clientType="")
+eric6.Debugger.DebugServer.DebugServer.remoteCoverage?4(venvName, fn, argv, wd, env, autoClearShell=True, erase=False, forProject=False, runInConsole=False, clientType="")
 eric6.Debugger.DebugServer.DebugServer.remoteEnvironment?4(env)
-eric6.Debugger.DebugServer.DebugServer.remoteLoad?4(interpreter, fn, argv, wd, env, autoClearShell=True, tracePython=False, autoContinue=True, forProject=False, runInConsole=False, autoFork=False, forkChild=False, clientType="", enableCallTrace=False)
+eric6.Debugger.DebugServer.DebugServer.remoteLoad?4(venvName, fn, argv, wd, env, autoClearShell=True, tracePython=False, autoContinue=True, forProject=False, runInConsole=False, autoFork=False, forkChild=False, clientType="", enableCallTrace=False)
 eric6.Debugger.DebugServer.DebugServer.remoteMoveIP?4(line)
-eric6.Debugger.DebugServer.DebugServer.remoteProfile?4(interpreter, fn, argv, wd, env, autoClearShell=True, erase=False, forProject=False, runInConsole=False, clientType="")
+eric6.Debugger.DebugServer.DebugServer.remoteProfile?4(venvName, fn, argv, wd, env, autoClearShell=True, erase=False, forProject=False, runInConsole=False, clientType="")
 eric6.Debugger.DebugServer.DebugServer.remoteRawInput?4(s)
-eric6.Debugger.DebugServer.DebugServer.remoteRun?4(interpreter, fn, argv, wd, env, autoClearShell=True, forProject=False, runInConsole=False, autoFork=False, forkChild=False, clientType="")
+eric6.Debugger.DebugServer.DebugServer.remoteRun?4(venvName, fn, argv, wd, env, autoClearShell=True, forProject=False, runInConsole=False, autoFork=False, forkChild=False, clientType="")
 eric6.Debugger.DebugServer.DebugServer.remoteSetThread?4(tid)
 eric6.Debugger.DebugServer.DebugServer.remoteStatement?4(stmt)
 eric6.Debugger.DebugServer.DebugServer.remoteStep?4()
@@ -481,7 +483,7 @@
 eric6.Debugger.DebugServer.DebugServer.signalClientVariable?4(scope, variables)
 eric6.Debugger.DebugServer.DebugServer.signalClientVariables?4(scope, variables)
 eric6.Debugger.DebugServer.DebugServer.signalClientWatchConditionError?4(condition)
-eric6.Debugger.DebugServer.DebugServer.startClient?4(unplanned=True, clType=None, forProject=False, runInConsole=False, interpreter="")
+eric6.Debugger.DebugServer.DebugServer.startClient?4(unplanned=True, clType=None, forProject=False, runInConsole=False, venvName="")
 eric6.Debugger.DebugServer.DebugServer.unregisterDebuggerInterface?4(interfaceName)
 eric6.Debugger.DebugServer.DebugServer.utFinished?7
 eric6.Debugger.DebugServer.DebugServer.utPrepared?7
@@ -514,7 +516,6 @@
 eric6.Debugger.DebugUI.DebugUI.setExcIgnoreList?4(excIgnoreList)
 eric6.Debugger.DebugUI.DebugUI.setExcList?4(excList)
 eric6.Debugger.DebugUI.DebugUI.setExceptionReporting?4(exceptions)
-eric6.Debugger.DebugUI.DebugUI.setInterpreterHistory?4(interpreterStr, clearHistories=False, history=None)
 eric6.Debugger.DebugUI.DebugUI.setTracePython?4(tracePython)
 eric6.Debugger.DebugUI.DebugUI.setWdHistory?4(wdStr, clearHistories=False, history=None)
 eric6.Debugger.DebugUI.DebugUI.shutdown?4()
@@ -550,6 +551,7 @@
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.getClientCapabilities?4()
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.isConnected?4()
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.newConnection?4(sock)
+eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteBanner?4()
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteBreakpoint?4(fn, line, setBreakpoint, cond=None, temp=False)
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteBreakpointEnable?4(fn, line, enable)
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteBreakpointIgnore?4(fn, line, count)
@@ -582,8 +584,8 @@
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteWatchpointIgnore?4(cond, count)
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.setCallTraceEnabled?4(on)
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.shutdown?4()
-eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.startRemote?4(port, runInConsole, interpreter)
-eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.startRemoteForProject?4(port, runInConsole, interpreter)
+eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.startRemote?4(port, runInConsole, venvName)
+eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.startRemoteForProject?4(port, runInConsole, venvName)
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone?1(debugServer, passive)
 eric6.Debugger.DebuggerInterfaceNone.createDebuggerInterfaceNone?4(debugServer, passive)
 eric6.Debugger.DebuggerInterfaceNone.getRegistryData?4()
@@ -624,8 +626,8 @@
 eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteWatchpointIgnore?4(cond, count)
 eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.setCallTraceEnabled?4(on)
 eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.shutdown?4()
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.startRemote?4(port, runInConsole, interpreter)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.startRemoteForProject?4(port, runInConsole, interpreter)
+eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.startRemote?4(port, runInConsole, venvName)
+eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.startRemoteForProject?4(port, runInConsole, venvName)
 eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython?1(debugServer, passive, pythonVariant)
 eric6.Debugger.DebuggerInterfacePython.createDebuggerInterfacePython2?4(debugServer, passive)
 eric6.Debugger.DebuggerInterfacePython.createDebuggerInterfacePython3?4(debugServer, passive)
@@ -657,7 +659,7 @@
 eric6.Debugger.StartDialog.StartDialog.historiesModified?4()
 eric6.Debugger.StartDialog.StartDialog.on_buttonBox_clicked?4(button)
 eric6.Debugger.StartDialog.StartDialog.on_modFuncCombo_editTextChanged?4()
-eric6.Debugger.StartDialog.StartDialog?1(caption, interpreterList, argvList, wdList, envList, exceptions, parent=None, dialogType=0, modfuncList=None, tracePython=False, autoClearShell=True, autoContinue=True, autoFork=False, forkChild=False)
+eric6.Debugger.StartDialog.StartDialog?1(caption, lastUsedVenvName, argvList, wdList, envList, exceptions, parent=None, dialogType=0, modfuncList=None, tracePython=False, autoClearShell=True, autoContinue=True, autoFork=False, forkChild=False)
 eric6.Debugger.StartHistoryEditDialog.StartHistoryEditDialog.getHistory?4()
 eric6.Debugger.StartHistoryEditDialog.StartHistoryEditDialog.on_deleteAllButton_clicked?4()
 eric6.Debugger.StartHistoryEditDialog.StartHistoryEditDialog.on_deleteButton_clicked?4()
@@ -883,7 +885,12 @@
 eric6.E5Gui.E5ErrorMessage.E5ErrorMessage.editMessageFilters?4()
 eric6.E5Gui.E5ErrorMessage.E5ErrorMessage.showMessage?4(message, msgType="")
 eric6.E5Gui.E5ErrorMessage.E5ErrorMessage?1(parent=None)
+eric6.E5Gui.E5ErrorMessage._defaultFilters?8
+eric6.E5Gui.E5ErrorMessage._filterSettings?8
+eric6.E5Gui.E5ErrorMessage._msgHandlerDialog?8
+eric6.E5Gui.E5ErrorMessage._origMsgHandler?8
 eric6.E5Gui.E5ErrorMessage.editMessageFilters?4()
+eric6.E5Gui.E5ErrorMessage.filterMessage?4(message)
 eric6.E5Gui.E5ErrorMessage.messageHandler?4(msgType, *args)
 eric6.E5Gui.E5ErrorMessage.messageHandlerInstalled?4()
 eric6.E5Gui.E5ErrorMessage.qtHandler?4()
@@ -1673,7 +1680,6 @@
 eric6.Globals.compatibility_fixes.open?4(filein, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True)
 eric6.Globals.configDir?7
 eric6.Globals.desktopName?4()
-eric6.Globals.findPythonInterpreters?4(pyVersion)
 eric6.Globals.getConfigDir?4()
 eric6.Globals.getPyQt5ModulesDirectory?4()
 eric6.Globals.getPyQtToolsPath?4(version=5)
@@ -4410,15 +4416,13 @@
 eric6.Plugins.PluginEricdoc.version?7
 eric6.Plugins.PluginPipInterface.PipInterfacePlugin.PreferencesKey?7
 eric6.Plugins.PluginPipInterface.PipInterfacePlugin.activate?4()
-eric6.Plugins.PluginPipInterface.PipInterfacePlugin.currentPipChanged?7
+eric6.Plugins.PluginPipInterface.PipInterfacePlugin.currentEnvironmentChanged?7
 eric6.Plugins.PluginPipInterface.PipInterfacePlugin.deactivate?4()
-eric6.Plugins.PluginPipInterface.PipInterfacePlugin.getDefaultPipExecutables?4()
 eric6.Plugins.PluginPipInterface.PipInterfacePlugin.getMenu?4(name)
 eric6.Plugins.PluginPipInterface.PipInterfacePlugin.getMenuNames?4()
 eric6.Plugins.PluginPipInterface.PipInterfacePlugin.getPreferences?4(key)
 eric6.Plugins.PluginPipInterface.PipInterfacePlugin.setPreferences?4(key, value)
 eric6.Plugins.PluginPipInterface.PipInterfacePlugin?1(ui)
-eric6.Plugins.PluginPipInterface._findDefaultExecutables?5(majorVersion)
 eric6.Plugins.PluginPipInterface.author?7
 eric6.Plugins.PluginPipInterface.autoactivate?7
 eric6.Plugins.PluginPipInterface.className?7
@@ -4427,7 +4431,6 @@
 eric6.Plugins.PluginPipInterface.error?7
 eric6.Plugins.PluginPipInterface.exeDisplayDataList?4()
 eric6.Plugins.PluginPipInterface.getConfigData?4()
-eric6.Plugins.PluginPipInterface.getExePath?4(branch, access, versionStr)
 eric6.Plugins.PluginPipInterface.longDescription?7
 eric6.Plugins.PluginPipInterface.name?7
 eric6.Plugins.PluginPipInterface.needsRestart?7
@@ -4633,22 +4636,6 @@
 eric6.Plugins.PluginVcsSubversion.shortDescription?7
 eric6.Plugins.PluginVcsSubversion.subversionCfgPluginObject?7
 eric6.Plugins.PluginVcsSubversion.version?7
-eric6.Plugins.PluginVirtualenvInterface.VirtualenvInterfacePlugin.activate?4()
-eric6.Plugins.PluginVirtualenvInterface.VirtualenvInterfacePlugin.deactivate?4()
-eric6.Plugins.PluginVirtualenvInterface.VirtualenvInterfacePlugin?1(ui)
-eric6.Plugins.PluginVirtualenvInterface.author?7
-eric6.Plugins.PluginVirtualenvInterface.autoactivate?7
-eric6.Plugins.PluginVirtualenvInterface.className?7
-eric6.Plugins.PluginVirtualenvInterface.deactivateable?7
-eric6.Plugins.PluginVirtualenvInterface.error?7
-eric6.Plugins.PluginVirtualenvInterface.longDescription?7
-eric6.Plugins.PluginVirtualenvInterface.name?7
-eric6.Plugins.PluginVirtualenvInterface.needsRestart?7
-eric6.Plugins.PluginVirtualenvInterface.packageName?7
-eric6.Plugins.PluginVirtualenvInterface.pyqtApi?7
-eric6.Plugins.PluginVirtualenvInterface.python2Compatible?7
-eric6.Plugins.PluginVirtualenvInterface.shortDescription?7
-eric6.Plugins.PluginVirtualenvInterface.version?7
 eric6.Plugins.PluginVmListspace.VmListspacePlugin.activate?4()
 eric6.Plugins.PluginVmListspace.VmListspacePlugin.deactivate?4()
 eric6.Plugins.PluginVmListspace.VmListspacePlugin?1(ui)
@@ -4870,22 +4857,23 @@
 eric6.Plugins.PluginWizardSetup.python2Compatible?7
 eric6.Plugins.PluginWizardSetup.shortDescription?7
 eric6.Plugins.PluginWizardSetup.version?7
-eric6.Plugins.UiExtensionPlugins.PipInterface.ConfigurationPage.PipPage.PipPage.on_addButton_clicked?4()
-eric6.Plugins.UiExtensionPlugins.PipInterface.ConfigurationPage.PipPage.PipPage.on_defaultListButton_clicked?4()
 eric6.Plugins.UiExtensionPlugins.PipInterface.ConfigurationPage.PipPage.PipPage.save?4()
 eric6.Plugins.UiExtensionPlugins.PipInterface.ConfigurationPage.PipPage.PipPage?1(plugin)
 eric6.Plugins.UiExtensionPlugins.PipInterface.DefaultIndexUrlPip?7
 eric6.Plugins.UiExtensionPlugins.PipInterface.DefaultIndexUrlXml?7
 eric6.Plugins.UiExtensionPlugins.PipInterface.DefaultPyPiUrl?7
+eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip.getDefaultEnvironmentString?4()
 eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip.getMenu?4(name)
 eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip.getMenuNames?4()
+eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip.getVirtualenvInterpreter?4(venvName)
+eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip.getVirtualenvNames?4()
 eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip.initActions?4()
 eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip.initMenu?4()
-eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip.installPackages?4(packages, cmd="")
-eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip.runProcess?4(args, cmd="")
-eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip.uninstallPackages?4(packages, cmd="")
-eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip.upgradePackages?4(packages, cmd="")
-eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip.upgradePip?4(pip="")
+eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip.installPackages?4(packages, venvName="", userSite=False)
+eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip.runProcess?4(args, interpreter)
+eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip.uninstallPackages?4(packages, venvName="")
+eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip.upgradePackages?4(packages, venvName="", userSite=False)
+eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip.upgradePip?4(venvName="", userSite=False)
 eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.Pip?1(plugin, parent=None)
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipDialog.PipDialog.closeEvent?4(e)
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipDialog.PipDialog.on_buttonBox_clicked?4(button)
@@ -4894,22 +4882,21 @@
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipDialog.PipDialog?1(text, parent=None)
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipFileSelectionDialog.PipFileSelectionDialog.getData?4()
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipFileSelectionDialog.PipFileSelectionDialog.on_filePicker_textChanged?4(txt)
-eric6.Plugins.UiExtensionPlugins.PipInterface.PipFileSelectionDialog.PipFileSelectionDialog?1(plugin, mode, parent=None)
+eric6.Plugins.UiExtensionPlugins.PipInterface.PipFileSelectionDialog.PipFileSelectionDialog?1(pip, mode, install=True, parent=None)
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog.closeEvent?4(e)
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog.on_buttonBox_clicked?4(button)
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog.on_copyButton_clicked?4()
-eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog.on_fileButton_clicked?4()
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog.on_insertButton_clicked?4()
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog.on_localCheckBox_clicked?4(checked)
-eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog.on_pipComboBox_activated?4(txt)
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog.on_replaceAllButton_clicked?4()
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog.on_replaceSelectionButton_clicked?4()
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog.on_requirementsEdit_textChanged?4()
-eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog.on_requirementsFileEdit_textChanged?4(txt)
+eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog.on_requirementsFilePicker_textChanged?4(txt)
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog.on_saveButton_clicked?4()
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog.on_saveToButton_clicked?4()
+eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog.on_venvComboBox_activated?4(txt)
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog.start?4()
-eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog?1(pip, plugin, parent=None)
+eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.PipFreezeDialog?1(pip, parent=None)
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.PipListDialog.CommandArguments?7
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.PipListDialog.ShowProcessClassifiersMode?7
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.PipListDialog.ShowProcessEntryPointsMode?7
@@ -4921,14 +4908,15 @@
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.PipListDialog.on_localCheckBox_clicked?4(checked)
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.PipListDialog.on_notRequiredCheckBox_clicked?4(checked)
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.PipListDialog.on_packageList_itemSelectionChanged?4()
-eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.PipListDialog.on_pipComboBox_activated?4(txt)
+eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.PipListDialog.on_userCheckBox_clicked?4(checked)
+eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.PipListDialog.on_venvComboBox_activated?4(txt)
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.PipListDialog.on_verboseCheckBox_clicked?4(checked)
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.PipListDialog.start?4()
-eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.PipListDialog?1(pip, mode, plugin, title, parent=None)
+eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.PipListDialog?1(pip, mode, indexUrl, title, parent=None)
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipPackageDetailsDialog.PipPackageDetailsDialog?1(detailsData, downloadsData, parent=None)
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipPackagesInputDialog.PipPackagesInputDialog.getData?4()
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipPackagesInputDialog.PipPackagesInputDialog.on_packagesEdit_textChanged?4(txt)
-eric6.Plugins.UiExtensionPlugins.PipInterface.PipPackagesInputDialog.PipPackagesInputDialog?1(plugin, title, parent=None)
+eric6.Plugins.UiExtensionPlugins.PipInterface.PipPackagesInputDialog.PipPackagesInputDialog?1(pip, title, install=True, parent=None)
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog.PipSearchDialog.Stopwords?7
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog.PipSearchDialog.VersionRole?7
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog.PipSearchDialog.closeEvent?4(e)
@@ -4937,7 +4925,9 @@
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog.PipSearchDialog.on_resultList_itemSelectionChanged?4()
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog.PipSearchDialog.on_searchButton_clicked?4()
 eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog.PipSearchDialog.on_searchEdit_textChanged?4(txt)
-eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog.PipSearchDialog?1(pip, plugin, parent=None)
+eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog.PipSearchDialog?1(pip, indexUrl, parent=None)
+eric6.Plugins.UiExtensionPlugins.PipInterface.PipSelectionDialog.PipSelectionDialog.getData?4()
+eric6.Plugins.UiExtensionPlugins.PipInterface.PipSelectionDialog.PipSelectionDialog?1(pip, parent=None)
 eric6.Plugins.UiExtensionPlugins.Translator.ConfigurationPage.TranslatorPage.TranslatorPage.on_defaultButton_clicked?4()
 eric6.Plugins.UiExtensionPlugins.Translator.ConfigurationPage.TranslatorPage.TranslatorPage.on_languagesList_itemChanged?4(item)
 eric6.Plugins.UiExtensionPlugins.Translator.ConfigurationPage.TranslatorPage.TranslatorPage.on_setButton_clicked?4()
@@ -5028,18 +5018,6 @@
 eric6.Plugins.UiExtensionPlugins.Translator.TranslatorWidget.TranslatorWidget.on_transLanguageComboBox_currentIndexChanged?4(index)
 eric6.Plugins.UiExtensionPlugins.Translator.TranslatorWidget.TranslatorWidget.on_translateButton_clicked?4()
 eric6.Plugins.UiExtensionPlugins.Translator.TranslatorWidget.TranslatorWidget?1(plugin, translator, parent=None)
-eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog.getData?4()
-eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog.on_extraSearchPathButton_clicked?4()
-eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog.on_pythonExecButton_clicked?4()
-eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog.on_pythonExecEdit_textChanged?4(txt)
-eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog.on_pyvenvButton_toggled?4(checked)
-eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog.on_targetDirectoryButton_clicked?4()
-eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog.on_targetDirectoryEdit_textChanged?4(txt)
-eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog.on_virtualenvButton_toggled?4(checked)
-eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog?1(parent=None)
-eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.VirtualenvExecDialog.on_buttonBox_clicked?4(button)
-eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.VirtualenvExecDialog.start?4(arguments)
-eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.VirtualenvExecDialog?1(pyvenv, targetDir, openTarget, createLog, createScript, interpreter, parent=None)
 eric6.Plugins.VcsPlugins.vcsGit.Config.ConfigGitSchemes?7
 eric6.Plugins.VcsPlugins.vcsGit.ConfigurationPage.GitPage.GitPage.on_configButton_clicked?4()
 eric6.Plugins.VcsPlugins.vcsGit.ConfigurationPage.GitPage.GitPage.save?4()
@@ -5047,6 +5025,7 @@
 eric6.Plugins.VcsPlugins.vcsGit.GitAddRemoteDialog.GitAddRemoteDialog.getData?4()
 eric6.Plugins.VcsPlugins.vcsGit.GitAddRemoteDialog.GitAddRemoteDialog.on_nameEdit_textChanged?4(txt)
 eric6.Plugins.VcsPlugins.vcsGit.GitAddRemoteDialog.GitAddRemoteDialog.on_urlEdit_textChanged?4(txt)
+eric6.Plugins.VcsPlugins.vcsGit.GitAddRemoteDialog.GitAddRemoteDialog.on_userEdit_textChanged?4(txt)
 eric6.Plugins.VcsPlugins.vcsGit.GitAddRemoteDialog.GitAddRemoteDialog?1(parent=None)
 eric6.Plugins.VcsPlugins.vcsGit.GitApplyBundleDataDialog.GitApplyBundleDataDialog.getData?4()
 eric6.Plugins.VcsPlugins.vcsGit.GitApplyBundleDataDialog.GitApplyBundleDataDialog?1(bundleHeads, branches, parent=None)
@@ -5109,6 +5088,9 @@
 eric6.Plugins.VcsPlugins.vcsGit.GitBundleDialog.GitBundleDialog.on_tagButton_toggled?4(checked)
 eric6.Plugins.VcsPlugins.vcsGit.GitBundleDialog.GitBundleDialog.on_tagCombo_editTextChanged?4(txt)
 eric6.Plugins.VcsPlugins.vcsGit.GitBundleDialog.GitBundleDialog?1(tagsList, branchesList, parent=None)
+eric6.Plugins.VcsPlugins.vcsGit.GitChangeRemoteUrlDialog.GitChangeRemoteUrlDialog.getData?4()
+eric6.Plugins.VcsPlugins.vcsGit.GitChangeRemoteUrlDialog.GitChangeRemoteUrlDialog.on_newUrlEdit_textChanged?4(txt)
+eric6.Plugins.VcsPlugins.vcsGit.GitChangeRemoteUrlDialog.GitChangeRemoteUrlDialog?1(remoteName, remoteUrl, parent=None)
 eric6.Plugins.VcsPlugins.vcsGit.GitCherryPickDialog.GitCherryPickDialog.getData?4()
 eric6.Plugins.VcsPlugins.vcsGit.GitCherryPickDialog.GitCherryPickDialog.on_commitsEdit_textChanged?4()
 eric6.Plugins.VcsPlugins.vcsGit.GitCherryPickDialog.GitCherryPickDialog?1(commits=None, parent=None)
@@ -5286,10 +5268,15 @@
 eric6.Plugins.VcsPlugins.vcsGit.GitReflogBrowserDialog.GitReflogBrowserDialog.show?4()
 eric6.Plugins.VcsPlugins.vcsGit.GitReflogBrowserDialog.GitReflogBrowserDialog.start?4(projectdir)
 eric6.Plugins.VcsPlugins.vcsGit.GitReflogBrowserDialog.GitReflogBrowserDialog?1(vcs, parent=None)
+eric6.Plugins.VcsPlugins.vcsGit.GitRemoteCredentialsDialog.GitRemoteCredentialsDialog.getData?4()
+eric6.Plugins.VcsPlugins.vcsGit.GitRemoteCredentialsDialog.GitRemoteCredentialsDialog.on_userEdit_textChanged?4(txt)
+eric6.Plugins.VcsPlugins.vcsGit.GitRemoteCredentialsDialog.GitRemoteCredentialsDialog?1(remoteName, remoteUrl, parent=None)
 eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.GitRemoteRepositoriesDialog.closeEvent?4(e)
 eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.GitRemoteRepositoriesDialog.keyPressEvent?4(evt)
 eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.GitRemoteRepositoriesDialog.on_addButton_clicked?4()
 eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.GitRemoteRepositoriesDialog.on_buttonBox_clicked?4(button)
+eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.GitRemoteRepositoriesDialog.on_changeUrlButton_clicked?4()
+eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.GitRemoteRepositoriesDialog.on_credentialsButton_clicked?4()
 eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.GitRemoteRepositoriesDialog.on_input_returnPressed?4()
 eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.GitRemoteRepositoriesDialog.on_passwordCheckBox_toggled?4(isOn)
 eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.GitRemoteRepositoriesDialog.on_pruneButton_clicked?4()
@@ -5450,6 +5437,8 @@
 eric6.Plugins.VcsPlugins.vcsGit.git.Git.gitBundleListHeads?4(projectDir)
 eric6.Plugins.VcsPlugins.vcsGit.git.Git.gitBundlePull?4(projectDir)
 eric6.Plugins.VcsPlugins.vcsGit.git.Git.gitCancelMerge?4(name)
+eric6.Plugins.VcsPlugins.vcsGit.git.Git.gitChangeRemoteCredentials?4(projectDir, remoteName, remoteUrl="")
+eric6.Plugins.VcsPlugins.vcsGit.git.Git.gitChangeRemoteUrl?4(projectDir, remoteName, remoteUrl="")
 eric6.Plugins.VcsPlugins.vcsGit.git.Git.gitCherryPick?4(projectDir, commits=None)
 eric6.Plugins.VcsPlugins.vcsGit.git.Git.gitCherryPickAbort?4(projectDir)
 eric6.Plugins.VcsPlugins.vcsGit.git.Git.gitCherryPickContinue?4(projectDir)
@@ -5469,6 +5458,7 @@
 eric6.Plugins.VcsPlugins.vcsGit.git.Git.gitGetBundleHeads?4(repodir, bundleFile)
 eric6.Plugins.VcsPlugins.vcsGit.git.Git.gitGetCurrentBranch?4(repodir)
 eric6.Plugins.VcsPlugins.vcsGit.git.Git.gitGetRemoteBranchesList?4(repodir, remote)
+eric6.Plugins.VcsPlugins.vcsGit.git.Git.gitGetRemoteUrl?4(repodir, remoteName)
 eric6.Plugins.VcsPlugins.vcsGit.git.Git.gitGetRemoteUrlsList?4(repodir, forFetch=True)
 eric6.Plugins.VcsPlugins.vcsGit.git.Git.gitGetRemotesList?4(repodir)
 eric6.Plugins.VcsPlugins.vcsGit.git.Git.gitGetTagsList?4(repodir, withType=False)
@@ -7200,12 +7190,16 @@
 eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.DebuggerGeneralPage.save?4()
 eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.DebuggerGeneralPage?1()
 eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.create?4(dlg)
+eric6.Preferences.ConfigurationPages.DebuggerPython2Page.DebuggerPython2Page.on_refreshButton_clicked?4()
+eric6.Preferences.ConfigurationPages.DebuggerPython2Page.DebuggerPython2Page.on_venvDlgButton_clicked?4()
+eric6.Preferences.ConfigurationPages.DebuggerPython2Page.DebuggerPython2Page.save?4()
+eric6.Preferences.ConfigurationPages.DebuggerPython2Page.DebuggerPython2Page?1()
+eric6.Preferences.ConfigurationPages.DebuggerPython2Page.create?4(dlg)
+eric6.Preferences.ConfigurationPages.DebuggerPython3Page.DebuggerPython3Page.on_refreshButton_clicked?4()
+eric6.Preferences.ConfigurationPages.DebuggerPython3Page.DebuggerPython3Page.on_venvDlgButton_clicked?4()
 eric6.Preferences.ConfigurationPages.DebuggerPython3Page.DebuggerPython3Page.save?4()
 eric6.Preferences.ConfigurationPages.DebuggerPython3Page.DebuggerPython3Page?1()
 eric6.Preferences.ConfigurationPages.DebuggerPython3Page.create?4(dlg)
-eric6.Preferences.ConfigurationPages.DebuggerPythonPage.DebuggerPythonPage.save?4()
-eric6.Preferences.ConfigurationPages.DebuggerPythonPage.DebuggerPythonPage?1()
-eric6.Preferences.ConfigurationPages.DebuggerPythonPage.create?4(dlg)
 eric6.Preferences.ConfigurationPages.DiffColoursPage.DiffColoursPage.save?4()
 eric6.Preferences.ConfigurationPages.DiffColoursPage.DiffColoursPage?1()
 eric6.Preferences.ConfigurationPages.DiffColoursPage.create?4(dlg)
@@ -7236,7 +7230,7 @@
 eric6.Preferences.ConfigurationPages.EditorCalltipsQScintillaPage.EditorCalltipsQScintillaPage?1()
 eric6.Preferences.ConfigurationPages.EditorCalltipsQScintillaPage.create?4(dlg)
 eric6.Preferences.ConfigurationPages.EditorDocViewerPage.EditorDocViewerPage.save?4()
-eric6.Preferences.ConfigurationPages.EditorDocViewerPage.EditorDocViewerPage?1(parent=None)
+eric6.Preferences.ConfigurationPages.EditorDocViewerPage.EditorDocViewerPage?1()
 eric6.Preferences.ConfigurationPages.EditorDocViewerPage.create?4(dlg)
 eric6.Preferences.ConfigurationPages.EditorExportersPage.EditorExportersPage.on_exportersCombo_activated?4(exporter)
 eric6.Preferences.ConfigurationPages.EditorExportersPage.EditorExportersPage.on_rtfFontButton_clicked?4()
@@ -7319,7 +7313,7 @@
 eric6.Preferences.ConfigurationPages.EditorStylesPage.EditorStylesPage?1()
 eric6.Preferences.ConfigurationPages.EditorStylesPage.create?4(dlg)
 eric6.Preferences.ConfigurationPages.EditorSyntaxPage.EditorSyntaxPage.save?4()
-eric6.Preferences.ConfigurationPages.EditorSyntaxPage.EditorSyntaxPage?1(parent=None)
+eric6.Preferences.ConfigurationPages.EditorSyntaxPage.EditorSyntaxPage?1()
 eric6.Preferences.ConfigurationPages.EditorSyntaxPage.create?4(dlg)
 eric6.Preferences.ConfigurationPages.EditorTypingPage.EditorTypingPage.on_languageCombo_activated?4(language)
 eric6.Preferences.ConfigurationPages.EditorTypingPage.EditorTypingPage.save?4()
@@ -7362,7 +7356,7 @@
 eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.HelpVirusTotalPage.on_testButton_clicked?4()
 eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.HelpVirusTotalPage.on_vtServiceKeyEdit_textChanged?4(txt)
 eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.HelpVirusTotalPage.save?4()
-eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.HelpVirusTotalPage?1(parent=None)
+eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.HelpVirusTotalPage?1()
 eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.create?4(dlg)
 eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.HelpWebBrowserPage.on_defaultHomeButton_clicked?4()
 eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.HelpWebBrowserPage.on_noCacheHostsButton_clicked?4()
@@ -7408,7 +7402,7 @@
 eric6.Preferences.ConfigurationPages.MasterPasswordEntryDialog.MasterPasswordEntryDialog?1(oldPasswordHash, parent=None)
 eric6.Preferences.ConfigurationPages.MimeTypesPage.MimeTypesPage.on_resetButton_clicked?4()
 eric6.Preferences.ConfigurationPages.MimeTypesPage.MimeTypesPage.save?4()
-eric6.Preferences.ConfigurationPages.MimeTypesPage.MimeTypesPage?1(parent=None)
+eric6.Preferences.ConfigurationPages.MimeTypesPage.MimeTypesPage?1()
 eric6.Preferences.ConfigurationPages.MimeTypesPage.create?4(dlg)
 eric6.Preferences.ConfigurationPages.MultiProjectPage.MultiProjectPage.save?4()
 eric6.Preferences.ConfigurationPages.MultiProjectPage.MultiProjectPage?1()
@@ -7444,6 +7438,7 @@
 eric6.Preferences.ConfigurationPages.ProtobufPage.ProtobufPage.save?4()
 eric6.Preferences.ConfigurationPages.ProtobufPage.ProtobufPage?1()
 eric6.Preferences.ConfigurationPages.ProtobufPage.create?4(dlg)
+eric6.Preferences.ConfigurationPages.PythonPage.PythonPage.on_refreshButton_clicked?4()
 eric6.Preferences.ConfigurationPages.PythonPage.PythonPage.save?4()
 eric6.Preferences.ConfigurationPages.PythonPage.PythonPage?1()
 eric6.Preferences.ConfigurationPages.PythonPage.create?4(dlg)
@@ -7472,7 +7467,7 @@
 eric6.Preferences.ConfigurationPages.TemplatesPage.TemplatesPage?1()
 eric6.Preferences.ConfigurationPages.TemplatesPage.create?4(dlg)
 eric6.Preferences.ConfigurationPages.TrayStarterPage.TrayStarterPage.save?4()
-eric6.Preferences.ConfigurationPages.TrayStarterPage.TrayStarterPage?1(parent=None)
+eric6.Preferences.ConfigurationPages.TrayStarterPage.TrayStarterPage?1()
 eric6.Preferences.ConfigurationPages.TrayStarterPage.create?4(dlg)
 eric6.Preferences.ConfigurationPages.VcsPage.VcsPage.save?4()
 eric6.Preferences.ConfigurationPages.VcsPage.VcsPage?1()
@@ -7500,7 +7495,7 @@
 eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.WebBrowserVirusTotalPage.on_testButton_clicked?4()
 eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.WebBrowserVirusTotalPage.on_vtServiceKeyEdit_textChanged?4(txt)
 eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.WebBrowserVirusTotalPage.save?4()
-eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.WebBrowserVirusTotalPage?1(parent=None)
+eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.WebBrowserVirusTotalPage?1()
 eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.create?4(dlg)
 eric6.Preferences.MouseClickDialog.MouseClickDialog.eventFilter?4(watched, event)
 eric6.Preferences.MouseClickDialog.MouseClickDialog.getClick?4()
@@ -7758,7 +7753,6 @@
 eric6.Project.CreateDialogCodeDialog.rubySignatureRole?7
 eric6.Project.DebuggerPropertiesDialog.DebuggerPropertiesDialog.on_debugClientClearHistoryButton_clicked?4()
 eric6.Project.DebuggerPropertiesDialog.DebuggerPropertiesDialog.on_debugClientPicker_aboutToShowPathPickerDialog?4()
-eric6.Project.DebuggerPropertiesDialog.DebuggerPropertiesDialog.on_interpreterClearHistoryButton_clicked?4()
 eric6.Project.DebuggerPropertiesDialog.DebuggerPropertiesDialog.storeData?4()
 eric6.Project.DebuggerPropertiesDialog.DebuggerPropertiesDialog?1(project, parent=None, name=None)
 eric6.Project.FiletypeAssociationDialog.FiletypeAssociationDialog.on_addAssociationButton_clicked?4()
@@ -7938,7 +7932,7 @@
 eric6.Project.Project.Project.saveProject?4()
 eric6.Project.Project.Project.saveProjectAs?4()
 eric6.Project.Project.Project.setData?4(category, key, data)
-eric6.Project.Project.Project.setDbgInfo?4(interpreter, argv, wd, env, excReporting, excList, excIgnoreList, autoClearShell, tracePython=None, autoContinue=None)
+eric6.Project.Project.Project.setDbgInfo?4(venvName, argv, wd, env, excReporting, excList, excIgnoreList, autoClearShell, tracePython=None, autoContinue=None)
 eric6.Project.Project.Project.setDirty?4(b)
 eric6.Project.Project.Project.setStatusMonitorAutoUpdate?4(auto)
 eric6.Project.Project.Project.setStatusMonitorInterval?4(interval)
@@ -8171,6 +8165,7 @@
 eric6.PyUnit.UnittestDialog.QtTestResult.startTest?4(test)
 eric6.PyUnit.UnittestDialog.QtTestResult.stopTest?4(test)
 eric6.PyUnit.UnittestDialog.QtTestResult?1(parent)
+eric6.PyUnit.UnittestDialog.UnittestDialog.closeEvent?4(event)
 eric6.PyUnit.UnittestDialog.UnittestDialog.hasFailedTests?4()
 eric6.PyUnit.UnittestDialog.UnittestDialog.insertProg?4(prog)
 eric6.PyUnit.UnittestDialog.UnittestDialog.insertTestName?4(testName)
@@ -8960,6 +8955,7 @@
 eric6.QScintilla.MiniEditor.MiniEditor.getFileName?4()
 eric6.QScintilla.MiniEditor.MiniEditor.getLanguage?4()
 eric6.QScintilla.MiniEditor.MiniEditor.getSRHistory?4(key)
+eric6.QScintilla.MiniEditor.MiniEditor.gotoLine?4(line, pos=1)
 eric6.QScintilla.MiniEditor.MiniEditor.setLanguage?4(filename, initTextDisplay=True, pyname="")
 eric6.QScintilla.MiniEditor.MiniEditor.setSearchIndicator?4(startPos, indicLength)
 eric6.QScintilla.MiniEditor.MiniEditor.setText?4(txt, filetype=None)
@@ -9149,6 +9145,7 @@
 eric6.QScintilla.Shell.Shell.loadHistory?4(clientType)
 eric6.QScintilla.Shell.Shell.mousePressEvent?4(event)
 eric6.QScintilla.Shell.Shell.paste?4()
+eric6.QScintilla.Shell.Shell.queueText?7
 eric6.QScintilla.Shell.Shell.reloadHistory?4()
 eric6.QScintilla.Shell.Shell.saveHistory?4(clientType)
 eric6.QScintilla.Shell.Shell.searchNext?4(txt, caseSensitive, wholeWord)
@@ -9177,6 +9174,7 @@
 eric6.QScintilla.ShellWindow.ShellWindow.closeEvent?4(event)
 eric6.QScintilla.ShellWindow.ShellWindow.getAPIsManager?4()
 eric6.QScintilla.ShellWindow.ShellWindow.quit?4()
+eric6.QScintilla.ShellWindow.ShellWindow.showFind?4(txt="")
 eric6.QScintilla.ShellWindow.ShellWindow?1(parent=None, name=None)
 eric6.QScintilla.SortOptionsDialog.SortOptionsDialog.getData?4()
 eric6.QScintilla.SortOptionsDialog.SortOptionsDialog?1(parent=None)
@@ -10587,6 +10585,52 @@
 eric6.ViewManager.ViewManager.ViewManager.zoomValueChanged?4(value, zoomingWidget)
 eric6.ViewManager.ViewManager.ViewManager?1()
 eric6.ViewManager.factory?4(parent, ui, dbs, pluginManager)
+eric6.VirtualEnv.VirtualenvAddEditDialog.VirtualenvAddEditDialog.getData?4()
+eric6.VirtualEnv.VirtualenvAddEditDialog.VirtualenvAddEditDialog.on_globalCheckBox_toggled?4(checked)
+eric6.VirtualEnv.VirtualenvAddEditDialog.VirtualenvAddEditDialog.on_nameEdit_textChanged?4(txt)
+eric6.VirtualEnv.VirtualenvAddEditDialog.VirtualenvAddEditDialog.on_pythonExecPicker_textChanged?4(txt)
+eric6.VirtualEnv.VirtualenvAddEditDialog.VirtualenvAddEditDialog.on_targetDirectoryPicker_textChanged?4(txt)
+eric6.VirtualEnv.VirtualenvAddEditDialog.VirtualenvAddEditDialog?1(manager, venvName="", venvDirectory="", venvInterpreter="", venvVariant=3, isGlobal=False, parent=None)
+eric6.VirtualEnv.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog.getData?4()
+eric6.VirtualEnv.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog.on_pythonExecPicker_textChanged?4(txt)
+eric6.VirtualEnv.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog.on_pyvenvButton_toggled?4(checked)
+eric6.VirtualEnv.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog.on_targetDirectoryPicker_textChanged?4(txt)
+eric6.VirtualEnv.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog.on_virtualenvButton_toggled?4(checked)
+eric6.VirtualEnv.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog?1(parent=None)
+eric6.VirtualEnv.VirtualenvExecDialog.VirtualenvExecDialog.on_buttonBox_clicked?4(button)
+eric6.VirtualEnv.VirtualenvExecDialog.VirtualenvExecDialog.start?4(arguments)
+eric6.VirtualEnv.VirtualenvExecDialog.VirtualenvExecDialog?1(pyvenv, targetDir, venvName, openTarget, createLog, createScript, interpreter, venvManager, parent=None)
+eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog.VirtualenvInterpreterSelectionDialog.getData?4()
+eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog.VirtualenvInterpreterSelectionDialog.on_pythonExecPicker_textChanged?4(txt)
+eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog.VirtualenvInterpreterSelectionDialog?1(venvName, venvDirectory, parent=None)
+eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.addVirtualEnv?4(venvName, venvDirectory, venvInterpreter="", venvVariant=3, isGlobal=False)
+eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.createVirtualEnv?4()
+eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.deleteVirtualEnvs?4(venvNames)
+eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.getEnvironmentEntries?4()
+eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.getVirtualenvDirectory?4(venvName)
+eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.getVirtualenvInterpreter?4(venvName)
+eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.getVirtualenvNames?4()
+eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.getVirtualenvNamesForVariant?4(variant)
+eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.isGlobalEnvironment?4(venvName)
+eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.isUnique?4(venvName)
+eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.removeVirtualEnvs?4(venvNames)
+eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.renameVirtualEnv?4(oldVenvName, venvName, venvDirectory, venvInterpreter, venvVariant, isGlobal)
+eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.setVirtualEnv?4(venvName, venvDirectory, venvInterpreter, venvVariant, isGlobal)
+eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.showVirtualenvManagerDialog?4(modal=False)
+eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.shutdown?4()
+eric6.VirtualEnv.VirtualenvManager.VirtualenvManager?1(parent=None)
+eric6.VirtualEnv.VirtualenvManagerDialog.VirtualenvManagerDialog.IsGlobalRole?7
+eric6.VirtualEnv.VirtualenvManagerDialog.VirtualenvManagerDialog.PythonVariantRole?7
+eric6.VirtualEnv.VirtualenvManagerDialog.VirtualenvManagerDialog.on_addButton_clicked?4()
+eric6.VirtualEnv.VirtualenvManagerDialog.VirtualenvManagerDialog.on_deleteAllButton_clicked?4()
+eric6.VirtualEnv.VirtualenvManagerDialog.VirtualenvManagerDialog.on_deleteButton_clicked?4()
+eric6.VirtualEnv.VirtualenvManagerDialog.VirtualenvManagerDialog.on_editButton_clicked?4()
+eric6.VirtualEnv.VirtualenvManagerDialog.VirtualenvManagerDialog.on_newButton_clicked?4()
+eric6.VirtualEnv.VirtualenvManagerDialog.VirtualenvManagerDialog.on_removeAllButton_clicked?4()
+eric6.VirtualEnv.VirtualenvManagerDialog.VirtualenvManagerDialog.on_removeButton_clicked?4()
+eric6.VirtualEnv.VirtualenvManagerDialog.VirtualenvManagerDialog.on_venvList_itemSelectionChanged?4()
+eric6.VirtualEnv.VirtualenvManagerDialog.VirtualenvManagerDialog.refresh?4()
+eric6.VirtualEnv.VirtualenvManagerDialog.VirtualenvManagerDialog?1(manager, parent=None)
 eric6.WebBrowser.AdBlock.AdBlockDialog.AdBlockDialog.addCustomRule?4(filterRule)
 eric6.WebBrowser.AdBlock.AdBlockDialog.AdBlockDialog.addSubscription?4(subscription, refresh=True)
 eric6.WebBrowser.AdBlock.AdBlockDialog.AdBlockDialog.on_adBlockGroup_toggled?4(state)
--- a/APIs/Python3/eric6.bas	Sat Jun 02 12:46:57 2018 +0200
+++ b/APIs/Python3/eric6.bas	Mon Jul 02 18:59:30 2018 +0200
@@ -127,8 +127,8 @@
 DebuggerPropertiesDialog QDialog Ui_DebuggerPropertiesDialog
 DebuggerPropertiesReader XMLStreamReaderBase
 DebuggerPropertiesWriter XMLStreamWriterBase
+DebuggerPython2Page ConfigurationPageBase Ui_DebuggerPython2Page
 DebuggerPython3Page ConfigurationPageBase Ui_DebuggerPython3Page
-DebuggerPythonPage ConfigurationPageBase Ui_DebuggerPythonPage
 DeepLEngine TranslationEngine
 DefaultResolver BaseResolver
 DelayedFileWatcher QFileSystemWatcher
@@ -318,6 +318,7 @@
 GitBranchDialog QDialog Ui_GitBranchDialog
 GitBranchPushDialog QDialog Ui_GitBranchPushDialog
 GitBundleDialog QDialog Ui_GitBundleDialog
+GitChangeRemoteUrlDialog QDialog Ui_GitChangeRemoteUrlDialog
 GitCherryPickDialog QDialog Ui_GitCherryPickDialog
 GitCommandDialog QDialog Ui_GitCommandDialog
 GitCommitDialog QWidget Ui_GitCommitDialog
@@ -341,6 +342,7 @@
 GitPullDialog QDialog Ui_GitPullDialog
 GitPushDialog QDialog Ui_GitPushDialog
 GitReflogBrowserDialog QWidget Ui_GitReflogBrowserDialog
+GitRemoteCredentialsDialog QDialog Ui_GitRemoteCredentialsDialog
 GitRemoteRepositoriesDialog QWidget Ui_GitRemoteRepositoriesDialog
 GitRevisionSelectionDialog QDialog Ui_GitRevisionSelectionDialog
 GitRevisionsSelectionDialog QDialog Ui_GitRevisionsSelectionDialog
@@ -660,6 +662,7 @@
 PipPackagesInputDialog QDialog Ui_PipPackagesInputDialog
 PipPage ConfigurationPageBase Ui_PipPage
 PipSearchDialog QDialog Ui_PipSearchDialog
+PipSelectionDialog QDialog Ui_PipSelectionDialog
 PixmapDiagram E5MainWindow
 PlainStrList list
 PlainTextDocumentationViewer QWidget
@@ -970,9 +973,12 @@
 ViewManager QWidget
 ViewProfileDialog QDialog
 ViewmanagerPage ConfigurationPageBase Ui_ViewmanagerPage
+VirtualenvAddEditDialog QDialog Ui_VirtualenvAddEditDialog
 VirtualenvConfigurationDialog QDialog Ui_VirtualenvConfigurationDialog
 VirtualenvExecDialog QDialog Ui_VirtualenvExecDialog
-VirtualenvInterfacePlugin QObject
+VirtualenvInterpreterSelectionDialog QDialog Ui_VirtualenvInterpreterSelectionDialog
+VirtualenvManager QObject
+VirtualenvManagerDialog QDialog Ui_VirtualenvManagerDialog
 VirusTotalAPI QObject
 VirusTotalDomainReportDialog QDialog Ui_VirusTotalDomainReportDialog
 VirusTotalIpReportDialog QDialog Ui_VirusTotalIpReportDialog
--- a/Cooperation/ChatWidget.ui	Sat Jun 02 12:46:57 2018 +0200
+++ b/Cooperation/ChatWidget.ui	Mon Jul 02 18:59:30 2018 +0200
@@ -105,6 +105,9 @@
       <string>Share Editor</string>
      </property>
      <layout class="QHBoxLayout" name="horizontalLayout">
+      <property name="spacing">
+       <number>0</number>
+      </property>
       <item>
        <spacer name="horizontalSpacer_2">
         <property name="orientation">
--- a/DTDs/DebuggerProperties-3.9.dtd	Sat Jun 02 12:46:57 2018 +0200
+++ b/DTDs/DebuggerProperties-3.9.dtd	Mon Jul 02 18:59:30 2018 +0200
@@ -1,4 +1,5 @@
-<!-- This is the DTD for eric3's project session file version 3.9 -->
+<!-- This is the DTD for eric3's project debugger properties file
+    version 3.9 -->
 
 <!ELEMENT   Interpreter         (#PCDATA)>
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DTDs/DebuggerProperties-6.0.dtd	Mon Jul 02 18:59:30 2018 +0200
@@ -0,0 +1,47 @@
+<!-- This is the DTD for eric6's project debugger properties file
+    version 6.0 -->
+
+<!ELEMENT   VirtualEnv          (#PCDATA)>
+
+<!ELEMENT   DebugClient         (#PCDATA)>
+
+<!ELEMENT   Environment         (#PCDATA)>
+<!ATTLIST   Environment
+    override        CDATA   #REQUIRED>
+
+<!ELEMENT   RemoteHost          (#PCDATA)>
+<!ELEMENT   RemoteCommand       (#PCDATA)>
+<!ELEMENT   RemoteDebugger      (RemoteHost,
+                                 RemoteCommand)>
+<!ATTLIST   RemoteDebugger
+    on              CDATA   #REQUIRED>
+
+<!ELEMENT   RemotePath          (#PCDATA)>
+<!ELEMENT   LocalPath           (#PCDATA)>
+<!ELEMENT   PathTranslation     (RemotePath,
+                                 LocalPath)>
+<!ATTLIST   PathTranslation
+    on              CDATA   #REQUIRED>
+
+<!ELEMENT   ConsoleDebugger     (#PCDATA)>
+<!ATTLIST   ConsoleDebugger
+    on              CDATA   #REQUIRED>
+
+<!ELEMENT   Redirect            EMPTY>
+<!ATTLIST   Redirect
+    on              CDATA   #REQUIRED>
+
+<!ELEMENT   Noencoding          EMPTY>
+<!ATTLIST   Noencoding
+    on              CDATA   #REQUIRED>
+
+<!ELEMENT   DebuggerProperties  (VirtualEnv,
+                                 DebugClient,
+                                 Environment,
+                                 RemoteDebugger,
+                                 PathTranslation,
+                                 ConsoleDebugger,
+                                 Redirect,
+                                 Noencoding)>
+<!ATTLIST   DebuggerProperties
+    version         CDATA   #REQUIRED>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DTDs/Session-6.2.dtd	Mon Jul 02 18:59:30 2018 +0200
@@ -0,0 +1,125 @@
+<!-- This is the DTD for eric's (project) session file version 6.2 -->
+
+<!ELEMENT   MultiProject    (#PCDATA)>
+
+<!ELEMENT   Project         (#PCDATA)>
+
+<!ELEMENT   ViewManagerSplits   (#PCDATA)>
+<!ATTLIST   ViewManagerSplits
+    count       CDATA   #REQUIRED
+    orientation CDATA   #REQUIRED>
+
+<!ELEMENT   Filename        (#PCDATA)>
+<!ATTLIST   Filename
+    cline       CDATA   #REQUIRED
+    cindex      CDATA   #REQUIRED
+    folds       CDATA   #REQUIRED
+    zoom        CDATA   #REQUIRED
+    cloned      CDATA   #REQUIRED
+    splitindex  CDATA   #REQUIRED
+    editorindex CDATA   #REQUIRED>
+
+<!ELEMENT   Filenames       (Filename*)>
+
+<!ELEMENT   ActiveWindow    (#PCDATA)>
+<!ATTLIST   ActiveWindow
+    cline       CDATA   #REQUIRED
+    cindex      CDATA   #REQUIRED>
+
+<!ELEMENT   BpFilename      (#PCDATA)>
+<!ELEMENT   Linenumber      EMPTY>
+<!ATTLIST   Linenumber
+    value       CDATA   #REQUIRED>
+<!ELEMENT   Condition       (#PCDATA)>
+<!ELEMENT   Temporary       EMPTY>
+<!ATTLIST   Temporary
+    value       CDATA   #REQUIRED>
+<!ELEMENT   Enabled         EMPTY>
+<!ATTLIST   Enabled
+    value       CDATA   #REQUIRED>
+<!ELEMENT   Count           EMPTY>
+<!ATTLIST   Count
+    value       CDATA   #REQUIRED>
+
+<!ELEMENT   Breakpoint      (BpFilename,
+                             Linenumber,
+                             Condition,
+                             Temporary,
+                             Enabled,
+                             Count)>
+
+<!ELEMENT   Breakpoints     (Breakpoint*)>
+
+<!ELEMENT   Special         (#PCDATA)>
+
+<!ELEMENT   Watchexpression (Condition,
+                             Temporary,
+                             Enabled,
+                             Count,
+                             Special)>
+
+<!ELEMENT   Watchexpressions (Watchexpression*)>
+
+<!ELEMENT   Exception       (#PCDATA)>
+
+<!ELEMENT   IgnoredException (#PCDATA)>
+
+<!ELEMENT   VirtualEnv       (#PCDATA)>
+<!ELEMENT   CommandLine      (#PCDATA)>
+<!ELEMENT   WorkingDirectory (#PCDATA)>
+<!ELEMENT   Environment      (#PCDATA)>
+<!ELEMENT   ReportExceptions EMPTY>
+<!ATTLIST   ReportExceptions
+    value       CDATA   #REQUIRED>
+<!ELEMENT   Exceptions       (Exception*)>
+<!ELEMENT   IgnoredExceptions (IgnoredException*)>
+<!ELEMENT   AutoClearShell   EMPTY>
+<!ATTLIST   AutoClearShell
+    value       CDATA   #REQUIRED>
+<!ELEMENT   TracePython      EMPTY>
+<!ATTLIST   TracePython
+    value       CDATA   #REQUIRED>
+<!ELEMENT   AutoContinue     EMPTY>
+<!ATTLIST   AutoContinue
+    value       CDATA   #REQUIRED>
+<!ELEMENT   CovexcPattern    (#PCDATA)>
+
+<!ELEMENT   DebugInfo       (VirtualEnv,
+                             CommandLine,
+                             WorkingDirectory,
+                             Environment,
+                             ReportExceptions,
+                             Exceptions,
+                             IgnoredExceptions,
+                             AutoClearShell,
+                             TracePython,
+                             AutoContinue,
+                             CovexcPattern)>
+
+<!ELEMENT   BmFilename      (#PCDATA)>
+
+<!ELEMENT   Bookmark        (BmFilename,
+                             Linenumber)>
+
+<!ELEMENT   Bookmarks       (Bookmark*)>
+
+<!ELEMENT   ExpandedItemName     (#PCDATA)>
+
+<!ELEMENT   ProjectBrowserState  (ExpandedItemName*)>
+<!ATTLIST   ProjectBrowserState
+    name        CDATA   #REQUIRED>
+
+<!ELEMENT   ProjectBrowserStates (ProjectBrowserState*)>
+
+<!ELEMENT   Session         (MultiProject?,
+                             Project?,
+                             ViewManagerSplits?,
+                             Filenames,
+                             ActiveWindow?,
+                             Breakpoints,
+                             Watchexpressions,
+                             DebugInfo,
+                             Bookmarks,
+                             ProjectBrowserStates?)>
+<!ATTLIST   Session
+    version     CDATA   #REQUIRED>
--- a/Debugger/DebugServer.py	Sat Jun 02 12:46:57 2018 +0200
+++ b/Debugger/DebugServer.py	Mon Jul 02 18:59:30 2018 +0200
@@ -218,10 +218,10 @@
         # Change clientType if dependent interpreter not exist anymore
         # (maybe deinstalled,...)
         elif self.clientType == 'Python2' and Preferences.getDebugger(
-                "PythonInterpreter") == '':
+                "Python2VirtualEnv") == '':
             self.clientType = 'Python3'
         elif self.clientType == 'Python3' and Preferences.getDebugger(
-                "Python3Interpreter") == '':
+                "Python3VirtualEnv") == '':
             self.clientType = 'Python2'
         
         self.lastClientType = ''
@@ -301,14 +301,15 @@
             registeredInterfaces[interfaceName] = \
                 self.__debuggerInterfaces[interfaceName]
         
-        self.__debuggerInterfaces = {}
         self.__debuggerInterfaceRegistry = {}
         for interfaceName, getRegistryData in registeredInterfaces.items():
-            self.registerDebuggerInterface(interfaceName, getRegistryData)
+            self.registerDebuggerInterface(interfaceName, getRegistryData,
+                                           reregister=True)
         
         self.__maxVariableSize = Preferences.getDebugger("MaxVariableSize")
         
-    def registerDebuggerInterface(self, interfaceName, getRegistryData):
+    def registerDebuggerInterface(self, interfaceName, getRegistryData,
+                                  reregister=False):
         """
         Public method to register a debugger interface.
         
@@ -320,8 +321,10 @@
             list of associated file extensions and a function reference
             to create the debugger interface (see __createDebuggerInterface())
         @type function
+        @param reregister flag indicating to re-register the interface
+        @type bool
         """
-        if interfaceName in self.__debuggerInterfaces:
+        if interfaceName in self.__debuggerInterfaces and not reregister:
             E5MessageBox.warning(
                 None,
                 self.tr("Register Debugger Interface"),
@@ -329,9 +332,10 @@
                         """ been registered. Ignoring this request.</p>"""))
             return
         
+        if not reregister:
+            self.__debuggerInterfaces[interfaceName] = getRegistryData
         registryDataList = getRegistryData()
         if registryDataList:
-            self.__debuggerInterfaces[interfaceName] = getRegistryData
             for clientLanguage, clientCapabilities, clientExtensions, \
                     interfaceCreator in registryDataList:
                 self.__debuggerInterfaceRegistry[clientLanguage] = [
@@ -449,17 +453,21 @@
                 'DebugClient/Type', self.clientType)
         
     def startClient(self, unplanned=True, clType=None, forProject=False,
-                    runInConsole=False, interpreter=""):
+                    runInConsole=False, venvName=""):
         """
         Public method to start a debug client.
         
-        @keyparam unplanned flag indicating that the client has died (boolean)
-        @keyparam clType type of client to be started (string)
-        @keyparam forProject flag indicating a project related action (boolean)
+        @keyparam unplanned flag indicating that the client has died
+        @type bool
+        @keyparam clType type of client to be started
+        @type str
+        @keyparam forProject flag indicating a project related action
+        @type bool
         @keyparam runInConsole flag indicating to start the debugger in a
-            console window (boolean)
-        @keyparam interpreter interpreter to be used to execute the remote
-            side (string)
+            console window
+        @type bool
+        @keyparam venvName name of the virtual environment to be used
+        @type str
         """
         self.running = False
         
@@ -469,6 +477,10 @@
                 self.clientGone.emit(unplanned and self.debugging)
         
         if clType:
+            if clType not in self.getSupportedLanguages():
+                # a not supported client language was requested
+                return
+            
             self.__setClientType(clType)
         
         # only start the client, if we are not in passive mode
@@ -485,15 +497,15 @@
                 if not project.isDebugPropertiesLoaded():
                     self.clientProcess, isNetworked, clientInterpreter = \
                         self.debuggerInterface.startRemote(
-                            self.serverPort(), runInConsole, interpreter)
+                            self.serverPort(), runInConsole, venvName)
                 else:
                     self.clientProcess, isNetworked, clientInterpreter = \
                         self.debuggerInterface.startRemoteForProject(
-                            self.serverPort(), runInConsole, interpreter)
+                            self.serverPort(), runInConsole, venvName)
             else:
                 self.clientProcess, isNetworked, clientInterpreter = \
                     self.debuggerInterface.startRemote(
-                        self.serverPort(), runInConsole, interpreter)
+                        self.serverPort(), runInConsole, venvName)
             
             if self.clientProcess:
                 self.clientProcess.readyReadStandardError.connect(
@@ -733,7 +745,25 @@
         @return interpreter of the debug client (string)
         """
         return self.clientInterpreter
+    
+    def getClientType(self):
+        """
+        Public method to get the currently running debug client type.
         
+        @return debug client type
+        @rtype str
+        """
+        return self.clientType
+    
+    def isClientProcessUp(self):
+        """
+        Public method to check, if the debug client process is up.
+        
+        @return flag indicating a running debug client process
+        @rtype bool
+        """
+        return self.clientProcess is not None
+    
     def __newConnection(self):
         """
         Private slot to handle a new connection.
@@ -804,38 +834,61 @@
                 pass
         self.debuggerInterface.remoteEnvironment(envdict)
         
-    def remoteLoad(self, interpreter, fn, argv, wd, env, autoClearShell=True,
+    def remoteLoad(self, venvName, fn, argv, wd, env, autoClearShell=True,
                    tracePython=False, autoContinue=True, forProject=False,
                    runInConsole=False, autoFork=False, forkChild=False,
                    clientType="", enableCallTrace=False):
         """
         Public method to load a new program to debug.
         
-        @param interpreter interpreter to be used to execute the remote
-            side (string)
-        @param fn the filename to debug (string)
-        @param argv the commandline arguments to pass to the program (string)
-        @param wd the working directory for the program (string)
-        @param env environment settings (string)
+        @param venvName name of the virtual environment to be used
+        @type str
+        @param fn the filename to debug
+        @type str
+        @param argv the command line arguments to pass to the program
+        @type str
+        @param wd the working directory for the program
+        @type str
+        @param env environment parameter settings
+        @type str
         @keyparam autoClearShell flag indicating, that the interpreter window
-            should be cleared (boolean)
+            should be cleared
+        @type bool
         @keyparam tracePython flag indicating if the Python library should be
-            traced as well (boolean)
+            traced as well
+        @type bool
         @keyparam autoContinue flag indicating, that the debugger should not
-            stop at the first executable line (boolean)
-        @keyparam forProject flag indicating a project related action (boolean)
+            stop at the first executable line
+        @type bool
+        @keyparam forProject flag indicating a project related action
+        @type bool
         @keyparam runInConsole flag indicating to start the debugger in a
-            console window (boolean)
-        @keyparam autoFork flag indicating the automatic fork mode (boolean)
+            console window
+        @type bool
+        @keyparam autoFork flag indicating the automatic fork mode
+        @type bool
         @keyparam forkChild flag indicating to debug the child after forking
-            (boolean)
-        @keyparam clientType client type to be used (string)
+        @type bool
+        @keyparam clientType client type to be used
+        @type str
         @keyparam enableCallTrace flag indicating to enable the call trace
-            function (boolean)
+            function
+        @type bool
         """
         self.__autoClearShell = autoClearShell
         self.__autoContinue = autoContinue
         
+        if clientType not in self.getSupportedLanguages():
+            # a not supported client language was requested
+            E5MessageBox.critical(
+                None,
+                self.tr("Start Debugger"),
+                self.tr(
+                    """<p>The debugger type <b>{0}</b> is not supported"""
+                    """ or not configured.</p>""").format(clientType)
+            )
+            return
+        
         # Restart the client
         try:
             if clientType:
@@ -846,7 +899,7 @@
         except KeyError:
             self.__setClientType('Python3')    # assume it is a Python3 file
         self.startClient(False, forProject=forProject,
-                         runInConsole=runInConsole, interpreter=interpreter)
+                         runInConsole=runInConsole, venvName=venvName)
         
         self.setCallTraceEnabled(enableCallTrace)
         self.remoteEnvironment(env)
@@ -858,30 +911,50 @@
         self.__restoreBreakpoints()
         self.__restoreWatchpoints()
 
-    def remoteRun(self, interpreter, fn, argv, wd, env, autoClearShell=True,
+    def remoteRun(self, venvName, fn, argv, wd, env, autoClearShell=True,
                   forProject=False, runInConsole=False, autoFork=False,
                   forkChild=False, clientType=""):
         """
         Public method to load a new program to run.
         
-        @param interpreter interpreter to be used to execute the remote
-            side (string)
-        @param fn the filename to run (string)
-        @param argv the commandline arguments to pass to the program (string)
-        @param wd the working directory for the program (string)
-        @param env environment settings (string)
+        @param venvName name of the virtual environment to be used
+        @type str
+        @param fn the filename to debug
+        @type str
+        @param argv the command line arguments to pass to the program
+        @type str
+        @param wd the working directory for the program
+        @type str
+        @param env environment parameter settings
+        @type str
         @keyparam autoClearShell flag indicating, that the interpreter window
-            should be cleared (boolean)
-        @keyparam forProject flag indicating a project related action (boolean)
+            should be cleared
+        @type bool
+        @keyparam forProject flag indicating a project related action
+        @type bool
         @keyparam runInConsole flag indicating to start the debugger in a
-            console window (boolean)
-        @keyparam autoFork flag indicating the automatic fork mode (boolean)
+            console window
+        @type bool
+        @keyparam autoFork flag indicating the automatic fork mode
+        @type bool
         @keyparam forkChild flag indicating to debug the child after forking
-            (boolean)
-        @keyparam clientType client type to be used (string)
+        @type bool
+        @keyparam clientType client type to be used
+        @type str
         """
         self.__autoClearShell = autoClearShell
         
+        if clientType not in self.getSupportedLanguages():
+            E5MessageBox.critical(
+                None,
+                self.tr("Start Debugger"),
+                self.tr(
+                    """<p>The debugger type <b>{0}</b> is not supported"""
+                    """ or not configured.</p>""").format(clientType)
+            )
+            # a not supported client language was requested
+            return
+        
         # Restart the client
         try:
             if clientType:
@@ -892,7 +965,7 @@
         except KeyError:
             self.__setClientType('Python3')    # assume it is a Python3 file
         self.startClient(False, forProject=forProject,
-                         runInConsole=runInConsole, interpreter=interpreter)
+                         runInConsole=runInConsole, venvName=venvName)
         
         self.remoteEnvironment(env)
         
@@ -900,29 +973,49 @@
         self.debugging = False
         self.running = True
 
-    def remoteCoverage(self, interpreter, fn, argv, wd, env,
+    def remoteCoverage(self, venvName, fn, argv, wd, env,
                        autoClearShell=True, erase=False, forProject=False,
                        runInConsole=False, clientType=""):
         """
         Public method to load a new program to collect coverage data.
         
-        @param interpreter interpreter to be used to execute the remote
-            side (string)
-        @param fn the filename to run (string)
-        @param argv the commandline arguments to pass to the program (string)
-        @param wd the working directory for the program (string)
-        @param env environment settings (string)
+        @param venvName name of the virtual environment to be used
+        @type str
+        @param fn the filename to debug
+        @type str
+        @param argv the command line arguments to pass to the program
+        @type str
+        @param wd the working directory for the program
+        @type str
+        @param env environment parameter settings
+        @type str
         @keyparam autoClearShell flag indicating, that the interpreter window
-            should be cleared (boolean)
+            should be cleared
+        @type bool
         @keyparam erase flag indicating that coverage info should be
-            cleared first (boolean)
-        @keyparam forProject flag indicating a project related action (boolean)
+            cleared first
+        @type bool
+        @keyparam forProject flag indicating a project related action
+        @type bool
         @keyparam runInConsole flag indicating to start the debugger in a
-            console window (boolean)
-        @keyparam clientType client type to be used (string)
+            console window
+        @type bool
+        @keyparam clientType client type to be used
+        @type str
         """
         self.__autoClearShell = autoClearShell
         
+        if clientType not in self.getSupportedLanguages():
+            # a not supported client language was requested
+            E5MessageBox.critical(
+                None,
+                self.tr("Start Debugger"),
+                self.tr(
+                    """<p>The debugger type <b>{0}</b> is not supported"""
+                    """ or not configured.</p>""").format(clientType)
+            )
+            return
+        
         # Restart the client
         try:
             if clientType:
@@ -933,7 +1026,7 @@
         except KeyError:
             self.__setClientType('Python3')    # assume it is a Python3 file
         self.startClient(False, forProject=forProject,
-                         runInConsole=runInConsole, interpreter=interpreter)
+                         runInConsole=runInConsole, venvName=venvName)
         
         self.remoteEnvironment(env)
         
@@ -941,29 +1034,49 @@
         self.debugging = False
         self.running = True
 
-    def remoteProfile(self, interpreter, fn, argv, wd, env,
+    def remoteProfile(self, venvName, fn, argv, wd, env,
                       autoClearShell=True, erase=False, forProject=False,
                       runInConsole=False, clientType=""):
         """
         Public method to load a new program to collect profiling data.
         
-        @param interpreter interpreter to be used to execute the remote
-            side (string)
-        @param fn the filename to run (string)
-        @param argv the commandline arguments to pass to the program (string)
-        @param wd the working directory for the program (string)
-        @param env environment settings (string)
+        @param venvName name of the virtual environment to be used
+        @type str
+        @param fn the filename to debug
+        @type str
+        @param argv the command line arguments to pass to the program
+        @type str
+        @param wd the working directory for the program
+        @type str
+        @param env environment parameter settings
+        @type str
         @keyparam autoClearShell flag indicating, that the interpreter window
-            should be cleared (boolean)
-        @keyparam erase flag indicating that timing info should be cleared
-            first (boolean)
-        @keyparam forProject flag indicating a project related action (boolean)
+            should be cleared
+        @type bool
+        @keyparam erase flag indicating that coverage info should be
+            cleared first
+        @type bool
+        @keyparam forProject flag indicating a project related action
+        @type bool
         @keyparam runInConsole flag indicating to start the debugger in a
-            console window (boolean)
-        @keyparam clientType client type to be used (string)
+            console window
+        @type bool
+        @keyparam clientType client type to be used
+        @type str
         """
         self.__autoClearShell = autoClearShell
         
+        if clientType not in self.getSupportedLanguages():
+            # a not supported client language was requested
+            E5MessageBox.critical(
+                None,
+                self.tr("Start Debugger"),
+                self.tr(
+                    """<p>The debugger type <b>{0}</b> is not supported"""
+                    """ or not configured.</p>""").format(clientType)
+            )
+            return
+        
         # Restart the client
         try:
             if clientType:
@@ -974,7 +1087,7 @@
         except KeyError:
             self.__setClientType('Python3')    # assume it is a Python3 file
         self.startClient(False, forProject=forProject,
-                         runInConsole=runInConsole, interpreter=interpreter)
+                         runInConsole=runInConsole, venvName=venvName)
         
         self.remoteEnvironment(env)
         
@@ -1203,6 +1316,17 @@
             (boolean)
         @keyparam clientType client type to be used (string)
         """
+        if clientType not in self.getSupportedLanguages():
+            # a not supported client language was requested
+            E5MessageBox.critical(
+                None,
+                self.tr("Start Debugger"),
+                self.tr(
+                    """<p>The debugger type <b>{0}</b> is not supported"""
+                    """ or not configured.</p>""").format(clientType)
+            )
+            return
+        
         # Restart the client if there is already a program loaded.
         try:
             if clientType:
@@ -1432,8 +1556,12 @@
         @param capabilities bitmaks with the client capabilities (integer)
         @param clientType type of the debug client (string)
         """
-        self.__debuggerInterfaceRegistry[clientType][0] = capabilities
-        self.clientCapabilities.emit(capabilities, clientType)
+        try:
+            self.__debuggerInterfaceRegistry[clientType][0] = capabilities
+            self.clientCapabilities.emit(capabilities, clientType)
+        except KeyError:
+            # ignore silently
+            pass
         
     def signalClientCompletionList(self, completionList, text):
         """
--- a/Debugger/DebugUI.py	Sat Jun 02 12:46:57 2018 +0200
+++ b/Debugger/DebugUI.py	Mon Jul 02 18:59:30 2018 +0200
@@ -80,8 +80,8 @@
         self.editorOpen = False
         
         # read the saved debug info values
-        self.interpreterHistory = Preferences.toList(
-            Preferences.Prefs.settings.value('DebugInfo/InterpreterHistory'))
+        self.lastUsedVenvName = Preferences.Prefs.settings.value(
+            'DebugInfo/VirtualEnvironment', '')
         self.argvHistory = Preferences.toList(
             Preferences.Prefs.settings.value('DebugInfo/ArgumentsHistory'))
         self.wdHistory = Preferences.toList(
@@ -675,25 +675,6 @@
         
         return [starttb, debugtb]
 
-    def setInterpreterHistory(self, interpreterStr, clearHistories=False,
-                              history=None):
-        """
-        Public slot to initialize the interpreter history.
-        
-        @param interpreterStr interpreter (string)
-        @param clearHistories flag indicating, that the list should
-            be cleared (boolean)
-        @param history list of history entries to be set (list of strings)
-        """
-        if clearHistories:
-            del self.interpreterHistory[1:]
-        elif history is not None:
-            self.interpreterHistory = history[:]
-        else:
-            if interpreterStr in self.interpreterHistory:
-                self.interpreterHistory.remove(interpreterStr)
-            self.interpreterHistory.insert(0, interpreterStr)
-    
     def setArgvHistory(self, argsStr, clearHistories=False, history=None):
         """
         Public slot to initialize the argv history.
@@ -934,14 +915,11 @@
         """
         Public method to clear the various debug histories.
         """
-        self.interpreterHistory = []
         self.argvHistory = []
         self.wdHistory = []
         self.envHistory = []
         
         Preferences.Prefs.settings.setValue(
-            'DebugInfo/InterpreterHistory', self.interpreterHistory)
-        Preferences.Prefs.settings.setValue(
             'DebugInfo/ArgumentsHistory', self.argvHistory)
         Preferences.Prefs.settings.setValue(
             'DebugInfo/WorkingDirectoryHistory', self.wdHistory)
@@ -953,13 +931,12 @@
         Public method to perform shutdown actions.
         """
         # Just save the 10 most recent entries
-        del self.interpreterHistory[10:]
         del self.argvHistory[10:]
         del self.wdHistory[10:]
         del self.envHistory[10:]
         
         Preferences.Prefs.settings.setValue(
-            'DebugInfo/InterpreterHistory', self.interpreterHistory)
+            'DebugInfo/VirtualEnvironment', self.lastUsedVenvName)
         Preferences.Prefs.settings.setValue(
             'DebugInfo/ArgumentsHistory', self.argvHistory)
         Preferences.Prefs.settings.setValue(
@@ -1579,12 +1556,12 @@
         else:
             cap = self.tr("Coverage of Script")
         dlg = StartDialog(
-            cap, self.interpreterHistory, self.argvHistory, self.wdHistory,
+            cap, self.lastUsedVenvName, self.argvHistory, self.wdHistory,
             self.envHistory, self.exceptions, self.ui, 2,
             autoClearShell=self.autoClearShell)
         if dlg.exec_() == QDialog.Accepted:
-            interpreter, argv, wd, env, exceptions, clearShell, console = \
-                dlg.getData()
+            (lastUsedVenvName, argv, wd, env, exceptions, clearShell,
+             console) = dlg.getData()
             eraseCoverage = dlg.getCoverageData()
             
             if runProject:
@@ -1604,7 +1581,7 @@
                 
                 # save the info for later use
                 self.project.setDbgInfo(
-                    interpreter, argv, wd, env, exceptions, self.excList,
+                    lastUsedVenvName, argv, wd, env, exceptions, self.excList,
                     self.excIgnoreList, clearShell)
                 
                 self.lastStartAction = 6
@@ -1628,9 +1605,11 @@
             self.lastDebuggedFile = fn
             self.restartAct.setEnabled(True)
             
+            # save the most recently used virtual environment
+            self.lastUsedVenvName = lastUsedVenvName
+            
             # This moves any previous occurrence of these arguments to the head
             # of the list.
-            self.setInterpreterHistory(interpreter)
             self.setArgvHistory(argv)
             self.setWdHistory(wd)
             self.setEnvHistory(env)
@@ -1660,7 +1639,7 @@
                 
                 # Ask the client to open the new program.
                 self.debugServer.remoteCoverage(
-                    interpreter, fn, argv, wd, env,
+                    lastUsedVenvName, fn, argv, wd, env,
                     autoClearShell=self.autoClearShell, erase=eraseCoverage,
                     forProject=runProject, runInConsole=console,
                     clientType=self.clientType)
@@ -1668,14 +1647,11 @@
                 self.stopAct.setEnabled(True)
         
         if dlg.clearHistories():
-            self.setInterpreterHistory("", clearHistories=True)
             self.setArgvHistory("", clearHistories=True)
             self.setWdHistory("", clearHistories=True)
             self.setEnvHistory("", clearHistories=True)
         elif dlg.historiesModified():
-            argvHistory, wdHistory, envHistory, interpreterHistory = \
-                dlg.getHistories()
-            self.setInterpreterHistory("", history=interpreterHistory)
+            argvHistory, wdHistory, envHistory = dlg.getHistories()
             self.setArgvHistory("", history=argvHistory)
             self.setWdHistory("", history=wdHistory)
             self.setEnvHistory("", history=envHistory)
@@ -1712,12 +1688,12 @@
         else:
             cap = self.tr("Profile of Script")
         dlg = StartDialog(
-            cap, self.interpreterHistory, self.argvHistory, self.wdHistory,
+            cap, self.lastUsedVenvName, self.argvHistory, self.wdHistory,
             self.envHistory, self.exceptions, self.ui, 3,
             autoClearShell=self.autoClearShell)
         if dlg.exec_() == QDialog.Accepted:
-            interpreter, argv, wd, env, exceptions, clearShell, console = \
-                dlg.getData()
+            (lastUsedVenvName, argv, wd, env, exceptions, clearShell,
+             console) = dlg.getData()
             eraseTimings = dlg.getProfilingData()
             
             if runProject:
@@ -1737,7 +1713,7 @@
                 
                 # save the info for later use
                 self.project.setDbgInfo(
-                    interpreter, argv, wd, env, exceptions, self.excList,
+                    lastUsedVenvName, argv, wd, env, exceptions, self.excList,
                     self.excIgnoreList, clearShell)
                 
                 self.lastStartAction = 8
@@ -1761,9 +1737,11 @@
             self.lastDebuggedFile = fn
             self.restartAct.setEnabled(True)
             
+            # save the most recently used virtual environment
+            self.lastUsedVenvName = lastUsedVenvName
+            
             # This moves any previous occurrence of these arguments to the head
             # of the list.
-            self.setInterpreterHistory(interpreter)
             self.setArgvHistory(argv)
             self.setWdHistory(wd)
             self.setEnvHistory(env)
@@ -1793,7 +1771,7 @@
                 
                 # Ask the client to open the new program.
                 self.debugServer.remoteProfile(
-                    interpreter, fn, argv, wd, env,
+                    lastUsedVenvName, fn, argv, wd, env,
                     autoClearShell=self.autoClearShell, erase=eraseTimings,
                     forProject=runProject, runInConsole=console,
                     clientType=self.clientType)
@@ -1801,14 +1779,11 @@
                 self.stopAct.setEnabled(True)
         
         if dlg.clearHistories():
-            self.setInterpreterHistory("", clearHistories=True)
             self.setArgvHistory("", clearHistories=True)
             self.setWdHistory("", clearHistories=True)
             self.setEnvHistory("", clearHistories=True)
         elif dlg.historiesModified():
-            argvHistory, wdHistory, envHistory, interpreterHistory = \
-                dlg.getHistories()
-            self.setInterpreterHistory("", history=interpreterHistory)
+            argvHistory, wdHistory, envHistory = dlg.getHistories()
             self.setArgvHistory("", history=argvHistory)
             self.setWdHistory("", history=wdHistory)
             self.setEnvHistory("", history=envHistory)
@@ -1845,14 +1820,14 @@
         else:
             cap = self.tr("Run Script")
         dlg = StartDialog(
-            cap, self.interpreterHistory, self.argvHistory, self.wdHistory,
+            cap, self.lastUsedVenvName, self.argvHistory, self.wdHistory,
             self.envHistory, self.exceptions, self.ui, 1,
             autoClearShell=self.autoClearShell,
             autoFork=self.forkAutomatically,
             forkChild=self.forkIntoChild)
         if dlg.exec_() == QDialog.Accepted:
-            interpreter, argv, wd, env, exceptions, clearShell, console = \
-                dlg.getData()
+            (lastUsedVenvName, argv, wd, env, exceptions, clearShell,
+             console) = dlg.getData()
             forkAutomatically, forkIntoChild = dlg.getRunData()
             
             if runProject:
@@ -1872,7 +1847,7 @@
                 
                 # save the info for later use
                 self.project.setDbgInfo(
-                    interpreter, argv, wd, env, exceptions, self.excList,
+                    lastUsedVenvName, argv, wd, env, exceptions, self.excList,
                     self.excIgnoreList, clearShell)
                 
                 self.lastStartAction = 4
@@ -1896,9 +1871,11 @@
             self.lastDebuggedFile = fn
             self.restartAct.setEnabled(True)
             
+            # save the most recently used virtual environment
+            self.lastUsedVenvName = lastUsedVenvName
+            
             # This moves any previous occurrence of these arguments to the head
             # of the list.
-            self.setInterpreterHistory(interpreter)
             self.setArgvHistory(argv)
             self.setWdHistory(wd)
             self.setEnvHistory(env)
@@ -1929,7 +1906,7 @@
                 
                 # Ask the client to open the new program.
                 self.debugServer.remoteRun(
-                    interpreter, fn, argv, wd, env,
+                    lastUsedVenvName, fn, argv, wd, env,
                     autoClearShell=self.autoClearShell, forProject=runProject,
                     runInConsole=console, autoFork=forkAutomatically,
                     forkChild=forkIntoChild, clientType=self.clientType)
@@ -1937,14 +1914,11 @@
                 self.stopAct.setEnabled(True)
         
         if dlg.clearHistories():
-            self.setInterpreterHistory("", clearHistories=True)
             self.setArgvHistory("", clearHistories=True)
             self.setWdHistory("", clearHistories=True)
             self.setEnvHistory("", clearHistories=True)
         elif dlg.historiesModified():
-            argvHistory, wdHistory, envHistory, interpreterHistory = \
-                dlg.getHistories()
-            self.setInterpreterHistory("", history=interpreterHistory)
+            argvHistory, wdHistory, envHistory = dlg.getHistories()
             self.setArgvHistory("", history=argvHistory)
             self.setWdHistory("", history=wdHistory)
             self.setEnvHistory("", history=envHistory)
@@ -1981,14 +1955,14 @@
         else:
             cap = self.tr("Debug Script")
         dlg = StartDialog(
-            cap, self.interpreterHistory, self.argvHistory, self.wdHistory,
+            cap, self.lastUsedVenvName, self.argvHistory, self.wdHistory,
             self.envHistory, self.exceptions, self.ui, 0,
             tracePython=self.tracePython, autoClearShell=self.autoClearShell,
             autoContinue=self.autoContinue, autoFork=self.forkAutomatically,
             forkChild=self.forkIntoChild)
         if dlg.exec_() == QDialog.Accepted:
-            interpreter, argv, wd, env, exceptions, clearShell, console = \
-                dlg.getData()
+            (lastUsedVenvName, argv, wd, env, exceptions, clearShell,
+             console) = dlg.getData()
             tracePython, autoContinue, forkAutomatically, forkIntoChild = \
                 dlg.getDebugData()
             
@@ -2009,7 +1983,7 @@
                 
                 # save the info for later use
                 self.project.setDbgInfo(
-                    interpreter, argv, wd, env, exceptions, self.excList,
+                    lastUsedVenvName, argv, wd, env, exceptions, self.excList,
                     self.excIgnoreList, clearShell, tracePython=tracePython,
                     autoContinue=self.autoContinue)
                 
@@ -2034,9 +2008,11 @@
             self.lastDebuggedFile = fn
             self.restartAct.setEnabled(True)
             
+            # save the most recently used virtual environment
+            self.lastUsedVenvName = lastUsedVenvName
+            
             # This moves any previous occurrence of these arguments to the head
             # of the list.
-            self.setInterpreterHistory(interpreter)
             self.setArgvHistory(argv)
             self.setWdHistory(wd)
             self.setEnvHistory(env)
@@ -2079,7 +2055,7 @@
                 
                 # Ask the client to open the new program.
                 self.debugServer.remoteLoad(
-                    interpreter, fn, argv, wd, env,
+                    lastUsedVenvName, fn, argv, wd, env,
                     autoClearShell=self.autoClearShell,
                     tracePython=tracePython,
                     autoContinue=autoContinue, forProject=debugProject,
@@ -2087,20 +2063,19 @@
                     forkChild=forkIntoChild, clientType=self.clientType,
                     enableCallTrace=enableCallTrace)
                 
-                # Signal that we have started a debugging session
-                self.debuggingStarted.emit(fn)
-                
-                self.stopAct.setEnabled(True)
+                if self.debugServer.isClientProcessUp() and \
+                   self.debugServer.getClientType() == self.clientType:
+                    # Signal that we have started a debugging session
+                    self.debuggingStarted.emit(fn)
+                    
+                    self.stopAct.setEnabled(True)
         
         if dlg.clearHistories():
-            self.setInterpreterHistory("", clearHistories=True)
             self.setArgvHistory("", clearHistories=True)
             self.setWdHistory("", clearHistories=True)
             self.setEnvHistory("", clearHistories=True)
         elif dlg.historiesModified():
-            argvHistory, wdHistory, envHistory, interpreterHistory = \
-                dlg.getHistories()
-            self.setInterpreterHistory("", history=interpreterHistory)
+            argvHistory, wdHistory, envHistory = dlg.getHistories()
             self.setArgvHistory("", history=argvHistory)
             self.setWdHistory("", history=wdHistory)
             self.setEnvHistory("", history=envHistory)
@@ -2131,7 +2106,7 @@
             return      # should not happen
                     
         # get the saved stuff
-        interpreter = self.interpreterHistory[0]
+        venvName = self.lastUsedVenvName
         wd = self.wdHistory[0]
         argv = self.argvHistory[0]
         fn = self.lastDebuggedFile
@@ -2156,7 +2131,7 @@
                 
                 # Ask the client to debug the new program.
                 self.debugServer.remoteLoad(
-                    interpreter, fn, argv, wd, env,
+                    venvName, fn, argv, wd, env,
                     autoClearShell=self.autoClearShell,
                     tracePython=self.tracePython,
                     autoContinue=self.autoContinue,
@@ -2173,7 +2148,7 @@
             elif self.lastStartAction in [3, 4]:
                 # Ask the client to run the new program.
                 self.debugServer.remoteRun(
-                    interpreter, fn, argv, wd, env,
+                    venvName, fn, argv, wd, env,
                     autoClearShell=self.autoClearShell,
                     forProject=forProject,
                     runInConsole=self.runInConsole,
@@ -2184,7 +2159,7 @@
             elif self.lastStartAction in [5, 6]:
                 # Ask the client to coverage run the new program.
                 self.debugServer.remoteCoverage(
-                    interpreter, fn, argv, wd, env,
+                    venvName, fn, argv, wd, env,
                     autoClearShell=self.autoClearShell,
                     erase=self.eraseCoverage,
                     forProject=forProject,
@@ -2194,7 +2169,7 @@
             elif self.lastStartAction in [7, 8]:
                 # Ask the client to profile run the new program.
                 self.debugServer.remoteProfile(
-                    interpreter, fn, argv, wd, env,
+                    venvName, fn, argv, wd, env,
                     autoClearShell=self.autoClearShell,
                     erase=self.eraseTimings,
                     forProject=forProject,
--- a/Debugger/DebuggerInterfaceNone.py	Sat Jun 02 12:46:57 2018 +0200
+++ b/Debugger/DebuggerInterfaceNone.py	Mon Jul 02 18:59:30 2018 +0200
@@ -38,33 +38,37 @@
         # set default values for capabilities of clients
         self.clientCapabilities = ClientDefaultCapabilities
         
-    def startRemote(self, port, runInConsole, interpreter):
+    def startRemote(self, port, runInConsole, venvName):
         """
         Public method to start a remote Python interpreter.
         
-        @param port port number the debug server is listening on (integer)
+        @param port port number the debug server is listening on
+        @type int
         @param runInConsole flag indicating to start the debugger in a
-            console window (boolean)
-        @param interpreter interpreter to be used to execute the remote
-            side (string)
-        @return client process object (QProcess), a flag to indicate
-            a network connection (boolean) and the name of the interpreter
-            in case of a local execution (string)
+            console window
+        @type bool
+        @param venvName name of the virtual environment to be used
+        @type str
+        @return client process object, a flag to indicate a network connection
+            and the name of the interpreter in case of a local execution
+        @rtype tuple of (QProcess, bool, str)
         """
         return None, True, ""
 
-    def startRemoteForProject(self, port, runInConsole, interpreter):
+    def startRemoteForProject(self, port, runInConsole, venvName):
         """
         Public method to start a remote Python interpreter for a project.
         
-        @param port port number the debug server is listening on (integer)
+        @param port port number the debug server is listening on
+        @type int
         @param runInConsole flag indicating to start the debugger in a
-            console window (boolean)
-        @param interpreter interpreter to be used to execute the remote
-            side (string)
-        @return client process object (QProcess), a flag to indicate
-            a network connection (boolean) and the name of the interpreter
-            in case of a local execution (string)
+            console window
+        @type bool
+        @param venvName name of the virtual environment to be used
+        @type str
+        @return client process object, a flag to indicate a network connection
+            and the name of the interpreter in case of a local execution
+        @rtype tuple of (QProcess, bool, str)
         """
         return None, True, ""
 
@@ -372,6 +376,12 @@
         @param arg the arguments to evaluate (string)
         """
         return
+    
+    def remoteBanner(self):
+        """
+        Public slot to get the banner info of the remote client.
+        """
+        return
         
     def remoteCapabilities(self):
         """
--- a/Debugger/DebuggerInterfacePython.py	Sat Jun 02 12:46:57 2018 +0200
+++ b/Debugger/DebuggerInterfacePython.py	Mon Jul 02 18:59:30 2018 +0200
@@ -132,30 +132,38 @@
         
         return proc
         
-    def startRemote(self, port, runInConsole, interpreter):
+    def startRemote(self, port, runInConsole, venvName):
         """
         Public method to start a remote Python interpreter.
         
-        @param port port number the debug server is listening on (integer)
+        @param port port number the debug server is listening on
+        @type int
         @param runInConsole flag indicating to start the debugger in a
-            console window (boolean)
-        @param interpreter interpreter to be used to execute the remote
-            side (string)
-        @return client process object (QProcess), a flag to indicate
-            a network connection (boolean) and the name of the interpreter
-            in case of a local execution (string)
+            console window
+        @type bool
+        @param venvName name of the virtual environment to be used
+        @type str
+        @return client process object, a flag to indicate a network connection
+            and the name of the interpreter in case of a local execution
+        @rtype tuple of (QProcess, bool, str)
         """
-        if not interpreter:
+        if not venvName:
             if self.__variant == "Python2":
-                interpreter = Preferences.getDebugger("PythonInterpreter")
+                venvName = Preferences.getDebugger("Python2VirtualEnv")
             else:
-                interpreter = Preferences.getDebugger("Python3Interpreter")
+                venvName = Preferences.getDebugger("Python3VirtualEnv")
+        interpreter = e5App().getObject("VirtualEnvManager")\
+            .getVirtualenvInterpreter(venvName)
+        if interpreter == "" and \
+           int(self.__variant[-1]) == sys.version_info[0]:
+            # use the interpreter used to run eric for identical variants
+            interpreter = sys.executable.replace("w.exe", ".exe")
         if interpreter == "":
             E5MessageBox.critical(
                 None,
                 self.tr("Start Debugger"),
                 self.tr(
-                    """<p>No {0} interpreter configured.</p>""")
+                    """<p>No suitable {0} environment configured.</p>""")
                 .format(self.__variant))
             return None, False, ""
         
@@ -266,32 +274,49 @@
                     """<p>The debugger backend could not be started.</p>"""))
         return process, self.__isNetworked, interpreter
 
-    def startRemoteForProject(self, port, runInConsole, interpreter):
+    def startRemoteForProject(self, port, runInConsole, venvName):
         """
         Public method to start a remote Python interpreter for a project.
         
-        @param port port number the debug server is listening on (integer)
+        @param port port number the debug server is listening on
+        @type int
         @param runInConsole flag indicating to start the debugger in a
-            console window (boolean)
-        @param interpreter interpreter to be used to execute the remote
-            side (string)
-        @return client process object (QProcess), a flag to indicate
-            a network connection (boolean) and the name of the interpreter
-            in case of a local execution (string)
+            console window
+        @type bool
+        @param venvName name of the virtual environment to be used
+        @type str
+        @return client process object, a flag to indicate a network connection
+            and the name of the interpreter in case of a local execution
+        @rtype tuple of (QProcess, bool, str)
         """
         project = e5App().getObject("Project")
         if not project.isDebugPropertiesLoaded():
             return None, self.__isNetworked, ""
         
         # start debugger with project specific settings
-        if not interpreter:
-            interpreter = project.getDebugProperty("INTERPRETER")
+        if not venvName:
+            venvName = project.getDebugProperty("VIRTUALENV")
         debugClient = project.getDebugProperty("DEBUGCLIENT")
         
         redirect = str(project.getDebugProperty("REDIRECT"))
         noencoding = \
             project.getDebugProperty("NOENCODING") and '--no-encoding' or ''
         
+        interpreter = e5App().getObject("VirtualEnvManager")\
+            .getVirtualenvInterpreter(venvName)
+        if interpreter == "" and \
+           project.getProjectLanguage().startswith("Python") and \
+           sys.version_info[0] == int(project.getProjectLanguage()[-1]):
+            interpreter = sys.executable.replace("w.exe", ".exe")
+        if interpreter == "":
+            E5MessageBox.critical(
+                None,
+                self.tr("Start Debugger"),
+                self.tr(
+                    """<p>No suitable {0} environment configured.</p>""")
+                .format(self.__variant))
+            return None, self.__isNetworked, ""
+        
         if project.getDebugProperty("REMOTEDEBUGGER"):
             ipaddr = self.debugServer.getHostAddress(False)
             rexec = project.getDebugProperty("REMOTECOMMAND")
@@ -1177,13 +1202,13 @@
             py3Exts.append(".{0}".format(ext))
     
     registryData = []
-    if py2Exts and Preferences.getDebugger("PythonInterpreter"):
+    if py2Exts and Preferences.getDebugger("Python2VirtualEnv"):
         registryData.append(
             ("Python2", ClientDefaultCapabilities, py2Exts,
              createDebuggerInterfacePython2)
         )
     
-    if py3Exts and Preferences.getDebugger("Python3Interpreter"):
+    if py3Exts and Preferences.getDebugger("Python3VirtualEnv"):
         registryData.append(
             ("Python3", ClientDefaultCapabilities, py3Exts,
                 createDebuggerInterfacePython3)
--- a/Debugger/StartCoverageDialog.ui	Sat Jun 02 12:46:57 2018 +0200
+++ b/Debugger/StartCoverageDialog.ui	Mon Jul 02 18:59:30 2018 +0200
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>488</width>
-    <height>185</height>
+    <height>228</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -18,37 +18,17 @@
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="0" column="0">
-      <widget class="QLabel" name="TextLabel2_2">
+    <layout class="QGridLayout" name="gridLayout_3">
+     <item row="2" column="0">
+      <widget class="QLabel" name="TextLabel2">
        <property name="text">
-        <string>Interpreter:</string>
+        <string>&amp;Working directory:</string>
        </property>
        <property name="buddy">
         <cstring>workdirPicker</cstring>
        </property>
       </widget>
      </item>
-     <item row="0" column="1">
-      <widget class="E5ComboPathPicker" name="interpreterPicker" native="true">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="focusPolicy">
-        <enum>Qt::WheelFocus</enum>
-       </property>
-       <property name="toolTip">
-        <string>Enter the interpreter to be used</string>
-       </property>
-       <property name="whatsThis">
-        <string>&lt;b&gt;Interpreter&lt;/b&gt;
-&lt;p&gt;Enter the interpreter to be used. Leave it empty to use the default interprter, i.e. the one configured globally or per project.&lt;/p&gt;</string>
-       </property>
-      </widget>
-     </item>
      <item row="1" column="0">
       <widget class="QLabel" name="TextLabel1">
        <property name="text">
@@ -88,46 +68,6 @@
        </property>
       </widget>
      </item>
-     <item row="2" column="0">
-      <widget class="QLabel" name="TextLabel2">
-       <property name="text">
-        <string>&amp;Working directory:</string>
-       </property>
-       <property name="buddy">
-        <cstring>workdirPicker</cstring>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="E5ComboPathPicker" name="workdirPicker" native="true">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="focusPolicy">
-        <enum>Qt::WheelFocus</enum>
-       </property>
-       <property name="toolTip">
-        <string>Enter the working directory</string>
-       </property>
-       <property name="whatsThis">
-        <string>&lt;b&gt;Working directory&lt;/b&gt;
-&lt;p&gt;Enter the working directory of the application to be debugged. Leave it empty to set the working directory to the executable directory.&lt;/p&gt;</string>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="0">
-      <widget class="QLabel" name="textLabel1">
-       <property name="text">
-        <string>&amp;Environment:</string>
-       </property>
-       <property name="buddy">
-        <cstring>environmentCombo</cstring>
-       </property>
-      </widget>
-     </item>
      <item row="3" column="1">
       <widget class="QComboBox" name="environmentCombo">
        <property name="sizePolicy">
@@ -158,6 +98,62 @@
        </property>
       </widget>
      </item>
+     <item row="2" column="1">
+      <widget class="E5ComboPathPicker" name="workdirPicker" native="true">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="focusPolicy">
+        <enum>Qt::WheelFocus</enum>
+       </property>
+       <property name="toolTip">
+        <string>Enter the working directory</string>
+       </property>
+       <property name="whatsThis">
+        <string>&lt;b&gt;Working directory&lt;/b&gt;
+&lt;p&gt;Enter the working directory of the application to be debugged. Leave it empty to set the working directory to the executable directory.&lt;/p&gt;</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QComboBox" name="venvComboBox">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="toolTip">
+        <string>Select the virtual environment to be used</string>
+       </property>
+       <property name="whatsThis">
+        <string>&lt;b&gt;Virtual Environment&lt;/b&gt;\n&lt;p&gt;Enter the virtual environment to be used. Leave it empty to use the default environment, i.e. the one configured globally or per project.&lt;/p&gt;</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="0">
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>&amp;Virtual Environment:</string>
+       </property>
+       <property name="buddy">
+        <cstring>venvComboBox</cstring>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="0">
+      <widget class="QLabel" name="textLabel1">
+       <property name="text">
+        <string>&amp;Environment:</string>
+       </property>
+       <property name="buddy">
+        <cstring>environmentCombo</cstring>
+       </property>
+      </widget>
+     </item>
     </layout>
    </item>
    <item>
@@ -253,7 +249,7 @@
   </customwidget>
  </customwidgets>
  <tabstops>
-  <tabstop>interpreterPicker</tabstop>
+  <tabstop>venvComboBox</tabstop>
   <tabstop>cmdlineCombo</tabstop>
   <tabstop>workdirPicker</tabstop>
   <tabstop>environmentCombo</tabstop>
--- a/Debugger/StartDebugDialog.ui	Sat Jun 02 12:46:57 2018 +0200
+++ b/Debugger/StartDebugDialog.ui	Mon Jul 02 18:59:30 2018 +0200
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>488</width>
-    <height>264</height>
+    <height>333</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -18,34 +18,30 @@
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
-    <layout class="QGridLayout" name="gridLayout">
+    <layout class="QGridLayout" name="gridLayout_3">
      <item row="0" column="0">
-      <widget class="QLabel" name="TextLabel2_2">
+      <widget class="QLabel" name="label">
        <property name="text">
-        <string>Interpreter:</string>
+        <string>&amp;Virtual Environment:</string>
        </property>
        <property name="buddy">
-        <cstring>workdirPicker</cstring>
+        <cstring>venvComboBox</cstring>
        </property>
       </widget>
      </item>
      <item row="0" column="1">
-      <widget class="E5ComboPathPicker" name="interpreterPicker" native="true">
+      <widget class="QComboBox" name="venvComboBox">
        <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
-       <property name="focusPolicy">
-        <enum>Qt::WheelFocus</enum>
-       </property>
        <property name="toolTip">
-        <string>Enter the interpreter to be used</string>
+        <string>Select the virtual environment to be used</string>
        </property>
        <property name="whatsThis">
-        <string>&lt;b&gt;Interpreter&lt;/b&gt;
-&lt;p&gt;Enter the interpreter to be used. Leave it empty to use the default interprter, i.e. the one configured globally or per project.&lt;/p&gt;</string>
+        <string>&lt;b&gt;Virtual Environment&lt;/b&gt;\n&lt;p&gt;Enter the virtual environment to be used. Leave it empty to use the default environment, i.e. the one configured globally or per project.&lt;/p&gt;</string>
        </property>
       </widget>
      </item>
@@ -305,7 +301,7 @@
   </customwidget>
  </customwidgets>
  <tabstops>
-  <tabstop>interpreterPicker</tabstop>
+  <tabstop>venvComboBox</tabstop>
   <tabstop>cmdlineCombo</tabstop>
   <tabstop>workdirPicker</tabstop>
   <tabstop>environmentCombo</tabstop>
--- a/Debugger/StartDialog.py	Sat Jun 02 12:46:57 2018 +0200
+++ b/Debugger/StartDialog.py	Mon Jul 02 18:59:30 2018 +0200
@@ -12,6 +12,7 @@
 from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QComboBox, QInputDialog
 
 from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.E5Application import e5App
 
 import Preferences
 
@@ -25,7 +26,7 @@
     the commandline parameters, the working directory and
     whether exception reporting should be disabled.
     """
-    def __init__(self, caption, interpreterList, argvList, wdList, envList,
+    def __init__(self, caption, lastUsedVenvName, argvList, wdList, envList,
                  exceptions,
                  parent=None, dialogType=0, modfuncList=None,
                  tracePython=False, autoClearShell=True, autoContinue=True,
@@ -33,13 +34,21 @@
         """
         Constructor
         
-        @param caption the caption to be displayed (string)
-        @param interpreterList list of interpreters (list of string)
-        @param argvList history list of commandline arguments (list of strings)
-        @param wdList history list of working directories (list of strings)
-        @param envList history list of environment settings (list of strings)
-        @param exceptions exception reporting flag (boolean)
-        @param parent parent widget of this dialog (QWidget)
+        @param caption the caption to be displayed
+        @type str
+        @param lastUsedVenvName name of the most recently used virtual
+            environment
+        @type str
+        @param argvList history list of command line arguments
+        @type list of str
+        @param wdList history list of working directories
+        @type list of str
+        @param envList history list of environment parameter settings
+        @type list of str
+        @param exceptions exception reporting flag
+        @type bool
+        @param parent parent widget of this dialog
+        @type QWidget
         @param dialogType type of the start dialog
                 <ul>
                 <li>0 = start debug dialog</li>
@@ -47,17 +56,22 @@
                 <li>2 = start coverage dialog</li>
                 <li>3 = start profile dialog</li>
                 </ul>
+        @type int (0 to 3)
         @keyparam modfuncList history list of module functions
-            (list of strings)
+        @type list of str
         @keyparam tracePython flag indicating if the Python library should
-            be traced as well (boolean)
+            be traced as well
+        @type bool
         @keyparam autoClearShell flag indicating, that the interpreter window
-            should be cleared automatically (boolean)
+            should be cleared automatically
+        @type bool
         @keyparam autoContinue flag indicating, that the debugger should not
-            stop at the first executable line (boolean)
-        @keyparam autoFork flag indicating the automatic fork mode (boolean)
+            stop at the first executable line
+        @type bool
+        @keyparam autoFork flag indicating the automatic fork mode
+        @type bool
         @keyparam forkChild flag indicating to debug the child after forking
-            (boolean)
+        @type bool
         """
         super(StartDialog, self).__init__(parent)
         self.setModal(True)
@@ -77,10 +91,10 @@
             self.ui = Ui_StartProfileDialog()
         self.ui.setupUi(self)
         
-        self.ui.interpreterPicker.setMode(E5PathPickerModes.OpenFileMode)
-        self.ui.interpreterPicker.setInsertPolicy(QComboBox.InsertAtTop)
-        self.ui.interpreterPicker.setSizeAdjustPolicy(
-            QComboBox.AdjustToMinimumContentsLength)
+        self.ui.venvComboBox.addItem("")
+        self.ui.venvComboBox.addItems(
+            sorted(e5App().getObject("VirtualEnvManager")
+                   .getVirtualenvNames()))
         
         self.ui.workdirPicker.setMode(E5PathPickerModes.DirectoryMode)
         self.ui.workdirPicker.setDefaultDirectory(
@@ -110,10 +124,8 @@
         self.ui.consoleCheckBox.setEnabled(
             Preferences.getDebugger("ConsoleDbgCommand") != "")
         self.ui.consoleCheckBox.setChecked(False)
-        self.ui.interpreterPicker.clear()
-        self.ui.interpreterPicker.addItems(interpreterList)
-        if len(interpreterList) > 0:
-            self.ui.interpreterPicker.setCurrentIndex(0)
+        venvIndex = max(0, self.ui.venvComboBox.findText(lastUsedVenvName))
+        self.ui.venvComboBox.setCurrentIndex(venvIndex)
         
         if dialogType == 0:        # start debug dialog
             self.ui.tracePythonCheckBox.setChecked(tracePython)
@@ -153,9 +165,9 @@
         cmdLine = self.ui.cmdlineCombo.currentText()
         workdir = self.ui.workdirPicker.currentText()
         environment = self.ui.environmentCombo.currentText()
-        interpreter = self.ui.interpreterPicker.currentText()
+        venvName = self.ui.venvComboBox.currentText()
         
-        return (interpreter,
+        return (venvName,
                 cmdLine,
                 workdir,
                 environment,
@@ -227,17 +239,14 @@
         cmdLine = self.ui.cmdlineCombo.currentText()
         workdir = self.ui.workdirPicker.currentText()
         environment = self.ui.environmentCombo.currentText()
-        interpreter = self.ui.interpreterPicker.currentText()
         
         self.ui.cmdlineCombo.clear()
         self.ui.workdirPicker.clear()
         self.ui.environmentCombo.clear()
-        self.ui.interpreterPicker.clear()
         
         self.ui.cmdlineCombo.addItem(cmdLine)
         self.ui.workdirPicker.addItem(workdir)
         self.ui.environmentCombo.addItem(environment)
-        self.ui.interpreterPicker.addItem(interpreter)
     
     def __editHistory(self):
         """
@@ -245,7 +254,6 @@
         """
         histories = [
             "",
-            self.tr("Interpreter"),
             self.tr("Command Line"),
             self.tr("Working Directory"),
             self.tr("Environment"),
@@ -258,13 +266,11 @@
             0, False)
         if ok and historyKind:
             historiesIndex = histories.index(historyKind)
-            if historiesIndex == 3:
+            if historiesIndex == 2:
                 history = self.ui.workdirPicker.getPathItems()
-            elif historiesIndex == 1:
-                history = self.ui.interpreterPicker.getPathItems()
             else:
                 history = []
-                if historiesIndex == 2:
+                if historiesIndex == 1:
                     combo = self.ui.cmdlineCombo
                 else:
                     combo = self.ui.environmentCombo
@@ -276,10 +282,8 @@
             if dlg.exec_() == QDialog.Accepted:
                 history = dlg.getHistory()
                 if historiesIndex == 1:
-                    combo = self.ui.interpreterPicker
+                    combo = self.ui.cmdlineCombo
                 elif historiesIndex == 2:
-                    combo = self.ui.cmdlineCombo
-                elif historiesIndex == 3:
                     combo = self.ui.workdirPicker
                 else:
                     combo = self.ui.environmentCombo
@@ -320,7 +324,6 @@
             self.ui.workdirPicker.getPathItems(),
             [self.ui.environmentCombo.itemText(index) for index in range(
                 self.ui.environmentCombo.count())],
-            self.ui.interpreterPicker.getPathItems(),
         )
     
     def on_buttonBox_clicked(self, button):
--- a/Debugger/StartProfileDialog.ui	Sat Jun 02 12:46:57 2018 +0200
+++ b/Debugger/StartProfileDialog.ui	Mon Jul 02 18:59:30 2018 +0200
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>488</width>
-    <height>185</height>
+    <height>228</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -18,34 +18,30 @@
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
-    <layout class="QGridLayout" name="gridLayout">
+    <layout class="QGridLayout" name="gridLayout_3">
      <item row="0" column="0">
-      <widget class="QLabel" name="TextLabel2_2">
+      <widget class="QLabel" name="label">
        <property name="text">
-        <string>Interpreter:</string>
+        <string>&amp;Virtual Environment:</string>
        </property>
        <property name="buddy">
-        <cstring>workdirPicker</cstring>
+        <cstring>venvComboBox</cstring>
        </property>
       </widget>
      </item>
      <item row="0" column="1">
-      <widget class="E5ComboPathPicker" name="interpreterPicker" native="true">
+      <widget class="QComboBox" name="venvComboBox">
        <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
-       <property name="focusPolicy">
-        <enum>Qt::WheelFocus</enum>
-       </property>
        <property name="toolTip">
-        <string>Enter the interpreter to be used</string>
+        <string>Select the virtual environment to be used</string>
        </property>
        <property name="whatsThis">
-        <string>&lt;b&gt;Interpreter&lt;/b&gt;
-&lt;p&gt;Enter the interpreter to be used. Leave it empty to use the default interprter, i.e. the one configured globally or per project.&lt;/p&gt;</string>
+        <string>&lt;b&gt;Virtual Environment&lt;/b&gt;\n&lt;p&gt;Enter the virtual environment to be used. Leave it empty to use the default environment, i.e. the one configured globally or per project.&lt;/p&gt;</string>
        </property>
       </widget>
      </item>
@@ -253,7 +249,7 @@
   </customwidget>
  </customwidgets>
  <tabstops>
-  <tabstop>interpreterPicker</tabstop>
+  <tabstop>venvComboBox</tabstop>
   <tabstop>cmdlineCombo</tabstop>
   <tabstop>workdirPicker</tabstop>
   <tabstop>environmentCombo</tabstop>
--- a/Debugger/StartRunDialog.ui	Sat Jun 02 12:46:57 2018 +0200
+++ b/Debugger/StartRunDialog.ui	Mon Jul 02 18:59:30 2018 +0200
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>488</width>
-    <height>241</height>
+    <height>303</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -20,32 +20,28 @@
    <item>
     <layout class="QGridLayout" name="gridLayout_2">
      <item row="0" column="0">
-      <widget class="QLabel" name="TextLabel2_2">
+      <widget class="QLabel" name="label">
        <property name="text">
-        <string>Interpreter:</string>
+        <string>&amp;Virtual Environment:</string>
        </property>
        <property name="buddy">
-        <cstring>workdirPicker</cstring>
+        <cstring>venvComboBox</cstring>
        </property>
       </widget>
      </item>
      <item row="0" column="1">
-      <widget class="E5ComboPathPicker" name="interpreterPicker" native="true">
+      <widget class="QComboBox" name="venvComboBox">
        <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
-       <property name="focusPolicy">
-        <enum>Qt::WheelFocus</enum>
-       </property>
        <property name="toolTip">
-        <string>Enter the interpreter to be used</string>
+        <string>Select the virtual environment to be used</string>
        </property>
        <property name="whatsThis">
-        <string>&lt;b&gt;Interpreter&lt;/b&gt;
-&lt;p&gt;Enter the interpreter to be used. Leave it empty to use the default interprter, i.e. the one configured globally or per project.&lt;/p&gt;</string>
+        <string>&lt;b&gt;Virtual Environment&lt;/b&gt;\n&lt;p&gt;Enter the virtual environment to be used. Leave it empty to use the default environment, i.e. the one configured globally or per project.&lt;/p&gt;</string>
        </property>
       </widget>
      </item>
@@ -276,7 +272,7 @@
   </customwidget>
  </customwidgets>
  <tabstops>
-  <tabstop>interpreterPicker</tabstop>
+  <tabstop>venvComboBox</tabstop>
   <tabstop>cmdlineCombo</tabstop>
   <tabstop>workdirPicker</tabstop>
   <tabstop>environmentCombo</tabstop>
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Help/source.qhp	Mon Jul 02 18:59:30 2018 +0200
@@ -526,6 +526,7 @@
                 <section title="eric6.Plugins.UiExtensionPlugins.PipInterface.PipPackageDetailsDialog" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipPackageDetailsDialog.html" />
                 <section title="eric6.Plugins.UiExtensionPlugins.PipInterface.PipPackagesInputDialog" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipPackagesInputDialog.html" />
                 <section title="eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog.html" />
+                <section title="eric6.Plugins.UiExtensionPlugins.PipInterface.PipSelectionDialog" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipSelectionDialog.html" />
               </section>
               <section title="eric6.Plugins.UiExtensionPlugins.Translator" ref="index-eric6.Plugins.UiExtensionPlugins.Translator.html">
                 <section title="eric6.Plugins.UiExtensionPlugins.Translator.ConfigurationPage" ref="index-eric6.Plugins.UiExtensionPlugins.Translator.ConfigurationPage.html">
@@ -548,10 +549,6 @@
                 <section title="eric6.Plugins.UiExtensionPlugins.Translator.TranslatorRequest" ref="eric6.Plugins.UiExtensionPlugins.Translator.TranslatorRequest.html" />
                 <section title="eric6.Plugins.UiExtensionPlugins.Translator.TranslatorWidget" ref="eric6.Plugins.UiExtensionPlugins.Translator.TranslatorWidget.html" />
               </section>
-              <section title="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface" ref="index-eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.html">
-                <section title="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html" />
-                <section title="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.html" />
-              </section>
             </section>
             <section title="eric6.Plugins.VcsPlugins" ref="index-eric6.Plugins.VcsPlugins.html">
               <section title="eric6.Plugins.VcsPlugins.vcsGit" ref="index-eric6.Plugins.VcsPlugins.vcsGit.html">
@@ -568,6 +565,7 @@
                 <section title="eric6.Plugins.VcsPlugins.vcsGit.GitBranchDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitBranchDialog.html" />
                 <section title="eric6.Plugins.VcsPlugins.vcsGit.GitBranchPushDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitBranchPushDialog.html" />
                 <section title="eric6.Plugins.VcsPlugins.vcsGit.GitBundleDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitBundleDialog.html" />
+                <section title="eric6.Plugins.VcsPlugins.vcsGit.GitChangeRemoteUrlDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitChangeRemoteUrlDialog.html" />
                 <section title="eric6.Plugins.VcsPlugins.vcsGit.GitCherryPickDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitCherryPickDialog.html" />
                 <section title="eric6.Plugins.VcsPlugins.vcsGit.GitCommandDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitCommandDialog.html" />
                 <section title="eric6.Plugins.VcsPlugins.vcsGit.GitCommitDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitCommitDialog.html" />
@@ -589,6 +587,7 @@
                 <section title="eric6.Plugins.VcsPlugins.vcsGit.GitPullDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitPullDialog.html" />
                 <section title="eric6.Plugins.VcsPlugins.vcsGit.GitPushDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitPushDialog.html" />
                 <section title="eric6.Plugins.VcsPlugins.vcsGit.GitReflogBrowserDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitReflogBrowserDialog.html" />
+                <section title="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteCredentialsDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteCredentialsDialog.html" />
                 <section title="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.html" />
                 <section title="eric6.Plugins.VcsPlugins.vcsGit.GitRevisionSelectionDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRevisionSelectionDialog.html" />
                 <section title="eric6.Plugins.VcsPlugins.vcsGit.GitRevisionsSelectionDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRevisionsSelectionDialog.html" />
@@ -869,7 +868,6 @@
             <section title="eric6.Plugins.PluginVcsMercurial" ref="eric6.Plugins.PluginVcsMercurial.html" />
             <section title="eric6.Plugins.PluginVcsPySvn" ref="eric6.Plugins.PluginVcsPySvn.html" />
             <section title="eric6.Plugins.PluginVcsSubversion" ref="eric6.Plugins.PluginVcsSubversion.html" />
-            <section title="eric6.Plugins.PluginVirtualenvInterface" ref="eric6.Plugins.PluginVirtualenvInterface.html" />
             <section title="eric6.Plugins.PluginVmListspace" ref="eric6.Plugins.PluginVmListspace.html" />
             <section title="eric6.Plugins.PluginVmTabview" ref="eric6.Plugins.PluginVmTabview.html" />
             <section title="eric6.Plugins.PluginWizardDotDesktop" ref="eric6.Plugins.PluginWizardDotDesktop.html" />
@@ -892,8 +890,8 @@
               <section title="eric6.Preferences.ConfigurationPages.CooperationPage" ref="eric6.Preferences.ConfigurationPages.CooperationPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.CorbaPage" ref="eric6.Preferences.ConfigurationPages.CorbaPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.DebuggerGeneralPage" ref="eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.html" />
+              <section title="eric6.Preferences.ConfigurationPages.DebuggerPython2Page" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html" />
               <section title="eric6.Preferences.ConfigurationPages.DebuggerPython3Page" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html" />
-              <section title="eric6.Preferences.ConfigurationPages.DebuggerPythonPage" ref="eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.DiffColoursPage" ref="eric6.Preferences.ConfigurationPages.DiffColoursPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.EditorAPIsPage" ref="eric6.Preferences.ConfigurationPages.EditorAPIsPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.EditorAutocompletionPage" ref="eric6.Preferences.ConfigurationPages.EditorAutocompletionPage.html" />
@@ -1200,6 +1198,14 @@
             <section title="eric6.ViewManager.ViewManager" ref="eric6.ViewManager.ViewManager.html" />
             <section title="eric6.ViewManager.__init__" ref="eric6.ViewManager.__init__.html" />
           </section>
+          <section title="eric6.VirtualEnv" ref="index-eric6.VirtualEnv.html">
+            <section title="eric6.VirtualEnv.VirtualenvAddEditDialog" ref="eric6.VirtualEnv.VirtualenvAddEditDialog.html" />
+            <section title="eric6.VirtualEnv.VirtualenvConfigurationDialog" ref="eric6.VirtualEnv.VirtualenvConfigurationDialog.html" />
+            <section title="eric6.VirtualEnv.VirtualenvExecDialog" ref="eric6.VirtualEnv.VirtualenvExecDialog.html" />
+            <section title="eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog" ref="eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog.html" />
+            <section title="eric6.VirtualEnv.VirtualenvManager" ref="eric6.VirtualEnv.VirtualenvManager.html" />
+            <section title="eric6.VirtualEnv.VirtualenvManagerDialog" ref="eric6.VirtualEnv.VirtualenvManagerDialog.html" />
+          </section>
           <section title="eric6.WebBrowser" ref="index-eric6.WebBrowser.html">
             <section title="eric6.WebBrowser.AdBlock" ref="index-eric6.WebBrowser.AdBlock.html">
               <section title="eric6.WebBrowser.AdBlock.AdBlockDialog" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html" />
@@ -3660,10 +3666,12 @@
       <keyword name="DebugServer.getBreakPointModel" id="DebugServer.getBreakPointModel" ref="eric6.Debugger.DebugServer.html#DebugServer.getBreakPointModel" />
       <keyword name="DebugServer.getClientCapabilities" id="DebugServer.getClientCapabilities" ref="eric6.Debugger.DebugServer.html#DebugServer.getClientCapabilities" />
       <keyword name="DebugServer.getClientInterpreter" id="DebugServer.getClientInterpreter" ref="eric6.Debugger.DebugServer.html#DebugServer.getClientInterpreter" />
+      <keyword name="DebugServer.getClientType" id="DebugServer.getClientType" ref="eric6.Debugger.DebugServer.html#DebugServer.getClientType" />
       <keyword name="DebugServer.getExtensions" id="DebugServer.getExtensions" ref="eric6.Debugger.DebugServer.html#DebugServer.getExtensions" />
       <keyword name="DebugServer.getHostAddress" id="DebugServer.getHostAddress" ref="eric6.Debugger.DebugServer.html#DebugServer.getHostAddress" />
       <keyword name="DebugServer.getSupportedLanguages" id="DebugServer.getSupportedLanguages" ref="eric6.Debugger.DebugServer.html#DebugServer.getSupportedLanguages" />
       <keyword name="DebugServer.getWatchPointModel" id="DebugServer.getWatchPointModel" ref="eric6.Debugger.DebugServer.html#DebugServer.getWatchPointModel" />
+      <keyword name="DebugServer.isClientProcessUp" id="DebugServer.isClientProcessUp" ref="eric6.Debugger.DebugServer.html#DebugServer.isClientProcessUp" />
       <keyword name="DebugServer.isConnected" id="DebugServer.isConnected" ref="eric6.Debugger.DebugServer.html#DebugServer.isConnected" />
       <keyword name="DebugServer.passiveStartUp" id="DebugServer.passiveStartUp" ref="eric6.Debugger.DebugServer.html#DebugServer.passiveStartUp" />
       <keyword name="DebugServer.preferencesChanged" id="DebugServer.preferencesChanged" ref="eric6.Debugger.DebugServer.html#DebugServer.preferencesChanged" />
@@ -3789,7 +3797,6 @@
       <keyword name="DebugUI.setExcIgnoreList" id="DebugUI.setExcIgnoreList" ref="eric6.Debugger.DebugUI.html#DebugUI.setExcIgnoreList" />
       <keyword name="DebugUI.setExcList" id="DebugUI.setExcList" ref="eric6.Debugger.DebugUI.html#DebugUI.setExcList" />
       <keyword name="DebugUI.setExceptionReporting" id="DebugUI.setExceptionReporting" ref="eric6.Debugger.DebugUI.html#DebugUI.setExceptionReporting" />
-      <keyword name="DebugUI.setInterpreterHistory" id="DebugUI.setInterpreterHistory" ref="eric6.Debugger.DebugUI.html#DebugUI.setInterpreterHistory" />
       <keyword name="DebugUI.setTracePython" id="DebugUI.setTracePython" ref="eric6.Debugger.DebugUI.html#DebugUI.setTracePython" />
       <keyword name="DebugUI.setWdHistory" id="DebugUI.setWdHistory" ref="eric6.Debugger.DebugUI.html#DebugUI.setWdHistory" />
       <keyword name="DebugUI.shutdown" id="DebugUI.shutdown" ref="eric6.Debugger.DebugUI.html#DebugUI.shutdown" />
@@ -3841,6 +3848,7 @@
       <keyword name="DebuggerInterfaceNone.getClientCapabilities" id="DebuggerInterfaceNone.getClientCapabilities" ref="eric6.Debugger.DebuggerInterfaceNone.html#DebuggerInterfaceNone.getClientCapabilities" />
       <keyword name="DebuggerInterfaceNone.isConnected" id="DebuggerInterfaceNone.isConnected" ref="eric6.Debugger.DebuggerInterfaceNone.html#DebuggerInterfaceNone.isConnected" />
       <keyword name="DebuggerInterfaceNone.newConnection" id="DebuggerInterfaceNone.newConnection" ref="eric6.Debugger.DebuggerInterfaceNone.html#DebuggerInterfaceNone.newConnection" />
+      <keyword name="DebuggerInterfaceNone.remoteBanner" id="DebuggerInterfaceNone.remoteBanner" ref="eric6.Debugger.DebuggerInterfaceNone.html#DebuggerInterfaceNone.remoteBanner" />
       <keyword name="DebuggerInterfaceNone.remoteBreakpoint" id="DebuggerInterfaceNone.remoteBreakpoint" ref="eric6.Debugger.DebuggerInterfaceNone.html#DebuggerInterfaceNone.remoteBreakpoint" />
       <keyword name="DebuggerInterfaceNone.remoteBreakpointEnable" id="DebuggerInterfaceNone.remoteBreakpointEnable" ref="eric6.Debugger.DebuggerInterfaceNone.html#DebuggerInterfaceNone.remoteBreakpointEnable" />
       <keyword name="DebuggerInterfaceNone.remoteBreakpointIgnore" id="DebuggerInterfaceNone.remoteBreakpointIgnore" ref="eric6.Debugger.DebuggerInterfaceNone.html#DebuggerInterfaceNone.remoteBreakpointIgnore" />
@@ -3931,7 +3939,6 @@
       <keyword name="DebuggerPropertiesDialog.__saveHistories" id="DebuggerPropertiesDialog.__saveHistories" ref="eric6.Project.DebuggerPropertiesDialog.html#DebuggerPropertiesDialog.__saveHistories" />
       <keyword name="DebuggerPropertiesDialog.on_debugClientClearHistoryButton_clicked" id="DebuggerPropertiesDialog.on_debugClientClearHistoryButton_clicked" ref="eric6.Project.DebuggerPropertiesDialog.html#DebuggerPropertiesDialog.on_debugClientClearHistoryButton_clicked" />
       <keyword name="DebuggerPropertiesDialog.on_debugClientPicker_aboutToShowPathPickerDialog" id="DebuggerPropertiesDialog.on_debugClientPicker_aboutToShowPathPickerDialog" ref="eric6.Project.DebuggerPropertiesDialog.html#DebuggerPropertiesDialog.on_debugClientPicker_aboutToShowPathPickerDialog" />
-      <keyword name="DebuggerPropertiesDialog.on_interpreterClearHistoryButton_clicked" id="DebuggerPropertiesDialog.on_interpreterClearHistoryButton_clicked" ref="eric6.Project.DebuggerPropertiesDialog.html#DebuggerPropertiesDialog.on_interpreterClearHistoryButton_clicked" />
       <keyword name="DebuggerPropertiesDialog.storeData" id="DebuggerPropertiesDialog.storeData" ref="eric6.Project.DebuggerPropertiesDialog.html#DebuggerPropertiesDialog.storeData" />
       <keyword name="DebuggerPropertiesReader" id="DebuggerPropertiesReader" ref="eric6.E5XML.DebuggerPropertiesReader.html#DebuggerPropertiesReader" />
       <keyword name="DebuggerPropertiesReader (Constructor)" id="DebuggerPropertiesReader (Constructor)" ref="eric6.E5XML.DebuggerPropertiesReader.html#DebuggerPropertiesReader.__init__" />
@@ -3943,14 +3950,20 @@
       <keyword name="DebuggerPropertiesWriter (Constructor)" id="DebuggerPropertiesWriter (Constructor)" ref="eric6.E5XML.DebuggerPropertiesWriter.html#DebuggerPropertiesWriter.__init__" />
       <keyword name="DebuggerPropertiesWriter (Module)" id="DebuggerPropertiesWriter (Module)" ref="eric6.E5XML.DebuggerPropertiesWriter.html" />
       <keyword name="DebuggerPropertiesWriter.writeXML" id="DebuggerPropertiesWriter.writeXML" ref="eric6.E5XML.DebuggerPropertiesWriter.html#DebuggerPropertiesWriter.writeXML" />
+      <keyword name="DebuggerPython2Page" id="DebuggerPython2Page" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html#DebuggerPython2Page" />
+      <keyword name="DebuggerPython2Page (Constructor)" id="DebuggerPython2Page (Constructor)" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html#DebuggerPython2Page.__init__" />
+      <keyword name="DebuggerPython2Page (Module)" id="DebuggerPython2Page (Module)" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html" />
+      <keyword name="DebuggerPython2Page.__populateAndSetVenvComboBox" id="DebuggerPython2Page.__populateAndSetVenvComboBox" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html#DebuggerPython2Page.__populateAndSetVenvComboBox" />
+      <keyword name="DebuggerPython2Page.on_refreshButton_clicked" id="DebuggerPython2Page.on_refreshButton_clicked" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html#DebuggerPython2Page.on_refreshButton_clicked" />
+      <keyword name="DebuggerPython2Page.on_venvDlgButton_clicked" id="DebuggerPython2Page.on_venvDlgButton_clicked" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html#DebuggerPython2Page.on_venvDlgButton_clicked" />
+      <keyword name="DebuggerPython2Page.save" id="DebuggerPython2Page.save" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html#DebuggerPython2Page.save" />
       <keyword name="DebuggerPython3Page" id="DebuggerPython3Page" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html#DebuggerPython3Page" />
       <keyword name="DebuggerPython3Page (Constructor)" id="DebuggerPython3Page (Constructor)" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html#DebuggerPython3Page.__init__" />
       <keyword name="DebuggerPython3Page (Module)" id="DebuggerPython3Page (Module)" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html" />
+      <keyword name="DebuggerPython3Page.__populateAndSetVenvComboBox" id="DebuggerPython3Page.__populateAndSetVenvComboBox" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html#DebuggerPython3Page.__populateAndSetVenvComboBox" />
+      <keyword name="DebuggerPython3Page.on_refreshButton_clicked" id="DebuggerPython3Page.on_refreshButton_clicked" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html#DebuggerPython3Page.on_refreshButton_clicked" />
+      <keyword name="DebuggerPython3Page.on_venvDlgButton_clicked" id="DebuggerPython3Page.on_venvDlgButton_clicked" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html#DebuggerPython3Page.on_venvDlgButton_clicked" />
       <keyword name="DebuggerPython3Page.save" id="DebuggerPython3Page.save" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html#DebuggerPython3Page.save" />
-      <keyword name="DebuggerPythonPage" id="DebuggerPythonPage" ref="eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html#DebuggerPythonPage" />
-      <keyword name="DebuggerPythonPage (Constructor)" id="DebuggerPythonPage (Constructor)" ref="eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html#DebuggerPythonPage.__init__" />
-      <keyword name="DebuggerPythonPage (Module)" id="DebuggerPythonPage (Module)" ref="eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html" />
-      <keyword name="DebuggerPythonPage.save" id="DebuggerPythonPage.save" ref="eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html#DebuggerPythonPage.save" />
       <keyword name="DeepLEngine" id="DeepLEngine" ref="eric6.Plugins.UiExtensionPlugins.Translator.TranslatorEngines.DeepLEngine.html#DeepLEngine" />
       <keyword name="DeepLEngine (Constructor)" id="DeepLEngine (Constructor)" ref="eric6.Plugins.UiExtensionPlugins.Translator.TranslatorEngines.DeepLEngine.html#DeepLEngine.__init__" />
       <keyword name="DeepLEngine (Module)" id="DeepLEngine (Module)" ref="eric6.Plugins.UiExtensionPlugins.Translator.TranslatorEngines.DeepLEngine.html" />
@@ -4397,7 +4410,6 @@
       <keyword name="E5ErrorMessage" id="E5ErrorMessage" ref="eric6.E5Gui.E5ErrorMessage.html#E5ErrorMessage" />
       <keyword name="E5ErrorMessage (Constructor)" id="E5ErrorMessage (Constructor)" ref="eric6.E5Gui.E5ErrorMessage.html#E5ErrorMessage.__init__" />
       <keyword name="E5ErrorMessage (Module)" id="E5ErrorMessage (Module)" ref="eric6.E5Gui.E5ErrorMessage.html" />
-      <keyword name="E5ErrorMessage.__filterMessage" id="E5ErrorMessage.__filterMessage" ref="eric6.E5Gui.E5ErrorMessage.html#E5ErrorMessage.__filterMessage" />
       <keyword name="E5ErrorMessage.editMessageFilters" id="E5ErrorMessage.editMessageFilters" ref="eric6.E5Gui.E5ErrorMessage.html#E5ErrorMessage.editMessageFilters" />
       <keyword name="E5ErrorMessage.showMessage" id="E5ErrorMessage.showMessage" ref="eric6.E5Gui.E5ErrorMessage.html#E5ErrorMessage.showMessage" />
       <keyword name="E5ErrorMessageFilterDialog" id="E5ErrorMessageFilterDialog" ref="eric6.E5Gui.E5ErrorMessageFilterDialog.html#E5ErrorMessageFilterDialog" />
@@ -6473,6 +6485,8 @@
       <keyword name="Git.gitBundleListHeads" id="Git.gitBundleListHeads" ref="eric6.Plugins.VcsPlugins.vcsGit.git.html#Git.gitBundleListHeads" />
       <keyword name="Git.gitBundlePull" id="Git.gitBundlePull" ref="eric6.Plugins.VcsPlugins.vcsGit.git.html#Git.gitBundlePull" />
       <keyword name="Git.gitCancelMerge" id="Git.gitCancelMerge" ref="eric6.Plugins.VcsPlugins.vcsGit.git.html#Git.gitCancelMerge" />
+      <keyword name="Git.gitChangeRemoteCredentials" id="Git.gitChangeRemoteCredentials" ref="eric6.Plugins.VcsPlugins.vcsGit.git.html#Git.gitChangeRemoteCredentials" />
+      <keyword name="Git.gitChangeRemoteUrl" id="Git.gitChangeRemoteUrl" ref="eric6.Plugins.VcsPlugins.vcsGit.git.html#Git.gitChangeRemoteUrl" />
       <keyword name="Git.gitCherryPick" id="Git.gitCherryPick" ref="eric6.Plugins.VcsPlugins.vcsGit.git.html#Git.gitCherryPick" />
       <keyword name="Git.gitCherryPickAbort" id="Git.gitCherryPickAbort" ref="eric6.Plugins.VcsPlugins.vcsGit.git.html#Git.gitCherryPickAbort" />
       <keyword name="Git.gitCherryPickContinue" id="Git.gitCherryPickContinue" ref="eric6.Plugins.VcsPlugins.vcsGit.git.html#Git.gitCherryPickContinue" />
@@ -6492,6 +6506,7 @@
       <keyword name="Git.gitGetBundleHeads" id="Git.gitGetBundleHeads" ref="eric6.Plugins.VcsPlugins.vcsGit.git.html#Git.gitGetBundleHeads" />
       <keyword name="Git.gitGetCurrentBranch" id="Git.gitGetCurrentBranch" ref="eric6.Plugins.VcsPlugins.vcsGit.git.html#Git.gitGetCurrentBranch" />
       <keyword name="Git.gitGetRemoteBranchesList" id="Git.gitGetRemoteBranchesList" ref="eric6.Plugins.VcsPlugins.vcsGit.git.html#Git.gitGetRemoteBranchesList" />
+      <keyword name="Git.gitGetRemoteUrl" id="Git.gitGetRemoteUrl" ref="eric6.Plugins.VcsPlugins.vcsGit.git.html#Git.gitGetRemoteUrl" />
       <keyword name="Git.gitGetRemoteUrlsList" id="Git.gitGetRemoteUrlsList" ref="eric6.Plugins.VcsPlugins.vcsGit.git.html#Git.gitGetRemoteUrlsList" />
       <keyword name="Git.gitGetRemotesList" id="Git.gitGetRemotesList" ref="eric6.Plugins.VcsPlugins.vcsGit.git.html#Git.gitGetRemotesList" />
       <keyword name="Git.gitGetTagsList" id="Git.gitGetTagsList" ref="eric6.Plugins.VcsPlugins.vcsGit.git.html#Git.gitGetTagsList" />
@@ -6573,6 +6588,7 @@
       <keyword name="GitAddRemoteDialog.getData" id="GitAddRemoteDialog.getData" ref="eric6.Plugins.VcsPlugins.vcsGit.GitAddRemoteDialog.html#GitAddRemoteDialog.getData" />
       <keyword name="GitAddRemoteDialog.on_nameEdit_textChanged" id="GitAddRemoteDialog.on_nameEdit_textChanged" ref="eric6.Plugins.VcsPlugins.vcsGit.GitAddRemoteDialog.html#GitAddRemoteDialog.on_nameEdit_textChanged" />
       <keyword name="GitAddRemoteDialog.on_urlEdit_textChanged" id="GitAddRemoteDialog.on_urlEdit_textChanged" ref="eric6.Plugins.VcsPlugins.vcsGit.GitAddRemoteDialog.html#GitAddRemoteDialog.on_urlEdit_textChanged" />
+      <keyword name="GitAddRemoteDialog.on_userEdit_textChanged" id="GitAddRemoteDialog.on_userEdit_textChanged" ref="eric6.Plugins.VcsPlugins.vcsGit.GitAddRemoteDialog.html#GitAddRemoteDialog.on_userEdit_textChanged" />
       <keyword name="GitApplyBundleDataDialog" id="GitApplyBundleDataDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitApplyBundleDataDialog.html#GitApplyBundleDataDialog" />
       <keyword name="GitApplyBundleDataDialog (Constructor)" id="GitApplyBundleDataDialog (Constructor)" ref="eric6.Plugins.VcsPlugins.vcsGit.GitApplyBundleDataDialog.html#GitApplyBundleDataDialog.__init__" />
       <keyword name="GitApplyBundleDataDialog (Module)" id="GitApplyBundleDataDialog (Module)" ref="eric6.Plugins.VcsPlugins.vcsGit.GitApplyBundleDataDialog.html" />
@@ -6661,6 +6677,12 @@
       <keyword name="GitBundleDialog.on_revisionsEdit_textChanged" id="GitBundleDialog.on_revisionsEdit_textChanged" ref="eric6.Plugins.VcsPlugins.vcsGit.GitBundleDialog.html#GitBundleDialog.on_revisionsEdit_textChanged" />
       <keyword name="GitBundleDialog.on_tagButton_toggled" id="GitBundleDialog.on_tagButton_toggled" ref="eric6.Plugins.VcsPlugins.vcsGit.GitBundleDialog.html#GitBundleDialog.on_tagButton_toggled" />
       <keyword name="GitBundleDialog.on_tagCombo_editTextChanged" id="GitBundleDialog.on_tagCombo_editTextChanged" ref="eric6.Plugins.VcsPlugins.vcsGit.GitBundleDialog.html#GitBundleDialog.on_tagCombo_editTextChanged" />
+      <keyword name="GitChangeRemoteUrlDialog" id="GitChangeRemoteUrlDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitChangeRemoteUrlDialog.html#GitChangeRemoteUrlDialog" />
+      <keyword name="GitChangeRemoteUrlDialog (Constructor)" id="GitChangeRemoteUrlDialog (Constructor)" ref="eric6.Plugins.VcsPlugins.vcsGit.GitChangeRemoteUrlDialog.html#GitChangeRemoteUrlDialog.__init__" />
+      <keyword name="GitChangeRemoteUrlDialog (Module)" id="GitChangeRemoteUrlDialog (Module)" ref="eric6.Plugins.VcsPlugins.vcsGit.GitChangeRemoteUrlDialog.html" />
+      <keyword name="GitChangeRemoteUrlDialog.__updateOK" id="GitChangeRemoteUrlDialog.__updateOK" ref="eric6.Plugins.VcsPlugins.vcsGit.GitChangeRemoteUrlDialog.html#GitChangeRemoteUrlDialog.__updateOK" />
+      <keyword name="GitChangeRemoteUrlDialog.getData" id="GitChangeRemoteUrlDialog.getData" ref="eric6.Plugins.VcsPlugins.vcsGit.GitChangeRemoteUrlDialog.html#GitChangeRemoteUrlDialog.getData" />
+      <keyword name="GitChangeRemoteUrlDialog.on_newUrlEdit_textChanged" id="GitChangeRemoteUrlDialog.on_newUrlEdit_textChanged" ref="eric6.Plugins.VcsPlugins.vcsGit.GitChangeRemoteUrlDialog.html#GitChangeRemoteUrlDialog.on_newUrlEdit_textChanged" />
       <keyword name="GitCherryPickDialog" id="GitCherryPickDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitCherryPickDialog.html#GitCherryPickDialog" />
       <keyword name="GitCherryPickDialog (Constructor)" id="GitCherryPickDialog (Constructor)" ref="eric6.Plugins.VcsPlugins.vcsGit.GitCherryPickDialog.html#GitCherryPickDialog.__init__" />
       <keyword name="GitCherryPickDialog (Module)" id="GitCherryPickDialog (Module)" ref="eric6.Plugins.VcsPlugins.vcsGit.GitCherryPickDialog.html" />
@@ -6954,6 +6976,7 @@
       <keyword name="GitProjectHelper.__gitBundleListHeads" id="GitProjectHelper.__gitBundleListHeads" ref="eric6.Plugins.VcsPlugins.vcsGit.ProjectHelper.html#GitProjectHelper.__gitBundleListHeads" />
       <keyword name="GitProjectHelper.__gitBundlePull" id="GitProjectHelper.__gitBundlePull" ref="eric6.Plugins.VcsPlugins.vcsGit.ProjectHelper.html#GitProjectHelper.__gitBundlePull" />
       <keyword name="GitProjectHelper.__gitCancelMerge" id="GitProjectHelper.__gitCancelMerge" ref="eric6.Plugins.VcsPlugins.vcsGit.ProjectHelper.html#GitProjectHelper.__gitCancelMerge" />
+      <keyword name="GitProjectHelper.__gitChangeRemoteUrl" id="GitProjectHelper.__gitChangeRemoteUrl" ref="eric6.Plugins.VcsPlugins.vcsGit.ProjectHelper.html#GitProjectHelper.__gitChangeRemoteUrl" />
       <keyword name="GitProjectHelper.__gitCheckPatches" id="GitProjectHelper.__gitCheckPatches" ref="eric6.Plugins.VcsPlugins.vcsGit.ProjectHelper.html#GitProjectHelper.__gitCheckPatches" />
       <keyword name="GitProjectHelper.__gitCherryPick" id="GitProjectHelper.__gitCherryPick" ref="eric6.Plugins.VcsPlugins.vcsGit.ProjectHelper.html#GitProjectHelper.__gitCherryPick" />
       <keyword name="GitProjectHelper.__gitCherryPickAbort" id="GitProjectHelper.__gitCherryPickAbort" ref="eric6.Plugins.VcsPlugins.vcsGit.ProjectHelper.html#GitProjectHelper.__gitCherryPickAbort" />
@@ -6976,6 +6999,7 @@
       <keyword name="GitProjectHelper.__gitPull" id="GitProjectHelper.__gitPull" ref="eric6.Plugins.VcsPlugins.vcsGit.ProjectHelper.html#GitProjectHelper.__gitPull" />
       <keyword name="GitProjectHelper.__gitPush" id="GitProjectHelper.__gitPush" ref="eric6.Plugins.VcsPlugins.vcsGit.ProjectHelper.html#GitProjectHelper.__gitPush" />
       <keyword name="GitProjectHelper.__gitReflogBrowser" id="GitProjectHelper.__gitReflogBrowser" ref="eric6.Plugins.VcsPlugins.vcsGit.ProjectHelper.html#GitProjectHelper.__gitReflogBrowser" />
+      <keyword name="GitProjectHelper.__gitRemoteCredentials" id="GitProjectHelper.__gitRemoteCredentials" ref="eric6.Plugins.VcsPlugins.vcsGit.ProjectHelper.html#GitProjectHelper.__gitRemoteCredentials" />
       <keyword name="GitProjectHelper.__gitRemoveRemote" id="GitProjectHelper.__gitRemoveRemote" ref="eric6.Plugins.VcsPlugins.vcsGit.ProjectHelper.html#GitProjectHelper.__gitRemoveRemote" />
       <keyword name="GitProjectHelper.__gitRenameRemote" id="GitProjectHelper.__gitRenameRemote" ref="eric6.Plugins.VcsPlugins.vcsGit.ProjectHelper.html#GitProjectHelper.__gitRenameRemote" />
       <keyword name="GitProjectHelper.__gitRevert" id="GitProjectHelper.__gitRevert" ref="eric6.Plugins.VcsPlugins.vcsGit.ProjectHelper.html#GitProjectHelper.__gitRevert" />
@@ -7057,6 +7081,11 @@
       <keyword name="GitReflogBrowserDialog.on_sendButton_clicked" id="GitReflogBrowserDialog.on_sendButton_clicked" ref="eric6.Plugins.VcsPlugins.vcsGit.GitReflogBrowserDialog.html#GitReflogBrowserDialog.on_sendButton_clicked" />
       <keyword name="GitReflogBrowserDialog.show" id="GitReflogBrowserDialog.show" ref="eric6.Plugins.VcsPlugins.vcsGit.GitReflogBrowserDialog.html#GitReflogBrowserDialog.show" />
       <keyword name="GitReflogBrowserDialog.start" id="GitReflogBrowserDialog.start" ref="eric6.Plugins.VcsPlugins.vcsGit.GitReflogBrowserDialog.html#GitReflogBrowserDialog.start" />
+      <keyword name="GitRemoteCredentialsDialog" id="GitRemoteCredentialsDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteCredentialsDialog.html#GitRemoteCredentialsDialog" />
+      <keyword name="GitRemoteCredentialsDialog (Constructor)" id="GitRemoteCredentialsDialog (Constructor)" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteCredentialsDialog.html#GitRemoteCredentialsDialog.__init__" />
+      <keyword name="GitRemoteCredentialsDialog (Module)" id="GitRemoteCredentialsDialog (Module)" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteCredentialsDialog.html" />
+      <keyword name="GitRemoteCredentialsDialog.getData" id="GitRemoteCredentialsDialog.getData" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteCredentialsDialog.html#GitRemoteCredentialsDialog.getData" />
+      <keyword name="GitRemoteCredentialsDialog.on_userEdit_textChanged" id="GitRemoteCredentialsDialog.on_userEdit_textChanged" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteCredentialsDialog.html#GitRemoteCredentialsDialog.on_userEdit_textChanged" />
       <keyword name="GitRemoteRepositoriesDialog" id="GitRemoteRepositoriesDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.html#GitRemoteRepositoriesDialog" />
       <keyword name="GitRemoteRepositoriesDialog (Constructor)" id="GitRemoteRepositoriesDialog (Constructor)" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.html#GitRemoteRepositoriesDialog.__init__" />
       <keyword name="GitRemoteRepositoriesDialog (Module)" id="GitRemoteRepositoriesDialog (Module)" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.html" />
@@ -7072,6 +7101,8 @@
       <keyword name="GitRemoteRepositoriesDialog.keyPressEvent" id="GitRemoteRepositoriesDialog.keyPressEvent" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.html#GitRemoteRepositoriesDialog.keyPressEvent" />
       <keyword name="GitRemoteRepositoriesDialog.on_addButton_clicked" id="GitRemoteRepositoriesDialog.on_addButton_clicked" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.html#GitRemoteRepositoriesDialog.on_addButton_clicked" />
       <keyword name="GitRemoteRepositoriesDialog.on_buttonBox_clicked" id="GitRemoteRepositoriesDialog.on_buttonBox_clicked" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.html#GitRemoteRepositoriesDialog.on_buttonBox_clicked" />
+      <keyword name="GitRemoteRepositoriesDialog.on_changeUrlButton_clicked" id="GitRemoteRepositoriesDialog.on_changeUrlButton_clicked" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.html#GitRemoteRepositoriesDialog.on_changeUrlButton_clicked" />
+      <keyword name="GitRemoteRepositoriesDialog.on_credentialsButton_clicked" id="GitRemoteRepositoriesDialog.on_credentialsButton_clicked" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.html#GitRemoteRepositoriesDialog.on_credentialsButton_clicked" />
       <keyword name="GitRemoteRepositoriesDialog.on_input_returnPressed" id="GitRemoteRepositoriesDialog.on_input_returnPressed" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.html#GitRemoteRepositoriesDialog.on_input_returnPressed" />
       <keyword name="GitRemoteRepositoriesDialog.on_passwordCheckBox_toggled" id="GitRemoteRepositoriesDialog.on_passwordCheckBox_toggled" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.html#GitRemoteRepositoriesDialog.on_passwordCheckBox_toggled" />
       <keyword name="GitRemoteRepositoriesDialog.on_pruneButton_clicked" id="GitRemoteRepositoriesDialog.on_pruneButton_clicked" ref="eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.html#GitRemoteRepositoriesDialog.on_pruneButton_clicked" />
@@ -11005,6 +11036,7 @@
       <keyword name="MiniEditor.getFileName" id="MiniEditor.getFileName" ref="eric6.QScintilla.MiniEditor.html#MiniEditor.getFileName" />
       <keyword name="MiniEditor.getLanguage" id="MiniEditor.getLanguage" ref="eric6.QScintilla.MiniEditor.html#MiniEditor.getLanguage" />
       <keyword name="MiniEditor.getSRHistory" id="MiniEditor.getSRHistory" ref="eric6.QScintilla.MiniEditor.html#MiniEditor.getSRHistory" />
+      <keyword name="MiniEditor.gotoLine" id="MiniEditor.gotoLine" ref="eric6.QScintilla.MiniEditor.html#MiniEditor.gotoLine" />
       <keyword name="MiniEditor.setLanguage" id="MiniEditor.setLanguage" ref="eric6.QScintilla.MiniEditor.html#MiniEditor.setLanguage" />
       <keyword name="MiniEditor.setSearchIndicator" id="MiniEditor.setSearchIndicator" ref="eric6.QScintilla.MiniEditor.html#MiniEditor.setSearchIndicator" />
       <keyword name="MiniEditor.setText" id="MiniEditor.setText" ref="eric6.QScintilla.MiniEditor.html#MiniEditor.setText" />
@@ -11942,7 +11974,6 @@
       <keyword name="Pip.__editUserConfiguration" id="Pip.__editUserConfiguration" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.__editUserConfiguration" />
       <keyword name="Pip.__editVirtualenvConfiguration" id="Pip.__editVirtualenvConfiguration" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.__editVirtualenvConfiguration" />
       <keyword name="Pip.__generateRequirements" id="Pip.__generateRequirements" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.__generateRequirements" />
-      <keyword name="Pip.__getPython" id="Pip.__getPython" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.__getPython" />
       <keyword name="Pip.__getUserConfig" id="Pip.__getUserConfig" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.__getUserConfig" />
       <keyword name="Pip.__getVirtualenvConfig" id="Pip.__getVirtualenvConfig" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.__getVirtualenvConfig" />
       <keyword name="Pip.__handleTearOffMenu" id="Pip.__handleTearOffMenu" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.__handleTearOffMenu" />
@@ -11956,12 +11987,15 @@
       <keyword name="Pip.__pipConfigure" id="Pip.__pipConfigure" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.__pipConfigure" />
       <keyword name="Pip.__repairPip" id="Pip.__repairPip" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.__repairPip" />
       <keyword name="Pip.__searchPyPI" id="Pip.__searchPyPI" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.__searchPyPI" />
-      <keyword name="Pip.__selectPipExecutable" id="Pip.__selectPipExecutable" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.__selectPipExecutable" />
+      <keyword name="Pip.__selectPipVirtualenv" id="Pip.__selectPipVirtualenv" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.__selectPipVirtualenv" />
       <keyword name="Pip.__uninstallPackages" id="Pip.__uninstallPackages" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.__uninstallPackages" />
       <keyword name="Pip.__uninstallRequirements" id="Pip.__uninstallRequirements" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.__uninstallRequirements" />
       <keyword name="Pip.__upgradePackages" id="Pip.__upgradePackages" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.__upgradePackages" />
+      <keyword name="Pip.getDefaultEnvironmentString" id="Pip.getDefaultEnvironmentString" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.getDefaultEnvironmentString" />
       <keyword name="Pip.getMenu" id="Pip.getMenu" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.getMenu" />
       <keyword name="Pip.getMenuNames" id="Pip.getMenuNames" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.getMenuNames" />
+      <keyword name="Pip.getVirtualenvInterpreter" id="Pip.getVirtualenvInterpreter" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.getVirtualenvInterpreter" />
+      <keyword name="Pip.getVirtualenvNames" id="Pip.getVirtualenvNames" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.getVirtualenvNames" />
       <keyword name="Pip.initActions" id="Pip.initActions" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.initActions" />
       <keyword name="Pip.initMenu" id="Pip.initMenu" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.initMenu" />
       <keyword name="Pip.installPackages" id="Pip.installPackages" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html#Pip.installPackages" />
@@ -11995,16 +12029,15 @@
       <keyword name="PipFreezeDialog.closeEvent" id="PipFreezeDialog.closeEvent" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html#PipFreezeDialog.closeEvent" />
       <keyword name="PipFreezeDialog.on_buttonBox_clicked" id="PipFreezeDialog.on_buttonBox_clicked" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html#PipFreezeDialog.on_buttonBox_clicked" />
       <keyword name="PipFreezeDialog.on_copyButton_clicked" id="PipFreezeDialog.on_copyButton_clicked" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html#PipFreezeDialog.on_copyButton_clicked" />
-      <keyword name="PipFreezeDialog.on_fileButton_clicked" id="PipFreezeDialog.on_fileButton_clicked" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html#PipFreezeDialog.on_fileButton_clicked" />
       <keyword name="PipFreezeDialog.on_insertButton_clicked" id="PipFreezeDialog.on_insertButton_clicked" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html#PipFreezeDialog.on_insertButton_clicked" />
       <keyword name="PipFreezeDialog.on_localCheckBox_clicked" id="PipFreezeDialog.on_localCheckBox_clicked" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html#PipFreezeDialog.on_localCheckBox_clicked" />
-      <keyword name="PipFreezeDialog.on_pipComboBox_activated" id="PipFreezeDialog.on_pipComboBox_activated" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html#PipFreezeDialog.on_pipComboBox_activated" />
       <keyword name="PipFreezeDialog.on_replaceAllButton_clicked" id="PipFreezeDialog.on_replaceAllButton_clicked" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html#PipFreezeDialog.on_replaceAllButton_clicked" />
       <keyword name="PipFreezeDialog.on_replaceSelectionButton_clicked" id="PipFreezeDialog.on_replaceSelectionButton_clicked" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html#PipFreezeDialog.on_replaceSelectionButton_clicked" />
       <keyword name="PipFreezeDialog.on_requirementsEdit_textChanged" id="PipFreezeDialog.on_requirementsEdit_textChanged" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html#PipFreezeDialog.on_requirementsEdit_textChanged" />
-      <keyword name="PipFreezeDialog.on_requirementsFileEdit_textChanged" id="PipFreezeDialog.on_requirementsFileEdit_textChanged" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html#PipFreezeDialog.on_requirementsFileEdit_textChanged" />
+      <keyword name="PipFreezeDialog.on_requirementsFilePicker_textChanged" id="PipFreezeDialog.on_requirementsFilePicker_textChanged" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html#PipFreezeDialog.on_requirementsFilePicker_textChanged" />
       <keyword name="PipFreezeDialog.on_saveButton_clicked" id="PipFreezeDialog.on_saveButton_clicked" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html#PipFreezeDialog.on_saveButton_clicked" />
       <keyword name="PipFreezeDialog.on_saveToButton_clicked" id="PipFreezeDialog.on_saveToButton_clicked" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html#PipFreezeDialog.on_saveToButton_clicked" />
+      <keyword name="PipFreezeDialog.on_venvComboBox_activated" id="PipFreezeDialog.on_venvComboBox_activated" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html#PipFreezeDialog.on_venvComboBox_activated" />
       <keyword name="PipFreezeDialog.start" id="PipFreezeDialog.start" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html#PipFreezeDialog.start" />
       <keyword name="PipInterface (Package)" id="PipInterface (Package)" ref="index-eric6.Plugins.UiExtensionPlugins.PipInterface.html" />
       <keyword name="PipInterfacePlugin" id="PipInterfacePlugin" ref="eric6.Plugins.PluginPipInterface.html#PipInterfacePlugin" />
@@ -12012,7 +12045,6 @@
       <keyword name="PipInterfacePlugin.__initialize" id="PipInterfacePlugin.__initialize" ref="eric6.Plugins.PluginPipInterface.html#PipInterfacePlugin.__initialize" />
       <keyword name="PipInterfacePlugin.activate" id="PipInterfacePlugin.activate" ref="eric6.Plugins.PluginPipInterface.html#PipInterfacePlugin.activate" />
       <keyword name="PipInterfacePlugin.deactivate" id="PipInterfacePlugin.deactivate" ref="eric6.Plugins.PluginPipInterface.html#PipInterfacePlugin.deactivate" />
-      <keyword name="PipInterfacePlugin.getDefaultPipExecutables" id="PipInterfacePlugin.getDefaultPipExecutables" ref="eric6.Plugins.PluginPipInterface.html#PipInterfacePlugin.getDefaultPipExecutables" />
       <keyword name="PipInterfacePlugin.getMenu" id="PipInterfacePlugin.getMenu" ref="eric6.Plugins.PluginPipInterface.html#PipInterfacePlugin.getMenu" />
       <keyword name="PipInterfacePlugin.getMenuNames" id="PipInterfacePlugin.getMenuNames" ref="eric6.Plugins.PluginPipInterface.html#PipInterfacePlugin.getMenuNames" />
       <keyword name="PipInterfacePlugin.getPreferences" id="PipInterfacePlugin.getPreferences" ref="eric6.Plugins.PluginPipInterface.html#PipInterfacePlugin.getPreferences" />
@@ -12038,7 +12070,8 @@
       <keyword name="PipListDialog.on_localCheckBox_clicked" id="PipListDialog.on_localCheckBox_clicked" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.html#PipListDialog.on_localCheckBox_clicked" />
       <keyword name="PipListDialog.on_notRequiredCheckBox_clicked" id="PipListDialog.on_notRequiredCheckBox_clicked" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.html#PipListDialog.on_notRequiredCheckBox_clicked" />
       <keyword name="PipListDialog.on_packageList_itemSelectionChanged" id="PipListDialog.on_packageList_itemSelectionChanged" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.html#PipListDialog.on_packageList_itemSelectionChanged" />
-      <keyword name="PipListDialog.on_pipComboBox_activated" id="PipListDialog.on_pipComboBox_activated" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.html#PipListDialog.on_pipComboBox_activated" />
+      <keyword name="PipListDialog.on_userCheckBox_clicked" id="PipListDialog.on_userCheckBox_clicked" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.html#PipListDialog.on_userCheckBox_clicked" />
+      <keyword name="PipListDialog.on_venvComboBox_activated" id="PipListDialog.on_venvComboBox_activated" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.html#PipListDialog.on_venvComboBox_activated" />
       <keyword name="PipListDialog.on_verboseCheckBox_clicked" id="PipListDialog.on_verboseCheckBox_clicked" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.html#PipListDialog.on_verboseCheckBox_clicked" />
       <keyword name="PipListDialog.start" id="PipListDialog.start" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.html#PipListDialog.start" />
       <keyword name="PipPackageDetailsDialog" id="PipPackageDetailsDialog" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipPackageDetailsDialog.html#PipPackageDetailsDialog" />
@@ -12058,8 +12091,6 @@
       <keyword name="PipPage" id="PipPage" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.ConfigurationPage.PipPage.html#PipPage" />
       <keyword name="PipPage (Constructor)" id="PipPage (Constructor)" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.ConfigurationPage.PipPage.html#PipPage.__init__" />
       <keyword name="PipPage (Module)" id="PipPage (Module)" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.ConfigurationPage.PipPage.html" />
-      <keyword name="PipPage.on_addButton_clicked" id="PipPage.on_addButton_clicked" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.ConfigurationPage.PipPage.html#PipPage.on_addButton_clicked" />
-      <keyword name="PipPage.on_defaultListButton_clicked" id="PipPage.on_defaultListButton_clicked" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.ConfigurationPage.PipPage.html#PipPage.on_defaultListButton_clicked" />
       <keyword name="PipPage.save" id="PipPage.save" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.ConfigurationPage.PipPage.html#PipPage.save" />
       <keyword name="PipSearchDialog" id="PipSearchDialog" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog.html#PipSearchDialog" />
       <keyword name="PipSearchDialog (Constructor)" id="PipSearchDialog (Constructor)" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog.html#PipSearchDialog.__init__" />
@@ -12081,6 +12112,10 @@
       <keyword name="PipSearchDialog.on_resultList_itemSelectionChanged" id="PipSearchDialog.on_resultList_itemSelectionChanged" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog.html#PipSearchDialog.on_resultList_itemSelectionChanged" />
       <keyword name="PipSearchDialog.on_searchButton_clicked" id="PipSearchDialog.on_searchButton_clicked" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog.html#PipSearchDialog.on_searchButton_clicked" />
       <keyword name="PipSearchDialog.on_searchEdit_textChanged" id="PipSearchDialog.on_searchEdit_textChanged" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog.html#PipSearchDialog.on_searchEdit_textChanged" />
+      <keyword name="PipSelectionDialog" id="PipSelectionDialog" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipSelectionDialog.html#PipSelectionDialog" />
+      <keyword name="PipSelectionDialog (Constructor)" id="PipSelectionDialog (Constructor)" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipSelectionDialog.html#PipSelectionDialog.__init__" />
+      <keyword name="PipSelectionDialog (Module)" id="PipSelectionDialog (Module)" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipSelectionDialog.html" />
+      <keyword name="PipSelectionDialog.getData" id="PipSelectionDialog.getData" ref="eric6.Plugins.UiExtensionPlugins.PipInterface.PipSelectionDialog.html#PipSelectionDialog.getData" />
       <keyword name="PixmapCache" id="PixmapCache" ref="eric6.UI.PixmapCache.html#PixmapCache" />
       <keyword name="PixmapCache (Constructor)" id="PixmapCache (Constructor)" ref="eric6.UI.PixmapCache.html#PixmapCache.__init__" />
       <keyword name="PixmapCache (Module)" id="PixmapCache (Module)" ref="eric6.UI.PixmapCache.html" />
@@ -12331,7 +12366,6 @@
       <keyword name="PluginVcsMercurial (Module)" id="PluginVcsMercurial (Module)" ref="eric6.Plugins.PluginVcsMercurial.html" />
       <keyword name="PluginVcsPySvn (Module)" id="PluginVcsPySvn (Module)" ref="eric6.Plugins.PluginVcsPySvn.html" />
       <keyword name="PluginVcsSubversion (Module)" id="PluginVcsSubversion (Module)" ref="eric6.Plugins.PluginVcsSubversion.html" />
-      <keyword name="PluginVirtualenvInterface (Module)" id="PluginVirtualenvInterface (Module)" ref="eric6.Plugins.PluginVirtualenvInterface.html" />
       <keyword name="PluginVmListspace (Module)" id="PluginVmListspace (Module)" ref="eric6.Plugins.PluginVmListspace.html" />
       <keyword name="PluginVmTabview (Module)" id="PluginVmTabview (Module)" ref="eric6.Plugins.PluginVmTabview.html" />
       <keyword name="PluginWizardDialog" id="PluginWizardDialog" ref="eric6.Plugins.WizardPlugins.EricPluginWizard.PluginWizardDialog.html#PluginWizardDialog" />
@@ -13183,6 +13217,7 @@
       <keyword name="PythonPage" id="PythonPage" ref="eric6.Preferences.ConfigurationPages.PythonPage.html#PythonPage" />
       <keyword name="PythonPage (Constructor)" id="PythonPage (Constructor)" ref="eric6.Preferences.ConfigurationPages.PythonPage.html#PythonPage.__init__" />
       <keyword name="PythonPage (Module)" id="PythonPage (Module)" ref="eric6.Preferences.ConfigurationPages.PythonPage.html" />
+      <keyword name="PythonPage.on_refreshButton_clicked" id="PythonPage.on_refreshButton_clicked" ref="eric6.Preferences.ConfigurationPages.PythonPage.html#PythonPage.on_refreshButton_clicked" />
       <keyword name="PythonPage.save" id="PythonPage.save" ref="eric6.Preferences.ConfigurationPages.PythonPage.html#PythonPage.save" />
       <keyword name="QRegExpWizard" id="QRegExpWizard" ref="eric6.Plugins.PluginWizardQRegExp.html#QRegExpWizard" />
       <keyword name="QRegExpWizard (Constructor)" id="QRegExpWizard (Constructor)" ref="eric6.Plugins.PluginWizardQRegExp.html#QRegExpWizard.__init__" />
@@ -14126,6 +14161,7 @@
       <keyword name="Shell.__clientStatement" id="Shell.__clientStatement" ref="eric6.QScintilla.Shell.html#Shell.__clientStatement" />
       <keyword name="Shell.__clientSyntaxError" id="Shell.__clientSyntaxError" ref="eric6.QScintilla.Shell.html#Shell.__clientSyntaxError" />
       <keyword name="Shell.__completionListSelected" id="Shell.__completionListSelected" ref="eric6.QScintilla.Shell.html#Shell.__completionListSelected" />
+      <keyword name="Shell.__concatenateText" id="Shell.__concatenateText" ref="eric6.QScintilla.Shell.html#Shell.__concatenateText" />
       <keyword name="Shell.__configure" id="Shell.__configure" ref="eric6.QScintilla.Shell.html#Shell.__configure" />
       <keyword name="Shell.__executeCommand" id="Shell.__executeCommand" ref="eric6.QScintilla.Shell.html#Shell.__executeCommand" />
       <keyword name="Shell.__find" id="Shell.__find" ref="eric6.QScintilla.Shell.html#Shell.__find" />
@@ -14257,6 +14293,7 @@
       <keyword name="ShellWindow.closeEvent" id="ShellWindow.closeEvent" ref="eric6.QScintilla.ShellWindow.html#ShellWindow.closeEvent" />
       <keyword name="ShellWindow.getAPIsManager" id="ShellWindow.getAPIsManager" ref="eric6.QScintilla.ShellWindow.html#ShellWindow.getAPIsManager" />
       <keyword name="ShellWindow.quit" id="ShellWindow.quit" ref="eric6.QScintilla.ShellWindow.html#ShellWindow.quit" />
+      <keyword name="ShellWindow.showFind" id="ShellWindow.showFind" ref="eric6.QScintilla.ShellWindow.html#ShellWindow.showFind" />
       <keyword name="Shelve" id="Shelve" ref="eric6.Plugins.VcsPlugins.vcsMercurial.ShelveExtension.shelve.html#Shelve" />
       <keyword name="Shelve (Constructor)" id="Shelve (Constructor)" ref="eric6.Plugins.VcsPlugins.vcsMercurial.ShelveExtension.shelve.html#Shelve.__init__" />
       <keyword name="Shelve.__hgGetShelveNamesList" id="Shelve.__hgGetShelveNamesList" ref="eric6.Plugins.VcsPlugins.vcsMercurial.ShelveExtension.shelve.html#Shelve.__hgGetShelveNamesList" />
@@ -16459,10 +16496,12 @@
       <keyword name="UnittestDialog (Constructor)" id="UnittestDialog (Constructor)" ref="eric6.PyUnit.UnittestDialog.html#UnittestDialog.__init__" />
       <keyword name="UnittestDialog (Module)" id="UnittestDialog (Module)" ref="eric6.PyUnit.UnittestDialog.html" />
       <keyword name="UnittestDialog.__UTPrepared" id="UnittestDialog.__UTPrepared" ref="eric6.PyUnit.UnittestDialog.html#UnittestDialog.__UTPrepared" />
+      <keyword name="UnittestDialog.__openEditor" id="UnittestDialog.__openEditor" ref="eric6.PyUnit.UnittestDialog.html#UnittestDialog.__openEditor" />
       <keyword name="UnittestDialog.__setProgressColor" id="UnittestDialog.__setProgressColor" ref="eric6.PyUnit.UnittestDialog.html#UnittestDialog.__setProgressColor" />
       <keyword name="UnittestDialog.__setRunningMode" id="UnittestDialog.__setRunningMode" ref="eric6.PyUnit.UnittestDialog.html#UnittestDialog.__setRunningMode" />
       <keyword name="UnittestDialog.__setStoppedMode" id="UnittestDialog.__setStoppedMode" ref="eric6.PyUnit.UnittestDialog.html#UnittestDialog.__setStoppedMode" />
       <keyword name="UnittestDialog.__showSource" id="UnittestDialog.__showSource" ref="eric6.PyUnit.UnittestDialog.html#UnittestDialog.__showSource" />
+      <keyword name="UnittestDialog.closeEvent" id="UnittestDialog.closeEvent" ref="eric6.PyUnit.UnittestDialog.html#UnittestDialog.closeEvent" />
       <keyword name="UnittestDialog.hasFailedTests" id="UnittestDialog.hasFailedTests" ref="eric6.PyUnit.UnittestDialog.html#UnittestDialog.hasFailedTests" />
       <keyword name="UnittestDialog.insertProg" id="UnittestDialog.insertProg" ref="eric6.PyUnit.UnittestDialog.html#UnittestDialog.insertProg" />
       <keyword name="UnittestDialog.insertTestName" id="UnittestDialog.insertTestName" ref="eric6.PyUnit.UnittestDialog.html#UnittestDialog.insertTestName" />
@@ -17357,43 +17396,85 @@
       <keyword name="ViewmanagerPage (Module)" id="ViewmanagerPage (Module)" ref="eric6.Preferences.ConfigurationPages.ViewmanagerPage.html" />
       <keyword name="ViewmanagerPage.on_windowComboBox_activated" id="ViewmanagerPage.on_windowComboBox_activated" ref="eric6.Preferences.ConfigurationPages.ViewmanagerPage.html#ViewmanagerPage.on_windowComboBox_activated" />
       <keyword name="ViewmanagerPage.save" id="ViewmanagerPage.save" ref="eric6.Preferences.ConfigurationPages.ViewmanagerPage.html#ViewmanagerPage.save" />
-      <keyword name="VirtualenvConfigurationDialog" id="VirtualenvConfigurationDialog" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog" />
-      <keyword name="VirtualenvConfigurationDialog (Constructor)" id="VirtualenvConfigurationDialog (Constructor)" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.__init__" />
-      <keyword name="VirtualenvConfigurationDialog (Module)" id="VirtualenvConfigurationDialog (Module)" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html" />
-      <keyword name="VirtualenvConfigurationDialog.__generateArguments" id="VirtualenvConfigurationDialog.__generateArguments" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.__generateArguments" />
-      <keyword name="VirtualenvConfigurationDialog.__generateTargetDir" id="VirtualenvConfigurationDialog.__generateTargetDir" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.__generateTargetDir" />
-      <keyword name="VirtualenvConfigurationDialog.__setPyvenvVersion" id="VirtualenvConfigurationDialog.__setPyvenvVersion" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.__setPyvenvVersion" />
-      <keyword name="VirtualenvConfigurationDialog.__setVirtualenvVersion" id="VirtualenvConfigurationDialog.__setVirtualenvVersion" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.__setVirtualenvVersion" />
-      <keyword name="VirtualenvConfigurationDialog.__updateOK" id="VirtualenvConfigurationDialog.__updateOK" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.__updateOK" />
-      <keyword name="VirtualenvConfigurationDialog.__updateUi" id="VirtualenvConfigurationDialog.__updateUi" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.__updateUi" />
-      <keyword name="VirtualenvConfigurationDialog.getData" id="VirtualenvConfigurationDialog.getData" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.getData" />
-      <keyword name="VirtualenvConfigurationDialog.on_extraSearchPathButton_clicked" id="VirtualenvConfigurationDialog.on_extraSearchPathButton_clicked" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.on_extraSearchPathButton_clicked" />
-      <keyword name="VirtualenvConfigurationDialog.on_pythonExecButton_clicked" id="VirtualenvConfigurationDialog.on_pythonExecButton_clicked" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.on_pythonExecButton_clicked" />
-      <keyword name="VirtualenvConfigurationDialog.on_pythonExecEdit_textChanged" id="VirtualenvConfigurationDialog.on_pythonExecEdit_textChanged" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.on_pythonExecEdit_textChanged" />
-      <keyword name="VirtualenvConfigurationDialog.on_pyvenvButton_toggled" id="VirtualenvConfigurationDialog.on_pyvenvButton_toggled" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.on_pyvenvButton_toggled" />
-      <keyword name="VirtualenvConfigurationDialog.on_targetDirectoryButton_clicked" id="VirtualenvConfigurationDialog.on_targetDirectoryButton_clicked" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.on_targetDirectoryButton_clicked" />
-      <keyword name="VirtualenvConfigurationDialog.on_targetDirectoryEdit_textChanged" id="VirtualenvConfigurationDialog.on_targetDirectoryEdit_textChanged" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.on_targetDirectoryEdit_textChanged" />
-      <keyword name="VirtualenvConfigurationDialog.on_virtualenvButton_toggled" id="VirtualenvConfigurationDialog.on_virtualenvButton_toggled" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.on_virtualenvButton_toggled" />
-      <keyword name="VirtualenvExecDialog" id="VirtualenvExecDialog" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.html#VirtualenvExecDialog" />
-      <keyword name="VirtualenvExecDialog (Constructor)" id="VirtualenvExecDialog (Constructor)" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.html#VirtualenvExecDialog.__init__" />
-      <keyword name="VirtualenvExecDialog (Module)" id="VirtualenvExecDialog (Module)" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.html" />
-      <keyword name="VirtualenvExecDialog.__finish" id="VirtualenvExecDialog.__finish" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.html#VirtualenvExecDialog.__finish" />
-      <keyword name="VirtualenvExecDialog.__logError" id="VirtualenvExecDialog.__logError" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.html#VirtualenvExecDialog.__logError" />
-      <keyword name="VirtualenvExecDialog.__logOutput" id="VirtualenvExecDialog.__logOutput" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.html#VirtualenvExecDialog.__logOutput" />
-      <keyword name="VirtualenvExecDialog.__nextAttempt" id="VirtualenvExecDialog.__nextAttempt" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.html#VirtualenvExecDialog.__nextAttempt" />
-      <keyword name="VirtualenvExecDialog.__readStderr" id="VirtualenvExecDialog.__readStderr" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.html#VirtualenvExecDialog.__readStderr" />
-      <keyword name="VirtualenvExecDialog.__readStdout" id="VirtualenvExecDialog.__readStdout" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.html#VirtualenvExecDialog.__readStdout" />
-      <keyword name="VirtualenvExecDialog.__writeLogFile" id="VirtualenvExecDialog.__writeLogFile" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.html#VirtualenvExecDialog.__writeLogFile" />
-      <keyword name="VirtualenvExecDialog.__writeScriptFile" id="VirtualenvExecDialog.__writeScriptFile" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.html#VirtualenvExecDialog.__writeScriptFile" />
-      <keyword name="VirtualenvExecDialog.on_buttonBox_clicked" id="VirtualenvExecDialog.on_buttonBox_clicked" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.html#VirtualenvExecDialog.on_buttonBox_clicked" />
-      <keyword name="VirtualenvExecDialog.start" id="VirtualenvExecDialog.start" ref="eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.html#VirtualenvExecDialog.start" />
-      <keyword name="VirtualenvInterface (Package)" id="VirtualenvInterface (Package)" ref="index-eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.html" />
-      <keyword name="VirtualenvInterfacePlugin" id="VirtualenvInterfacePlugin" ref="eric6.Plugins.PluginVirtualenvInterface.html#VirtualenvInterfacePlugin" />
-      <keyword name="VirtualenvInterfacePlugin (Constructor)" id="VirtualenvInterfacePlugin (Constructor)" ref="eric6.Plugins.PluginVirtualenvInterface.html#VirtualenvInterfacePlugin.__init__" />
-      <keyword name="VirtualenvInterfacePlugin.__handle" id="VirtualenvInterfacePlugin.__handle" ref="eric6.Plugins.PluginVirtualenvInterface.html#VirtualenvInterfacePlugin.__handle" />
-      <keyword name="VirtualenvInterfacePlugin.__initAction" id="VirtualenvInterfacePlugin.__initAction" ref="eric6.Plugins.PluginVirtualenvInterface.html#VirtualenvInterfacePlugin.__initAction" />
-      <keyword name="VirtualenvInterfacePlugin.activate" id="VirtualenvInterfacePlugin.activate" ref="eric6.Plugins.PluginVirtualenvInterface.html#VirtualenvInterfacePlugin.activate" />
-      <keyword name="VirtualenvInterfacePlugin.deactivate" id="VirtualenvInterfacePlugin.deactivate" ref="eric6.Plugins.PluginVirtualenvInterface.html#VirtualenvInterfacePlugin.deactivate" />
+      <keyword name="VirtualEnv (Package)" id="VirtualEnv (Package)" ref="index-eric6.VirtualEnv.html" />
+      <keyword name="VirtualenvAddEditDialog" id="VirtualenvAddEditDialog" ref="eric6.VirtualEnv.VirtualenvAddEditDialog.html#VirtualenvAddEditDialog" />
+      <keyword name="VirtualenvAddEditDialog (Constructor)" id="VirtualenvAddEditDialog (Constructor)" ref="eric6.VirtualEnv.VirtualenvAddEditDialog.html#VirtualenvAddEditDialog.__init__" />
+      <keyword name="VirtualenvAddEditDialog (Module)" id="VirtualenvAddEditDialog (Module)" ref="eric6.VirtualEnv.VirtualenvAddEditDialog.html" />
+      <keyword name="VirtualenvAddEditDialog.__updateOk" id="VirtualenvAddEditDialog.__updateOk" ref="eric6.VirtualEnv.VirtualenvAddEditDialog.html#VirtualenvAddEditDialog.__updateOk" />
+      <keyword name="VirtualenvAddEditDialog.getData" id="VirtualenvAddEditDialog.getData" ref="eric6.VirtualEnv.VirtualenvAddEditDialog.html#VirtualenvAddEditDialog.getData" />
+      <keyword name="VirtualenvAddEditDialog.on_globalCheckBox_toggled" id="VirtualenvAddEditDialog.on_globalCheckBox_toggled" ref="eric6.VirtualEnv.VirtualenvAddEditDialog.html#VirtualenvAddEditDialog.on_globalCheckBox_toggled" />
+      <keyword name="VirtualenvAddEditDialog.on_nameEdit_textChanged" id="VirtualenvAddEditDialog.on_nameEdit_textChanged" ref="eric6.VirtualEnv.VirtualenvAddEditDialog.html#VirtualenvAddEditDialog.on_nameEdit_textChanged" />
+      <keyword name="VirtualenvAddEditDialog.on_pythonExecPicker_textChanged" id="VirtualenvAddEditDialog.on_pythonExecPicker_textChanged" ref="eric6.VirtualEnv.VirtualenvAddEditDialog.html#VirtualenvAddEditDialog.on_pythonExecPicker_textChanged" />
+      <keyword name="VirtualenvAddEditDialog.on_targetDirectoryPicker_textChanged" id="VirtualenvAddEditDialog.on_targetDirectoryPicker_textChanged" ref="eric6.VirtualEnv.VirtualenvAddEditDialog.html#VirtualenvAddEditDialog.on_targetDirectoryPicker_textChanged" />
+      <keyword name="VirtualenvConfigurationDialog" id="VirtualenvConfigurationDialog" ref="eric6.VirtualEnv.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog" />
+      <keyword name="VirtualenvConfigurationDialog (Constructor)" id="VirtualenvConfigurationDialog (Constructor)" ref="eric6.VirtualEnv.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.__init__" />
+      <keyword name="VirtualenvConfigurationDialog (Module)" id="VirtualenvConfigurationDialog (Module)" ref="eric6.VirtualEnv.VirtualenvConfigurationDialog.html" />
+      <keyword name="VirtualenvConfigurationDialog.__generateArguments" id="VirtualenvConfigurationDialog.__generateArguments" ref="eric6.VirtualEnv.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.__generateArguments" />
+      <keyword name="VirtualenvConfigurationDialog.__generateTargetDir" id="VirtualenvConfigurationDialog.__generateTargetDir" ref="eric6.VirtualEnv.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.__generateTargetDir" />
+      <keyword name="VirtualenvConfigurationDialog.__setPyvenvVersion" id="VirtualenvConfigurationDialog.__setPyvenvVersion" ref="eric6.VirtualEnv.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.__setPyvenvVersion" />
+      <keyword name="VirtualenvConfigurationDialog.__setVirtualenvVersion" id="VirtualenvConfigurationDialog.__setVirtualenvVersion" ref="eric6.VirtualEnv.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.__setVirtualenvVersion" />
+      <keyword name="VirtualenvConfigurationDialog.__updateOK" id="VirtualenvConfigurationDialog.__updateOK" ref="eric6.VirtualEnv.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.__updateOK" />
+      <keyword name="VirtualenvConfigurationDialog.__updateUi" id="VirtualenvConfigurationDialog.__updateUi" ref="eric6.VirtualEnv.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.__updateUi" />
+      <keyword name="VirtualenvConfigurationDialog.getData" id="VirtualenvConfigurationDialog.getData" ref="eric6.VirtualEnv.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.getData" />
+      <keyword name="VirtualenvConfigurationDialog.on_pythonExecPicker_textChanged" id="VirtualenvConfigurationDialog.on_pythonExecPicker_textChanged" ref="eric6.VirtualEnv.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.on_pythonExecPicker_textChanged" />
+      <keyword name="VirtualenvConfigurationDialog.on_pyvenvButton_toggled" id="VirtualenvConfigurationDialog.on_pyvenvButton_toggled" ref="eric6.VirtualEnv.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.on_pyvenvButton_toggled" />
+      <keyword name="VirtualenvConfigurationDialog.on_targetDirectoryPicker_textChanged" id="VirtualenvConfigurationDialog.on_targetDirectoryPicker_textChanged" ref="eric6.VirtualEnv.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.on_targetDirectoryPicker_textChanged" />
+      <keyword name="VirtualenvConfigurationDialog.on_virtualenvButton_toggled" id="VirtualenvConfigurationDialog.on_virtualenvButton_toggled" ref="eric6.VirtualEnv.VirtualenvConfigurationDialog.html#VirtualenvConfigurationDialog.on_virtualenvButton_toggled" />
+      <keyword name="VirtualenvExecDialog" id="VirtualenvExecDialog" ref="eric6.VirtualEnv.VirtualenvExecDialog.html#VirtualenvExecDialog" />
+      <keyword name="VirtualenvExecDialog (Constructor)" id="VirtualenvExecDialog (Constructor)" ref="eric6.VirtualEnv.VirtualenvExecDialog.html#VirtualenvExecDialog.__init__" />
+      <keyword name="VirtualenvExecDialog (Module)" id="VirtualenvExecDialog (Module)" ref="eric6.VirtualEnv.VirtualenvExecDialog.html" />
+      <keyword name="VirtualenvExecDialog.__finish" id="VirtualenvExecDialog.__finish" ref="eric6.VirtualEnv.VirtualenvExecDialog.html#VirtualenvExecDialog.__finish" />
+      <keyword name="VirtualenvExecDialog.__logError" id="VirtualenvExecDialog.__logError" ref="eric6.VirtualEnv.VirtualenvExecDialog.html#VirtualenvExecDialog.__logError" />
+      <keyword name="VirtualenvExecDialog.__logOutput" id="VirtualenvExecDialog.__logOutput" ref="eric6.VirtualEnv.VirtualenvExecDialog.html#VirtualenvExecDialog.__logOutput" />
+      <keyword name="VirtualenvExecDialog.__nextAttempt" id="VirtualenvExecDialog.__nextAttempt" ref="eric6.VirtualEnv.VirtualenvExecDialog.html#VirtualenvExecDialog.__nextAttempt" />
+      <keyword name="VirtualenvExecDialog.__readStderr" id="VirtualenvExecDialog.__readStderr" ref="eric6.VirtualEnv.VirtualenvExecDialog.html#VirtualenvExecDialog.__readStderr" />
+      <keyword name="VirtualenvExecDialog.__readStdout" id="VirtualenvExecDialog.__readStdout" ref="eric6.VirtualEnv.VirtualenvExecDialog.html#VirtualenvExecDialog.__readStdout" />
+      <keyword name="VirtualenvExecDialog.__writeLogFile" id="VirtualenvExecDialog.__writeLogFile" ref="eric6.VirtualEnv.VirtualenvExecDialog.html#VirtualenvExecDialog.__writeLogFile" />
+      <keyword name="VirtualenvExecDialog.__writeScriptFile" id="VirtualenvExecDialog.__writeScriptFile" ref="eric6.VirtualEnv.VirtualenvExecDialog.html#VirtualenvExecDialog.__writeScriptFile" />
+      <keyword name="VirtualenvExecDialog.on_buttonBox_clicked" id="VirtualenvExecDialog.on_buttonBox_clicked" ref="eric6.VirtualEnv.VirtualenvExecDialog.html#VirtualenvExecDialog.on_buttonBox_clicked" />
+      <keyword name="VirtualenvExecDialog.start" id="VirtualenvExecDialog.start" ref="eric6.VirtualEnv.VirtualenvExecDialog.html#VirtualenvExecDialog.start" />
+      <keyword name="VirtualenvInterpreterSelectionDialog" id="VirtualenvInterpreterSelectionDialog" ref="eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog.html#VirtualenvInterpreterSelectionDialog" />
+      <keyword name="VirtualenvInterpreterSelectionDialog (Constructor)" id="VirtualenvInterpreterSelectionDialog (Constructor)" ref="eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog.html#VirtualenvInterpreterSelectionDialog.__init__" />
+      <keyword name="VirtualenvInterpreterSelectionDialog (Module)" id="VirtualenvInterpreterSelectionDialog (Module)" ref="eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog.html" />
+      <keyword name="VirtualenvInterpreterSelectionDialog.__updateOK" id="VirtualenvInterpreterSelectionDialog.__updateOK" ref="eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog.html#VirtualenvInterpreterSelectionDialog.__updateOK" />
+      <keyword name="VirtualenvInterpreterSelectionDialog.getData" id="VirtualenvInterpreterSelectionDialog.getData" ref="eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog.html#VirtualenvInterpreterSelectionDialog.getData" />
+      <keyword name="VirtualenvInterpreterSelectionDialog.on_pythonExecPicker_textChanged" id="VirtualenvInterpreterSelectionDialog.on_pythonExecPicker_textChanged" ref="eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog.html#VirtualenvInterpreterSelectionDialog.on_pythonExecPicker_textChanged" />
+      <keyword name="VirtualenvManager" id="VirtualenvManager" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager" />
+      <keyword name="VirtualenvManager (Constructor)" id="VirtualenvManager (Constructor)" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.__init__" />
+      <keyword name="VirtualenvManager (Module)" id="VirtualenvManager (Module)" ref="eric6.VirtualEnv.VirtualenvManager.html" />
+      <keyword name="VirtualenvManager.__isEnvironmentDeleteable" id="VirtualenvManager.__isEnvironmentDeleteable" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.__isEnvironmentDeleteable" />
+      <keyword name="VirtualenvManager.__loadSettings" id="VirtualenvManager.__loadSettings" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.__loadSettings" />
+      <keyword name="VirtualenvManager.__saveSettings" id="VirtualenvManager.__saveSettings" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.__saveSettings" />
+      <keyword name="VirtualenvManager.addVirtualEnv" id="VirtualenvManager.addVirtualEnv" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.addVirtualEnv" />
+      <keyword name="VirtualenvManager.createVirtualEnv" id="VirtualenvManager.createVirtualEnv" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.createVirtualEnv" />
+      <keyword name="VirtualenvManager.deleteVirtualEnvs" id="VirtualenvManager.deleteVirtualEnvs" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.deleteVirtualEnvs" />
+      <keyword name="VirtualenvManager.getEnvironmentEntries" id="VirtualenvManager.getEnvironmentEntries" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.getEnvironmentEntries" />
+      <keyword name="VirtualenvManager.getVirtualenvDirectory" id="VirtualenvManager.getVirtualenvDirectory" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.getVirtualenvDirectory" />
+      <keyword name="VirtualenvManager.getVirtualenvInterpreter" id="VirtualenvManager.getVirtualenvInterpreter" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.getVirtualenvInterpreter" />
+      <keyword name="VirtualenvManager.getVirtualenvNames" id="VirtualenvManager.getVirtualenvNames" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.getVirtualenvNames" />
+      <keyword name="VirtualenvManager.getVirtualenvNamesForVariant" id="VirtualenvManager.getVirtualenvNamesForVariant" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.getVirtualenvNamesForVariant" />
+      <keyword name="VirtualenvManager.isGlobalEnvironment" id="VirtualenvManager.isGlobalEnvironment" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.isGlobalEnvironment" />
+      <keyword name="VirtualenvManager.isUnique" id="VirtualenvManager.isUnique" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.isUnique" />
+      <keyword name="VirtualenvManager.removeVirtualEnvs" id="VirtualenvManager.removeVirtualEnvs" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.removeVirtualEnvs" />
+      <keyword name="VirtualenvManager.renameVirtualEnv" id="VirtualenvManager.renameVirtualEnv" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.renameVirtualEnv" />
+      <keyword name="VirtualenvManager.setVirtualEnv" id="VirtualenvManager.setVirtualEnv" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.setVirtualEnv" />
+      <keyword name="VirtualenvManager.showVirtualenvManagerDialog" id="VirtualenvManager.showVirtualenvManagerDialog" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.showVirtualenvManagerDialog" />
+      <keyword name="VirtualenvManager.shutdown" id="VirtualenvManager.shutdown" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.shutdown" />
+      <keyword name="VirtualenvManagerDialog" id="VirtualenvManagerDialog" ref="eric6.VirtualEnv.VirtualenvManagerDialog.html#VirtualenvManagerDialog" />
+      <keyword name="VirtualenvManagerDialog (Constructor)" id="VirtualenvManagerDialog (Constructor)" ref="eric6.VirtualEnv.VirtualenvManagerDialog.html#VirtualenvManagerDialog.__init__" />
+      <keyword name="VirtualenvManagerDialog (Module)" id="VirtualenvManagerDialog (Module)" ref="eric6.VirtualEnv.VirtualenvManagerDialog.html" />
+      <keyword name="VirtualenvManagerDialog.__populateVenvList" id="VirtualenvManagerDialog.__populateVenvList" ref="eric6.VirtualEnv.VirtualenvManagerDialog.html#VirtualenvManagerDialog.__populateVenvList" />
+      <keyword name="VirtualenvManagerDialog.__resizeSections" id="VirtualenvManagerDialog.__resizeSections" ref="eric6.VirtualEnv.VirtualenvManagerDialog.html#VirtualenvManagerDialog.__resizeSections" />
+      <keyword name="VirtualenvManagerDialog.__updateButtons" id="VirtualenvManagerDialog.__updateButtons" ref="eric6.VirtualEnv.VirtualenvManagerDialog.html#VirtualenvManagerDialog.__updateButtons" />
+      <keyword name="VirtualenvManagerDialog.on_addButton_clicked" id="VirtualenvManagerDialog.on_addButton_clicked" ref="eric6.VirtualEnv.VirtualenvManagerDialog.html#VirtualenvManagerDialog.on_addButton_clicked" />
+      <keyword name="VirtualenvManagerDialog.on_deleteAllButton_clicked" id="VirtualenvManagerDialog.on_deleteAllButton_clicked" ref="eric6.VirtualEnv.VirtualenvManagerDialog.html#VirtualenvManagerDialog.on_deleteAllButton_clicked" />
+      <keyword name="VirtualenvManagerDialog.on_deleteButton_clicked" id="VirtualenvManagerDialog.on_deleteButton_clicked" ref="eric6.VirtualEnv.VirtualenvManagerDialog.html#VirtualenvManagerDialog.on_deleteButton_clicked" />
+      <keyword name="VirtualenvManagerDialog.on_editButton_clicked" id="VirtualenvManagerDialog.on_editButton_clicked" ref="eric6.VirtualEnv.VirtualenvManagerDialog.html#VirtualenvManagerDialog.on_editButton_clicked" />
+      <keyword name="VirtualenvManagerDialog.on_newButton_clicked" id="VirtualenvManagerDialog.on_newButton_clicked" ref="eric6.VirtualEnv.VirtualenvManagerDialog.html#VirtualenvManagerDialog.on_newButton_clicked" />
+      <keyword name="VirtualenvManagerDialog.on_removeAllButton_clicked" id="VirtualenvManagerDialog.on_removeAllButton_clicked" ref="eric6.VirtualEnv.VirtualenvManagerDialog.html#VirtualenvManagerDialog.on_removeAllButton_clicked" />
+      <keyword name="VirtualenvManagerDialog.on_removeButton_clicked" id="VirtualenvManagerDialog.on_removeButton_clicked" ref="eric6.VirtualEnv.VirtualenvManagerDialog.html#VirtualenvManagerDialog.on_removeButton_clicked" />
+      <keyword name="VirtualenvManagerDialog.on_venvList_itemSelectionChanged" id="VirtualenvManagerDialog.on_venvList_itemSelectionChanged" ref="eric6.VirtualEnv.VirtualenvManagerDialog.html#VirtualenvManagerDialog.on_venvList_itemSelectionChanged" />
+      <keyword name="VirtualenvManagerDialog.refresh" id="VirtualenvManagerDialog.refresh" ref="eric6.VirtualEnv.VirtualenvManagerDialog.html#VirtualenvManagerDialog.refresh" />
       <keyword name="VirusTotal (Package)" id="VirusTotal (Package)" ref="index-eric6.Helpviewer.VirusTotal.html" />
       <keyword name="VirusTotal (Package)" id="VirusTotal (Package)" ref="index-eric6.WebBrowser.VirusTotal.html" />
       <keyword name="VirusTotalAPI" id="VirusTotalAPI" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI" />
@@ -18352,7 +18433,6 @@
       <keyword name="_break_around_binary_operators" id="_break_around_binary_operators" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#_break_around_binary_operators" />
       <keyword name="_buildChildrenLists" id="_buildChildrenLists" ref="eric6.Graphics.GraphicsUtilities.html#_buildChildrenLists" />
       <keyword name="_encode_base64" id="_encode_base64" ref="eric6.UI.EmailDialog.html#_encode_base64" />
-      <keyword name="_findDefaultExecutables" id="_findDefaultExecutables" ref="eric6.Plugins.PluginPipInterface.html#_findDefaultExecutables" />
       <keyword name="_get_parameters" id="_get_parameters" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#_get_parameters" />
       <keyword name="_getfullargs" id="_getfullargs" ref="eric6.DebugClients.Python.DebugUtilities.html#_getfullargs" />
       <keyword name="_indent" id="_indent" ref="eric6.Utilities.ClassBrowsers.pyclbr.html#_indent" />
@@ -18428,8 +18508,8 @@
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.CooperationPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.CorbaPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.html#create" />
+      <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html#create" />
-      <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.DiffColoursPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.EditorAPIsPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.EditorAutocompletionPage.html#create" />
@@ -18622,7 +18702,7 @@
       <keyword name="filterAnsiSequences" id="filterAnsiSequences" ref="eric6.Utilities.__init__.html#filterAnsiSequences" />
       <keyword name="filterCharsFromFilename" id="filterCharsFromFilename" ref="eric6.Helpviewer.HelpUtilities.html#filterCharsFromFilename" />
       <keyword name="filterCharsFromFilename" id="filterCharsFromFilename" ref="eric6.WebBrowser.Tools.WebBrowserTools.html#filterCharsFromFilename" />
-      <keyword name="findPythonInterpreters" id="findPythonInterpreters" ref="eric6.Globals.__init__.html#findPythonInterpreters" />
+      <keyword name="filterMessage" id="filterMessage" ref="eric6.E5Gui.E5ErrorMessage.html#filterMessage" />
       <keyword name="find_module" id="find_module" ref="eric6.Utilities.ClassBrowsers.__init__.html#find_module" />
       <keyword name="find_module" id="find_module" ref="eric6.Utilities.ModuleParser.html#find_module" />
       <keyword name="find_moduleAsStr" id="find_moduleAsStr" ref="eric6.Globals.compatibility_fixes.html#find_moduleAsStr" />
@@ -18679,7 +18759,6 @@
       <keyword name="getEditorTyping" id="getEditorTyping" ref="eric6.Preferences.__init__.html#getEditorTyping" />
       <keyword name="getEngineIcon" id="getEngineIcon" ref="eric6.Plugins.UiExtensionPlugins.Translator.TranslatorEngines.__init__.html#getEngineIcon" />
       <keyword name="getEnvironmentEntry" id="getEnvironmentEntry" ref="eric6.Utilities.__init__.html#getEnvironmentEntry" />
-      <keyword name="getExePath" id="getExePath" ref="eric6.Plugins.PluginPipInterface.html#getExePath" />
       <keyword name="getExecutablePath" id="getExecutablePath" ref="eric6.Utilities.__init__.html#getExecutablePath" />
       <keyword name="getExecutablePaths" id="getExecutablePaths" ref="eric6.Utilities.__init__.html#getExecutablePaths" />
       <keyword name="getExistingDirectory" id="getExistingDirectory" ref="eric6.E5Gui.E5FileDialog.html#getExistingDirectory" />
@@ -19632,6 +19711,7 @@
       <file>eric6.Plugins.UiExtensionPlugins.PipInterface.PipPackageDetailsDialog.html</file>
       <file>eric6.Plugins.UiExtensionPlugins.PipInterface.PipPackagesInputDialog.html</file>
       <file>eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog.html</file>
+      <file>eric6.Plugins.UiExtensionPlugins.PipInterface.PipSelectionDialog.html</file>
       <file>eric6.Plugins.UiExtensionPlugins.Translator.ConfigurationPage.TranslatorPage.html</file>
       <file>eric6.Plugins.UiExtensionPlugins.Translator.Translator.html</file>
       <file>eric6.Plugins.UiExtensionPlugins.Translator.TranslatorEngines.DeepLEngine.html</file>
@@ -19647,8 +19727,6 @@
       <file>eric6.Plugins.UiExtensionPlugins.Translator.TranslatorLanguagesDb.html</file>
       <file>eric6.Plugins.UiExtensionPlugins.Translator.TranslatorRequest.html</file>
       <file>eric6.Plugins.UiExtensionPlugins.Translator.TranslatorWidget.html</file>
-      <file>eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html</file>
-      <file>eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.html</file>
       <file>eric6.Plugins.VcsPlugins.vcsGit.Config.html</file>
       <file>eric6.Plugins.VcsPlugins.vcsGit.ConfigurationPage.GitPage.html</file>
       <file>eric6.Plugins.VcsPlugins.vcsGit.GitAddRemoteDialog.html</file>
@@ -19660,6 +19738,7 @@
       <file>eric6.Plugins.VcsPlugins.vcsGit.GitBranchDialog.html</file>
       <file>eric6.Plugins.VcsPlugins.vcsGit.GitBranchPushDialog.html</file>
       <file>eric6.Plugins.VcsPlugins.vcsGit.GitBundleDialog.html</file>
+      <file>eric6.Plugins.VcsPlugins.vcsGit.GitChangeRemoteUrlDialog.html</file>
       <file>eric6.Plugins.VcsPlugins.vcsGit.GitCherryPickDialog.html</file>
       <file>eric6.Plugins.VcsPlugins.vcsGit.GitCommandDialog.html</file>
       <file>eric6.Plugins.VcsPlugins.vcsGit.GitCommitDialog.html</file>
@@ -19681,6 +19760,7 @@
       <file>eric6.Plugins.VcsPlugins.vcsGit.GitPullDialog.html</file>
       <file>eric6.Plugins.VcsPlugins.vcsGit.GitPushDialog.html</file>
       <file>eric6.Plugins.VcsPlugins.vcsGit.GitReflogBrowserDialog.html</file>
+      <file>eric6.Plugins.VcsPlugins.vcsGit.GitRemoteCredentialsDialog.html</file>
       <file>eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.html</file>
       <file>eric6.Plugins.VcsPlugins.vcsGit.GitRevisionSelectionDialog.html</file>
       <file>eric6.Plugins.VcsPlugins.vcsGit.GitRevisionsSelectionDialog.html</file>
@@ -19891,8 +19971,8 @@
       <file>eric6.Preferences.ConfigurationPages.CooperationPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.CorbaPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.html</file>
+      <file>eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html</file>
       <file>eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html</file>
-      <file>eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.DiffColoursPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.EditorAPIsPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.EditorAutocompletionPage.html</file>
@@ -20154,6 +20234,12 @@
       <file>eric6.ViewManager.BookmarkedFilesDialog.html</file>
       <file>eric6.ViewManager.ViewManager.html</file>
       <file>eric6.ViewManager.__init__.html</file>
+      <file>eric6.VirtualEnv.VirtualenvAddEditDialog.html</file>
+      <file>eric6.VirtualEnv.VirtualenvConfigurationDialog.html</file>
+      <file>eric6.VirtualEnv.VirtualenvExecDialog.html</file>
+      <file>eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog.html</file>
+      <file>eric6.VirtualEnv.VirtualenvManager.html</file>
+      <file>eric6.VirtualEnv.VirtualenvManagerDialog.html</file>
       <file>eric6.WebBrowser.AdBlock.AdBlockDialog.html</file>
       <file>eric6.WebBrowser.AdBlock.AdBlockExceptionsDialog.html</file>
       <file>eric6.WebBrowser.AdBlock.AdBlockIcon.html</file>
@@ -20439,7 +20525,6 @@
       <file>index-eric6.Plugins.UiExtensionPlugins.Translator.ConfigurationPage.html</file>
       <file>index-eric6.Plugins.UiExtensionPlugins.Translator.TranslatorEngines.html</file>
       <file>index-eric6.Plugins.UiExtensionPlugins.Translator.html</file>
-      <file>index-eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.html</file>
       <file>index-eric6.Plugins.UiExtensionPlugins.html</file>
       <file>index-eric6.Plugins.VcsPlugins.html</file>
       <file>index-eric6.Plugins.VcsPlugins.vcsGit.ConfigurationPage.html</file>
@@ -20499,6 +20584,7 @@
       <file>index-eric6.Utilities.html</file>
       <file>index-eric6.VCS.html</file>
       <file>index-eric6.ViewManager.html</file>
+      <file>index-eric6.VirtualEnv.html</file>
       <file>index-eric6.WebBrowser.AdBlock.html</file>
       <file>index-eric6.WebBrowser.AutoScroll.html</file>
       <file>index-eric6.WebBrowser.Bookmarks.BookmarksImporters.html</file>
--- a/Documentation/Source/eric6.Debugger.DebugServer.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Debugger.DebugServer.html	Mon Jul 02 18:59:30 2018 +0200
@@ -331,6 +331,9 @@
 <td><a href="#DebugServer.getClientInterpreter">getClientInterpreter</a></td>
 <td>Public method to get the interpreter of the debug client.</td>
 </tr><tr>
+<td><a href="#DebugServer.getClientType">getClientType</a></td>
+<td>Public method to get the currently running debug client type.</td>
+</tr><tr>
 <td><a href="#DebugServer.getExtensions">getExtensions</a></td>
 <td>Public slot to get the extensions associated with the given language.</td>
 </tr><tr>
@@ -343,6 +346,9 @@
 <td><a href="#DebugServer.getWatchPointModel">getWatchPointModel</a></td>
 <td>Public slot to get a reference to the watch expression model object.</td>
 </tr><tr>
+<td><a href="#DebugServer.isClientProcessUp">isClientProcessUp</a></td>
+<td>Public method to check, if the debug client process is up.</td>
+</tr><tr>
 <td><a href="#DebugServer.isConnected">isConnected</a></td>
 <td>Public method to test, if the debug server is connected to a backend.</td>
 </tr><tr>
@@ -1016,6 +1022,21 @@
 <dd>
 interpreter of the debug client (string)
 </dd>
+</dl><a NAME="DebugServer.getClientType" ID="DebugServer.getClientType"></a>
+<h4>DebugServer.getClientType</h4>
+<b>getClientType</b>(<i></i>)
+<p>
+        Public method to get the currently running debug client type.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+debug client type
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
 </dl><a NAME="DebugServer.getExtensions" ID="DebugServer.getExtensions"></a>
 <h4>DebugServer.getExtensions</h4>
 <b>getExtensions</b>(<i>language</i>)
@@ -1076,6 +1097,21 @@
 reference to the watch expression model object
             (WatchPointModel)
 </dd>
+</dl><a NAME="DebugServer.isClientProcessUp" ID="DebugServer.isClientProcessUp"></a>
+<h4>DebugServer.isClientProcessUp</h4>
+<b>isClientProcessUp</b>(<i></i>)
+<p>
+        Public method to check, if the debug client process is up.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating a running debug client process
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
 </dl><a NAME="DebugServer.isConnected" ID="DebugServer.isConnected"></a>
 <h4>DebugServer.isConnected</h4>
 <b>isConnected</b>(<i></i>)
@@ -1106,7 +1142,7 @@
         Public slot to handle the preferencesChanged signal.
 </p><a NAME="DebugServer.registerDebuggerInterface" ID="DebugServer.registerDebuggerInterface"></a>
 <h4>DebugServer.registerDebuggerInterface</h4>
-<b>registerDebuggerInterface</b>(<i>interfaceName, getRegistryData</i>)
+<b>registerDebuggerInterface</b>(<i>interfaceName, getRegistryData, reregister=False</i>)
 <p>
         Public method to register a debugger interface.
 </p><dl>
@@ -1120,6 +1156,9 @@
             return the client language, the client capabilities, the
             list of associated file extensions and a function reference
             to create the debugger interface (see __createDebuggerInterface())
+</dd><dt><i>reregister</i> (bool)</dt>
+<dd>
+flag indicating to re-register the interface
 </dd>
 </dl><a NAME="DebugServer.remoteBanner" ID="DebugServer.remoteBanner"></a>
 <h4>DebugServer.remoteBanner</h4>
@@ -1226,44 +1265,43 @@
 </dd>
 </dl><a NAME="DebugServer.remoteCoverage" ID="DebugServer.remoteCoverage"></a>
 <h4>DebugServer.remoteCoverage</h4>
-<b>remoteCoverage</b>(<i>interpreter, fn, argv, wd, env, autoClearShell=True, erase=False, forProject=False, runInConsole=False, clientType=""</i>)
+<b>remoteCoverage</b>(<i>venvName, fn, argv, wd, env, autoClearShell=True, erase=False, forProject=False, runInConsole=False, clientType=""</i>)
 <p>
         Public method to load a new program to collect coverage data.
 </p><dl>
-<dt><i>interpreter</i></dt>
+<dt><i>venvName</i> (str)</dt>
 <dd>
-interpreter to be used to execute the remote
-            side (string)
-</dd><dt><i>fn</i></dt>
+name of the virtual environment to be used
+</dd><dt><i>fn</i> (str)</dt>
 <dd>
-the filename to run (string)
-</dd><dt><i>argv</i></dt>
+the filename to debug
+</dd><dt><i>argv</i> (str)</dt>
 <dd>
-the commandline arguments to pass to the program (string)
-</dd><dt><i>wd</i></dt>
+the command line arguments to pass to the program
+</dd><dt><i>wd</i> (str)</dt>
 <dd>
-the working directory for the program (string)
-</dd><dt><i>env</i></dt>
+the working directory for the program
+</dd><dt><i>env</i> (str)</dt>
 <dd>
-environment settings (string)
-</dd><dt><i>autoClearShell=</i></dt>
+environment parameter settings
+</dd><dt><i>autoClearShell=</i> (bool)</dt>
 <dd>
 flag indicating, that the interpreter window
-            should be cleared (boolean)
-</dd><dt><i>erase=</i></dt>
+            should be cleared
+</dd><dt><i>erase=</i> (bool)</dt>
 <dd>
 flag indicating that coverage info should be
-            cleared first (boolean)
-</dd><dt><i>forProject=</i></dt>
+            cleared first
+</dd><dt><i>forProject=</i> (bool)</dt>
 <dd>
-flag indicating a project related action (boolean)
-</dd><dt><i>runInConsole=</i></dt>
+flag indicating a project related action
+</dd><dt><i>runInConsole=</i> (bool)</dt>
 <dd>
 flag indicating to start the debugger in a
-            console window (boolean)
-</dd><dt><i>clientType=</i></dt>
+            console window
+</dd><dt><i>clientType=</i> (str)</dt>
 <dd>
-client type to be used (string)
+client type to be used
 </dd>
 </dl><a NAME="DebugServer.remoteEnvironment" ID="DebugServer.remoteEnvironment"></a>
 <h4>DebugServer.remoteEnvironment</h4>
@@ -1277,59 +1315,57 @@
 </dd>
 </dl><a NAME="DebugServer.remoteLoad" ID="DebugServer.remoteLoad"></a>
 <h4>DebugServer.remoteLoad</h4>
-<b>remoteLoad</b>(<i>interpreter, fn, argv, wd, env, autoClearShell=True, tracePython=False, autoContinue=True, forProject=False, runInConsole=False, autoFork=False, forkChild=False, clientType="", enableCallTrace=False</i>)
+<b>remoteLoad</b>(<i>venvName, fn, argv, wd, env, autoClearShell=True, tracePython=False, autoContinue=True, forProject=False, runInConsole=False, autoFork=False, forkChild=False, clientType="", enableCallTrace=False</i>)
 <p>
         Public method to load a new program to debug.
 </p><dl>
-<dt><i>interpreter</i></dt>
+<dt><i>venvName</i> (str)</dt>
 <dd>
-interpreter to be used to execute the remote
-            side (string)
-</dd><dt><i>fn</i></dt>
+name of the virtual environment to be used
+</dd><dt><i>fn</i> (str)</dt>
 <dd>
-the filename to debug (string)
-</dd><dt><i>argv</i></dt>
+the filename to debug
+</dd><dt><i>argv</i> (str)</dt>
 <dd>
-the commandline arguments to pass to the program (string)
-</dd><dt><i>wd</i></dt>
+the command line arguments to pass to the program
+</dd><dt><i>wd</i> (str)</dt>
 <dd>
-the working directory for the program (string)
-</dd><dt><i>env</i></dt>
+the working directory for the program
+</dd><dt><i>env</i> (str)</dt>
 <dd>
-environment settings (string)
-</dd><dt><i>autoClearShell=</i></dt>
+environment parameter settings
+</dd><dt><i>autoClearShell=</i> (bool)</dt>
 <dd>
 flag indicating, that the interpreter window
-            should be cleared (boolean)
-</dd><dt><i>tracePython=</i></dt>
+            should be cleared
+</dd><dt><i>tracePython=</i> (bool)</dt>
 <dd>
 flag indicating if the Python library should be
-            traced as well (boolean)
-</dd><dt><i>autoContinue=</i></dt>
+            traced as well
+</dd><dt><i>autoContinue=</i> (bool)</dt>
 <dd>
 flag indicating, that the debugger should not
-            stop at the first executable line (boolean)
-</dd><dt><i>forProject=</i></dt>
+            stop at the first executable line
+</dd><dt><i>forProject=</i> (bool)</dt>
 <dd>
-flag indicating a project related action (boolean)
-</dd><dt><i>runInConsole=</i></dt>
+flag indicating a project related action
+</dd><dt><i>runInConsole=</i> (bool)</dt>
 <dd>
 flag indicating to start the debugger in a
-            console window (boolean)
-</dd><dt><i>autoFork=</i></dt>
+            console window
+</dd><dt><i>autoFork=</i> (bool)</dt>
 <dd>
-flag indicating the automatic fork mode (boolean)
-</dd><dt><i>forkChild=</i></dt>
+flag indicating the automatic fork mode
+</dd><dt><i>forkChild=</i> (bool)</dt>
 <dd>
 flag indicating to debug the child after forking
-            (boolean)
-</dd><dt><i>clientType=</i></dt>
+</dd><dt><i>clientType=</i> (str)</dt>
 <dd>
-client type to be used (string)
-</dd><dt><i>enableCallTrace=</i></dt>
+client type to be used
+</dd><dt><i>enableCallTrace=</i> (bool)</dt>
 <dd>
 flag indicating to enable the call trace
-            function (boolean)
+            function
 </dd>
 </dl><a NAME="DebugServer.remoteMoveIP" ID="DebugServer.remoteMoveIP"></a>
 <h4>DebugServer.remoteMoveIP</h4>
@@ -1343,44 +1379,43 @@
 </dd>
 </dl><a NAME="DebugServer.remoteProfile" ID="DebugServer.remoteProfile"></a>
 <h4>DebugServer.remoteProfile</h4>
-<b>remoteProfile</b>(<i>interpreter, fn, argv, wd, env, autoClearShell=True, erase=False, forProject=False, runInConsole=False, clientType=""</i>)
+<b>remoteProfile</b>(<i>venvName, fn, argv, wd, env, autoClearShell=True, erase=False, forProject=False, runInConsole=False, clientType=""</i>)
 <p>
         Public method to load a new program to collect profiling data.
 </p><dl>
-<dt><i>interpreter</i></dt>
+<dt><i>venvName</i> (str)</dt>
 <dd>
-interpreter to be used to execute the remote
-            side (string)
-</dd><dt><i>fn</i></dt>
+name of the virtual environment to be used
+</dd><dt><i>fn</i> (str)</dt>
 <dd>
-the filename to run (string)
-</dd><dt><i>argv</i></dt>
+the filename to debug
+</dd><dt><i>argv</i> (str)</dt>
 <dd>
-the commandline arguments to pass to the program (string)
-</dd><dt><i>wd</i></dt>
+the command line arguments to pass to the program
+</dd><dt><i>wd</i> (str)</dt>
 <dd>
-the working directory for the program (string)
-</dd><dt><i>env</i></dt>
+the working directory for the program
+</dd><dt><i>env</i> (str)</dt>
 <dd>
-environment settings (string)
-</dd><dt><i>autoClearShell=</i></dt>
+environment parameter settings
+</dd><dt><i>autoClearShell=</i> (bool)</dt>
 <dd>
 flag indicating, that the interpreter window
-            should be cleared (boolean)
-</dd><dt><i>erase=</i></dt>
+            should be cleared
+</dd><dt><i>erase=</i> (bool)</dt>
 <dd>
-flag indicating that timing info should be cleared
-            first (boolean)
-</dd><dt><i>forProject=</i></dt>
+flag indicating that coverage info should be
+            cleared first
+</dd><dt><i>forProject=</i> (bool)</dt>
 <dd>
-flag indicating a project related action (boolean)
-</dd><dt><i>runInConsole=</i></dt>
+flag indicating a project related action
+</dd><dt><i>runInConsole=</i> (bool)</dt>
 <dd>
 flag indicating to start the debugger in a
-            console window (boolean)
-</dd><dt><i>clientType=</i></dt>
+            console window
+</dd><dt><i>clientType=</i> (str)</dt>
 <dd>
-client type to be used (string)
+client type to be used
 </dd>
 </dl><a NAME="DebugServer.remoteRawInput" ID="DebugServer.remoteRawInput"></a>
 <h4>DebugServer.remoteRawInput</h4>
@@ -1394,47 +1429,45 @@
 </dd>
 </dl><a NAME="DebugServer.remoteRun" ID="DebugServer.remoteRun"></a>
 <h4>DebugServer.remoteRun</h4>
-<b>remoteRun</b>(<i>interpreter, fn, argv, wd, env, autoClearShell=True, forProject=False, runInConsole=False, autoFork=False, forkChild=False, clientType=""</i>)
+<b>remoteRun</b>(<i>venvName, fn, argv, wd, env, autoClearShell=True, forProject=False, runInConsole=False, autoFork=False, forkChild=False, clientType=""</i>)
 <p>
         Public method to load a new program to run.
 </p><dl>
-<dt><i>interpreter</i></dt>
+<dt><i>venvName</i> (str)</dt>
 <dd>
-interpreter to be used to execute the remote
-            side (string)
-</dd><dt><i>fn</i></dt>
+name of the virtual environment to be used
+</dd><dt><i>fn</i> (str)</dt>
 <dd>
-the filename to run (string)
-</dd><dt><i>argv</i></dt>
+the filename to debug
+</dd><dt><i>argv</i> (str)</dt>
 <dd>
-the commandline arguments to pass to the program (string)
-</dd><dt><i>wd</i></dt>
+the command line arguments to pass to the program
+</dd><dt><i>wd</i> (str)</dt>
 <dd>
-the working directory for the program (string)
-</dd><dt><i>env</i></dt>
+the working directory for the program
+</dd><dt><i>env</i> (str)</dt>
 <dd>
-environment settings (string)
-</dd><dt><i>autoClearShell=</i></dt>
+environment parameter settings
+</dd><dt><i>autoClearShell=</i> (bool)</dt>
 <dd>
 flag indicating, that the interpreter window
-            should be cleared (boolean)
-</dd><dt><i>forProject=</i></dt>
+            should be cleared
+</dd><dt><i>forProject=</i> (bool)</dt>
 <dd>
-flag indicating a project related action (boolean)
-</dd><dt><i>runInConsole=</i></dt>
+flag indicating a project related action
+</dd><dt><i>runInConsole=</i> (bool)</dt>
 <dd>
 flag indicating to start the debugger in a
-            console window (boolean)
-</dd><dt><i>autoFork=</i></dt>
+            console window
+</dd><dt><i>autoFork=</i> (bool)</dt>
 <dd>
-flag indicating the automatic fork mode (boolean)
-</dd><dt><i>forkChild=</i></dt>
+flag indicating the automatic fork mode
+</dd><dt><i>forkChild=</i> (bool)</dt>
 <dd>
 flag indicating to debug the child after forking
-            (boolean)
-</dd><dt><i>clientType=</i></dt>
+</dd><dt><i>clientType=</i> (str)</dt>
 <dd>
-client type to be used (string)
+client type to be used
 </dd>
 </dl><a NAME="DebugServer.remoteSetThread" ID="DebugServer.remoteSetThread"></a>
 <h4>DebugServer.remoteSetThread</h4>
@@ -1844,27 +1877,26 @@
 </dd>
 </dl><a NAME="DebugServer.startClient" ID="DebugServer.startClient"></a>
 <h4>DebugServer.startClient</h4>
-<b>startClient</b>(<i>unplanned=True, clType=None, forProject=False, runInConsole=False, interpreter=""</i>)
+<b>startClient</b>(<i>unplanned=True, clType=None, forProject=False, runInConsole=False, venvName=""</i>)
 <p>
         Public method to start a debug client.
 </p><dl>
-<dt><i>unplanned=</i></dt>
+<dt><i>unplanned=</i> (bool)</dt>
 <dd>
-flag indicating that the client has died (boolean)
-</dd><dt><i>clType=</i></dt>
+flag indicating that the client has died
+</dd><dt><i>clType=</i> (str)</dt>
 <dd>
-type of client to be started (string)
-</dd><dt><i>forProject=</i></dt>
+type of client to be started
+</dd><dt><i>forProject=</i> (bool)</dt>
 <dd>
-flag indicating a project related action (boolean)
-</dd><dt><i>runInConsole=</i></dt>
+flag indicating a project related action
+</dd><dt><i>runInConsole=</i> (bool)</dt>
 <dd>
 flag indicating to start the debugger in a
-            console window (boolean)
-</dd><dt><i>interpreter=</i></dt>
+            console window
+</dd><dt><i>venvName=</i> (str)</dt>
 <dd>
-interpreter to be used to execute the remote
-            side (string)
+name of the virtual environment to be used
 </dd>
 </dl><a NAME="DebugServer.unregisterDebuggerInterface" ID="DebugServer.unregisterDebuggerInterface"></a>
 <h4>DebugServer.unregisterDebuggerInterface</h4>
--- a/Documentation/Source/eric6.Debugger.DebugUI.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Debugger.DebugUI.html	Mon Jul 02 18:59:30 2018 +0200
@@ -296,9 +296,6 @@
 <td><a href="#DebugUI.setExceptionReporting">setExceptionReporting</a></td>
 <td>Public slot to initialize the exception reporting flag.</td>
 </tr><tr>
-<td><a href="#DebugUI.setInterpreterHistory">setInterpreterHistory</a></td>
-<td>Public slot to initialize the interpreter history.</td>
-</tr><tr>
 <td><a href="#DebugUI.setTracePython">setTracePython</a></td>
 <td>Public slot to initialize the trace Python flag.</td>
 </tr><tr>
@@ -916,23 +913,6 @@
 <dd>
 flag indicating exception reporting status (boolean)
 </dd>
-</dl><a NAME="DebugUI.setInterpreterHistory" ID="DebugUI.setInterpreterHistory"></a>
-<h4>DebugUI.setInterpreterHistory</h4>
-<b>setInterpreterHistory</b>(<i>interpreterStr, clearHistories=False, history=None</i>)
-<p>
-        Public slot to initialize the interpreter history.
-</p><dl>
-<dt><i>interpreterStr</i></dt>
-<dd>
-interpreter (string)
-</dd><dt><i>clearHistories</i></dt>
-<dd>
-flag indicating, that the list should
-            be cleared (boolean)
-</dd><dt><i>history</i></dt>
-<dd>
-list of history entries to be set (list of strings)
-</dd>
 </dl><a NAME="DebugUI.setTracePython" ID="DebugUI.setTracePython"></a>
 <h4>DebugUI.setTracePython</h4>
 <b>setTracePython</b>(<i>tracePython</i>)
--- a/Documentation/Source/eric6.Debugger.DebuggerInterfaceNone.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Debugger.DebuggerInterfaceNone.html	Mon Jul 02 18:59:30 2018 +0200
@@ -78,6 +78,9 @@
 <td><a href="#DebuggerInterfaceNone.newConnection">newConnection</a></td>
 <td>Public slot to handle a new connection.</td>
 </tr><tr>
+<td><a href="#DebuggerInterfaceNone.remoteBanner">remoteBanner</a></td>
+<td>Public slot to get the banner info of the remote client.</td>
+</tr><tr>
 <td><a href="#DebuggerInterfaceNone.remoteBreakpoint">remoteBreakpoint</a></td>
 <td>Public method to set or clear a breakpoint.</td>
 </tr><tr>
@@ -238,7 +241,12 @@
 <dd>
 flag indicating success (boolean)
 </dd>
-</dl><a NAME="DebuggerInterfaceNone.remoteBreakpoint" ID="DebuggerInterfaceNone.remoteBreakpoint"></a>
+</dl><a NAME="DebuggerInterfaceNone.remoteBanner" ID="DebuggerInterfaceNone.remoteBanner"></a>
+<h4>DebuggerInterfaceNone.remoteBanner</h4>
+<b>remoteBanner</b>(<i></i>)
+<p>
+        Public slot to get the banner info of the remote client.
+</p><a NAME="DebuggerInterfaceNone.remoteBreakpoint" ID="DebuggerInterfaceNone.remoteBreakpoint"></a>
 <h4>DebuggerInterfaceNone.remoteBreakpoint</h4>
 <b>remoteBreakpoint</b>(<i>fn, line, setBreakpoint, cond=None, temp=False</i>)
 <p>
@@ -667,53 +675,59 @@
         the debug client. (Needed on Win OS)
 </p><a NAME="DebuggerInterfaceNone.startRemote" ID="DebuggerInterfaceNone.startRemote"></a>
 <h4>DebuggerInterfaceNone.startRemote</h4>
-<b>startRemote</b>(<i>port, runInConsole, interpreter</i>)
+<b>startRemote</b>(<i>port, runInConsole, venvName</i>)
 <p>
         Public method to start a remote Python interpreter.
 </p><dl>
-<dt><i>port</i></dt>
+<dt><i>port</i> (int)</dt>
 <dd>
-port number the debug server is listening on (integer)
-</dd><dt><i>runInConsole</i></dt>
+port number the debug server is listening on
+</dd><dt><i>runInConsole</i> (bool)</dt>
 <dd>
 flag indicating to start the debugger in a
-            console window (boolean)
-</dd><dt><i>interpreter</i></dt>
+            console window
+</dd><dt><i>venvName</i> (str)</dt>
 <dd>
-interpreter to be used to execute the remote
-            side (string)
+name of the virtual environment to be used
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-client process object (QProcess), a flag to indicate
-            a network connection (boolean) and the name of the interpreter
-            in case of a local execution (string)
+client process object, a flag to indicate a network connection
+            and the name of the interpreter in case of a local execution
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (QProcess, bool, str)
 </dd>
 </dl><a NAME="DebuggerInterfaceNone.startRemoteForProject" ID="DebuggerInterfaceNone.startRemoteForProject"></a>
 <h4>DebuggerInterfaceNone.startRemoteForProject</h4>
-<b>startRemoteForProject</b>(<i>port, runInConsole, interpreter</i>)
+<b>startRemoteForProject</b>(<i>port, runInConsole, venvName</i>)
 <p>
         Public method to start a remote Python interpreter for a project.
 </p><dl>
-<dt><i>port</i></dt>
+<dt><i>port</i> (int)</dt>
 <dd>
-port number the debug server is listening on (integer)
-</dd><dt><i>runInConsole</i></dt>
+port number the debug server is listening on
+</dd><dt><i>runInConsole</i> (bool)</dt>
 <dd>
 flag indicating to start the debugger in a
-            console window (boolean)
-</dd><dt><i>interpreter</i></dt>
+            console window
+</dd><dt><i>venvName</i> (str)</dt>
 <dd>
-interpreter to be used to execute the remote
-            side (string)
+name of the virtual environment to be used
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-client process object (QProcess), a flag to indicate
-            a network connection (boolean) and the name of the interpreter
-            in case of a local execution (string)
+client process object, a flag to indicate a network connection
+            and the name of the interpreter in case of a local execution
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (QProcess, bool, str)
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/Documentation/Source/eric6.Debugger.DebuggerInterfacePython.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Debugger.DebuggerInterfacePython.html	Mon Jul 02 18:59:30 2018 +0200
@@ -797,53 +797,59 @@
         the debug client. (Needed on Win OS)
 </p><a NAME="DebuggerInterfacePython.startRemote" ID="DebuggerInterfacePython.startRemote"></a>
 <h4>DebuggerInterfacePython.startRemote</h4>
-<b>startRemote</b>(<i>port, runInConsole, interpreter</i>)
+<b>startRemote</b>(<i>port, runInConsole, venvName</i>)
 <p>
         Public method to start a remote Python interpreter.
 </p><dl>
-<dt><i>port</i></dt>
+<dt><i>port</i> (int)</dt>
 <dd>
-port number the debug server is listening on (integer)
-</dd><dt><i>runInConsole</i></dt>
+port number the debug server is listening on
+</dd><dt><i>runInConsole</i> (bool)</dt>
 <dd>
 flag indicating to start the debugger in a
-            console window (boolean)
-</dd><dt><i>interpreter</i></dt>
+            console window
+</dd><dt><i>venvName</i> (str)</dt>
 <dd>
-interpreter to be used to execute the remote
-            side (string)
+name of the virtual environment to be used
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-client process object (QProcess), a flag to indicate
-            a network connection (boolean) and the name of the interpreter
-            in case of a local execution (string)
+client process object, a flag to indicate a network connection
+            and the name of the interpreter in case of a local execution
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (QProcess, bool, str)
 </dd>
 </dl><a NAME="DebuggerInterfacePython.startRemoteForProject" ID="DebuggerInterfacePython.startRemoteForProject"></a>
 <h4>DebuggerInterfacePython.startRemoteForProject</h4>
-<b>startRemoteForProject</b>(<i>port, runInConsole, interpreter</i>)
+<b>startRemoteForProject</b>(<i>port, runInConsole, venvName</i>)
 <p>
         Public method to start a remote Python interpreter for a project.
 </p><dl>
-<dt><i>port</i></dt>
+<dt><i>port</i> (int)</dt>
 <dd>
-port number the debug server is listening on (integer)
-</dd><dt><i>runInConsole</i></dt>
+port number the debug server is listening on
+</dd><dt><i>runInConsole</i> (bool)</dt>
 <dd>
 flag indicating to start the debugger in a
-            console window (boolean)
-</dd><dt><i>interpreter</i></dt>
+            console window
+</dd><dt><i>venvName</i> (str)</dt>
 <dd>
-interpreter to be used to execute the remote
-            side (string)
+name of the virtual environment to be used
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-client process object (QProcess), a flag to indicate
-            a network connection (boolean) and the name of the interpreter
-            in case of a local execution (string)
+client process object, a flag to indicate a network connection
+            and the name of the interpreter in case of a local execution
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (QProcess, bool, str)
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/Documentation/Source/eric6.Debugger.StartDialog.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Debugger.StartDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -108,32 +108,33 @@
 </table>
 <a NAME="StartDialog.__init__" ID="StartDialog.__init__"></a>
 <h4>StartDialog (Constructor)</h4>
-<b>StartDialog</b>(<i>caption, interpreterList, argvList, wdList, envList, exceptions, parent=None, dialogType=0, modfuncList=None, tracePython=False, autoClearShell=True, autoContinue=True, autoFork=False, forkChild=False</i>)
+<b>StartDialog</b>(<i>caption, lastUsedVenvName, argvList, wdList, envList, exceptions, parent=None, dialogType=0, modfuncList=None, tracePython=False, autoClearShell=True, autoContinue=True, autoFork=False, forkChild=False</i>)
 <p>
         Constructor
 </p><dl>
-<dt><i>caption</i></dt>
+<dt><i>caption</i> (str)</dt>
 <dd>
-the caption to be displayed (string)
-</dd><dt><i>interpreterList</i></dt>
+the caption to be displayed
+</dd><dt><i>lastUsedVenvName</i> (str)</dt>
 <dd>
-list of interpreters (list of string)
-</dd><dt><i>argvList</i></dt>
+name of the most recently used virtual
+            environment
+</dd><dt><i>argvList</i> (list of str)</dt>
 <dd>
-history list of commandline arguments (list of strings)
-</dd><dt><i>wdList</i></dt>
+history list of command line arguments
+</dd><dt><i>wdList</i> (list of str)</dt>
 <dd>
-history list of working directories (list of strings)
-</dd><dt><i>envList</i></dt>
+history list of working directories
+</dd><dt><i>envList</i> (list of str)</dt>
 <dd>
-history list of environment settings (list of strings)
-</dd><dt><i>exceptions</i></dt>
+history list of environment parameter settings
+</dd><dt><i>exceptions</i> (bool)</dt>
 <dd>
-exception reporting flag (boolean)
-</dd><dt><i>parent</i></dt>
+exception reporting flag
+</dd><dt><i>parent</i> (QWidget)</dt>
 <dd>
-parent widget of this dialog (QWidget)
-</dd><dt><i>dialogType</i></dt>
+parent widget of this dialog
+</dd><dt><i>dialogType</i> (int (0 to 3))</dt>
 <dd>
 type of the start dialog
                 <ul>
@@ -142,29 +143,27 @@
                 <li>2 = start coverage dialog</li>
                 <li>3 = start profile dialog</li>
                 </ul>
-</dd><dt><i>modfuncList=</i></dt>
+</dd><dt><i>modfuncList=</i> (list of str)</dt>
 <dd>
 history list of module functions
-            (list of strings)
-</dd><dt><i>tracePython=</i></dt>
+</dd><dt><i>tracePython=</i> (bool)</dt>
 <dd>
 flag indicating if the Python library should
-            be traced as well (boolean)
-</dd><dt><i>autoClearShell=</i></dt>
+            be traced as well
+</dd><dt><i>autoClearShell=</i> (bool)</dt>
 <dd>
 flag indicating, that the interpreter window
-            should be cleared automatically (boolean)
-</dd><dt><i>autoContinue=</i></dt>
+            should be cleared automatically
+</dd><dt><i>autoContinue=</i> (bool)</dt>
 <dd>
 flag indicating, that the debugger should not
-            stop at the first executable line (boolean)
-</dd><dt><i>autoFork=</i></dt>
+            stop at the first executable line
+</dd><dt><i>autoFork=</i> (bool)</dt>
 <dd>
-flag indicating the automatic fork mode (boolean)
-</dd><dt><i>forkChild=</i></dt>
+flag indicating the automatic fork mode
+</dd><dt><i>forkChild=</i> (bool)</dt>
 <dd>
 flag indicating to debug the child after forking
-            (boolean)
 </dd>
 </dl><a NAME="StartDialog.__clearHistories" ID="StartDialog.__clearHistories"></a>
 <h4>StartDialog.__clearHistories</h4>
--- a/Documentation/Source/eric6.E5Gui.E5ErrorMessage.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.E5Gui.E5ErrorMessage.html	Mon Jul 02 18:59:30 2018 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>__msgHandlerDialog</td></tr><tr><td>__origMsgHandler</td></tr>
+<tr><td>_defaultFilters</td></tr><tr><td>_filterSettings</td></tr><tr><td>_msgHandlerDialog</td></tr><tr><td>_origMsgHandler</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
@@ -40,6 +40,9 @@
 <td><a href="#editMessageFilters">editMessageFilters</a></td>
 <td>Module function to edit the list of message filters.</td>
 </tr><tr>
+<td><a href="#filterMessage">filterMessage</a></td>
+<td>Module function to filter messages.</td>
+</tr><tr>
 <td><a href="#messageHandler">messageHandler</a></td>
 <td>Module function handling messages.</td>
 </tr><tr>
@@ -72,9 +75,6 @@
 <td><a href="#E5ErrorMessage.__init__">E5ErrorMessage</a></td>
 <td>Constructor</td>
 </tr><tr>
-<td><a href="#E5ErrorMessage.__filterMessage">__filterMessage</a></td>
-<td>Private method to filter messages.</td>
-</tr><tr>
 <td><a href="#E5ErrorMessage.editMessageFilters">editMessageFilters</a></td>
 <td>Public method to edit the list of message filters.</td>
 </tr><tr>
@@ -92,25 +92,9 @@
 <p>
         Constructor
 </p><dl>
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="E5ErrorMessage.__filterMessage" ID="E5ErrorMessage.__filterMessage"></a>
-<h4>E5ErrorMessage.__filterMessage</h4>
-<b>__filterMessage</b>(<i>message</i>)
-<p>
-        Private method to filter messages.
-</p><dl>
-<dt><i>message</i></dt>
-<dd>
-message to be checked (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating that the message should be filtered out
-            (boolean)
+reference to the parent widget
 </dd>
 </dl><a NAME="E5ErrorMessage.editMessageFilters" ID="E5ErrorMessage.editMessageFilters"></a>
 <h4>E5ErrorMessage.editMessageFilters</h4>
@@ -123,12 +107,12 @@
 <p>
         Public method to show a message.
 </p><dl>
-<dt><i>message</i></dt>
+<dt><i>message</i> (str)</dt>
 <dd>
-error message to be shown (string)
-</dd><dt><i>msgType</i></dt>
+error message to be shown
+</dd><dt><i>msgType</i> (str)</dt>
 <dd>
-type of the error message (string)
+type of the error message
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
@@ -141,20 +125,42 @@
 </p>
 <div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
+<a NAME="filterMessage" ID="filterMessage"></a>
+<h2>filterMessage</h2>
+<b>filterMessage</b>(<i>message</i>)
+<p>
+    Module function to filter messages.
+</p><dl>
+<dt><i>message</i> (str)</dt>
+<dd>
+message to be checked
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating that the message should be filtered out
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
 <a NAME="messageHandler" ID="messageHandler"></a>
 <h2>messageHandler</h2>
 <b>messageHandler</b>(<i>msgType, *args</i>)
 <p>
     Module function handling messages.
 </p><dl>
-<dt><i>msgType</i></dt>
+<dt><i>msgType</i> (int, QtMsgType)</dt>
 <dd>
-type of the message (integer, QtMsgType)
-</dd><dt><i>args</i></dt>
+type of the message
+</dd><dt><i>args</i> (PyQt4: bytes; PyQt5: tuple of (QMessageLogContext, bytes))</dt>
 <dd>
-message handler arguments, for PyQt4 message to be shown
-        (bytes), for PyQt5 context information (QMessageLogContext) and
-        message to be shown (bytes)
+message handler arguments, for PyQt4 message to be shown, for
+        PyQt5 context information and message to be shown
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
@@ -167,7 +173,12 @@
 </p><dl>
 <dt>Returns:</dt>
 <dd>
-flag indicating an installed message handler (boolean)
+flag indicating an installed message handler
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
@@ -181,7 +192,12 @@
 </p><dl>
 <dt>Returns:</dt>
 <dd>
-reference to the message handler dialog (E5ErrorMessage)
+reference to the message handler dialog
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+E5ErrorMessage
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/Documentation/Source/eric6.Globals.__init__.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Globals.__init__.html	Mon Jul 02 18:59:30 2018 +0200
@@ -40,9 +40,6 @@
 <td><a href="#desktopName">desktopName</a></td>
 <td>Function to determine the name of the desktop environment used (Linux only).</td>
 </tr><tr>
-<td><a href="#findPythonInterpreters">findPythonInterpreters</a></td>
-<td>Module function for searching a Python interpreter.</td>
-</tr><tr>
 <td><a href="#getConfigDir">getConfigDir</a></td>
 <td>Module function to get the name of the directory storing the config data.</td>
 </tr><tr>
@@ -131,24 +128,6 @@
 </dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
-<a NAME="findPythonInterpreters" ID="findPythonInterpreters"></a>
-<h2>findPythonInterpreters</h2>
-<b>findPythonInterpreters</b>(<i>pyVersion</i>)
-<p>
-    Module function for searching a Python interpreter.
-</p><dl>
-<dt><i>pyVersion</i></dt>
-<dd>
-major Python version
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-list of interpreters found (list of strings)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
 <a NAME="getConfigDir" ID="getConfigDir"></a>
 <h2>getConfigDir</h2>
 <b>getConfigDir</b>(<i></i>)
--- a/Documentation/Source/eric6.Plugins.PluginPipInterface.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Plugins.PluginPipInterface.html	Mon Jul 02 18:59:30 2018 +0200
@@ -37,9 +37,6 @@
 <h3>Functions</h3>
 <table>
 <tr>
-<td><a href="#_findDefaultExecutables">_findDefaultExecutables</a></td>
-<td>Restricted function to determine the name and path of the executables.</td>
-</tr><tr>
 <td><a href="#createPipPage">createPipPage</a></td>
 <td>Module function to create the pip configuration page.</td>
 </tr><tr>
@@ -49,9 +46,6 @@
 <td><a href="#getConfigData">getConfigData</a></td>
 <td>Module function returning data as required by the configuration dialog.</td>
 </tr><tr>
-<td><a href="#getExePath">getExePath</a></td>
-<td></td>
-</tr><tr>
 <td><a href="#prepareUninstall">prepareUninstall</a></td>
 <td>Module function to prepare for an un-installation.</td>
 </tr>
@@ -63,10 +57,10 @@
     Class implementing the pip interface plug-in.
 </p><h3>Signals</h3>
 <dl>
-<dt>currentPipChanged(exe)</dt>
+<dt>currentEnvironmentChanged(str)</dt>
 <dd>
-emitted to signal a change of the current
-        pip executable
+emitted to signal a change of the
+        currently selected virtual environment
 </dd>
 </dl>
 <h3>Derived from</h3>
@@ -94,9 +88,6 @@
 <td><a href="#PipInterfacePlugin.deactivate">deactivate</a></td>
 <td>Public method to deactivate this plugin.</td>
 </tr><tr>
-<td><a href="#PipInterfacePlugin.getDefaultPipExecutables">getDefaultPipExecutables</a></td>
-<td>Public method to get the default list of pip executables.</td>
-</tr><tr>
 <td><a href="#PipInterfacePlugin.getMenu">getMenu</a></td>
 <td>Public method to get a reference to the requested menu.</td>
 </tr><tr>
@@ -104,10 +95,10 @@
 <td>Public method to get the names of all menus.</td>
 </tr><tr>
 <td><a href="#PipInterfacePlugin.getPreferences">getPreferences</a></td>
-<td>Public method to retrieve the various refactoring settings.</td>
+<td>Public method to retrieve the various pip related settings.</td>
 </tr><tr>
 <td><a href="#PipInterfacePlugin.setPreferences">setPreferences</a></td>
-<td>Public method to store the various refactoring settings.</td>
+<td>Public method to store the various pip related settings.</td>
 </tr>
 </table>
 <h3>Static Methods</h3>
@@ -137,39 +128,39 @@
 </p><dl>
 <dt>Returns:</dt>
 <dd>
-tuple of None and activation status (boolean)
+tuple of None and activation status
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (None, bool)
 </dd>
 </dl><a NAME="PipInterfacePlugin.deactivate" ID="PipInterfacePlugin.deactivate"></a>
 <h4>PipInterfacePlugin.deactivate</h4>
 <b>deactivate</b>(<i></i>)
 <p>
         Public method to deactivate this plugin.
-</p><a NAME="PipInterfacePlugin.getDefaultPipExecutables" ID="PipInterfacePlugin.getDefaultPipExecutables"></a>
-<h4>PipInterfacePlugin.getDefaultPipExecutables</h4>
-<b>getDefaultPipExecutables</b>(<i></i>)
-<p>
-        Public method to get the default list of pip executables.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of pip executables (list of string)
-</dd>
-</dl><a NAME="PipInterfacePlugin.getMenu" ID="PipInterfacePlugin.getMenu"></a>
+</p><a NAME="PipInterfacePlugin.getMenu" ID="PipInterfacePlugin.getMenu"></a>
 <h4>PipInterfacePlugin.getMenu</h4>
 <b>getMenu</b>(<i>name</i>)
 <p>
         Public method to get a reference to the requested menu.
 </p><dl>
-<dt><i>name</i></dt>
+<dt><i>name</i> (str)</dt>
 <dd>
-name of the menu (string)
+name of the menu
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-reference to the menu (QMenu) or None, if no
+reference to the menu or None, if no
             menu with the given name exists
 </dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+QMenu or None
+</dd>
 </dl><a NAME="PipInterfacePlugin.getMenuNames" ID="PipInterfacePlugin.getMenuNames"></a>
 <h4>PipInterfacePlugin.getMenuNames</h4>
 <b>getMenuNames</b>(<i></i>)
@@ -178,57 +169,49 @@
 </p><dl>
 <dt>Returns:</dt>
 <dd>
-menu names (list of string)
+menu names
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
 </dd>
 </dl><a NAME="PipInterfacePlugin.getPreferences" ID="PipInterfacePlugin.getPreferences"></a>
 <h4>PipInterfacePlugin.getPreferences</h4>
 <b>getPreferences</b>(<i>key</i>)
 <p>
-        Public method to retrieve the various refactoring settings.
+        Public method to retrieve the various pip related settings.
 </p><dl>
-<dt><i>key</i></dt>
+<dt><i>key</i> (str)</dt>
 <dd>
 the key of the value to get
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-the requested refactoring setting
+the requested setting
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+any
 </dd>
 </dl><a NAME="PipInterfacePlugin.setPreferences" ID="PipInterfacePlugin.setPreferences"></a>
 <h4>PipInterfacePlugin.setPreferences</h4>
 <b>setPreferences</b>(<i>key, value</i>)
 <p>
-        Public method to store the various refactoring settings.
+        Public method to store the various pip related settings.
 </p><dl>
-<dt><i>key</i></dt>
+<dt><i>key</i> (str)</dt>
 <dd>
-the key of the setting to be set (string)
-</dd><dt><i>value</i></dt>
+the key of the setting to be set
+</dd><dt><i>value</i> (any)</dt>
 <dd>
 the value to be set
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
-<a NAME="_findDefaultExecutables" ID="_findDefaultExecutables"></a>
-<h2>_findDefaultExecutables</h2>
-<b>_findDefaultExecutables</b>(<i>majorVersion</i>)
-<p>
-    Restricted function to determine the name and path of the executables.
-</p><dl>
-<dt><i>majorVersion</i></dt>
-<dd>
-major python version of the executables (int)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-path names of the executables (list of string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
 <a NAME="createPipPage" ID="createPipPage"></a>
 <h2>createPipPage</h2>
 <b>createPipPage</b>(<i>configDlg</i>)
@@ -274,12 +257,6 @@
 </dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
-<a NAME="getExePath" ID="getExePath"></a>
-<h2>getExePath</h2>
-<b>getExePath</b>(<i>branch, access, versionStr</i>)
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
 <a NAME="prepareUninstall" ID="prepareUninstall"></a>
 <h2>prepareUninstall</h2>
 <b>prepareUninstall</b>(<i></i>)
--- a/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.ConfigurationPage.PipPage.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.ConfigurationPage.PipPage.html	Mon Jul 02 18:59:30 2018 +0200
@@ -21,7 +21,7 @@
 <body><a NAME="top" ID="top"></a>
 <h1>eric6.Plugins.UiExtensionPlugins.PipInterface.ConfigurationPage.PipPage</h1>
 <p>
-Package implementing the configuration page.
+Package implementing the pip configuration page.
 </p>
 <h3>Global Attributes</h3>
 <table>
@@ -31,7 +31,7 @@
 <table>
 <tr>
 <td><a href="#PipPage">PipPage</a></td>
-<td>Class implementing the configuration page.</td>
+<td>Class implementing the pip configuration page.</td>
 </tr>
 </table>
 <h3>Functions</h3>
@@ -42,7 +42,7 @@
 <a NAME="PipPage" ID="PipPage"></a>
 <h2>PipPage</h2>
 <p>
-    Class implementing the configuration page.
+    Class implementing the pip configuration page.
 </p>
 <h3>Derived from</h3>
 ConfigurationPageBase, Ui_PipPage
@@ -60,12 +60,6 @@
 <td><a href="#PipPage.__init__">PipPage</a></td>
 <td>Constructor</td>
 </tr><tr>
-<td><a href="#PipPage.on_addButton_clicked">on_addButton_clicked</a></td>
-<td>Private slot used to add an executable to the list.</td>
-</tr><tr>
-<td><a href="#PipPage.on_defaultListButton_clicked">on_defaultListButton_clicked</a></td>
-<td>Private slot to load the default list of pip executables.</td>
-</tr><tr>
 <td><a href="#PipPage.save">save</a></td>
 <td>Public slot to save the pip configuration.</td>
 </tr>
@@ -80,21 +74,11 @@
 <p>
         Constructor
 </p><dl>
-<dt><i>plugin</i></dt>
+<dt><i>plugin</i> (PipInterfacePlugin)</dt>
 <dd>
 reference to the plugin object
 </dd>
-</dl><a NAME="PipPage.on_addButton_clicked" ID="PipPage.on_addButton_clicked"></a>
-<h4>PipPage.on_addButton_clicked</h4>
-<b>on_addButton_clicked</b>(<i></i>)
-<p>
-        Private slot used to add an executable to the list.
-</p><a NAME="PipPage.on_defaultListButton_clicked" ID="PipPage.on_defaultListButton_clicked"></a>
-<h4>PipPage.on_defaultListButton_clicked</h4>
-<b>on_defaultListButton_clicked</b>(<i></i>)
-<p>
-        Private slot to load the default list of pip executables.
-</p><a NAME="PipPage.save" ID="PipPage.save"></a>
+</dl><a NAME="PipPage.save" ID="PipPage.save"></a>
 <h4>PipPage.save</h4>
 <b>save</b>(<i></i>)
 <p>
--- a/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.Pip.html	Mon Jul 02 18:59:30 2018 +0200
@@ -78,9 +78,6 @@
 <td><a href="#Pip.__generateRequirements">__generateRequirements</a></td>
 <td>Private slot to generate the contents for a requirements file.</td>
 </tr><tr>
-<td><a href="#Pip.__getPython">__getPython</a></td>
-<td>Private method to derive the path to the python executable given the path to the pip executable.</td>
-</tr><tr>
 <td><a href="#Pip.__getUserConfig">__getUserConfig</a></td>
 <td>Private method to get the name of the user configuration file.</td>
 </tr><tr>
@@ -88,7 +85,7 @@
 <td>Private method to get the name of the virtualenv configuration file.</td>
 </tr><tr>
 <td><a href="#Pip.__handleTearOffMenu">__handleTearOffMenu</a></td>
-<td>Private slot to handle a change of the pip executable.</td>
+<td>Private slot to handle a change of the selected virtual environment.</td>
 </tr><tr>
 <td><a href="#Pip.__installLocalPackage">__installLocalPackage</a></td>
 <td>Private slot to install a package available on local storage.</td>
@@ -120,8 +117,8 @@
 <td><a href="#Pip.__searchPyPI">__searchPyPI</a></td>
 <td>Private slot to search the Python Package Index.</td>
 </tr><tr>
-<td><a href="#Pip.__selectPipExecutable">__selectPipExecutable</a></td>
-<td>Private method to select the pip executable to be used.</td>
+<td><a href="#Pip.__selectPipVirtualenv">__selectPipVirtualenv</a></td>
+<td>Private method to select the virtual environment to be used.</td>
 </tr><tr>
 <td><a href="#Pip.__uninstallPackages">__uninstallPackages</a></td>
 <td>Private slot to uninstall packages to be given by the user.</td>
@@ -132,17 +129,26 @@
 <td><a href="#Pip.__upgradePackages">__upgradePackages</a></td>
 <td>Private slot to upgrade packages to be given by the user.</td>
 </tr><tr>
+<td><a href="#Pip.getDefaultEnvironmentString">getDefaultEnvironmentString</a></td>
+<td>Public method to get the string for the default environment.</td>
+</tr><tr>
 <td><a href="#Pip.getMenu">getMenu</a></td>
 <td>Public method to get a reference to the requested menu.</td>
 </tr><tr>
 <td><a href="#Pip.getMenuNames">getMenuNames</a></td>
 <td>Public method to get the names of all menus.</td>
 </tr><tr>
+<td><a href="#Pip.getVirtualenvInterpreter">getVirtualenvInterpreter</a></td>
+<td>Public method to get the interpreter for a virtual environment.</td>
+</tr><tr>
+<td><a href="#Pip.getVirtualenvNames">getVirtualenvNames</a></td>
+<td>Public method to get a sorted list of virtual environment names.</td>
+</tr><tr>
 <td><a href="#Pip.initActions">initActions</a></td>
-<td>Public method to define the Django actions.</td>
+<td>Public method to define the actions.</td>
 </tr><tr>
 <td><a href="#Pip.initMenu">initMenu</a></td>
-<td>Public slot to initialize the Django menu.</td>
+<td>Public slot to initialize the menu.</td>
 </tr><tr>
 <td><a href="#Pip.installPackages">installPackages</a></td>
 <td>Public method to install the given list of packages.</td>
@@ -170,12 +176,12 @@
 <p>
         Constructor
 </p><dl>
-<dt><i>plugin</i></dt>
+<dt><i>plugin</i> (PipInterfacePlugin)</dt>
 <dd>
 reference to the plugin object
-</dd><dt><i>parent</i></dt>
+</dd><dt><i>parent</i> (QObject)</dt>
 <dd>
-parent (QObject)
+parent
 </dd>
 </dl><a NAME="Pip.__aboutToShowMenu" ID="Pip.__aboutToShowMenu"></a>
 <h4>Pip.__aboutToShowMenu</h4>
@@ -208,10 +214,10 @@
 <p>
         Private method to edit a configuration.
 </p><dl>
-<dt><i>virtualenv</i></dt>
+<dt><i>virtualenv</i> (bool)</dt>
 <dd>
 flag indicating to edit the current virtualenv
-            configuration file (boolean)
+            configuration file
 </dd>
 </dl><a NAME="Pip.__editUserConfiguration" ID="Pip.__editUserConfiguration"></a>
 <h4>Pip.__editUserConfiguration</h4>
@@ -228,28 +234,7 @@
 <b>__generateRequirements</b>(<i></i>)
 <p>
         Private slot to generate the contents for a requirements file.
-</p><a NAME="Pip.__getPython" ID="Pip.__getPython"></a>
-<h4>Pip.__getPython</h4>
-<b>__getPython</b>(<i>cmd</i>)
-<p>
-        Private method to derive the path to the python executable given the
-        path to the pip executable.
-</p><dl>
-<dt><i>cmd</i> (str)</dt>
-<dd>
-path of the pip executable
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-path of the python executable
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl><a NAME="Pip.__getUserConfig" ID="Pip.__getUserConfig"></a>
+</p><a NAME="Pip.__getUserConfig" ID="Pip.__getUserConfig"></a>
 <h4>Pip.__getUserConfig</h4>
 <b>__getUserConfig</b>(<i></i>)
 <p>
@@ -257,7 +242,12 @@
 </p><dl>
 <dt>Returns:</dt>
 <dd>
-path of the user configuration file (string)
+path of the user configuration file
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl><a NAME="Pip.__getVirtualenvConfig" ID="Pip.__getVirtualenvConfig"></a>
 <h4>Pip.__getVirtualenvConfig</h4>
@@ -267,17 +257,22 @@
 </p><dl>
 <dt>Returns:</dt>
 <dd>
-path of the virtualenv configuration file (string)
+path of the virtualenv configuration file
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl><a NAME="Pip.__handleTearOffMenu" ID="Pip.__handleTearOffMenu"></a>
 <h4>Pip.__handleTearOffMenu</h4>
-<b>__handleTearOffMenu</b>(<i>pip</i>)
+<b>__handleTearOffMenu</b>(<i>venvName</i>)
 <p>
-        Private slot to handle a change of the pip executable.
+        Private slot to handle a change of the selected virtual environment.
 </p><dl>
-<dt><i>pip</i> (str)</dt>
+<dt><i>venvName</i> (str)</dt>
 <dd>
-path of the pip executable
+logical name of the virtual environment
 </dd>
 </dl><a NAME="Pip.__installLocalPackage" ID="Pip.__installLocalPackage"></a>
 <h4>Pip.__installLocalPackage</h4>
@@ -291,10 +286,16 @@
         Private slot to install packages to be given by the user.
 </p><a NAME="Pip.__installPip" ID="Pip.__installPip"></a>
 <h4>Pip.__installPip</h4>
-<b>__installPip</b>(<i></i>)
+<b>__installPip</b>(<i>userSite=False</i>)
 <p>
         Private slot to install pip.
-</p><a NAME="Pip.__installRequirements" ID="Pip.__installRequirements"></a>
+</p><dl>
+<dt><i>userSite</i> (bool)</dt>
+<dd>
+flag indicating an install to the user install
+            directory
+</dd>
+</dl><a NAME="Pip.__installRequirements" ID="Pip.__installRequirements"></a>
 <h4>Pip.__installRequirements</h4>
 <b>__installRequirements</b>(<i></i>)
 <p>
@@ -339,11 +340,11 @@
 <b>__searchPyPI</b>(<i></i>)
 <p>
         Private slot to search the Python Package Index.
-</p><a NAME="Pip.__selectPipExecutable" ID="Pip.__selectPipExecutable"></a>
-<h4>Pip.__selectPipExecutable</h4>
-<b>__selectPipExecutable</b>(<i></i>)
+</p><a NAME="Pip.__selectPipVirtualenv" ID="Pip.__selectPipVirtualenv"></a>
+<h4>Pip.__selectPipVirtualenv</h4>
+<b>__selectPipVirtualenv</b>(<i></i>)
 <p>
-        Private method to select the pip executable to be used.
+        Private method to select the virtual environment to be used.
 </p><a NAME="Pip.__uninstallPackages" ID="Pip.__uninstallPackages"></a>
 <h4>Pip.__uninstallPackages</h4>
 <b>__uninstallPackages</b>(<i></i>)
@@ -359,22 +360,42 @@
 <b>__upgradePackages</b>(<i></i>)
 <p>
         Private slot to upgrade packages to be given by the user.
-</p><a NAME="Pip.getMenu" ID="Pip.getMenu"></a>
+</p><a NAME="Pip.getDefaultEnvironmentString" ID="Pip.getDefaultEnvironmentString"></a>
+<h4>Pip.getDefaultEnvironmentString</h4>
+<b>getDefaultEnvironmentString</b>(<i></i>)
+<p>
+        Public method to get the string for the default environment.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+string for the default environment
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl><a NAME="Pip.getMenu" ID="Pip.getMenu"></a>
 <h4>Pip.getMenu</h4>
 <b>getMenu</b>(<i>name</i>)
 <p>
         Public method to get a reference to the requested menu.
 </p><dl>
-<dt><i>name</i></dt>
+<dt><i>name</i> (str)</dt>
 <dd>
-name of the menu (string)
+name of the menu
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-reference to the menu (QMenu) or None, if no
+reference to the menu or None, if no
             menu with the given name exists
 </dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+QMenu or None
+</dd>
 </dl><a NAME="Pip.getMenuNames" ID="Pip.getMenuNames"></a>
 <h4>Pip.getMenuNames</h4>
 <b>getMenuNames</b>(<i></i>)
@@ -383,39 +404,88 @@
 </p><dl>
 <dt>Returns:</dt>
 <dd>
-menu names (list of string)
+menu names
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
+</dd>
+</dl><a NAME="Pip.getVirtualenvInterpreter" ID="Pip.getVirtualenvInterpreter"></a>
+<h4>Pip.getVirtualenvInterpreter</h4>
+<b>getVirtualenvInterpreter</b>(<i>venvName</i>)
+<p>
+        Public method to get the interpreter for a virtual environment.
+</p><dl>
+<dt><i>venvName</i> (str)</dt>
+<dd>
+logical name for the virtual environment
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+interpreter path
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl><a NAME="Pip.getVirtualenvNames" ID="Pip.getVirtualenvNames"></a>
+<h4>Pip.getVirtualenvNames</h4>
+<b>getVirtualenvNames</b>(<i></i>)
+<p>
+        Public method to get a sorted list of virtual environment names.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+sorted list of virtual environment names
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
 </dd>
 </dl><a NAME="Pip.initActions" ID="Pip.initActions"></a>
 <h4>Pip.initActions</h4>
 <b>initActions</b>(<i></i>)
 <p>
-        Public method to define the Django actions.
+        Public method to define the actions.
 </p><a NAME="Pip.initMenu" ID="Pip.initMenu"></a>
 <h4>Pip.initMenu</h4>
 <b>initMenu</b>(<i></i>)
 <p>
-        Public slot to initialize the Django menu.
+        Public slot to initialize the menu.
 </p><dl>
 <dt>Returns:</dt>
 <dd>
-the menu generated (QMenu)
+the menu generated
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+QMenu
 </dd>
 </dl><a NAME="Pip.installPackages" ID="Pip.installPackages"></a>
 <h4>Pip.installPackages</h4>
-<b>installPackages</b>(<i>packages, cmd=""</i>)
+<b>installPackages</b>(<i>packages, venvName="", userSite=False</i>)
 <p>
         Public method to install the given list of packages.
 </p><dl>
-<dt><i>packages</i></dt>
+<dt><i>packages</i> (list of str)</dt>
+<dd>
+list of packages to install
+</dd><dt><i>venvName</i> (str)</dt>
 <dd>
-list of packages to install (list of string)
-</dd><dt><i>cmd</i></dt>
+name of the virtual environment to be used
+</dd><dt><i>userSite</i> (bool)</dt>
 <dd>
-pip command to be used (string)
+flag indicating an install to the user install
+            directory
 </dd>
 </dl><a NAME="Pip.runProcess" ID="Pip.runProcess"></a>
 <h4>Pip.runProcess</h4>
-<b>runProcess</b>(<i>args, cmd=""</i>)
+<b>runProcess</b>(<i>args, interpreter</i>)
 <p>
         Public method to execute the current pip with the given arguments.
 </p><p>
@@ -425,9 +495,9 @@
 <dt><i>args</i> (list of str)</dt>
 <dd>
 list of command line arguments
-</dd><dt><i>cmd</i> (str)</dt>
+</dd><dt><i>interpreter</i> (str)</dt>
 <dd>
-pip executable to be used
+path of the Python interpreter to be used
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
@@ -442,49 +512,67 @@
 </dd>
 </dl><a NAME="Pip.uninstallPackages" ID="Pip.uninstallPackages"></a>
 <h4>Pip.uninstallPackages</h4>
-<b>uninstallPackages</b>(<i>packages, cmd=""</i>)
+<b>uninstallPackages</b>(<i>packages, venvName=""</i>)
 <p>
         Public method to uninstall the given list of packages.
 </p><dl>
-<dt><i>packages</i></dt>
+<dt><i>packages</i> (list of str)</dt>
 <dd>
-list of packages to uninstall (list of string)
-</dd><dt><i>cmd</i></dt>
+list of packages to uninstall
+</dd><dt><i>venvName</i> (str)</dt>
 <dd>
-pip command to be used (string)
+name of the virtual environment to be used
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-flag indicating a successful execution (boolean)
+flag indicating a successful execution
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
 </dd>
 </dl><a NAME="Pip.upgradePackages" ID="Pip.upgradePackages"></a>
 <h4>Pip.upgradePackages</h4>
-<b>upgradePackages</b>(<i>packages, cmd=""</i>)
+<b>upgradePackages</b>(<i>packages, venvName="", userSite=False</i>)
 <p>
         Public method to upgrade the given list of packages.
 </p><dl>
-<dt><i>packages</i></dt>
+<dt><i>packages</i> (list of str)</dt>
+<dd>
+list of packages to upgrade
+</dd><dt><i>venvName</i> (str)</dt>
 <dd>
-list of packages to upgrade (list of string)
-</dd><dt><i>cmd</i></dt>
+name of the virtual environment to be used
+</dd><dt><i>userSite</i> (bool)</dt>
 <dd>
-pip command to be used (string)
+flag indicating an install to the user install
+            directory
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-flag indicating a successful execution (boolean)
+flag indicating a successful execution
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
 </dd>
 </dl><a NAME="Pip.upgradePip" ID="Pip.upgradePip"></a>
 <h4>Pip.upgradePip</h4>
-<b>upgradePip</b>(<i>pip=""</i>)
+<b>upgradePip</b>(<i>venvName="", userSite=False</i>)
 <p>
         Public method to upgrade pip itself.
 </p><dl>
-<dt><i>pip</i> (str)</dt>
+<dt><i>venvName</i> (str)</dt>
 <dd>
-pip command to be used
+name of the virtual environment to be used
+</dd><dt><i>userSite</i> (bool)</dt>
+<dd>
+flag indicating an install to the user install
+            directory
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
--- a/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.PipDialog.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.PipDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -31,7 +31,7 @@
 <table>
 <tr>
 <td><a href="#PipDialog">PipDialog</a></td>
-<td>Class implementing a dialog showing the output of a pip command.</td>
+<td>Class implementing a dialog showing the output of a 'python -m pip' command.</td>
 </tr>
 </table>
 <h3>Functions</h3>
@@ -42,7 +42,8 @@
 <a NAME="PipDialog" ID="PipDialog"></a>
 <h2>PipDialog</h2>
 <p>
-    Class implementing a dialog showing the output of a pip command.
+    Class implementing a dialog showing the output of a 'python -m pip'
+    command.
 </p>
 <h3>Derived from</h3>
 QDialog, Ui_PipDialog
@@ -98,12 +99,12 @@
 <p>
         Constructor
 </p><dl>
-<dt><i>text</i></dt>
+<dt><i>text</i> (str)</dt>
 <dd>
-text to be shown by the label (string)
-</dd><dt><i>parent</i></dt>
+text to be shown by the label
+</dd><dt><i>parent</i> (QWidget)</dt>
 <dd>
-reference to the parent widget (QWidget)
+reference to the parent widget
 </dd>
 </dl><a NAME="PipDialog.__addOutput" ID="PipDialog.__addOutput"></a>
 <h4>PipDialog.__addOutput</h4>
@@ -127,12 +128,12 @@
 <p>
         Private slot connected to the finished signal.
 </p><dl>
-<dt><i>exitCode</i></dt>
+<dt><i>exitCode</i> (int)</dt>
 <dd>
-exit code of the process (integer)
-</dd><dt><i>exitStatus</i></dt>
+exit code of the process
+</dd><dt><i>exitStatus</i> (QProcess.ExitStatus)</dt>
 <dd>
-exit status of the process (QProcess.ExitStatus)
+exit status of the process
 </dd>
 </dl><a NAME="PipDialog.__readStderr" ID="PipDialog.__readStderr"></a>
 <h4>PipDialog.__readStderr</h4>
@@ -156,9 +157,9 @@
 <p>
         Protected slot implementing a close event handler.
 </p><dl>
-<dt><i>e</i></dt>
+<dt><i>e</i> (QCloseEvent)</dt>
 <dd>
-close event (QCloseEvent)
+close event
 </dd>
 </dl><a NAME="PipDialog.on_buttonBox_clicked" ID="PipDialog.on_buttonBox_clicked"></a>
 <h4>PipDialog.on_buttonBox_clicked</h4>
@@ -166,9 +167,9 @@
 <p>
         Private slot called by a button of the button box clicked.
 </p><dl>
-<dt><i>button</i></dt>
+<dt><i>button</i> (QAbstractButton)</dt>
 <dd>
-button that was clicked (QAbstractButton)
+button that was clicked
 </dd>
 </dl><a NAME="PipDialog.startProcess" ID="PipDialog.startProcess"></a>
 <h4>PipDialog.startProcess</h4>
@@ -176,28 +177,33 @@
 <p>
         Public slot used to start the process.
 </p><dl>
-<dt><i>cmd</i></dt>
+<dt><i>cmd</i> (str)</dt>
 <dd>
-name of the pip executable to be used (string)
-</dd><dt><i>args</i></dt>
+name of the pip executable to be used
+</dd><dt><i>args</i> (list of str)</dt>
 <dd>
-list of arguments for the process (list of strings)
-</dd><dt><i>showArgs=</i></dt>
+list of arguments for the process
+</dd><dt><i>showArgs=</i> (bool)</dt>
 <dd>
-flag indicating to show the arguments (boolean)
+flag indicating to show the arguments
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
 flag indicating a successful start of the process
 </dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
 </dl><a NAME="PipDialog.startProcesses" ID="PipDialog.startProcesses"></a>
 <h4>PipDialog.startProcesses</h4>
 <b>startProcesses</b>(<i>processParams</i>)
 <p>
         Public method to issue a list of commands to be executed.
 </p><dl>
-<dt><i>processParams</i> (list of tuples of str and list of str)</dt>
+<dt><i>processParams</i> (list of tuples of (str, list of str))</dt>
 <dd>
 list of tuples containing the command
             and arguments
--- a/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.PipFileSelectionDialog.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.PipFileSelectionDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -73,16 +73,19 @@
 </table>
 <a NAME="PipFileSelectionDialog.__init__" ID="PipFileSelectionDialog.__init__"></a>
 <h4>PipFileSelectionDialog (Constructor)</h4>
-<b>PipFileSelectionDialog</b>(<i>plugin, mode, parent=None</i>)
+<b>PipFileSelectionDialog</b>(<i>pip, mode, install=True, parent=None</i>)
 <p>
         Constructor
 </p><dl>
-<dt><i>plugin</i> (PipInterfacePlugin)</dt>
+<dt><i>pip</i> (Pip)</dt>
 <dd>
-reference to the plugin object
+reference to the pip object
 </dd><dt><i>mode</i> (str)</dt>
 <dd>
 mode of the dialog
+</dd><dt><i>install</i> (bool)</dt>
+<dd>
+flag indicating an install action
 </dd><dt><i>parent</i> (QWidget)</dt>
 <dd>
 reference to the parent widget
@@ -95,13 +98,14 @@
 </p><dl>
 <dt>Returns:</dt>
 <dd>
-tuple with the pip command and the name of the
-            selected file
+tuple with the environment name, the name of the
+            selected file and a flag indicating to install to the
+            user install directory
 </dd>
 </dl><dl>
 <dt>Return Type:</dt>
 <dd>
-tuple of (str, str)
+tuple of (str, str, bool)
 </dd>
 </dl><a NAME="PipFileSelectionDialog.on_filePicker_textChanged" ID="PipFileSelectionDialog.on_filePicker_textChanged"></a>
 <h4>PipFileSelectionDialog.on_filePicker_textChanged</h4>
--- a/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.PipFreezeDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -78,18 +78,12 @@
 <td><a href="#PipFreezeDialog.on_copyButton_clicked">on_copyButton_clicked</a></td>
 <td>Private slot to copy the requirements text to the clipboard.</td>
 </tr><tr>
-<td><a href="#PipFreezeDialog.on_fileButton_clicked">on_fileButton_clicked</a></td>
-<td>Private slot to enter the requirements file via a file selection dialog.</td>
-</tr><tr>
 <td><a href="#PipFreezeDialog.on_insertButton_clicked">on_insertButton_clicked</a></td>
 <td>Private slot to insert the requirements text at the cursor position of the current editor.</td>
 </tr><tr>
 <td><a href="#PipFreezeDialog.on_localCheckBox_clicked">on_localCheckBox_clicked</a></td>
 <td>Private slot handling the switching of the local mode.</td>
 </tr><tr>
-<td><a href="#PipFreezeDialog.on_pipComboBox_activated">on_pipComboBox_activated</a></td>
-<td>Private slot handling the selection of a pip executable.</td>
-</tr><tr>
 <td><a href="#PipFreezeDialog.on_replaceAllButton_clicked">on_replaceAllButton_clicked</a></td>
 <td>Private slot to replace the text of the current editor with the requirements text.</td>
 </tr><tr>
@@ -99,7 +93,7 @@
 <td><a href="#PipFreezeDialog.on_requirementsEdit_textChanged">on_requirementsEdit_textChanged</a></td>
 <td>Private slot handling changes of the requirements text.</td>
 </tr><tr>
-<td><a href="#PipFreezeDialog.on_requirementsFileEdit_textChanged">on_requirementsFileEdit_textChanged</a></td>
+<td><a href="#PipFreezeDialog.on_requirementsFilePicker_textChanged">on_requirementsFilePicker_textChanged</a></td>
 <td>Private slot handling a change of the requirements file name.</td>
 </tr><tr>
 <td><a href="#PipFreezeDialog.on_saveButton_clicked">on_saveButton_clicked</a></td>
@@ -108,6 +102,9 @@
 <td><a href="#PipFreezeDialog.on_saveToButton_clicked">on_saveToButton_clicked</a></td>
 <td>Private slot to write the requirements text to a new file.</td>
 </tr><tr>
+<td><a href="#PipFreezeDialog.on_venvComboBox_activated">on_venvComboBox_activated</a></td>
+<td>Private slot handling the selection of a virtual environment.</td>
+</tr><tr>
 <td><a href="#PipFreezeDialog.start">start</a></td>
 <td>Public method to start the command.</td>
 </tr>
@@ -118,19 +115,16 @@
 </table>
 <a NAME="PipFreezeDialog.__init__" ID="PipFreezeDialog.__init__"></a>
 <h4>PipFreezeDialog (Constructor)</h4>
-<b>PipFreezeDialog</b>(<i>pip, plugin, parent=None</i>)
+<b>PipFreezeDialog</b>(<i>pip, parent=None</i>)
 <p>
         Constructor
 </p><dl>
-<dt><i>pip</i></dt>
-<dd>
-reference to the master object (Pip)
-</dd><dt><i>plugin</i></dt>
+<dt><i>pip</i> (Pip)</dt>
 <dd>
-reference to the plugin object (ToolPipPlugin)
-</dd><dt><i>parent</i></dt>
+reference to the master object
+</dd><dt><i>parent</i> (QWidget)</dt>
 <dd>
-reference to the parent widget (QWidget)
+reference to the parent widget
 </dd>
 </dl><a NAME="PipFreezeDialog.__refresh" ID="PipFreezeDialog.__refresh"></a>
 <h4>PipFreezeDialog.__refresh</h4>
@@ -148,9 +142,9 @@
 <p>
         Private method to write the requirements text to a file.
 </p><dl>
-<dt><i>fileName</i></dt>
+<dt><i>fileName</i> (str)</dt>
 <dd>
-name of the file to write to (string)
+name of the file to write to
 </dd>
 </dl><a NAME="PipFreezeDialog.closeEvent" ID="PipFreezeDialog.closeEvent"></a>
 <h4>PipFreezeDialog.closeEvent</h4>
@@ -158,9 +152,9 @@
 <p>
         Protected slot implementing a close event handler.
 </p><dl>
-<dt><i>e</i></dt>
+<dt><i>e</i> (QCloseEvent)</dt>
 <dd>
-close event (QCloseEvent)
+close event
 </dd>
 </dl><a NAME="PipFreezeDialog.on_buttonBox_clicked" ID="PipFreezeDialog.on_buttonBox_clicked"></a>
 <h4>PipFreezeDialog.on_buttonBox_clicked</h4>
@@ -168,21 +162,15 @@
 <p>
         Private slot called by a button of the button box clicked.
 </p><dl>
-<dt><i>button</i></dt>
+<dt><i>button</i> (QAbstractButton)</dt>
 <dd>
-button that was clicked (QAbstractButton)
+button that was clicked
 </dd>
 </dl><a NAME="PipFreezeDialog.on_copyButton_clicked" ID="PipFreezeDialog.on_copyButton_clicked"></a>
 <h4>PipFreezeDialog.on_copyButton_clicked</h4>
 <b>on_copyButton_clicked</b>(<i></i>)
 <p>
         Private slot to copy the requirements text to the clipboard.
-</p><a NAME="PipFreezeDialog.on_fileButton_clicked" ID="PipFreezeDialog.on_fileButton_clicked"></a>
-<h4>PipFreezeDialog.on_fileButton_clicked</h4>
-<b>on_fileButton_clicked</b>(<i></i>)
-<p>
-        Private slot to enter the requirements file via a file selection
-        dialog.
 </p><a NAME="PipFreezeDialog.on_insertButton_clicked" ID="PipFreezeDialog.on_insertButton_clicked"></a>
 <h4>PipFreezeDialog.on_insertButton_clicked</h4>
 <b>on_insertButton_clicked</b>(<i></i>)
@@ -195,19 +183,9 @@
 <p>
         Private slot handling the switching of the local mode.
 </p><dl>
-<dt><i>checked</i></dt>
+<dt><i>checked</i> (bool)</dt>
 <dd>
-state of the local check box (boolean)
-</dd>
-</dl><a NAME="PipFreezeDialog.on_pipComboBox_activated" ID="PipFreezeDialog.on_pipComboBox_activated"></a>
-<h4>PipFreezeDialog.on_pipComboBox_activated</h4>
-<b>on_pipComboBox_activated</b>(<i>txt</i>)
-<p>
-        Private slot handling the selection of a pip executable.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-path of the pip executable (string)
+state of the local check box
 </dd>
 </dl><a NAME="PipFreezeDialog.on_replaceAllButton_clicked" ID="PipFreezeDialog.on_replaceAllButton_clicked"></a>
 <h4>PipFreezeDialog.on_replaceAllButton_clicked</h4>
@@ -226,15 +204,15 @@
 <b>on_requirementsEdit_textChanged</b>(<i></i>)
 <p>
         Private slot handling changes of the requirements text.
-</p><a NAME="PipFreezeDialog.on_requirementsFileEdit_textChanged" ID="PipFreezeDialog.on_requirementsFileEdit_textChanged"></a>
-<h4>PipFreezeDialog.on_requirementsFileEdit_textChanged</h4>
-<b>on_requirementsFileEdit_textChanged</b>(<i>txt</i>)
+</p><a NAME="PipFreezeDialog.on_requirementsFilePicker_textChanged" ID="PipFreezeDialog.on_requirementsFilePicker_textChanged"></a>
+<h4>PipFreezeDialog.on_requirementsFilePicker_textChanged</h4>
+<b>on_requirementsFilePicker_textChanged</b>(<i>txt</i>)
 <p>
         Private slot handling a change of the requirements file name.
 </p><dl>
-<dt><i>txt</i></dt>
+<dt><i>txt</i> (str)</dt>
 <dd>
-name of the requirements file (string)
+name of the requirements file
 </dd>
 </dl><a NAME="PipFreezeDialog.on_saveButton_clicked" ID="PipFreezeDialog.on_saveButton_clicked"></a>
 <h4>PipFreezeDialog.on_saveButton_clicked</h4>
@@ -246,7 +224,17 @@
 <b>on_saveToButton_clicked</b>(<i></i>)
 <p>
         Private slot to write the requirements text to a new file.
-</p><a NAME="PipFreezeDialog.start" ID="PipFreezeDialog.start"></a>
+</p><a NAME="PipFreezeDialog.on_venvComboBox_activated" ID="PipFreezeDialog.on_venvComboBox_activated"></a>
+<h4>PipFreezeDialog.on_venvComboBox_activated</h4>
+<b>on_venvComboBox_activated</b>(<i>txt</i>)
+<p>
+        Private slot handling the selection of a virtual environment.
+</p><dl>
+<dt><i>txt</i> (str)</dt>
+<dd>
+virtual environment
+</dd>
+</dl><a NAME="PipFreezeDialog.start" ID="PipFreezeDialog.start"></a>
 <h4>PipFreezeDialog.start</h4>
 <b>start</b>(<i></i>)
 <p>
--- a/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.PipListDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -114,8 +114,11 @@
 <td><a href="#PipListDialog.on_packageList_itemSelectionChanged">on_packageList_itemSelectionChanged</a></td>
 <td>Private slot handling the selection of a package.</td>
 </tr><tr>
-<td><a href="#PipListDialog.on_pipComboBox_activated">on_pipComboBox_activated</a></td>
-<td>Private slot handling the selection of a pip executable.</td>
+<td><a href="#PipListDialog.on_userCheckBox_clicked">on_userCheckBox_clicked</a></td>
+<td>Private slot handling the switching of the 'user-site' mode.</td>
+</tr><tr>
+<td><a href="#PipListDialog.on_venvComboBox_activated">on_venvComboBox_activated</a></td>
+<td>Private slot handling the selection of a virtual environment.</td>
 </tr><tr>
 <td><a href="#PipListDialog.on_verboseCheckBox_clicked">on_verboseCheckBox_clicked</a></td>
 <td>Private slot to handle a change of the verbose package information checkbox.</td>
@@ -130,26 +133,25 @@
 </table>
 <a NAME="PipListDialog.__init__" ID="PipListDialog.__init__"></a>
 <h4>PipListDialog (Constructor)</h4>
-<b>PipListDialog</b>(<i>pip, mode, plugin, title, parent=None</i>)
+<b>PipListDialog</b>(<i>pip, mode, indexUrl, title, parent=None</i>)
 <p>
         Constructor
 </p><dl>
-<dt><i>pip</i></dt>
+<dt><i>pip</i> (Pip)</dt>
 <dd>
-reference to the master object (Pip)
-</dd><dt><i>mode</i></dt>
+reference to the master object
+</dd><dt><i>mode</i> (str)</dt>
+<dd>
+list command mode (one of 'list', 'uptodate', 'outdated')
+</dd><dt><i>indexUrl</i> (str)</dt>
 <dd>
-list command mode (string; one of 'list',
-            'uptodate', 'outdated')
-</dd><dt><i>plugin</i></dt>
+URL of the pypi index
+</dd><dt><i>title</i> (str)</dt>
 <dd>
-reference to the plugin object (ToolPipPlugin)
-</dd><dt><i>title</i></dt>
+title of the dialog
+</dd><dt><i>parent</i> (QWidget)</dt>
 <dd>
-title of the dialog (string)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
+reference to the parent widget
 </dd>
 </dl><a NAME="PipListDialog.__executeUpgradePackages" ID="PipListDialog.__executeUpgradePackages"></a>
 <h4>PipListDialog.__executeUpgradePackages</h4>
@@ -173,12 +175,12 @@
 <p>
         Private slot connected to the finished signal.
 </p><dl>
-<dt><i>exitCode</i></dt>
+<dt><i>exitCode</i> (int)</dt>
 <dd>
-exit code of the process (integer)
-</dd><dt><i>exitStatus</i></dt>
+exit code of the process
+</dd><dt><i>exitStatus</i> (QProcess.ExitStatus)</dt>
 <dd>
-exit status of the process (QProcess.ExitStatus)
+exit status of the process
 </dd>
 </dl><a NAME="PipListDialog.__processOutput" ID="PipListDialog.__processOutput"></a>
 <h4>PipListDialog.__processOutput</h4>
@@ -237,9 +239,9 @@
 <p>
         Protected slot implementing a close event handler.
 </p><dl>
-<dt><i>e</i></dt>
+<dt><i>e</i> (QCloseEvent)</dt>
 <dd>
-close event (QCloseEvent)
+close event
 </dd>
 </dl><a NAME="PipListDialog.on_buttonBox_clicked" ID="PipListDialog.on_buttonBox_clicked"></a>
 <h4>PipListDialog.on_buttonBox_clicked</h4>
@@ -247,9 +249,9 @@
 <p>
         Private slot called by a button of the button box clicked.
 </p><dl>
-<dt><i>button</i></dt>
+<dt><i>button</i> (QAbstractButton)</dt>
 <dd>
-button that was clicked (QAbstractButton)
+button that was clicked
 </dd>
 </dl><a NAME="PipListDialog.on_installedFilesCheckBox_clicked" ID="PipListDialog.on_installedFilesCheckBox_clicked"></a>
 <h4>PipListDialog.on_installedFilesCheckBox_clicked</h4>
@@ -268,9 +270,9 @@
 <p>
         Private slot handling the switching of the local mode.
 </p><dl>
-<dt><i>checked</i></dt>
+<dt><i>checked</i> (bool)</dt>
 <dd>
-state of the local check box (boolean)
+state of the local check box
 </dd>
 </dl><a NAME="PipListDialog.on_notRequiredCheckBox_clicked" ID="PipListDialog.on_notRequiredCheckBox_clicked"></a>
 <h4>PipListDialog.on_notRequiredCheckBox_clicked</h4>
@@ -278,24 +280,34 @@
 <p>
         Private slot handling the switching of the 'not required' mode.
 </p><dl>
-<dt><i>checked</i></dt>
+<dt><i>checked</i> (bool)</dt>
 <dd>
-state of the 'not required' check box (boolean)
+state of the 'not required' check box
 </dd>
 </dl><a NAME="PipListDialog.on_packageList_itemSelectionChanged" ID="PipListDialog.on_packageList_itemSelectionChanged"></a>
 <h4>PipListDialog.on_packageList_itemSelectionChanged</h4>
 <b>on_packageList_itemSelectionChanged</b>(<i></i>)
 <p>
         Private slot handling the selection of a package.
-</p><a NAME="PipListDialog.on_pipComboBox_activated" ID="PipListDialog.on_pipComboBox_activated"></a>
-<h4>PipListDialog.on_pipComboBox_activated</h4>
-<b>on_pipComboBox_activated</b>(<i>txt</i>)
+</p><a NAME="PipListDialog.on_userCheckBox_clicked" ID="PipListDialog.on_userCheckBox_clicked"></a>
+<h4>PipListDialog.on_userCheckBox_clicked</h4>
+<b>on_userCheckBox_clicked</b>(<i>checked</i>)
 <p>
-        Private slot handling the selection of a pip executable.
+        Private slot handling the switching of the 'user-site' mode.
 </p><dl>
-<dt><i>txt</i></dt>
+<dt><i>checked</i> (bool)</dt>
 <dd>
-path of the pip executable (string)
+state of the 'user-site' check box
+</dd>
+</dl><a NAME="PipListDialog.on_venvComboBox_activated" ID="PipListDialog.on_venvComboBox_activated"></a>
+<h4>PipListDialog.on_venvComboBox_activated</h4>
+<b>on_venvComboBox_activated</b>(<i>txt</i>)
+<p>
+        Private slot handling the selection of a virtual environment.
+</p><dl>
+<dt><i>txt</i> (str)</dt>
+<dd>
+virtual environment
 </dd>
 </dl><a NAME="PipListDialog.on_verboseCheckBox_clicked" ID="PipListDialog.on_verboseCheckBox_clicked"></a>
 <h4>PipListDialog.on_verboseCheckBox_clicked</h4>
--- a/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.PipPackageDetailsDialog.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.PipPackageDetailsDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -89,15 +89,15 @@
 <p>
         Constructor
 </p><dl>
-<dt><i>detailsData</i></dt>
+<dt><i>detailsData</i> (dict)</dt>
 <dd>
-package details (dict)
-</dd><dt><i>downloadsData</i></dt>
+package details
+</dd><dt><i>downloadsData</i> (dict)</dt>
 <dd>
-downloads information (dict)
-</dd><dt><i>parent</i></dt>
+downloads information
+</dd><dt><i>parent</i> (QWidget)</dt>
 <dd>
-reference to the parent widget (QWidget)
+reference to the parent widget
 </dd>
 </dl><a NAME="PipPackageDetailsDialog.__formatSize" ID="PipPackageDetailsDialog.__formatSize"></a>
 <h4>PipPackageDetailsDialog.__formatSize</h4>
@@ -105,14 +105,19 @@
 <p>
         Private slot to format the size.
 </p><dl>
-<dt><i>size</i></dt>
+<dt><i>size</i> (int)</dt>
 <dd>
-size to be formatted (integer)
+size to be formatted
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-formatted size (string)
+formatted size
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl><a NAME="PipPackageDetailsDialog.__formatUploadDate" ID="PipPackageDetailsDialog.__formatUploadDate"></a>
 <h4>PipPackageDetailsDialog.__formatUploadDate</h4>
@@ -140,9 +145,9 @@
 <p>
         Private method to populate the details tab.
 </p><dl>
-<dt><i>detailsData</i></dt>
+<dt><i>detailsData</i> (dict)</dt>
 <dd>
-package details (dict)
+package details
 </dd>
 </dl><a NAME="PipPackageDetailsDialog.__populateDownloadUrls" ID="PipPackageDetailsDialog.__populateDownloadUrls"></a>
 <h4>PipPackageDetailsDialog.__populateDownloadUrls</h4>
@@ -150,9 +155,9 @@
 <p>
         Private method to populate the download URLs tab.
 </p><dl>
-<dt><i>downloadsData</i></dt>
+<dt><i>downloadsData</i> (dict)</dt>
 <dd>
-downloads information (dict)
+downloads information
 </dd>
 </dl><a NAME="PipPackageDetailsDialog.__populateRequiresProvides" ID="PipPackageDetailsDialog.__populateRequiresProvides"></a>
 <h4>PipPackageDetailsDialog.__populateRequiresProvides</h4>
@@ -160,9 +165,9 @@
 <p>
         Private method to populate the requires/provides tab.
 </p><dl>
-<dt><i>detailsData</i></dt>
+<dt><i>detailsData</i> (dict)</dt>
 <dd>
-package details (dict)
+package details
 </dd>
 </dl><a NAME="PipPackageDetailsDialog.__sanitize" ID="PipPackageDetailsDialog.__sanitize"></a>
 <h4>PipPackageDetailsDialog.__sanitize</h4>
@@ -170,17 +175,22 @@
 <p>
         Private method to clean-up the given text.
 </p><dl>
-<dt><i>text</i></dt>
+<dt><i>text</i> (str)</dt>
 <dd>
-raw text (string)
-</dd><dt><i>forUrl</i></dt>
+raw text
+</dd><dt><i>forUrl</i> (bool)</dt>
 <dd>
-flag indicating to sanitize an URL text (boolean)
+flag indicating to sanitize an URL text
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-processed text (string)
+processed text
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.PipPackagesInputDialog.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.PipPackagesInputDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -73,19 +73,22 @@
 </table>
 <a NAME="PipPackagesInputDialog.__init__" ID="PipPackagesInputDialog.__init__"></a>
 <h4>PipPackagesInputDialog (Constructor)</h4>
-<b>PipPackagesInputDialog</b>(<i>plugin, title, parent=None</i>)
+<b>PipPackagesInputDialog</b>(<i>pip, title, install=True, parent=None</i>)
 <p>
         Constructor
 </p><dl>
-<dt><i>plugin</i></dt>
+<dt><i>pip</i> (Pip)</dt>
 <dd>
-reference to the plugin object (ToolPipPlugin)
-</dd><dt><i>title</i></dt>
+reference to the pip object
+</dd><dt><i>title</i> (str)</dt>
 <dd>
-dialog title (string)
-</dd><dt><i>parent</i></dt>
+dialog title
+</dd><dt><i>install</i> (bool)</dt>
 <dd>
-reference to the parent widget (QWidget)
+flag indicating an install action
+</dd><dt><i>parent</i> (QWidget)</dt>
+<dd>
+reference to the parent widget
 </dd>
 </dl><a NAME="PipPackagesInputDialog.getData" ID="PipPackagesInputDialog.getData"></a>
 <h4>PipPackagesInputDialog.getData</h4>
@@ -95,8 +98,14 @@
 </p><dl>
 <dt>Returns:</dt>
 <dd>
-tuple with the pip command (string) and the list of
-            package specifications (list of string)
+tuple with the environment name, the list of package
+            specifications and a flag indicating to install to the user
+            install directory
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (str, list of str, bool)
 </dd>
 </dl><a NAME="PipPackagesInputDialog.on_packagesEdit_textChanged" ID="PipPackagesInputDialog.on_packagesEdit_textChanged"></a>
 <h4>PipPackagesInputDialog.on_packagesEdit_textChanged</h4>
@@ -104,9 +113,9 @@
 <p>
         Private slot handling entering package names.
 </p><dl>
-<dt><i>txt</i></dt>
+<dt><i>txt</i> (str)</dt>
 <dd>
-name of the requirements file (string)
+name of the requirements file
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.PipSearchDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -118,19 +118,19 @@
 </table>
 <a NAME="PipSearchDialog.__init__" ID="PipSearchDialog.__init__"></a>
 <h4>PipSearchDialog (Constructor)</h4>
-<b>PipSearchDialog</b>(<i>pip, plugin, parent=None</i>)
+<b>PipSearchDialog</b>(<i>pip, indexUrl, parent=None</i>)
 <p>
         Constructor
 </p><dl>
-<dt><i>pip</i></dt>
+<dt><i>pip</i> (Pip)</dt>
 <dd>
-reference to the master object (Pip)
-</dd><dt><i>plugin</i></dt>
+reference to the master object
+</dd><dt><i>indexUrl</i> (str)</dt>
 <dd>
-reference to the plugin object (ToolPipPlugin)
-</dd><dt><i>parent</i></dt>
+URL of XML RPC interface to the pypi index
+</dd><dt><i>parent</i> (QWidget)</dt>
 <dd>
-reference to the parent widget (QWidget)
+reference to the parent widget
 </dd>
 </dl><a NAME="PipSearchDialog.__detailsError" ID="PipSearchDialog.__detailsError"></a>
 <h4>PipSearchDialog.__detailsError</h4>
@@ -138,12 +138,12 @@
 <p>
         Private method handling a details error.
 </p><dl>
-<dt><i>errorCode</i></dt>
+<dt><i>errorCode</i> (int)</dt>
 <dd>
-code of the error (integer)
-</dd><dt><i>errorString</i></dt>
+code of the error
+</dd><dt><i>errorString</i> (str)</dt>
 <dd>
-error message (string)
+error message
 </dd>
 </dl><a NAME="PipSearchDialog.__displayPackageDetails" ID="PipSearchDialog.__displayPackageDetails"></a>
 <h4>PipSearchDialog.__displayPackageDetails</h4>
@@ -151,10 +151,9 @@
 <p>
         Private method to display the returned package details.
 </p><dl>
-<dt><i>data</i></dt>
+<dt><i>data</i> (tuple)</dt>
 <dd>
-result data (tuple) with downloads information in the first
-            element
+result data with downloads information in the first element
 </dd>
 </dl><a NAME="PipSearchDialog.__finish" ID="PipSearchDialog.__finish"></a>
 <h4>PipSearchDialog.__finish</h4>
@@ -178,18 +177,23 @@
 </dd>
 </dl><a NAME="PipSearchDialog.__install" ID="PipSearchDialog.__install"></a>
 <h4>PipSearchDialog.__install</h4>
-<b>__install</b>(<i></i>)
+<b>__install</b>(<i>userSite=False</i>)
 <p>
         Private slot to install the selected packages.
-</p><a NAME="PipSearchDialog.__processSearchResult" ID="PipSearchDialog.__processSearchResult"></a>
+</p><dl>
+<dt><i>userSite</i> (bool)</dt>
+<dd>
+flag indicating to install to the user directory
+</dd>
+</dl><a NAME="PipSearchDialog.__processSearchResult" ID="PipSearchDialog.__processSearchResult"></a>
 <h4>PipSearchDialog.__processSearchResult</h4>
 <b>__processSearchResult</b>(<i>data</i>)
 <p>
         Private method to process the search result data from PyPI.
 </p><dl>
-<dt><i>data</i></dt>
+<dt><i>data</i> (tuple)</dt>
 <dd>
-result data (tuple) with hits in the first element
+result data with hits in the first element
 </dd>
 </dl><a NAME="PipSearchDialog.__score" ID="PipSearchDialog.__score"></a>
 <h4>PipSearchDialog.__score</h4>
@@ -225,12 +229,12 @@
 <p>
         Private method handling a search error.
 </p><dl>
-<dt><i>errorCode</i></dt>
+<dt><i>errorCode</i> (int)</dt>
 <dd>
-code of the error (integer)
-</dd><dt><i>errorString</i></dt>
+code of the error
+</dd><dt><i>errorString</i> (str)</dt>
 <dd>
-error message (string)
+error message
 </dd>
 </dl><a NAME="PipSearchDialog.__showDetails" ID="PipSearchDialog.__showDetails"></a>
 <h4>PipSearchDialog.__showDetails</h4>
@@ -244,14 +248,19 @@
         Private method to convert the list returned from pypi into a
         packages list.
 </p><dl>
-<dt><i>hits</i></dt>
+<dt><i>hits</i> (list of dict)</dt>
 <dd>
-list returned from pypi (list of dict)
+list returned from pypi
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-list of packages (list of dict)
+list of packages
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+list of dict
 </dd>
 </dl><a NAME="PipSearchDialog.closeEvent" ID="PipSearchDialog.closeEvent"></a>
 <h4>PipSearchDialog.closeEvent</h4>
@@ -259,9 +268,9 @@
 <p>
         Protected slot implementing a close event handler.
 </p><dl>
-<dt><i>e</i></dt>
+<dt><i>e</i> (QCloseEvent)</dt>
 <dd>
-close event (QCloseEvent)
+close event
 </dd>
 </dl><a NAME="PipSearchDialog.on_buttonBox_clicked" ID="PipSearchDialog.on_buttonBox_clicked"></a>
 <h4>PipSearchDialog.on_buttonBox_clicked</h4>
@@ -269,9 +278,9 @@
 <p>
         Private slot called by a button of the button box clicked.
 </p><dl>
-<dt><i>button</i></dt>
+<dt><i>button</i> (QAbstractButton)</dt>
 <dd>
-button that was clicked (QAbstractButton)
+button that was clicked
 </dd>
 </dl><a NAME="PipSearchDialog.on_resultList_itemActivated" ID="PipSearchDialog.on_resultList_itemActivated"></a>
 <h4>PipSearchDialog.on_resultList_itemActivated</h4>
@@ -279,12 +288,12 @@
 <p>
         Private slot reacting on an item activation.
 </p><dl>
-<dt><i>item</i></dt>
+<dt><i>item</i> (QTreeWidgetItem)</dt>
 <dd>
-reference to the activated item (QTreeWidgetItem)
-</dd><dt><i>column</i></dt>
+reference to the activated item
+</dd><dt><i>column</i> (int)</dt>
 <dd>
-activated column (integer)
+activated column
 </dd>
 </dl><a NAME="PipSearchDialog.on_resultList_itemSelectionChanged" ID="PipSearchDialog.on_resultList_itemSelectionChanged"></a>
 <h4>PipSearchDialog.on_resultList_itemSelectionChanged</h4>
@@ -302,9 +311,9 @@
 <p>
         Private slot handling a change of the search term.
 </p><dl>
-<dt><i>txt</i></dt>
+<dt><i>txt</i> (str)</dt>
 <dd>
-search term (string)
+search term
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.Plugins.UiExtensionPlugins.PipInterface.PipSelectionDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.Plugins.UiExtensionPlugins.PipInterface.PipSelectionDialog</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.Plugins.UiExtensionPlugins.PipInterface.PipSelectionDialog</h1>
+<p>
+Module implementing a dialog to select the pip executable to be used.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#PipSelectionDialog">PipSelectionDialog</a></td>
+<td>Class implementing a dialog to select the pip executable to be used.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="PipSelectionDialog" ID="PipSelectionDialog"></a>
+<h2>PipSelectionDialog</h2>
+<p>
+    Class implementing a dialog to select the pip executable to be used.
+</p>
+<h3>Derived from</h3>
+QDialog, Ui_PipSelectionDialog
+<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="#PipSelectionDialog.__init__">PipSelectionDialog</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#PipSelectionDialog.getData">getData</a></td>
+<td>Public method to get the entered data.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="PipSelectionDialog.__init__" ID="PipSelectionDialog.__init__"></a>
+<h4>PipSelectionDialog (Constructor)</h4>
+<b>PipSelectionDialog</b>(<i>pip, parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>pip</i> (Pip)</dt>
+<dd>
+reference to the pip object
+</dd><dt><i>parent</i> (QWidget)</dt>
+<dd>
+reference to the parent widget
+</dd>
+</dl><a NAME="PipSelectionDialog.getData" ID="PipSelectionDialog.getData"></a>
+<h4>PipSelectionDialog.getData</h4>
+<b>getData</b>(<i></i>)
+<p>
+        Public method to get the entered data.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+tuple with the environment name and a flag indicating to
+            install to the user install directory
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (str, bool)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog.html	Sat Jun 02 12:46:57 2018 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,241 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog</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.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvConfigurationDialog</h1>
-<p>
-Module implementing a dialog to enter the parameters for the
-virtual environment.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#VirtualenvConfigurationDialog">VirtualenvConfigurationDialog</a></td>
-<td>Class implementing a dialog to enter the parameters for the virtual environment.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="VirtualenvConfigurationDialog" ID="VirtualenvConfigurationDialog"></a>
-<h2>VirtualenvConfigurationDialog</h2>
-<p>
-    Class implementing a dialog to enter the parameters for the
-    virtual environment.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_VirtualenvConfigurationDialog
-<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="#VirtualenvConfigurationDialog.__init__">VirtualenvConfigurationDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#VirtualenvConfigurationDialog.__generateArguments">__generateArguments</a></td>
-<td>Private method to generate the process arguments.</td>
-</tr><tr>
-<td><a href="#VirtualenvConfigurationDialog.__generateTargetDir">__generateTargetDir</a></td>
-<td>Private method to generate a valid target directory path.</td>
-</tr><tr>
-<td><a href="#VirtualenvConfigurationDialog.__setPyvenvVersion">__setPyvenvVersion</a></td>
-<td>Private method to determine the pyvenv version and set the respective label.</td>
-</tr><tr>
-<td><a href="#VirtualenvConfigurationDialog.__setVirtualenvVersion">__setVirtualenvVersion</a></td>
-<td>Private method to determine the virtualenv version and set the respective label.</td>
-</tr><tr>
-<td><a href="#VirtualenvConfigurationDialog.__updateOK">__updateOK</a></td>
-<td>Private method to update the enabled status of the OK button.</td>
-</tr><tr>
-<td><a href="#VirtualenvConfigurationDialog.__updateUi">__updateUi</a></td>
-<td>Private method to update the UI depending on the selected virtual environment creator (virtualenv or pyvenv).</td>
-</tr><tr>
-<td><a href="#VirtualenvConfigurationDialog.getData">getData</a></td>
-<td>Public method to retrieve the dialog data.</td>
-</tr><tr>
-<td><a href="#VirtualenvConfigurationDialog.on_extraSearchPathButton_clicked">on_extraSearchPathButton_clicked</a></td>
-<td>Private slot to select the extra search path via a directory selection dialog.</td>
-</tr><tr>
-<td><a href="#VirtualenvConfigurationDialog.on_pythonExecButton_clicked">on_pythonExecButton_clicked</a></td>
-<td>Private slot to select a Python interpreter via a file selection dialog.</td>
-</tr><tr>
-<td><a href="#VirtualenvConfigurationDialog.on_pythonExecEdit_textChanged">on_pythonExecEdit_textChanged</a></td>
-<td>Private slot to react to a change of the Python executable.</td>
-</tr><tr>
-<td><a href="#VirtualenvConfigurationDialog.on_pyvenvButton_toggled">on_pyvenvButton_toggled</a></td>
-<td>Private slot to react to the selection of 'pyvenv'.</td>
-</tr><tr>
-<td><a href="#VirtualenvConfigurationDialog.on_targetDirectoryButton_clicked">on_targetDirectoryButton_clicked</a></td>
-<td>Private slot to select the target directory via a directory selection dialog.</td>
-</tr><tr>
-<td><a href="#VirtualenvConfigurationDialog.on_targetDirectoryEdit_textChanged">on_targetDirectoryEdit_textChanged</a></td>
-<td>Private slot handling a change of the target directory.</td>
-</tr><tr>
-<td><a href="#VirtualenvConfigurationDialog.on_virtualenvButton_toggled">on_virtualenvButton_toggled</a></td>
-<td>Private slot to react to the selection of 'virtualenv'.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="VirtualenvConfigurationDialog.__init__" ID="VirtualenvConfigurationDialog.__init__"></a>
-<h4>VirtualenvConfigurationDialog (Constructor)</h4>
-<b>VirtualenvConfigurationDialog</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="VirtualenvConfigurationDialog.__generateArguments" ID="VirtualenvConfigurationDialog.__generateArguments"></a>
-<h4>VirtualenvConfigurationDialog.__generateArguments</h4>
-<b>__generateArguments</b>(<i></i>)
-<p>
-        Private method to generate the process arguments.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-process arguments (list of string)
-</dd>
-</dl><a NAME="VirtualenvConfigurationDialog.__generateTargetDir" ID="VirtualenvConfigurationDialog.__generateTargetDir"></a>
-<h4>VirtualenvConfigurationDialog.__generateTargetDir</h4>
-<b>__generateTargetDir</b>(<i></i>)
-<p>
-        Private method to generate a valid target directory path.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-target directory path (string)
-</dd>
-</dl><a NAME="VirtualenvConfigurationDialog.__setPyvenvVersion" ID="VirtualenvConfigurationDialog.__setPyvenvVersion"></a>
-<h4>VirtualenvConfigurationDialog.__setPyvenvVersion</h4>
-<b>__setPyvenvVersion</b>(<i></i>)
-<p>
-        Private method to determine the pyvenv version and set the respective
-        label.
-</p><a NAME="VirtualenvConfigurationDialog.__setVirtualenvVersion" ID="VirtualenvConfigurationDialog.__setVirtualenvVersion"></a>
-<h4>VirtualenvConfigurationDialog.__setVirtualenvVersion</h4>
-<b>__setVirtualenvVersion</b>(<i></i>)
-<p>
-        Private method to determine the virtualenv version and set the
-        respective label.
-</p><a NAME="VirtualenvConfigurationDialog.__updateOK" ID="VirtualenvConfigurationDialog.__updateOK"></a>
-<h4>VirtualenvConfigurationDialog.__updateOK</h4>
-<b>__updateOK</b>(<i></i>)
-<p>
-        Private method to update the enabled status of the OK button.
-</p><a NAME="VirtualenvConfigurationDialog.__updateUi" ID="VirtualenvConfigurationDialog.__updateUi"></a>
-<h4>VirtualenvConfigurationDialog.__updateUi</h4>
-<b>__updateUi</b>(<i></i>)
-<p>
-        Private method to update the UI depending on the selected
-        virtual environment creator (virtualenv or pyvenv).
-</p><a NAME="VirtualenvConfigurationDialog.getData" ID="VirtualenvConfigurationDialog.getData"></a>
-<h4>VirtualenvConfigurationDialog.getData</h4>
-<b>getData</b>(<i></i>)
-<p>
-        Public method to retrieve the dialog data.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-tuple containing a flag indicating the pyvenv selection
-            (boolean), the process arguments (list of string), a flag
-            indicating to open the target directory after creation (boolean),
-            a flag indicating to write a log file (boolean), a flag indicating
-            to write a script (boolean), the name of the target directory
-            (string) and the name of the python interpreter to use (string)
-</dd>
-</dl><a NAME="VirtualenvConfigurationDialog.on_extraSearchPathButton_clicked" ID="VirtualenvConfigurationDialog.on_extraSearchPathButton_clicked"></a>
-<h4>VirtualenvConfigurationDialog.on_extraSearchPathButton_clicked</h4>
-<b>on_extraSearchPathButton_clicked</b>(<i></i>)
-<p>
-        Private slot to select the extra search path via a directory
-        selection dialog.
-</p><a NAME="VirtualenvConfigurationDialog.on_pythonExecButton_clicked" ID="VirtualenvConfigurationDialog.on_pythonExecButton_clicked"></a>
-<h4>VirtualenvConfigurationDialog.on_pythonExecButton_clicked</h4>
-<b>on_pythonExecButton_clicked</b>(<i></i>)
-<p>
-        Private slot to select a Python interpreter via a file selection
-        dialog.
-</p><a NAME="VirtualenvConfigurationDialog.on_pythonExecEdit_textChanged" ID="VirtualenvConfigurationDialog.on_pythonExecEdit_textChanged"></a>
-<h4>VirtualenvConfigurationDialog.on_pythonExecEdit_textChanged</h4>
-<b>on_pythonExecEdit_textChanged</b>(<i>txt</i>)
-<p>
-        Private slot to react to a change of the Python executable.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-contents of the line edit (string)
-</dd>
-</dl><a NAME="VirtualenvConfigurationDialog.on_pyvenvButton_toggled" ID="VirtualenvConfigurationDialog.on_pyvenvButton_toggled"></a>
-<h4>VirtualenvConfigurationDialog.on_pyvenvButton_toggled</h4>
-<b>on_pyvenvButton_toggled</b>(<i>checked</i>)
-<p>
-        Private slot to react to the selection of 'pyvenv'.
-</p><dl>
-<dt><i>checked</i></dt>
-<dd>
-state of the checkbox (boolean)
-</dd>
-</dl><a NAME="VirtualenvConfigurationDialog.on_targetDirectoryButton_clicked" ID="VirtualenvConfigurationDialog.on_targetDirectoryButton_clicked"></a>
-<h4>VirtualenvConfigurationDialog.on_targetDirectoryButton_clicked</h4>
-<b>on_targetDirectoryButton_clicked</b>(<i></i>)
-<p>
-        Private slot to select the target directory via a directory
-        selection dialog.
-</p><a NAME="VirtualenvConfigurationDialog.on_targetDirectoryEdit_textChanged" ID="VirtualenvConfigurationDialog.on_targetDirectoryEdit_textChanged"></a>
-<h4>VirtualenvConfigurationDialog.on_targetDirectoryEdit_textChanged</h4>
-<b>on_targetDirectoryEdit_textChanged</b>(<i>txt</i>)
-<p>
-        Private slot handling a change of the target directory.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-target directory (string)
-</dd>
-</dl><a NAME="VirtualenvConfigurationDialog.on_virtualenvButton_toggled" ID="VirtualenvConfigurationDialog.on_virtualenvButton_toggled"></a>
-<h4>VirtualenvConfigurationDialog.on_virtualenvButton_toggled</h4>
-<b>on_virtualenvButton_toggled</b>(<i>checked</i>)
-<p>
-        Private slot to react to the selection of 'virtualenv'.
-</p><dl>
-<dt><i>checked</i></dt>
-<dd>
-state of the checkbox (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog.html	Sat Jun 02 12:46:57 2018 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,226 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog</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.Plugins.UiExtensionPlugins.VirtualenvInterface.VirtualenvExecDialog</h1>
-<p>
-Module implementing the virtualenv execution dialog.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#VirtualenvExecDialog">VirtualenvExecDialog</a></td>
-<td>Class implementing the virtualenv execution dialog.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="VirtualenvExecDialog" ID="VirtualenvExecDialog"></a>
-<h2>VirtualenvExecDialog</h2>
-<p>
-    Class implementing the virtualenv execution dialog.
-</p><p>
-    This class starts a QProcess and displays a dialog that
-    shows the output of the virtualenv or pyvenv process.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_VirtualenvExecDialog
-<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="#VirtualenvExecDialog.__init__">VirtualenvExecDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#VirtualenvExecDialog.__finish">__finish</a></td>
-<td>Private slot called when the process finished.</td>
-</tr><tr>
-<td><a href="#VirtualenvExecDialog.__logError">__logError</a></td>
-<td>Private method to log an error.</td>
-</tr><tr>
-<td><a href="#VirtualenvExecDialog.__logOutput">__logOutput</a></td>
-<td>Private method to log some output.</td>
-</tr><tr>
-<td><a href="#VirtualenvExecDialog.__nextAttempt">__nextAttempt</a></td>
-<td>Private method to start another attempt.</td>
-</tr><tr>
-<td><a href="#VirtualenvExecDialog.__readStderr">__readStderr</a></td>
-<td>Private slot to handle the readyReadStandardError signal.</td>
-</tr><tr>
-<td><a href="#VirtualenvExecDialog.__readStdout">__readStdout</a></td>
-<td>Private slot to handle the readyReadStandardOutput signal.</td>
-</tr><tr>
-<td><a href="#VirtualenvExecDialog.__writeLogFile">__writeLogFile</a></td>
-<td>Private method to write a log file to the virtualenv directory.</td>
-</tr><tr>
-<td><a href="#VirtualenvExecDialog.__writeScriptFile">__writeScriptFile</a></td>
-<td>Private method to write a script file to the virtualenv directory.</td>
-</tr><tr>
-<td><a href="#VirtualenvExecDialog.on_buttonBox_clicked">on_buttonBox_clicked</a></td>
-<td>Private slot called by a button of the button box clicked.</td>
-</tr><tr>
-<td><a href="#VirtualenvExecDialog.start">start</a></td>
-<td>Public slot to start the virtualenv command.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="VirtualenvExecDialog.__init__" ID="VirtualenvExecDialog.__init__"></a>
-<h4>VirtualenvExecDialog (Constructor)</h4>
-<b>VirtualenvExecDialog</b>(<i>pyvenv, targetDir, openTarget, createLog, createScript, interpreter, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>pyvenv</i></dt>
-<dd>
-flag indicating the use of 'pyvenv' (boolean)
-</dd><dt><i>targetDir</i></dt>
-<dd>
-name of the virtualenv directory (string)
-</dd><dt><i>openTarget</i></dt>
-<dd>
-flag indicating to open the virtualenv directory
-            in a file manager (boolean)
-</dd><dt><i>createLog</i></dt>
-<dd>
-flag indicating to create a log file of the
-            creation process (boolean)
-</dd><dt><i>createScript</i></dt>
-<dd>
-flag indicating to create a script to recreate
-            the virtual environment (boolean)
-</dd><dt><i>interpreter</i></dt>
-<dd>
-name of the python interpreter to use (string)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="VirtualenvExecDialog.__finish" ID="VirtualenvExecDialog.__finish"></a>
-<h4>VirtualenvExecDialog.__finish</h4>
-<b>__finish</b>(<i>exitCode, exitStatus, giveUp=False</i>)
-<p>
-        Private slot called when the process finished.
-</p><p>
-        It is called when the process finished or
-        the user pressed the button.
-</p><dl>
-<dt><i>exitCode</i></dt>
-<dd>
-exit code of the process (integer)
-</dd><dt><i>exitStatus</i></dt>
-<dd>
-exit status of the process (QProcess.ExitStatus)
-</dd><dt><i>giveUp=</i></dt>
-<dd>
-flag indicating to not start another attempt (boolean)
-</dd>
-</dl><a NAME="VirtualenvExecDialog.__logError" ID="VirtualenvExecDialog.__logError"></a>
-<h4>VirtualenvExecDialog.__logError</h4>
-<b>__logError</b>(<i>s</i>)
-<p>
-        Private method to log an error.
-</p><dl>
-<dt><i>s</i></dt>
-<dd>
-error string to log (string)
-</dd>
-</dl><a NAME="VirtualenvExecDialog.__logOutput" ID="VirtualenvExecDialog.__logOutput"></a>
-<h4>VirtualenvExecDialog.__logOutput</h4>
-<b>__logOutput</b>(<i>s</i>)
-<p>
-        Private method to log some output.
-</p><dl>
-<dt><i>s</i></dt>
-<dd>
-output sstring to log (string)
-</dd>
-</dl><a NAME="VirtualenvExecDialog.__nextAttempt" ID="VirtualenvExecDialog.__nextAttempt"></a>
-<h4>VirtualenvExecDialog.__nextAttempt</h4>
-<b>__nextAttempt</b>(<i></i>)
-<p>
-        Private method to start another attempt.
-</p><a NAME="VirtualenvExecDialog.__readStderr" ID="VirtualenvExecDialog.__readStderr"></a>
-<h4>VirtualenvExecDialog.__readStderr</h4>
-<b>__readStderr</b>(<i></i>)
-<p>
-        Private slot to handle the readyReadStandardError signal.
-</p><p>
-        It reads the error output of the process and inserts it into the
-        error pane.
-</p><a NAME="VirtualenvExecDialog.__readStdout" ID="VirtualenvExecDialog.__readStdout"></a>
-<h4>VirtualenvExecDialog.__readStdout</h4>
-<b>__readStdout</b>(<i></i>)
-<p>
-        Private slot to handle the readyReadStandardOutput signal.
-</p><p>
-        It reads the output of the process, formats it and inserts it into
-        the contents pane.
-</p><a NAME="VirtualenvExecDialog.__writeLogFile" ID="VirtualenvExecDialog.__writeLogFile"></a>
-<h4>VirtualenvExecDialog.__writeLogFile</h4>
-<b>__writeLogFile</b>(<i></i>)
-<p>
-        Private method to write a log file to the virtualenv directory.
-</p><a NAME="VirtualenvExecDialog.__writeScriptFile" ID="VirtualenvExecDialog.__writeScriptFile"></a>
-<h4>VirtualenvExecDialog.__writeScriptFile</h4>
-<b>__writeScriptFile</b>(<i></i>)
-<p>
-        Private method to write a script file to the virtualenv directory.
-</p><a NAME="VirtualenvExecDialog.on_buttonBox_clicked" ID="VirtualenvExecDialog.on_buttonBox_clicked"></a>
-<h4>VirtualenvExecDialog.on_buttonBox_clicked</h4>
-<b>on_buttonBox_clicked</b>(<i>button</i>)
-<p>
-        Private slot called by a button of the button box clicked.
-</p><dl>
-<dt><i>button</i></dt>
-<dd>
-button that was clicked (QAbstractButton)
-</dd>
-</dl><a NAME="VirtualenvExecDialog.start" ID="VirtualenvExecDialog.start"></a>
-<h4>VirtualenvExecDialog.start</h4>
-<b>start</b>(<i>arguments</i>)
-<p>
-        Public slot to start the virtualenv command.
-</p><dl>
-<dt><i>arguments</i></dt>
-<dd>
-commandline arguments for virtualenv/pyvenv program
-            (list of strings)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.GitAddRemoteDialog.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.GitAddRemoteDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -71,6 +71,9 @@
 </tr><tr>
 <td><a href="#GitAddRemoteDialog.on_urlEdit_textChanged">on_urlEdit_textChanged</a></td>
 <td>Private slot handling changes of the entered URL.</td>
+</tr><tr>
+<td><a href="#GitAddRemoteDialog.on_userEdit_textChanged">on_userEdit_textChanged</a></td>
+<td>Private slot handling changes of the entered user name.</td>
 </tr>
 </table>
 <h3>Static Methods</h3>
@@ -83,9 +86,9 @@
 <p>
         Constructor
 </p><dl>
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-reference to the parent widget (QWidget)
+reference to the parent widget
 </dd>
 </dl><a NAME="GitAddRemoteDialog.__updateOK" ID="GitAddRemoteDialog.__updateOK"></a>
 <h4>GitAddRemoteDialog.__updateOK</h4>
@@ -100,8 +103,12 @@
 </p><dl>
 <dt>Returns:</dt>
 <dd>
-tuple with the name (string) and URL (string) of
-            the remote repository
+tuple with name and URL of the remote repository
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (str, str)
 </dd>
 </dl><a NAME="GitAddRemoteDialog.on_nameEdit_textChanged" ID="GitAddRemoteDialog.on_nameEdit_textChanged"></a>
 <h4>GitAddRemoteDialog.on_nameEdit_textChanged</h4>
@@ -109,9 +116,9 @@
 <p>
         Private slot handling changes of the entered name.
 </p><dl>
-<dt><i>txt</i></dt>
+<dt><i>txt</i> (str)</dt>
 <dd>
-current text (string)
+current text
 </dd>
 </dl><a NAME="GitAddRemoteDialog.on_urlEdit_textChanged" ID="GitAddRemoteDialog.on_urlEdit_textChanged"></a>
 <h4>GitAddRemoteDialog.on_urlEdit_textChanged</h4>
@@ -119,9 +126,19 @@
 <p>
         Private slot handling changes of the entered URL.
 </p><dl>
-<dt><i>txt</i></dt>
+<dt><i>txt</i> (str)</dt>
 <dd>
-current text (string)
+current text
+</dd>
+</dl><a NAME="GitAddRemoteDialog.on_userEdit_textChanged" ID="GitAddRemoteDialog.on_userEdit_textChanged"></a>
+<h4>GitAddRemoteDialog.on_userEdit_textChanged</h4>
+<b>on_userEdit_textChanged</b>(<i>txt</i>)
+<p>
+        Private slot handling changes of the entered user name.
+</p><dl>
+<dt><i>txt</i> (str)</dt>
+<dd>
+current text
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.GitChangeRemoteUrlDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -0,0 +1,126 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.Plugins.VcsPlugins.vcsGit.GitChangeRemoteUrlDialog</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.Plugins.VcsPlugins.vcsGit.GitChangeRemoteUrlDialog</h1>
+<p>
+Module implementing a dialog to change the URL of a remote git repository.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#GitChangeRemoteUrlDialog">GitChangeRemoteUrlDialog</a></td>
+<td>Class implementing a dialog to change the URL of a remote git repository.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="GitChangeRemoteUrlDialog" ID="GitChangeRemoteUrlDialog"></a>
+<h2>GitChangeRemoteUrlDialog</h2>
+<p>
+    Class implementing a dialog to change the URL of a remote git repository.
+</p>
+<h3>Derived from</h3>
+QDialog, Ui_GitChangeRemoteUrlDialog
+<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="#GitChangeRemoteUrlDialog.__init__">GitChangeRemoteUrlDialog</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#GitChangeRemoteUrlDialog.__updateOK">__updateOK</a></td>
+<td>Private method to update the status of the OK button.</td>
+</tr><tr>
+<td><a href="#GitChangeRemoteUrlDialog.getData">getData</a></td>
+<td>Public method to get the entered data.</td>
+</tr><tr>
+<td><a href="#GitChangeRemoteUrlDialog.on_newUrlEdit_textChanged">on_newUrlEdit_textChanged</a></td>
+<td>Private slot handling changes of the entered URL.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="GitChangeRemoteUrlDialog.__init__" ID="GitChangeRemoteUrlDialog.__init__"></a>
+<h4>GitChangeRemoteUrlDialog (Constructor)</h4>
+<b>GitChangeRemoteUrlDialog</b>(<i>remoteName, remoteUrl, parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>remoteName</i> (str)</dt>
+<dd>
+name of the remote repository
+</dd><dt><i>remoteUrl</i> (str)</dt>
+<dd>
+URL of the remote repository
+</dd><dt><i>parent</i> (QWidget)</dt>
+<dd>
+reference to the parent widget
+</dd>
+</dl><a NAME="GitChangeRemoteUrlDialog.__updateOK" ID="GitChangeRemoteUrlDialog.__updateOK"></a>
+<h4>GitChangeRemoteUrlDialog.__updateOK</h4>
+<b>__updateOK</b>(<i></i>)
+<p>
+        Private method to update the status of the OK button.
+</p><a NAME="GitChangeRemoteUrlDialog.getData" ID="GitChangeRemoteUrlDialog.getData"></a>
+<h4>GitChangeRemoteUrlDialog.getData</h4>
+<b>getData</b>(<i></i>)
+<p>
+        Public method to get the entered data.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+tuple with name and new URL of the remote repository
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (str, str)
+</dd>
+</dl><a NAME="GitChangeRemoteUrlDialog.on_newUrlEdit_textChanged" ID="GitChangeRemoteUrlDialog.on_newUrlEdit_textChanged"></a>
+<h4>GitChangeRemoteUrlDialog.on_newUrlEdit_textChanged</h4>
+<b>on_newUrlEdit_textChanged</b>(<i>txt</i>)
+<p>
+        Private slot handling changes of the entered URL.
+</p><dl>
+<dt><i>txt</i> (str)</dt>
+<dd>
+current text
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.GitRemoteCredentialsDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -0,0 +1,118 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.Plugins.VcsPlugins.vcsGit.GitRemoteCredentialsDialog</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.Plugins.VcsPlugins.vcsGit.GitRemoteCredentialsDialog</h1>
+<p>
+Module implementing a dialog to enter the data of a remote repository.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#GitRemoteCredentialsDialog">GitRemoteCredentialsDialog</a></td>
+<td>Class implementing a dialog to enter the data of a remote repository.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="GitRemoteCredentialsDialog" ID="GitRemoteCredentialsDialog"></a>
+<h2>GitRemoteCredentialsDialog</h2>
+<p>
+    Class implementing a dialog to enter the data of a remote repository.
+</p>
+<h3>Derived from</h3>
+QDialog, Ui_GitRemoteCredentialsDialog
+<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="#GitRemoteCredentialsDialog.__init__">GitRemoteCredentialsDialog</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#GitRemoteCredentialsDialog.getData">getData</a></td>
+<td>Public method to get the entered data.</td>
+</tr><tr>
+<td><a href="#GitRemoteCredentialsDialog.on_userEdit_textChanged">on_userEdit_textChanged</a></td>
+<td>Private slot handling changes of the entered user name.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="GitRemoteCredentialsDialog.__init__" ID="GitRemoteCredentialsDialog.__init__"></a>
+<h4>GitRemoteCredentialsDialog (Constructor)</h4>
+<b>GitRemoteCredentialsDialog</b>(<i>remoteName, remoteUrl, parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>remoteName</i> (str)</dt>
+<dd>
+name of the remote repository
+</dd><dt><i>remoteUrl</i> (str)</dt>
+<dd>
+URL of the remote repository
+</dd><dt><i>parent</i> (QWidget)</dt>
+<dd>
+reference to the parent widget
+</dd>
+</dl><a NAME="GitRemoteCredentialsDialog.getData" ID="GitRemoteCredentialsDialog.getData"></a>
+<h4>GitRemoteCredentialsDialog.getData</h4>
+<b>getData</b>(<i></i>)
+<p>
+        Public method to get the entered data.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+tuple with name and URL of the remote repository
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (str, str)
+</dd>
+</dl><a NAME="GitRemoteCredentialsDialog.on_userEdit_textChanged" ID="GitRemoteCredentialsDialog.on_userEdit_textChanged"></a>
+<h4>GitRemoteCredentialsDialog.on_userEdit_textChanged</h4>
+<b>on_userEdit_textChanged</b>(<i>txt</i>)
+<p>
+        Private slot handling changes of the entered user name.
+</p><dl>
+<dt><i>txt</i> (str)</dt>
+<dd>
+current text
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.GitRemoteRepositoriesDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -96,6 +96,12 @@
 <td><a href="#GitRemoteRepositoriesDialog.on_buttonBox_clicked">on_buttonBox_clicked</a></td>
 <td>Private slot called by a button of the button box clicked.</td>
 </tr><tr>
+<td><a href="#GitRemoteRepositoriesDialog.on_changeUrlButton_clicked">on_changeUrlButton_clicked</a></td>
+<td>Private slot to change the URL of a remote repository.</td>
+</tr><tr>
+<td><a href="#GitRemoteRepositoriesDialog.on_credentialsButton_clicked">on_credentialsButton_clicked</a></td>
+<td>Private slot to change the credentials of a remote repository.</td>
+</tr><tr>
 <td><a href="#GitRemoteRepositoriesDialog.on_input_returnPressed">on_input_returnPressed</a></td>
 <td>Private slot to handle the press of the return key in the input field.</td>
 </tr><tr>
@@ -245,7 +251,17 @@
 <dd>
 button that was clicked (QAbstractButton)
 </dd>
-</dl><a NAME="GitRemoteRepositoriesDialog.on_input_returnPressed" ID="GitRemoteRepositoriesDialog.on_input_returnPressed"></a>
+</dl><a NAME="GitRemoteRepositoriesDialog.on_changeUrlButton_clicked" ID="GitRemoteRepositoriesDialog.on_changeUrlButton_clicked"></a>
+<h4>GitRemoteRepositoriesDialog.on_changeUrlButton_clicked</h4>
+<b>on_changeUrlButton_clicked</b>(<i></i>)
+<p>
+        Private slot to change the URL of a remote repository.
+</p><a NAME="GitRemoteRepositoriesDialog.on_credentialsButton_clicked" ID="GitRemoteRepositoriesDialog.on_credentialsButton_clicked"></a>
+<h4>GitRemoteRepositoriesDialog.on_credentialsButton_clicked</h4>
+<b>on_credentialsButton_clicked</b>(<i></i>)
+<p>
+        Private slot to change the credentials of a remote repository.
+</p><a NAME="GitRemoteRepositoriesDialog.on_input_returnPressed" ID="GitRemoteRepositoriesDialog.on_input_returnPressed"></a>
 <h4>GitRemoteRepositoriesDialog.on_input_returnPressed</h4>
 <b>on_input_returnPressed</b>(<i></i>)
 <p>
--- a/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.ProjectHelper.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.ProjectHelper.html	Mon Jul 02 18:59:30 2018 +0200
@@ -117,6 +117,9 @@
 <td><a href="#GitProjectHelper.__gitCancelMerge">__gitCancelMerge</a></td>
 <td>Private slot used to cancel an uncommitted or failed merge.</td>
 </tr><tr>
+<td><a href="#GitProjectHelper.__gitChangeRemoteUrl">__gitChangeRemoteUrl</a></td>
+<td>Private slot to change the URL of a remote repository.</td>
+</tr><tr>
 <td><a href="#GitProjectHelper.__gitCheckPatches">__gitCheckPatches</a></td>
 <td>Private slot to check a list of patch files, if they would apply cleanly.</td>
 </tr><tr>
@@ -183,6 +186,9 @@
 <td><a href="#GitProjectHelper.__gitReflogBrowser">__gitReflogBrowser</a></td>
 <td>Private slot to show the reflog of the current project.</td>
 </tr><tr>
+<td><a href="#GitProjectHelper.__gitRemoteCredentials">__gitRemoteCredentials</a></td>
+<td>Private slot to change or set the user credentials for a remote repository.</td>
+</tr><tr>
 <td><a href="#GitProjectHelper.__gitRemoveRemote">__gitRemoveRemote</a></td>
 <td>Private slot to remove a remote repository.</td>
 </tr><tr>
@@ -423,6 +429,11 @@
 <b>__gitCancelMerge</b>(<i></i>)
 <p>
         Private slot used to cancel an uncommitted or failed merge.
+</p><a NAME="GitProjectHelper.__gitChangeRemoteUrl" ID="GitProjectHelper.__gitChangeRemoteUrl"></a>
+<h4>GitProjectHelper.__gitChangeRemoteUrl</h4>
+<b>__gitChangeRemoteUrl</b>(<i></i>)
+<p>
+        Private slot to change the URL of a remote repository.
 </p><a NAME="GitProjectHelper.__gitCheckPatches" ID="GitProjectHelper.__gitCheckPatches"></a>
 <h4>GitProjectHelper.__gitCheckPatches</h4>
 <b>__gitCheckPatches</b>(<i></i>)
@@ -537,6 +548,12 @@
 <b>__gitReflogBrowser</b>(<i></i>)
 <p>
         Private slot to show the reflog of the current project.
+</p><a NAME="GitProjectHelper.__gitRemoteCredentials" ID="GitProjectHelper.__gitRemoteCredentials"></a>
+<h4>GitProjectHelper.__gitRemoteCredentials</h4>
+<b>__gitRemoteCredentials</b>(<i></i>)
+<p>
+        Private slot to change or set the user credentials for a remote
+        repository.
 </p><a NAME="GitProjectHelper.__gitRemoveRemote" ID="GitProjectHelper.__gitRemoveRemote"></a>
 <h4>GitProjectHelper.__gitRemoveRemote</h4>
 <b>__gitRemoveRemote</b>(<i></i>)
--- a/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.git.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.git.html	Mon Jul 02 18:59:30 2018 +0200
@@ -138,6 +138,12 @@
 <td><a href="#Git.gitCancelMerge">gitCancelMerge</a></td>
 <td>Public method to cancel an uncommitted or failed merge.</td>
 </tr><tr>
+<td><a href="#Git.gitChangeRemoteCredentials">gitChangeRemoteCredentials</a></td>
+<td>Public method to change the user credentials of a remote repository.</td>
+</tr><tr>
+<td><a href="#Git.gitChangeRemoteUrl">gitChangeRemoteUrl</a></td>
+<td>Public method to change the URL of a remote repository.</td>
+</tr><tr>
 <td><a href="#Git.gitCherryPick">gitCherryPick</a></td>
 <td>Public method to cherry pick commits and apply them to the current branch.</td>
 </tr><tr>
@@ -195,6 +201,9 @@
 <td><a href="#Git.gitGetRemoteBranchesList">gitGetRemoteBranchesList</a></td>
 <td>Public method to get the list of a remote repository branches.</td>
 </tr><tr>
+<td><a href="#Git.gitGetRemoteUrl">gitGetRemoteUrl</a></td>
+<td>Public method to get the URL of a remote repository.</td>
+</tr><tr>
 <td><a href="#Git.gitGetRemoteUrlsList">gitGetRemoteUrlsList</a></td>
 <td>Public method to get the list of remote repos and their URLs.</td>
 </tr><tr>
@@ -793,6 +802,38 @@
 flag indicating, that the cancellation contained an add
             or delete (boolean)
 </dd>
+</dl><a NAME="Git.gitChangeRemoteCredentials" ID="Git.gitChangeRemoteCredentials"></a>
+<h4>Git.gitChangeRemoteCredentials</h4>
+<b>gitChangeRemoteCredentials</b>(<i>projectDir, remoteName, remoteUrl=""</i>)
+<p>
+        Public method to change the user credentials of a remote repository.
+</p><dl>
+<dt><i>projectDir</i> (str)</dt>
+<dd>
+name of the project directory
+</dd><dt><i>remoteName</i> (str)</dt>
+<dd>
+name of the remote repository
+</dd><dt><i>remoteUrl</i> (str)</dt>
+<dd>
+URL of the remote repository
+</dd>
+</dl><a NAME="Git.gitChangeRemoteUrl" ID="Git.gitChangeRemoteUrl"></a>
+<h4>Git.gitChangeRemoteUrl</h4>
+<b>gitChangeRemoteUrl</b>(<i>projectDir, remoteName, remoteUrl=""</i>)
+<p>
+        Public method to change the URL of a remote repository.
+</p><dl>
+<dt><i>projectDir</i> (str)</dt>
+<dd>
+name of the project directory
+</dd><dt><i>remoteName</i> (str)</dt>
+<dd>
+name of the remote repository
+</dd><dt><i>remoteUrl</i> (str)</dt>
+<dd>
+URL of the remote repository
+</dd>
 </dl><a NAME="Git.gitCherryPick" ID="Git.gitCherryPick"></a>
 <h4>Git.gitCherryPick</h4>
 <b>gitCherryPick</b>(<i>projectDir, commits=None</i>)
@@ -1072,6 +1113,29 @@
 <dd>
 list of remote repository branches (list of string)
 </dd>
+</dl><a NAME="Git.gitGetRemoteUrl" ID="Git.gitGetRemoteUrl"></a>
+<h4>Git.gitGetRemoteUrl</h4>
+<b>gitGetRemoteUrl</b>(<i>repodir, remoteName</i>)
+<p>
+        Public method to get the URL of a remote repository.
+</p><dl>
+<dt><i>repodir</i> (str)</dt>
+<dd>
+directory name of the repository
+</dd><dt><i>remoteName</i> (str)</dt>
+<dd>
+name of the remote repository
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+URL of the remote repository
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
 </dl><a NAME="Git.gitGetRemoteUrlsList" ID="Git.gitGetRemoteUrlsList"></a>
 <h4>Git.gitGetRemoteUrlsList</h4>
 <b>gitGetRemoteUrlsList</b>(<i>repodir, forFetch=True</i>)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html	Mon Jul 02 18:59:30 2018 +0200
@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.Preferences.ConfigurationPages.DebuggerPython2Page</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.Preferences.ConfigurationPages.DebuggerPython2Page</h1>
+<p>
+Module implementing the Debugger Python2 configuration page.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#DebuggerPython2Page">DebuggerPython2Page</a></td>
+<td>Class implementing the Debugger Python2 configuration page.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr>
+<td><a href="#create">create</a></td>
+<td>Module function to create the configuration page.</td>
+</tr>
+</table>
+<hr /><hr />
+<a NAME="DebuggerPython2Page" ID="DebuggerPython2Page"></a>
+<h2>DebuggerPython2Page</h2>
+<p>
+    Class implementing the Debugger Python2 configuration page.
+</p>
+<h3>Derived from</h3>
+ConfigurationPageBase, Ui_DebuggerPython2Page
+<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="#DebuggerPython2Page.__init__">DebuggerPython2Page</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#DebuggerPython2Page.__populateAndSetVenvComboBox">__populateAndSetVenvComboBox</a></td>
+<td>Private method to populate and set the virtual environment combo box.</td>
+</tr><tr>
+<td><a href="#DebuggerPython2Page.on_refreshButton_clicked">on_refreshButton_clicked</a></td>
+<td>Private slot handling a click of the refresh button.</td>
+</tr><tr>
+<td><a href="#DebuggerPython2Page.on_venvDlgButton_clicked">on_venvDlgButton_clicked</a></td>
+<td>Private slot to show the virtual environment manager dialog.</td>
+</tr><tr>
+<td><a href="#DebuggerPython2Page.save">save</a></td>
+<td>Public slot to save the Debugger Python configuration.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="DebuggerPython2Page.__init__" ID="DebuggerPython2Page.__init__"></a>
+<h4>DebuggerPython2Page (Constructor)</h4>
+<b>DebuggerPython2Page</b>(<i></i>)
+<p>
+        Constructor
+</p><a NAME="DebuggerPython2Page.__populateAndSetVenvComboBox" ID="DebuggerPython2Page.__populateAndSetVenvComboBox"></a>
+<h4>DebuggerPython2Page.__populateAndSetVenvComboBox</h4>
+<b>__populateAndSetVenvComboBox</b>(<i></i>)
+<p>
+        Private method to populate and set the virtual environment combo box.
+</p><a NAME="DebuggerPython2Page.on_refreshButton_clicked" ID="DebuggerPython2Page.on_refreshButton_clicked"></a>
+<h4>DebuggerPython2Page.on_refreshButton_clicked</h4>
+<b>on_refreshButton_clicked</b>(<i></i>)
+<p>
+        Private slot handling a click of the refresh button.
+</p><a NAME="DebuggerPython2Page.on_venvDlgButton_clicked" ID="DebuggerPython2Page.on_venvDlgButton_clicked"></a>
+<h4>DebuggerPython2Page.on_venvDlgButton_clicked</h4>
+<b>on_venvDlgButton_clicked</b>(<i></i>)
+<p>
+        Private slot to show the virtual environment manager dialog.
+</p><a NAME="DebuggerPython2Page.save" ID="DebuggerPython2Page.save"></a>
+<h4>DebuggerPython2Page.save</h4>
+<b>save</b>(<i></i>)
+<p>
+        Public slot to save the Debugger Python configuration.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="create" ID="create"></a>
+<h2>create</h2>
+<b>create</b>(<i>dlg</i>)
+<p>
+    Module function to create the configuration page.
+</p><dl>
+<dt><i>dlg</i></dt>
+<dd>
+reference to the configuration dialog
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+reference to the instantiated page (ConfigurationPageBase)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html	Mon Jul 02 18:59:30 2018 +0200
@@ -63,6 +63,15 @@
 <td><a href="#DebuggerPython3Page.__init__">DebuggerPython3Page</a></td>
 <td>Constructor</td>
 </tr><tr>
+<td><a href="#DebuggerPython3Page.__populateAndSetVenvComboBox">__populateAndSetVenvComboBox</a></td>
+<td>Private method to populate and set the virtual environment combo box.</td>
+</tr><tr>
+<td><a href="#DebuggerPython3Page.on_refreshButton_clicked">on_refreshButton_clicked</a></td>
+<td>Private slot handling a click of the refresh button.</td>
+</tr><tr>
+<td><a href="#DebuggerPython3Page.on_venvDlgButton_clicked">on_venvDlgButton_clicked</a></td>
+<td>Private slot to show the virtual environment manager dialog.</td>
+</tr><tr>
 <td><a href="#DebuggerPython3Page.save">save</a></td>
 <td>Public slot to save the Debugger Python configuration.</td>
 </tr>
@@ -76,6 +85,21 @@
 <b>DebuggerPython3Page</b>(<i></i>)
 <p>
         Constructor
+</p><a NAME="DebuggerPython3Page.__populateAndSetVenvComboBox" ID="DebuggerPython3Page.__populateAndSetVenvComboBox"></a>
+<h4>DebuggerPython3Page.__populateAndSetVenvComboBox</h4>
+<b>__populateAndSetVenvComboBox</b>(<i></i>)
+<p>
+        Private method to populate and set the virtual environment combo box.
+</p><a NAME="DebuggerPython3Page.on_refreshButton_clicked" ID="DebuggerPython3Page.on_refreshButton_clicked"></a>
+<h4>DebuggerPython3Page.on_refreshButton_clicked</h4>
+<b>on_refreshButton_clicked</b>(<i></i>)
+<p>
+        Private slot handling a click of the refresh button.
+</p><a NAME="DebuggerPython3Page.on_venvDlgButton_clicked" ID="DebuggerPython3Page.on_venvDlgButton_clicked"></a>
+<h4>DebuggerPython3Page.on_venvDlgButton_clicked</h4>
+<b>on_venvDlgButton_clicked</b>(<i></i>)
+<p>
+        Private slot to show the virtual environment manager dialog.
 </p><a NAME="DebuggerPython3Page.save" ID="DebuggerPython3Page.save"></a>
 <h4>DebuggerPython3Page.save</h4>
 <b>save</b>(<i></i>)
--- a/Documentation/Source/eric6.Preferences.ConfigurationPages.DebuggerPythonPage.html	Sat Jun 02 12:46:57 2018 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Preferences.ConfigurationPages.DebuggerPythonPage</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.Preferences.ConfigurationPages.DebuggerPythonPage</h1>
-<p>
-Module implementing the Debugger Python configuration page.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#DebuggerPythonPage">DebuggerPythonPage</a></td>
-<td>Class implementing the Debugger Python configuration page.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#create">create</a></td>
-<td>Module function to create the configuration page.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="DebuggerPythonPage" ID="DebuggerPythonPage"></a>
-<h2>DebuggerPythonPage</h2>
-<p>
-    Class implementing the Debugger Python configuration page.
-</p>
-<h3>Derived from</h3>
-ConfigurationPageBase, Ui_DebuggerPythonPage
-<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="#DebuggerPythonPage.__init__">DebuggerPythonPage</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#DebuggerPythonPage.save">save</a></td>
-<td>Public slot to save the Debugger Python configuration.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="DebuggerPythonPage.__init__" ID="DebuggerPythonPage.__init__"></a>
-<h4>DebuggerPythonPage (Constructor)</h4>
-<b>DebuggerPythonPage</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="DebuggerPythonPage.save" ID="DebuggerPythonPage.save"></a>
-<h4>DebuggerPythonPage.save</h4>
-<b>save</b>(<i></i>)
-<p>
-        Public slot to save the Debugger Python configuration.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="create" ID="create"></a>
-<h2>create</h2>
-<b>create</b>(<i>dlg</i>)
-<p>
-    Module function to create the configuration page.
-</p><dl>
-<dt><i>dlg</i></dt>
-<dd>
-reference to the configuration dialog
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the instantiated page (ConfigurationPageBase)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric6.Preferences.ConfigurationPages.EditorDocViewerPage.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Preferences.ConfigurationPages.EditorDocViewerPage.html	Mon Jul 02 18:59:30 2018 +0200
@@ -73,15 +73,10 @@
 </table>
 <a NAME="EditorDocViewerPage.__init__" ID="EditorDocViewerPage.__init__"></a>
 <h4>EditorDocViewerPage (Constructor)</h4>
-<b>EditorDocViewerPage</b>(<i>parent=None</i>)
+<b>EditorDocViewerPage</b>(<i></i>)
 <p>
         Constructor
-</p><dl>
-<dt><i>parent</i> (QWidget)</dt>
-<dd>
-reference to the parent widget
-</dd>
-</dl><a NAME="EditorDocViewerPage.save" ID="EditorDocViewerPage.save"></a>
+</p><a NAME="EditorDocViewerPage.save" ID="EditorDocViewerPage.save"></a>
 <h4>EditorDocViewerPage.save</h4>
 <b>save</b>(<i></i>)
 <p>
--- a/Documentation/Source/eric6.Preferences.ConfigurationPages.EditorSyntaxPage.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Preferences.ConfigurationPages.EditorSyntaxPage.html	Mon Jul 02 18:59:30 2018 +0200
@@ -73,15 +73,10 @@
 </table>
 <a NAME="EditorSyntaxPage.__init__" ID="EditorSyntaxPage.__init__"></a>
 <h4>EditorSyntaxPage (Constructor)</h4>
-<b>EditorSyntaxPage</b>(<i>parent=None</i>)
+<b>EditorSyntaxPage</b>(<i></i>)
 <p>
         Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="EditorSyntaxPage.save" ID="EditorSyntaxPage.save"></a>
+</p><a NAME="EditorSyntaxPage.save" ID="EditorSyntaxPage.save"></a>
 <h4>EditorSyntaxPage.save</h4>
 <b>save</b>(<i></i>)
 <p>
--- a/Documentation/Source/eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html	Mon Jul 02 18:59:30 2018 +0200
@@ -82,15 +82,10 @@
 </table>
 <a NAME="HelpVirusTotalPage.__init__" ID="HelpVirusTotalPage.__init__"></a>
 <h4>HelpVirusTotalPage (Constructor)</h4>
-<b>HelpVirusTotalPage</b>(<i>parent=None</i>)
+<b>HelpVirusTotalPage</b>(<i></i>)
 <p>
         Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="HelpVirusTotalPage.__checkServiceKeyFinished" ID="HelpVirusTotalPage.__checkServiceKeyFinished"></a>
+</p><a NAME="HelpVirusTotalPage.__checkServiceKeyFinished" ID="HelpVirusTotalPage.__checkServiceKeyFinished"></a>
 <h4>HelpVirusTotalPage.__checkServiceKeyFinished</h4>
 <b>__checkServiceKeyFinished</b>(<i>result, msg</i>)
 <p>
--- a/Documentation/Source/eric6.Preferences.ConfigurationPages.MimeTypesPage.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Preferences.ConfigurationPages.MimeTypesPage.html	Mon Jul 02 18:59:30 2018 +0200
@@ -79,15 +79,10 @@
 </table>
 <a NAME="MimeTypesPage.__init__" ID="MimeTypesPage.__init__"></a>
 <h4>MimeTypesPage (Constructor)</h4>
-<b>MimeTypesPage</b>(<i>parent=None</i>)
+<b>MimeTypesPage</b>(<i></i>)
 <p>
         Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="MimeTypesPage.__setToDefault" ID="MimeTypesPage.__setToDefault"></a>
+</p><a NAME="MimeTypesPage.__setToDefault" ID="MimeTypesPage.__setToDefault"></a>
 <h4>MimeTypesPage.__setToDefault</h4>
 <b>__setToDefault</b>(<i></i>)
 <p>
--- a/Documentation/Source/eric6.Preferences.ConfigurationPages.PythonPage.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Preferences.ConfigurationPages.PythonPage.html	Mon Jul 02 18:59:30 2018 +0200
@@ -63,6 +63,9 @@
 <td><a href="#PythonPage.__init__">PythonPage</a></td>
 <td>Constructor</td>
 </tr><tr>
+<td><a href="#PythonPage.on_refreshButton_clicked">on_refreshButton_clicked</a></td>
+<td>Private slot handling a click of the refresh button.</td>
+</tr><tr>
 <td><a href="#PythonPage.save">save</a></td>
 <td>Public slot to save the Python configuration.</td>
 </tr>
@@ -76,6 +79,11 @@
 <b>PythonPage</b>(<i></i>)
 <p>
         Constructor
+</p><a NAME="PythonPage.on_refreshButton_clicked" ID="PythonPage.on_refreshButton_clicked"></a>
+<h4>PythonPage.on_refreshButton_clicked</h4>
+<b>on_refreshButton_clicked</b>(<i></i>)
+<p>
+        Private slot handling a click of the refresh button.
 </p><a NAME="PythonPage.save" ID="PythonPage.save"></a>
 <h4>PythonPage.save</h4>
 <b>save</b>(<i></i>)
--- a/Documentation/Source/eric6.Preferences.ConfigurationPages.TrayStarterPage.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Preferences.ConfigurationPages.TrayStarterPage.html	Mon Jul 02 18:59:30 2018 +0200
@@ -73,15 +73,10 @@
 </table>
 <a NAME="TrayStarterPage.__init__" ID="TrayStarterPage.__init__"></a>
 <h4>TrayStarterPage (Constructor)</h4>
-<b>TrayStarterPage</b>(<i>parent=None</i>)
+<b>TrayStarterPage</b>(<i></i>)
 <p>
         Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="TrayStarterPage.save" ID="TrayStarterPage.save"></a>
+</p><a NAME="TrayStarterPage.save" ID="TrayStarterPage.save"></a>
 <h4>TrayStarterPage.save</h4>
 <b>save</b>(<i></i>)
 <p>
--- a/Documentation/Source/eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.html	Mon Jul 02 18:59:30 2018 +0200
@@ -82,15 +82,10 @@
 </table>
 <a NAME="WebBrowserVirusTotalPage.__init__" ID="WebBrowserVirusTotalPage.__init__"></a>
 <h4>WebBrowserVirusTotalPage (Constructor)</h4>
-<b>WebBrowserVirusTotalPage</b>(<i>parent=None</i>)
+<b>WebBrowserVirusTotalPage</b>(<i></i>)
 <p>
         Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="WebBrowserVirusTotalPage.__checkServiceKeyFinished" ID="WebBrowserVirusTotalPage.__checkServiceKeyFinished"></a>
+</p><a NAME="WebBrowserVirusTotalPage.__checkServiceKeyFinished" ID="WebBrowserVirusTotalPage.__checkServiceKeyFinished"></a>
 <h4>WebBrowserVirusTotalPage.__checkServiceKeyFinished</h4>
 <b>__checkServiceKeyFinished</b>(<i>result, msg</i>)
 <p>
--- a/Documentation/Source/eric6.Project.DebuggerPropertiesDialog.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Project.DebuggerPropertiesDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -73,9 +73,6 @@
 <td><a href="#DebuggerPropertiesDialog.on_debugClientPicker_aboutToShowPathPickerDialog">on_debugClientPicker_aboutToShowPathPickerDialog</a></td>
 <td>Private slot to perform actions before the debug client selection dialog is shown.</td>
 </tr><tr>
-<td><a href="#DebuggerPropertiesDialog.on_interpreterClearHistoryButton_clicked">on_interpreterClearHistoryButton_clicked</a></td>
-<td>Private slot to clear the interpreter history.</td>
-</tr><tr>
 <td><a href="#DebuggerPropertiesDialog.storeData">storeData</a></td>
 <td>Public method to store the entered/modified data.</td>
 </tr>
@@ -126,11 +123,6 @@
 <p>
         Private slot to perform actions before the debug client selection
         dialog is shown.
-</p><a NAME="DebuggerPropertiesDialog.on_interpreterClearHistoryButton_clicked" ID="DebuggerPropertiesDialog.on_interpreterClearHistoryButton_clicked"></a>
-<h4>DebuggerPropertiesDialog.on_interpreterClearHistoryButton_clicked</h4>
-<b>on_interpreterClearHistoryButton_clicked</b>(<i></i>)
-<p>
-        Private slot to clear the interpreter history.
 </p><a NAME="DebuggerPropertiesDialog.storeData" ID="DebuggerPropertiesDialog.storeData"></a>
 <h4>DebuggerPropertiesDialog.storeData</h4>
 <b>storeData</b>(<i></i>)
--- a/Documentation/Source/eric6.Project.Project.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Project.Project.html	Mon Jul 02 18:59:30 2018 +0200
@@ -2707,43 +2707,43 @@
 </dd>
 </dl><a NAME="Project.setDbgInfo" ID="Project.setDbgInfo"></a>
 <h4>Project.setDbgInfo</h4>
-<b>setDbgInfo</b>(<i>interpreter, argv, wd, env, excReporting, excList, excIgnoreList, autoClearShell, tracePython=None, autoContinue=None</i>)
+<b>setDbgInfo</b>(<i>venvName, argv, wd, env, excReporting, excList, excIgnoreList, autoClearShell, tracePython=None, autoContinue=None</i>)
 <p>
         Public method to set the debugging information.
 </p><dl>
-<dt><i>interpreter</i></dt>
+<dt><i>venvName</i> (str)</dt>
 <dd>
-interpreter to be used (string)
-</dd><dt><i>argv</i></dt>
+name of the virtual environment used
+</dd><dt><i>argv</i> (str)</dt>
 <dd>
-command line arguments to be used (string)
-</dd><dt><i>wd</i></dt>
+command line arguments to be used
+</dd><dt><i>wd</i> (str)</dt>
 <dd>
-working directory (string)
-</dd><dt><i>env</i></dt>
+working directory
+</dd><dt><i>env</i> (str)</dt>
 <dd>
-environment setting (string)
-</dd><dt><i>excReporting</i></dt>
+environment setting
+</dd><dt><i>excReporting</i> (bool)</dt>
 <dd>
 flag indicating the highlighting of exceptions
-</dd><dt><i>excList</i></dt>
+</dd><dt><i>excList</i> (list of str)</dt>
 <dd>
-list of exceptions to be highlighted (list of strings)
-</dd><dt><i>excIgnoreList</i></dt>
+list of exceptions to be highlighted
+</dd><dt><i>excIgnoreList</i> (list of str)</dt>
 <dd>
-list of exceptions to be ignored (list of strings)
-</dd><dt><i>autoClearShell</i></dt>
+list of exceptions to be ignored
+</dd><dt><i>autoClearShell</i> (bool)</dt>
 <dd>
 flag indicating, that the interpreter window
-            should be cleared (boolean)
-</dd><dt><i>tracePython=</i></dt>
+            should be cleared
+</dd><dt><i>tracePython=</i> (bool)</dt>
 <dd>
 flag to indicate if the Python library should be
-            traced as well (boolean)
-</dd><dt><i>autoContinue=</i></dt>
+            traced as well
+</dd><dt><i>autoContinue=</i> (bool)</dt>
 <dd>
 flag indicating, that the debugger should not
-            stop at the first executable line (boolean)
+            stop at the first executable line
 </dd>
 </dl><a NAME="Project.setDirty" ID="Project.setDirty"></a>
 <h4>Project.setDirty</h4>
--- a/Documentation/Source/eric6.PyUnit.UnittestDialog.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.PyUnit.UnittestDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -50,7 +50,7 @@
 <p>
     A TestResult derivative to work with a graphical GUI.
 </p><p>
-    For more details see pyunit.py of the standard python distribution.
+    For more details see pyunit.py of the standard Python distribution.
 </p>
 <h3>Derived from</h3>
 unittest.TestResult
@@ -223,6 +223,9 @@
 <td><a href="#UnittestDialog.__UTPrepared">__UTPrepared</a></td>
 <td>Private slot to handle the utPrepared signal.</td>
 </tr><tr>
+<td><a href="#UnittestDialog.__openEditor">__openEditor</a></td>
+<td>Private method to open an editor window for the given file.</td>
+</tr><tr>
 <td><a href="#UnittestDialog.__setProgressColor">__setProgressColor</a></td>
 <td>Private methode to set the color of the progress color label.</td>
 </tr><tr>
@@ -235,6 +238,9 @@
 <td><a href="#UnittestDialog.__showSource">__showSource</a></td>
 <td>Private slot to show the source of a traceback in an eric6 editor.</td>
 </tr><tr>
+<td><a href="#UnittestDialog.closeEvent">closeEvent</a></td>
+<td>Protected method to handle the close event.</td>
+</tr><tr>
 <td><a href="#UnittestDialog.hasFailedTests">hasFailedTests</a></td>
 <td>Public method to check, if there are failed tests from the last run.</td>
 </tr><tr>
@@ -343,6 +349,22 @@
 <dd>
 value of exception occured during preparation (string)
 </dd>
+</dl><a NAME="UnittestDialog.__openEditor" ID="UnittestDialog.__openEditor"></a>
+<h4>UnittestDialog.__openEditor</h4>
+<b>__openEditor</b>(<i>filename, linenumber</i>)
+<p>
+        Private method to open an editor window for the given file.
+</p><p>
+        Note: This method opens an editor window when the unittest dialog
+        is called as a standalone application.
+</p><dl>
+<dt><i>filename</i> (str)</dt>
+<dd>
+path of the file to be opened
+</dd><dt><i>linenumber</i> (int)</dt>
+<dd>
+line number to place the cursor at
+</dd>
 </dl><a NAME="UnittestDialog.__setProgressColor" ID="UnittestDialog.__setProgressColor"></a>
 <h4>UnittestDialog.__setProgressColor</h4>
 <b>__setProgressColor</b>(<i>color</i>)
@@ -368,7 +390,17 @@
 <b>__showSource</b>(<i></i>)
 <p>
         Private slot to show the source of a traceback in an eric6 editor.
-</p><a NAME="UnittestDialog.hasFailedTests" ID="UnittestDialog.hasFailedTests"></a>
+</p><a NAME="UnittestDialog.closeEvent" ID="UnittestDialog.closeEvent"></a>
+<h4>UnittestDialog.closeEvent</h4>
+<b>closeEvent</b>(<i>event</i>)
+<p>
+        Protected method to handle the close event.
+</p><dl>
+<dt><i>event</i> (QCloseEvent)</dt>
+<dd>
+close event
+</dd>
+</dl><a NAME="UnittestDialog.hasFailedTests" ID="UnittestDialog.hasFailedTests"></a>
 <h4>UnittestDialog.hasFailedTests</h4>
 <b>hasFailedTests</b>(<i></i>)
 <p>
--- a/Documentation/Source/eric6.QScintilla.MiniEditor.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.QScintilla.MiniEditor.html	Mon Jul 02 18:59:30 2018 +0200
@@ -279,6 +279,9 @@
 <td><a href="#MiniEditor.getSRHistory">getSRHistory</a></td>
 <td>Public method to get the search or replace history list.</td>
 </tr><tr>
+<td><a href="#MiniEditor.gotoLine">gotoLine</a></td>
+<td>Public slot to jump to the beginning of a line.</td>
+</tr><tr>
 <td><a href="#MiniEditor.setLanguage">setLanguage</a></td>
 <td>Public method to set a lexer language.</td>
 </tr><tr>
@@ -938,6 +941,19 @@
 <dd>
 the requested history list (list of strings)
 </dd>
+</dl><a NAME="MiniEditor.gotoLine" ID="MiniEditor.gotoLine"></a>
+<h4>MiniEditor.gotoLine</h4>
+<b>gotoLine</b>(<i>line, pos=1</i>)
+<p>
+        Public slot to jump to the beginning of a line.
+</p><dl>
+<dt><i>line</i> (int)</dt>
+<dd>
+line number to go to
+</dd><dt><i>pos=</i> (int)</dt>
+<dd>
+position in line to go to
+</dd>
 </dl><a NAME="MiniEditor.setLanguage" ID="MiniEditor.setLanguage"></a>
 <h4>MiniEditor.setLanguage</h4>
 <b>setLanguage</b>(<i>filename, initTextDisplay=True, pyname=""</i>)
--- a/Documentation/Source/eric6.QScintilla.Shell.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.QScintilla.Shell.html	Mon Jul 02 18:59:30 2018 +0200
@@ -58,6 +58,9 @@
 <dd>
 emitted to indicate a
         change of the history style
+</dd><dt>queueText(str)</dt>
+<dd>
+emitted to queue some text for processing
 </dd><dt>searchStringFound(bool)</dt>
 <dd>
 emitted to indicate the search
@@ -191,6 +194,9 @@
 <td><a href="#Shell.__completionListSelected">__completionListSelected</a></td>
 <td>Private slot to handle the selection from the completion list.</td>
 </tr><tr>
+<td><a href="#Shell.__concatenateText">__concatenateText</a></td>
+<td>Private slot to get all available text and process it in one step.</td>
+</tr><tr>
 <td><a href="#Shell.__configure">__configure</a></td>
 <td>Private method to open the configuration dialog.</td>
 </tr><tr>
@@ -765,6 +771,16 @@
 <dd>
 the selected text (string)
 </dd>
+</dl><a NAME="Shell.__concatenateText" ID="Shell.__concatenateText"></a>
+<h4>Shell.__concatenateText</h4>
+<b>__concatenateText</b>(<i>text</i>)
+<p>
+        Private slot to get all available text and process it in one step.
+</p><dl>
+<dt><i>text</i> (str)</dt>
+<dd>
+text to be appended
+</dd>
 </dl><a NAME="Shell.__configure" ID="Shell.__configure"></a>
 <h4>Shell.__configure</h4>
 <b>__configure</b>(<i></i>)
--- a/Documentation/Source/eric6.QScintilla.ShellWindow.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.QScintilla.ShellWindow.html	Mon Jul 02 18:59:30 2018 +0200
@@ -158,6 +158,9 @@
 </tr><tr>
 <td><a href="#ShellWindow.quit">quit</a></td>
 <td>Public method to quit the application.</td>
+</tr><tr>
+<td><a href="#ShellWindow.showFind">showFind</a></td>
+<td>Public method to display the search widget.</td>
 </tr>
 </table>
 <h3>Static Methods</h3>
@@ -395,7 +398,17 @@
 <b>quit</b>(<i></i>)
 <p>
         Public method to quit the application.
-</p>
+</p><a NAME="ShellWindow.showFind" ID="ShellWindow.showFind"></a>
+<h4>ShellWindow.showFind</h4>
+<b>showFind</b>(<i>txt=""</i>)
+<p>
+        Public method to display the search widget.
+</p><dl>
+<dt><i>txt</i> (str)</dt>
+<dd>
+text to be shown in the combo
+</dd>
+</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/Documentation/Source/eric6.Utilities.BackgroundService.html	Sat Jun 02 12:46:57 2018 +0200
+++ b/Documentation/Source/eric6.Utilities.BackgroundService.html	Mon Jul 02 18:59:30 2018 +0200
@@ -109,7 +109,7 @@
 <td>Public method to remove the service from the service list.</td>
 </tr><tr>
 <td><a href="#BackgroundService.shutdown">shutdown</a></td>
-<td>Public method to cleanup the connections and processes when eric is shuting down.</td>
+<td>Public method to cleanup the connections and processes when eric is shutting down.</td>
 </tr>
 </table>
 <h3>Static Methods</h3>
@@ -290,7 +290,7 @@
 <b>shutdown</b>(<i></i>)
 <p>
         Public method to cleanup the connections and processes when eric is
-        shuting down.
+        shutting down.
 </p>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.VirtualEnv.VirtualenvAddEditDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -0,0 +1,179 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.VirtualEnv.VirtualenvAddEditDialog</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.VirtualEnv.VirtualenvAddEditDialog</h1>
+<p>
+Module implementing a dialog to enter the data of a virtual environment.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#VirtualenvAddEditDialog">VirtualenvAddEditDialog</a></td>
+<td>Class implementing a dialog to enter the data of a virtual environment.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="VirtualenvAddEditDialog" ID="VirtualenvAddEditDialog"></a>
+<h2>VirtualenvAddEditDialog</h2>
+<p>
+    Class implementing a dialog to enter the data of a virtual environment.
+</p>
+<h3>Derived from</h3>
+QDialog, Ui_VirtualenvAddEditDialog
+<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="#VirtualenvAddEditDialog.__init__">VirtualenvAddEditDialog</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#VirtualenvAddEditDialog.__updateOk">__updateOk</a></td>
+<td>Private slot to update the state of the OK button.</td>
+</tr><tr>
+<td><a href="#VirtualenvAddEditDialog.getData">getData</a></td>
+<td>Public method to retrieve the entered data.</td>
+</tr><tr>
+<td><a href="#VirtualenvAddEditDialog.on_globalCheckBox_toggled">on_globalCheckBox_toggled</a></td>
+<td>Private slot handling a change of the global check box state.</td>
+</tr><tr>
+<td><a href="#VirtualenvAddEditDialog.on_nameEdit_textChanged">on_nameEdit_textChanged</a></td>
+<td>Private slot to handle changes of the logical name.</td>
+</tr><tr>
+<td><a href="#VirtualenvAddEditDialog.on_pythonExecPicker_textChanged">on_pythonExecPicker_textChanged</a></td>
+<td>Private slot to handle changes of the virtual environment interpreter.</td>
+</tr><tr>
+<td><a href="#VirtualenvAddEditDialog.on_targetDirectoryPicker_textChanged">on_targetDirectoryPicker_textChanged</a></td>
+<td>Private slot to handle changes of the virtual environment directory.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="VirtualenvAddEditDialog.__init__" ID="VirtualenvAddEditDialog.__init__"></a>
+<h4>VirtualenvAddEditDialog (Constructor)</h4>
+<b>VirtualenvAddEditDialog</b>(<i>manager, venvName="", venvDirectory="", venvInterpreter="", venvVariant=3, isGlobal=False, parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>manager</i> (VirtualenvManager)</dt>
+<dd>
+reference to the virtual environment manager
+</dd><dt><i>venvName</i> (str)</dt>
+<dd>
+logical name of a virtual environment for editing
+</dd><dt><i>venvDirectory</i> (str)</dt>
+<dd>
+directory of the virtual environment
+</dd><dt><i>venvInterpreter</i> (str)</dt>
+<dd>
+Python interpreter of the virtual environment
+</dd><dt><i>venvVariant</i> (int)</dt>
+<dd>
+Python variant of the virtual environment
+</dd><dt><i>isGlobal</i> (bool)</dt>
+<dd>
+flag indicating a global environment
+</dd><dt><i>parent</i> (QWidget)</dt>
+<dd>
+reference to the parent widget
+</dd>
+</dl><a NAME="VirtualenvAddEditDialog.__updateOk" ID="VirtualenvAddEditDialog.__updateOk"></a>
+<h4>VirtualenvAddEditDialog.__updateOk</h4>
+<b>__updateOk</b>(<i></i>)
+<p>
+        Private slot to update the state of the OK button.
+</p><a NAME="VirtualenvAddEditDialog.getData" ID="VirtualenvAddEditDialog.getData"></a>
+<h4>VirtualenvAddEditDialog.getData</h4>
+<b>getData</b>(<i></i>)
+<p>
+        Public method to retrieve the entered data.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+tuple containing the logical name, the directory, the
+            interpreter of the virtual environment, the Python variant
+            and a flag indicating a global environment
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (str, str, str, int, bool)
+</dd>
+</dl><a NAME="VirtualenvAddEditDialog.on_globalCheckBox_toggled" ID="VirtualenvAddEditDialog.on_globalCheckBox_toggled"></a>
+<h4>VirtualenvAddEditDialog.on_globalCheckBox_toggled</h4>
+<b>on_globalCheckBox_toggled</b>(<i>checked</i>)
+<p>
+        Private slot handling a change of the global check box state.
+</p><dl>
+<dt><i>checked</i> (bool)</dt>
+<dd>
+state of the check box
+</dd>
+</dl><a NAME="VirtualenvAddEditDialog.on_nameEdit_textChanged" ID="VirtualenvAddEditDialog.on_nameEdit_textChanged"></a>
+<h4>VirtualenvAddEditDialog.on_nameEdit_textChanged</h4>
+<b>on_nameEdit_textChanged</b>(<i>txt</i>)
+<p>
+        Private slot to handle changes of the logical name.
+</p><dl>
+<dt><i>txt</i> (str)</dt>
+<dd>
+current logical name
+</dd>
+</dl><a NAME="VirtualenvAddEditDialog.on_pythonExecPicker_textChanged" ID="VirtualenvAddEditDialog.on_pythonExecPicker_textChanged"></a>
+<h4>VirtualenvAddEditDialog.on_pythonExecPicker_textChanged</h4>
+<b>on_pythonExecPicker_textChanged</b>(<i>txt</i>)
+<p>
+        Private slot to handle changes of the virtual environment interpreter.
+</p><dl>
+<dt><i>txt</i> (str)</dt>
+<dd>
+virtual environment interpreter
+</dd>
+</dl><a NAME="VirtualenvAddEditDialog.on_targetDirectoryPicker_textChanged" ID="VirtualenvAddEditDialog.on_targetDirectoryPicker_textChanged"></a>
+<h4>VirtualenvAddEditDialog.on_targetDirectoryPicker_textChanged</h4>
+<b>on_targetDirectoryPicker_textChanged</b>(<i>txt</i>)
+<p>
+        Private slot to handle changes of the virtual environment directory.
+</p><dl>
+<dt><i>txt</i> (str)</dt>
+<dd>
+virtual environment directory
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.VirtualEnv.VirtualenvConfigurationDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -0,0 +1,229 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.VirtualEnv.VirtualenvConfigurationDialog</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.VirtualEnv.VirtualenvConfigurationDialog</h1>
+<p>
+Module implementing a dialog to enter the parameters for the
+virtual environment.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#VirtualenvConfigurationDialog">VirtualenvConfigurationDialog</a></td>
+<td>Class implementing a dialog to enter the parameters for the virtual environment.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="VirtualenvConfigurationDialog" ID="VirtualenvConfigurationDialog"></a>
+<h2>VirtualenvConfigurationDialog</h2>
+<p>
+    Class implementing a dialog to enter the parameters for the
+    virtual environment.
+</p>
+<h3>Derived from</h3>
+QDialog, Ui_VirtualenvConfigurationDialog
+<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="#VirtualenvConfigurationDialog.__init__">VirtualenvConfigurationDialog</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#VirtualenvConfigurationDialog.__generateArguments">__generateArguments</a></td>
+<td>Private method to generate the process arguments.</td>
+</tr><tr>
+<td><a href="#VirtualenvConfigurationDialog.__generateTargetDir">__generateTargetDir</a></td>
+<td>Private method to generate a valid target directory path.</td>
+</tr><tr>
+<td><a href="#VirtualenvConfigurationDialog.__setPyvenvVersion">__setPyvenvVersion</a></td>
+<td>Private method to determine the pyvenv version and set the respective label.</td>
+</tr><tr>
+<td><a href="#VirtualenvConfigurationDialog.__setVirtualenvVersion">__setVirtualenvVersion</a></td>
+<td>Private method to determine the virtualenv version and set the respective label.</td>
+</tr><tr>
+<td><a href="#VirtualenvConfigurationDialog.__updateOK">__updateOK</a></td>
+<td>Private method to update the enabled status of the OK button.</td>
+</tr><tr>
+<td><a href="#VirtualenvConfigurationDialog.__updateUi">__updateUi</a></td>
+<td>Private method to update the UI depending on the selected virtual environment creator (virtualenv or pyvenv).</td>
+</tr><tr>
+<td><a href="#VirtualenvConfigurationDialog.getData">getData</a></td>
+<td>Public method to retrieve the dialog data.</td>
+</tr><tr>
+<td><a href="#VirtualenvConfigurationDialog.on_pythonExecPicker_textChanged">on_pythonExecPicker_textChanged</a></td>
+<td>Private slot to react to a change of the Python executable.</td>
+</tr><tr>
+<td><a href="#VirtualenvConfigurationDialog.on_pyvenvButton_toggled">on_pyvenvButton_toggled</a></td>
+<td>Private slot to react to the selection of 'pyvenv'.</td>
+</tr><tr>
+<td><a href="#VirtualenvConfigurationDialog.on_targetDirectoryPicker_textChanged">on_targetDirectoryPicker_textChanged</a></td>
+<td>Private slot handling a change of the target directory.</td>
+</tr><tr>
+<td><a href="#VirtualenvConfigurationDialog.on_virtualenvButton_toggled">on_virtualenvButton_toggled</a></td>
+<td>Private slot to react to the selection of 'virtualenv'.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="VirtualenvConfigurationDialog.__init__" ID="VirtualenvConfigurationDialog.__init__"></a>
+<h4>VirtualenvConfigurationDialog (Constructor)</h4>
+<b>VirtualenvConfigurationDialog</b>(<i>parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i> (QWidget)</dt>
+<dd>
+reference to the parent widget
+</dd>
+</dl><a NAME="VirtualenvConfigurationDialog.__generateArguments" ID="VirtualenvConfigurationDialog.__generateArguments"></a>
+<h4>VirtualenvConfigurationDialog.__generateArguments</h4>
+<b>__generateArguments</b>(<i></i>)
+<p>
+        Private method to generate the process arguments.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+process arguments
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
+</dd>
+</dl><a NAME="VirtualenvConfigurationDialog.__generateTargetDir" ID="VirtualenvConfigurationDialog.__generateTargetDir"></a>
+<h4>VirtualenvConfigurationDialog.__generateTargetDir</h4>
+<b>__generateTargetDir</b>(<i></i>)
+<p>
+        Private method to generate a valid target directory path.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+target directory path
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl><a NAME="VirtualenvConfigurationDialog.__setPyvenvVersion" ID="VirtualenvConfigurationDialog.__setPyvenvVersion"></a>
+<h4>VirtualenvConfigurationDialog.__setPyvenvVersion</h4>
+<b>__setPyvenvVersion</b>(<i></i>)
+<p>
+        Private method to determine the pyvenv version and set the respective
+        label.
+</p><a NAME="VirtualenvConfigurationDialog.__setVirtualenvVersion" ID="VirtualenvConfigurationDialog.__setVirtualenvVersion"></a>
+<h4>VirtualenvConfigurationDialog.__setVirtualenvVersion</h4>
+<b>__setVirtualenvVersion</b>(<i></i>)
+<p>
+        Private method to determine the virtualenv version and set the
+        respective label.
+</p><a NAME="VirtualenvConfigurationDialog.__updateOK" ID="VirtualenvConfigurationDialog.__updateOK"></a>
+<h4>VirtualenvConfigurationDialog.__updateOK</h4>
+<b>__updateOK</b>(<i></i>)
+<p>
+        Private method to update the enabled status of the OK button.
+</p><a NAME="VirtualenvConfigurationDialog.__updateUi" ID="VirtualenvConfigurationDialog.__updateUi"></a>
+<h4>VirtualenvConfigurationDialog.__updateUi</h4>
+<b>__updateUi</b>(<i></i>)
+<p>
+        Private method to update the UI depending on the selected
+        virtual environment creator (virtualenv or pyvenv).
+</p><a NAME="VirtualenvConfigurationDialog.getData" ID="VirtualenvConfigurationDialog.getData"></a>
+<h4>VirtualenvConfigurationDialog.getData</h4>
+<b>getData</b>(<i></i>)
+<p>
+        Public method to retrieve the dialog data.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+tuple containing a flag indicating the pyvenv selection, the
+            process arguments, a name for the virtual environment, a flag
+            indicating to open the target directory after creation, a flag
+            indicating to write a log file, a flag indicating to write a
+            script, the name of the target directory and the name of the
+            Python interpreter to use
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (bool, list of str, str, bool, bool, bool, str, str)
+</dd>
+</dl><a NAME="VirtualenvConfigurationDialog.on_pythonExecPicker_textChanged" ID="VirtualenvConfigurationDialog.on_pythonExecPicker_textChanged"></a>
+<h4>VirtualenvConfigurationDialog.on_pythonExecPicker_textChanged</h4>
+<b>on_pythonExecPicker_textChanged</b>(<i>txt</i>)
+<p>
+        Private slot to react to a change of the Python executable.
+</p><dl>
+<dt><i>txt</i> (str)</dt>
+<dd>
+contents of the picker's line edit
+</dd>
+</dl><a NAME="VirtualenvConfigurationDialog.on_pyvenvButton_toggled" ID="VirtualenvConfigurationDialog.on_pyvenvButton_toggled"></a>
+<h4>VirtualenvConfigurationDialog.on_pyvenvButton_toggled</h4>
+<b>on_pyvenvButton_toggled</b>(<i>checked</i>)
+<p>
+        Private slot to react to the selection of 'pyvenv'.
+</p><dl>
+<dt><i>checked</i> (bool)</dt>
+<dd>
+state of the checkbox
+</dd>
+</dl><a NAME="VirtualenvConfigurationDialog.on_targetDirectoryPicker_textChanged" ID="VirtualenvConfigurationDialog.on_targetDirectoryPicker_textChanged"></a>
+<h4>VirtualenvConfigurationDialog.on_targetDirectoryPicker_textChanged</h4>
+<b>on_targetDirectoryPicker_textChanged</b>(<i>txt</i>)
+<p>
+        Private slot handling a change of the target directory.
+</p><dl>
+<dt><i>txt</i> (str)</dt>
+<dd>
+target directory
+</dd>
+</dl><a NAME="VirtualenvConfigurationDialog.on_virtualenvButton_toggled" ID="VirtualenvConfigurationDialog.on_virtualenvButton_toggled"></a>
+<h4>VirtualenvConfigurationDialog.on_virtualenvButton_toggled</h4>
+<b>on_virtualenvButton_toggled</b>(<i>checked</i>)
+<p>
+        Private slot to react to the selection of 'virtualenv'.
+</p><dl>
+<dt><i>checked</i> (bool)</dt>
+<dd>
+state of the checkbox
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.VirtualEnv.VirtualenvExecDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -0,0 +1,232 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.VirtualEnv.VirtualenvExecDialog</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.VirtualEnv.VirtualenvExecDialog</h1>
+<p>
+Module implementing the virtualenv execution dialog.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#VirtualenvExecDialog">VirtualenvExecDialog</a></td>
+<td>Class implementing the virtualenv execution dialog.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="VirtualenvExecDialog" ID="VirtualenvExecDialog"></a>
+<h2>VirtualenvExecDialog</h2>
+<p>
+    Class implementing the virtualenv execution dialog.
+</p><p>
+    This class starts a QProcess and displays a dialog that
+    shows the output of the virtualenv or pyvenv process.
+</p>
+<h3>Derived from</h3>
+QDialog, Ui_VirtualenvExecDialog
+<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="#VirtualenvExecDialog.__init__">VirtualenvExecDialog</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#VirtualenvExecDialog.__finish">__finish</a></td>
+<td>Private slot called when the process finished.</td>
+</tr><tr>
+<td><a href="#VirtualenvExecDialog.__logError">__logError</a></td>
+<td>Private method to log an error.</td>
+</tr><tr>
+<td><a href="#VirtualenvExecDialog.__logOutput">__logOutput</a></td>
+<td>Private method to log some output.</td>
+</tr><tr>
+<td><a href="#VirtualenvExecDialog.__nextAttempt">__nextAttempt</a></td>
+<td>Private method to start another attempt.</td>
+</tr><tr>
+<td><a href="#VirtualenvExecDialog.__readStderr">__readStderr</a></td>
+<td>Private slot to handle the readyReadStandardError signal.</td>
+</tr><tr>
+<td><a href="#VirtualenvExecDialog.__readStdout">__readStdout</a></td>
+<td>Private slot to handle the readyReadStandardOutput signal.</td>
+</tr><tr>
+<td><a href="#VirtualenvExecDialog.__writeLogFile">__writeLogFile</a></td>
+<td>Private method to write a log file to the virtualenv directory.</td>
+</tr><tr>
+<td><a href="#VirtualenvExecDialog.__writeScriptFile">__writeScriptFile</a></td>
+<td>Private method to write a script file to the virtualenv directory.</td>
+</tr><tr>
+<td><a href="#VirtualenvExecDialog.on_buttonBox_clicked">on_buttonBox_clicked</a></td>
+<td>Private slot called by a button of the button box clicked.</td>
+</tr><tr>
+<td><a href="#VirtualenvExecDialog.start">start</a></td>
+<td>Public slot to start the virtualenv command.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="VirtualenvExecDialog.__init__" ID="VirtualenvExecDialog.__init__"></a>
+<h4>VirtualenvExecDialog (Constructor)</h4>
+<b>VirtualenvExecDialog</b>(<i>pyvenv, targetDir, venvName, openTarget, createLog, createScript, interpreter, venvManager, parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>pyvenv</i> (bool)</dt>
+<dd>
+flag indicating the use of 'pyvenv'
+</dd><dt><i>targetDir</i> (str)</dt>
+<dd>
+name of the virtualenv directory
+</dd><dt><i>venvName</i> (str)</dt>
+<dd>
+logical name for the virtual environment
+</dd><dt><i>openTarget</i> (bool)</dt>
+<dd>
+flag indicating to open the virtualenv directory
+            in a file manager
+</dd><dt><i>createLog</i> (bool)</dt>
+<dd>
+flag indicating to create a log file of the
+            creation process
+</dd><dt><i>createScript</i> (bool)</dt>
+<dd>
+flag indicating to create a script to recreate
+            the virtual environment
+</dd><dt><i>interpreter</i> (str)</dt>
+<dd>
+name of the python interpreter to use
+</dd><dt><i>venvManager</i> (VirtualenvManager)</dt>
+<dd>
+reference to the virtual environment manager
+</dd><dt><i>parent</i> (QWidget)</dt>
+<dd>
+reference to the parent widget
+</dd>
+</dl><a NAME="VirtualenvExecDialog.__finish" ID="VirtualenvExecDialog.__finish"></a>
+<h4>VirtualenvExecDialog.__finish</h4>
+<b>__finish</b>(<i>exitCode, exitStatus, giveUp=False</i>)
+<p>
+        Private slot called when the process finished.
+</p><p>
+        It is called when the process finished or
+        the user pressed the button.
+</p><dl>
+<dt><i>exitCode</i></dt>
+<dd>
+exit code of the process (integer)
+</dd><dt><i>exitStatus</i></dt>
+<dd>
+exit status of the process (QProcess.ExitStatus)
+</dd><dt><i>giveUp=</i></dt>
+<dd>
+flag indicating to not start another attempt (boolean)
+</dd>
+</dl><a NAME="VirtualenvExecDialog.__logError" ID="VirtualenvExecDialog.__logError"></a>
+<h4>VirtualenvExecDialog.__logError</h4>
+<b>__logError</b>(<i>s</i>)
+<p>
+        Private method to log an error.
+</p><dl>
+<dt><i>s</i></dt>
+<dd>
+error string to log (string)
+</dd>
+</dl><a NAME="VirtualenvExecDialog.__logOutput" ID="VirtualenvExecDialog.__logOutput"></a>
+<h4>VirtualenvExecDialog.__logOutput</h4>
+<b>__logOutput</b>(<i>s</i>)
+<p>
+        Private method to log some output.
+</p><dl>
+<dt><i>s</i></dt>
+<dd>
+output sstring to log (string)
+</dd>
+</dl><a NAME="VirtualenvExecDialog.__nextAttempt" ID="VirtualenvExecDialog.__nextAttempt"></a>
+<h4>VirtualenvExecDialog.__nextAttempt</h4>
+<b>__nextAttempt</b>(<i></i>)
+<p>
+        Private method to start another attempt.
+</p><a NAME="VirtualenvExecDialog.__readStderr" ID="VirtualenvExecDialog.__readStderr"></a>
+<h4>VirtualenvExecDialog.__readStderr</h4>
+<b>__readStderr</b>(<i></i>)
+<p>
+        Private slot to handle the readyReadStandardError signal.
+</p><p>
+        It reads the error output of the process and inserts it into the
+        error pane.
+</p><a NAME="VirtualenvExecDialog.__readStdout" ID="VirtualenvExecDialog.__readStdout"></a>
+<h4>VirtualenvExecDialog.__readStdout</h4>
+<b>__readStdout</b>(<i></i>)
+<p>
+        Private slot to handle the readyReadStandardOutput signal.
+</p><p>
+        It reads the output of the process, formats it and inserts it into
+        the contents pane.
+</p><a NAME="VirtualenvExecDialog.__writeLogFile" ID="VirtualenvExecDialog.__writeLogFile"></a>
+<h4>VirtualenvExecDialog.__writeLogFile</h4>
+<b>__writeLogFile</b>(<i></i>)
+<p>
+        Private method to write a log file to the virtualenv directory.
+</p><a NAME="VirtualenvExecDialog.__writeScriptFile" ID="VirtualenvExecDialog.__writeScriptFile"></a>
+<h4>VirtualenvExecDialog.__writeScriptFile</h4>
+<b>__writeScriptFile</b>(<i></i>)
+<p>
+        Private method to write a script file to the virtualenv directory.
+</p><a NAME="VirtualenvExecDialog.on_buttonBox_clicked" ID="VirtualenvExecDialog.on_buttonBox_clicked"></a>
+<h4>VirtualenvExecDialog.on_buttonBox_clicked</h4>
+<b>on_buttonBox_clicked</b>(<i>button</i>)
+<p>
+        Private slot called by a button of the button box clicked.
+</p><dl>
+<dt><i>button</i></dt>
+<dd>
+button that was clicked (QAbstractButton)
+</dd>
+</dl><a NAME="VirtualenvExecDialog.start" ID="VirtualenvExecDialog.start"></a>
+<h4>VirtualenvExecDialog.start</h4>
+<b>start</b>(<i>arguments</i>)
+<p>
+        Public slot to start the virtualenv command.
+</p><dl>
+<dt><i>arguments</i></dt>
+<dd>
+commandline arguments for virtualenv/pyvenv program
+            (list of strings)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog</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.VirtualEnv.VirtualenvInterpreterSelectionDialog</h1>
+<p>
+Module implementing a dialog to enter the interpreter for a virtual
+environment.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#VirtualenvInterpreterSelectionDialog">VirtualenvInterpreterSelectionDialog</a></td>
+<td>Class implementing a dialog to enter the interpreter for a virtual environment.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="VirtualenvInterpreterSelectionDialog" ID="VirtualenvInterpreterSelectionDialog"></a>
+<h2>VirtualenvInterpreterSelectionDialog</h2>
+<p>
+    Class implementing a dialog to enter the interpreter for a virtual
+    environment.
+</p>
+<h3>Derived from</h3>
+QDialog, Ui_VirtualenvInterpreterSelectionDialog
+<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="#VirtualenvInterpreterSelectionDialog.__init__">VirtualenvInterpreterSelectionDialog</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#VirtualenvInterpreterSelectionDialog.__updateOK">__updateOK</a></td>
+<td>Private method to update the enabled status of the OK button.</td>
+</tr><tr>
+<td><a href="#VirtualenvInterpreterSelectionDialog.getData">getData</a></td>
+<td>Public method to get the entered data.</td>
+</tr><tr>
+<td><a href="#VirtualenvInterpreterSelectionDialog.on_pythonExecPicker_textChanged">on_pythonExecPicker_textChanged</a></td>
+<td>Private slot to handle changes of the entered Python interpreter path.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="VirtualenvInterpreterSelectionDialog.__init__" ID="VirtualenvInterpreterSelectionDialog.__init__"></a>
+<h4>VirtualenvInterpreterSelectionDialog (Constructor)</h4>
+<b>VirtualenvInterpreterSelectionDialog</b>(<i>venvName, venvDirectory, parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>venvName</i> (str)</dt>
+<dd>
+name for the virtual environment
+</dd><dt><i>venvDirectory</i> (str)</dt>
+<dd>
+directory of the virtual environment
+</dd><dt><i>parent</i> (QWidget)</dt>
+<dd>
+reference to the parent widget
+</dd>
+</dl><a NAME="VirtualenvInterpreterSelectionDialog.__updateOK" ID="VirtualenvInterpreterSelectionDialog.__updateOK"></a>
+<h4>VirtualenvInterpreterSelectionDialog.__updateOK</h4>
+<b>__updateOK</b>(<i></i>)
+<p>
+        Private method to update the enabled status of the OK button.
+</p><a NAME="VirtualenvInterpreterSelectionDialog.getData" ID="VirtualenvInterpreterSelectionDialog.getData"></a>
+<h4>VirtualenvInterpreterSelectionDialog.getData</h4>
+<b>getData</b>(<i></i>)
+<p>
+        Public method to get the entered data.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+tuple containing the path of the selected Python interpreter
+            and the Python variant
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (str, int)
+</dd>
+</dl><a NAME="VirtualenvInterpreterSelectionDialog.on_pythonExecPicker_textChanged" ID="VirtualenvInterpreterSelectionDialog.on_pythonExecPicker_textChanged"></a>
+<h4>VirtualenvInterpreterSelectionDialog.on_pythonExecPicker_textChanged</h4>
+<b>on_pythonExecPicker_textChanged</b>(<i>txt</i>)
+<p>
+        Private slot to handle changes of the entered Python interpreter path.
+</p><dl>
+<dt><i>txt</i> (str)</dt>
+<dd>
+entered Python interpreter path
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.VirtualEnv.VirtualenvManager.html	Mon Jul 02 18:59:30 2018 +0200
@@ -0,0 +1,410 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.VirtualEnv.VirtualenvManager</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.VirtualEnv.VirtualenvManager</h1>
+<p>
+Module implementing a class to manage Python virtual environments.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#VirtualenvManager">VirtualenvManager</a></td>
+<td>Class implementing an object to manage Python virtual environments.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="VirtualenvManager" ID="VirtualenvManager"></a>
+<h2>VirtualenvManager</h2>
+<p>
+    Class implementing an object to manage Python virtual environments.
+</p>
+<h3>Derived from</h3>
+QObject
+<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="#VirtualenvManager.__init__">VirtualenvManager</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.__isEnvironmentDeleteable">__isEnvironmentDeleteable</a></td>
+<td>Private method to check, if a virtual environment can be deleted from disk.</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.__loadSettings">__loadSettings</a></td>
+<td>Private slot to load the virtual environments.</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.__saveSettings">__saveSettings</a></td>
+<td>Private slot to save the virtual environments.</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.addVirtualEnv">addVirtualEnv</a></td>
+<td>Public method to add a virtual environment.</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.createVirtualEnv">createVirtualEnv</a></td>
+<td>Public slot to create a new virtual environment.</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.deleteVirtualEnvs">deleteVirtualEnvs</a></td>
+<td>Public method to delete virtual environments from the list and disk.</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.getEnvironmentEntries">getEnvironmentEntries</a></td>
+<td>Public method to get a dictionary containing the defined virtual environment entries.</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.getVirtualenvDirectory">getVirtualenvDirectory</a></td>
+<td>Public method to get the directory of a virtual environment.</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.getVirtualenvInterpreter">getVirtualenvInterpreter</a></td>
+<td>Public method to get the interpreter for a virtual environment.</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.getVirtualenvNames">getVirtualenvNames</a></td>
+<td>Public method to get a list of defined virtual environments.</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.getVirtualenvNamesForVariant">getVirtualenvNamesForVariant</a></td>
+<td>Public method to get a list of virtual environments for a given Python variant.</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.isGlobalEnvironment">isGlobalEnvironment</a></td>
+<td>Public method to test, if a given environment is a global one.</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.isUnique">isUnique</a></td>
+<td>Public method to check, if the give logical name is unique.</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.removeVirtualEnvs">removeVirtualEnvs</a></td>
+<td>Public method to delete virtual environment from the list.</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.renameVirtualEnv">renameVirtualEnv</a></td>
+<td>Public method to substitute a virtual environment entry with a new name.</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.setVirtualEnv">setVirtualEnv</a></td>
+<td>Public method to change a virtual environment.</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.showVirtualenvManagerDialog">showVirtualenvManagerDialog</a></td>
+<td>Public slot to show the virtual environment manager dialog.</td>
+</tr><tr>
+<td><a href="#VirtualenvManager.shutdown">shutdown</a></td>
+<td>Public method to shutdown the manager.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="VirtualenvManager.__init__" ID="VirtualenvManager.__init__"></a>
+<h4>VirtualenvManager (Constructor)</h4>
+<b>VirtualenvManager</b>(<i>parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i> (QWidget)</dt>
+<dd>
+reference to the parent object
+</dd>
+</dl><a NAME="VirtualenvManager.__isEnvironmentDeleteable" ID="VirtualenvManager.__isEnvironmentDeleteable"></a>
+<h4>VirtualenvManager.__isEnvironmentDeleteable</h4>
+<b>__isEnvironmentDeleteable</b>(<i>venvName</i>)
+<p>
+        Private method to check, if a virtual environment can be deleted from
+        disk.
+</p><dl>
+<dt><i>venvName</i> (str)</dt>
+<dd>
+name of the virtual environment
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating it can be deleted
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="VirtualenvManager.__loadSettings" ID="VirtualenvManager.__loadSettings"></a>
+<h4>VirtualenvManager.__loadSettings</h4>
+<b>__loadSettings</b>(<i></i>)
+<p>
+        Private slot to load the virtual environments.
+</p><a NAME="VirtualenvManager.__saveSettings" ID="VirtualenvManager.__saveSettings"></a>
+<h4>VirtualenvManager.__saveSettings</h4>
+<b>__saveSettings</b>(<i></i>)
+<p>
+        Private slot to save the virtual environments.
+</p><a NAME="VirtualenvManager.addVirtualEnv" ID="VirtualenvManager.addVirtualEnv"></a>
+<h4>VirtualenvManager.addVirtualEnv</h4>
+<b>addVirtualEnv</b>(<i>venvName, venvDirectory, venvInterpreter="", venvVariant=3, isGlobal=False</i>)
+<p>
+        Public method to add a virtual environment.
+</p><dl>
+<dt><i>venvName</i> (str)</dt>
+<dd>
+logical name for the virtual environment
+</dd><dt><i>venvDirectory</i> (str)</dt>
+<dd>
+directory of the virtual environment
+</dd><dt><i>venvInterpreter</i> (str)</dt>
+<dd>
+interpreter of the virtual environment
+</dd><dt><i>venvVariant</i> (int)</dt>
+<dd>
+Python variant of the virtual environment
+</dd><dt><i>isGlobal</i> (bool)</dt>
+<dd>
+flag indicating a global environment
+</dd>
+</dl><a NAME="VirtualenvManager.createVirtualEnv" ID="VirtualenvManager.createVirtualEnv"></a>
+<h4>VirtualenvManager.createVirtualEnv</h4>
+<b>createVirtualEnv</b>(<i></i>)
+<p>
+        Public slot to create a new virtual environment.
+</p><a NAME="VirtualenvManager.deleteVirtualEnvs" ID="VirtualenvManager.deleteVirtualEnvs"></a>
+<h4>VirtualenvManager.deleteVirtualEnvs</h4>
+<b>deleteVirtualEnvs</b>(<i>venvNames</i>)
+<p>
+        Public method to delete virtual environments from the list and disk.
+</p><dl>
+<dt><i>venvNames</i> (list of str)</dt>
+<dd>
+list of logical names for the virtual environments
+</dd>
+</dl><a NAME="VirtualenvManager.getEnvironmentEntries" ID="VirtualenvManager.getEnvironmentEntries"></a>
+<h4>VirtualenvManager.getEnvironmentEntries</h4>
+<b>getEnvironmentEntries</b>(<i></i>)
+<p>
+        Public method to get a dictionary containing the defined virtual
+        environment entries.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+dictionary containing a copy of the defined virtual
+            environments
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+dict
+</dd>
+</dl><a NAME="VirtualenvManager.getVirtualenvDirectory" ID="VirtualenvManager.getVirtualenvDirectory"></a>
+<h4>VirtualenvManager.getVirtualenvDirectory</h4>
+<b>getVirtualenvDirectory</b>(<i>venvName</i>)
+<p>
+        Public method to get the directory of a virtual environment.
+</p><dl>
+<dt><i>venvName</i> (str)</dt>
+<dd>
+logical name for the virtual environment
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+directory path
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl><a NAME="VirtualenvManager.getVirtualenvInterpreter" ID="VirtualenvManager.getVirtualenvInterpreter"></a>
+<h4>VirtualenvManager.getVirtualenvInterpreter</h4>
+<b>getVirtualenvInterpreter</b>(<i>venvName</i>)
+<p>
+        Public method to get the interpreter for a virtual environment.
+</p><dl>
+<dt><i>venvName</i> (str)</dt>
+<dd>
+logical name for the virtual environment
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+interpreter path
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl><a NAME="VirtualenvManager.getVirtualenvNames" ID="VirtualenvManager.getVirtualenvNames"></a>
+<h4>VirtualenvManager.getVirtualenvNames</h4>
+<b>getVirtualenvNames</b>(<i></i>)
+<p>
+        Public method to get a list of defined virtual environments.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+list of defined virtual environments
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
+</dd>
+</dl><a NAME="VirtualenvManager.getVirtualenvNamesForVariant" ID="VirtualenvManager.getVirtualenvNamesForVariant"></a>
+<h4>VirtualenvManager.getVirtualenvNamesForVariant</h4>
+<b>getVirtualenvNamesForVariant</b>(<i>variant</i>)
+<p>
+        Public method to get a list of virtual environments for a given
+        Python variant.
+</p><dl>
+<dt><i>variant</i> (int)</dt>
+<dd>
+Python variant (2 or 3)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+list of defined virtual environments
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
+</dd>
+</dl><a NAME="VirtualenvManager.isGlobalEnvironment" ID="VirtualenvManager.isGlobalEnvironment"></a>
+<h4>VirtualenvManager.isGlobalEnvironment</h4>
+<b>isGlobalEnvironment</b>(<i>venvName</i>)
+<p>
+        Public method to test, if a given environment is a global one.
+</p><dl>
+<dt><i>venvName</i> (str)</dt>
+<dd>
+logical name of the virtual environment
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating a global environment
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="VirtualenvManager.isUnique" ID="VirtualenvManager.isUnique"></a>
+<h4>VirtualenvManager.isUnique</h4>
+<b>isUnique</b>(<i>venvName</i>)
+<p>
+        Public method to check, if the give logical name is unique.
+</p><dl>
+<dt><i>venvName</i> (str)</dt>
+<dd>
+logical name for the virtual environment
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating uniqueness
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="VirtualenvManager.removeVirtualEnvs" ID="VirtualenvManager.removeVirtualEnvs"></a>
+<h4>VirtualenvManager.removeVirtualEnvs</h4>
+<b>removeVirtualEnvs</b>(<i>venvNames</i>)
+<p>
+        Public method to delete virtual environment from the list.
+</p><dl>
+<dt><i>venvNames</i> (list of str)</dt>
+<dd>
+list of logical names for the virtual environments
+</dd>
+</dl><a NAME="VirtualenvManager.renameVirtualEnv" ID="VirtualenvManager.renameVirtualEnv"></a>
+<h4>VirtualenvManager.renameVirtualEnv</h4>
+<b>renameVirtualEnv</b>(<i>oldVenvName, venvName, venvDirectory, venvInterpreter, venvVariant, isGlobal</i>)
+<p>
+        Public method to substitute a virtual environment entry with a new
+        name.
+</p><dl>
+<dt><i>oldVenvName</i> (str)</dt>
+<dd>
+old name of the virtual environment
+</dd><dt><i>venvName</i> (str)</dt>
+<dd>
+logical name for the virtual environment
+</dd><dt><i>venvDirectory</i> (str)</dt>
+<dd>
+directory of the virtual environment
+</dd><dt><i>venvInterpreter</i> (str)</dt>
+<dd>
+interpreter of the virtual environment
+</dd><dt><i>venvVariant</i> (int)</dt>
+<dd>
+Python variant of the virtual environment
+</dd><dt><i>isGlobal</i> (bool)</dt>
+<dd>
+flag indicating a global environment
+</dd>
+</dl><a NAME="VirtualenvManager.setVirtualEnv" ID="VirtualenvManager.setVirtualEnv"></a>
+<h4>VirtualenvManager.setVirtualEnv</h4>
+<b>setVirtualEnv</b>(<i>venvName, venvDirectory, venvInterpreter, venvVariant, isGlobal</i>)
+<p>
+        Public method to change a virtual environment.
+</p><dl>
+<dt><i>venvName</i> (str)</dt>
+<dd>
+logical name of the virtual environment
+</dd><dt><i>venvDirectory</i> (str)</dt>
+<dd>
+directory of the virtual environment
+</dd><dt><i>venvInterpreter</i> (str)</dt>
+<dd>
+interpreter of the virtual environment
+</dd><dt><i>venvVariant</i> (int)</dt>
+<dd>
+Python variant of the virtual environment
+</dd><dt><i>isGlobal</i> (bool)</dt>
+<dd>
+flag indicating a global environment
+</dd>
+</dl><a NAME="VirtualenvManager.showVirtualenvManagerDialog" ID="VirtualenvManager.showVirtualenvManagerDialog"></a>
+<h4>VirtualenvManager.showVirtualenvManagerDialog</h4>
+<b>showVirtualenvManagerDialog</b>(<i>modal=False</i>)
+<p>
+        Public slot to show the virtual environment manager dialog.
+</p><dl>
+<dt><i>modal</i></dt>
+<dd>
+flag indicating that the dialog should be shown in
+            a blocking mode
+</dd>
+</dl><a NAME="VirtualenvManager.shutdown" ID="VirtualenvManager.shutdown"></a>
+<h4>VirtualenvManager.shutdown</h4>
+<b>shutdown</b>(<i></i>)
+<p>
+        Public method to shutdown the manager.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.VirtualEnv.VirtualenvManagerDialog.html	Mon Jul 02 18:59:30 2018 +0200
@@ -0,0 +1,185 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.VirtualEnv.VirtualenvManagerDialog</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.VirtualEnv.VirtualenvManagerDialog</h1>
+<p>
+Module implementing a dialog to manage the list of defined virtual
+environments.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#VirtualenvManagerDialog">VirtualenvManagerDialog</a></td>
+<td>Class implementing a dialog to manage the list of defined virtual environments.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="VirtualenvManagerDialog" ID="VirtualenvManagerDialog"></a>
+<h2>VirtualenvManagerDialog</h2>
+<p>
+    Class implementing a dialog to manage the list of defined virtual
+    environments.
+</p>
+<h3>Derived from</h3>
+QDialog, Ui_VirtualenvManagerDialog
+<h3>Class Attributes</h3>
+<table>
+<tr><td>IsGlobalRole</td></tr><tr><td>PythonVariantRole</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#VirtualenvManagerDialog.__init__">VirtualenvManagerDialog</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#VirtualenvManagerDialog.__populateVenvList">__populateVenvList</a></td>
+<td>Private method to populate the list of virtual environments.</td>
+</tr><tr>
+<td><a href="#VirtualenvManagerDialog.__resizeSections">__resizeSections</a></td>
+<td>Private method to resize the sections of the environment list to their contents.</td>
+</tr><tr>
+<td><a href="#VirtualenvManagerDialog.__updateButtons">__updateButtons</a></td>
+<td>Private method to update the enabled state of the various buttons.</td>
+</tr><tr>
+<td><a href="#VirtualenvManagerDialog.on_addButton_clicked">on_addButton_clicked</a></td>
+<td>Private slot to add a new entry.</td>
+</tr><tr>
+<td><a href="#VirtualenvManagerDialog.on_deleteAllButton_clicked">on_deleteAllButton_clicked</a></td>
+<td>Private slot to delete all entries from the list and disk.</td>
+</tr><tr>
+<td><a href="#VirtualenvManagerDialog.on_deleteButton_clicked">on_deleteButton_clicked</a></td>
+<td>Private slot to delete all selected entries from the list and disk.</td>
+</tr><tr>
+<td><a href="#VirtualenvManagerDialog.on_editButton_clicked">on_editButton_clicked</a></td>
+<td>Private slot to edit the selected entry.</td>
+</tr><tr>
+<td><a href="#VirtualenvManagerDialog.on_newButton_clicked">on_newButton_clicked</a></td>
+<td>Private slot to create a new virtual environment.</td>
+</tr><tr>
+<td><a href="#VirtualenvManagerDialog.on_removeAllButton_clicked">on_removeAllButton_clicked</a></td>
+<td>Private slot to remove all entries from the list but keep their directories.</td>
+</tr><tr>
+<td><a href="#VirtualenvManagerDialog.on_removeButton_clicked">on_removeButton_clicked</a></td>
+<td>Private slot to remove all selected entries from the list but keep their directories.</td>
+</tr><tr>
+<td><a href="#VirtualenvManagerDialog.on_venvList_itemSelectionChanged">on_venvList_itemSelectionChanged</a></td>
+<td>Private slot handling a change of the selected items.</td>
+</tr><tr>
+<td><a href="#VirtualenvManagerDialog.refresh">refresh</a></td>
+<td>Public slot to refresh the list of shown items.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="VirtualenvManagerDialog.__init__" ID="VirtualenvManagerDialog.__init__"></a>
+<h4>VirtualenvManagerDialog (Constructor)</h4>
+<b>VirtualenvManagerDialog</b>(<i>manager, parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>manager</i> (VirtualenvManager)</dt>
+<dd>
+reference to the virtual environment manager
+</dd><dt><i>parent</i> (QWidget)</dt>
+<dd>
+reference to the parent widget
+</dd>
+</dl><a NAME="VirtualenvManagerDialog.__populateVenvList" ID="VirtualenvManagerDialog.__populateVenvList"></a>
+<h4>VirtualenvManagerDialog.__populateVenvList</h4>
+<b>__populateVenvList</b>(<i></i>)
+<p>
+        Private method to populate the list of virtual environments.
+</p><a NAME="VirtualenvManagerDialog.__resizeSections" ID="VirtualenvManagerDialog.__resizeSections"></a>
+<h4>VirtualenvManagerDialog.__resizeSections</h4>
+<b>__resizeSections</b>(<i></i>)
+<p>
+        Private method to resize the sections of the environment list to their
+        contents.
+</p><a NAME="VirtualenvManagerDialog.__updateButtons" ID="VirtualenvManagerDialog.__updateButtons"></a>
+<h4>VirtualenvManagerDialog.__updateButtons</h4>