Added a special file dialog to select files and directories simultaneously. eric7

Thu, 03 Jun 2021 15:58:59 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 03 Jun 2021 15:58:59 +0200
branch
eric7
changeset 8403
d9fd02e8c28b
parent 8399
0a80c37a868a
child 8404
c455e281b193

Added a special file dialog to select files and directories simultaneously.

eric7.epj file | annotate | diff | comparison | revisions
eric7/APIs/Python3/eric7.api file | annotate | diff | comparison | revisions
eric7/APIs/Python3/eric7.bas file | annotate | diff | comparison | revisions
eric7/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
eric7/Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
eric7/Documentation/Source/eric7.EricWidgets.EricDirFileDialog.html file | annotate | diff | comparison | revisions
eric7/Documentation/Source/eric7.EricWidgets.EricFileDialog.html file | annotate | diff | comparison | revisions
eric7/Documentation/Source/eric7.EricWidgets.EricPathPicker.html file | annotate | diff | comparison | revisions
eric7/Documentation/Source/eric7.Network.IRC.IrcNetworkEditDialog.html file | annotate | diff | comparison | revisions
eric7/Documentation/Source/eric7.PluginManager.PluginManager.html file | annotate | diff | comparison | revisions
eric7/Documentation/Source/eric7.Project.Project.html file | annotate | diff | comparison | revisions
eric7/Documentation/Source/eric7.QScintilla.Editor.html file | annotate | diff | comparison | revisions
eric7/Documentation/Source/eric7.UI.UserInterface.html file | annotate | diff | comparison | revisions
eric7/Documentation/Source/index-eric7.EricWidgets.html file | annotate | diff | comparison | revisions
eric7/EricWidgets/EricDirFileDialog.py file | annotate | diff | comparison | revisions
eric7/EricWidgets/EricFileDialog.py file | annotate | diff | comparison | revisions
eric7/EricWidgets/EricPathPicker.py file | annotate | diff | comparison | revisions
eric7/i18n/eric7_cs.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_de.qm file | annotate | diff | comparison | revisions
eric7/i18n/eric7_de.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_empty.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_en.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_es.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_fr.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_it.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_pt.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_ru.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_tr.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_zh_CN.ts file | annotate | diff | comparison | revisions
--- a/eric7.epj	Sun May 30 19:03:39 2021 +0200
+++ b/eric7.epj	Thu Jun 03 15:58:59 2021 +0200
@@ -2264,7 +2264,8 @@
       "eric7/EricWidgets/EricZoomWidget.py",
       "eric7/Plugins/WizardPlugins/EricMessageBoxWizard/__init__.py",
       "eric7/Plugins/WizardPlugins/EricMessageBoxWizard/EricMessageBoxWizardDialog.py",
-      "eric7/Plugins/PluginWizardEricMessageBox.py"
+      "eric7/Plugins/PluginWizardEricMessageBox.py",
+      "eric7/EricWidgets/EricDirFileDialog.py"
     ],
     "SPELLEXCLUDES": "Dictionaries/excludes.dic",
     "SPELLLANGUAGE": "en_US",
--- a/eric7/APIs/Python3/eric7.api	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/APIs/Python3/eric7.api	Thu Jun 03 15:58:59 2021 +0200
@@ -1256,6 +1256,12 @@
 eric7.EricWidgets.EricCompleters.EricFileCompleter.setRootPath?4(path)
 eric7.EricWidgets.EricCompleters.EricFileCompleter?1(parent=None, completionMode=QCompleter.CompletionMode.PopupCompletion, showHidden=False)
 eric7.EricWidgets.EricCompleters.EricStringListCompleter?1(parent=None, strings=None, completionMode=QCompleter.CompletionMode.PopupCompletion)
+eric7.EricWidgets.EricDirFileDialog.EricDirFileDialog.accept?4()
+eric7.EricWidgets.EricDirFileDialog.EricDirFileDialog.exec?4()
+eric7.EricWidgets.EricDirFileDialog.EricDirFileDialog.getOpenFileAndDirNames?4(caption="", directory="", filterStr="", options=None)
+eric7.EricWidgets.EricDirFileDialog.EricDirFileDialog.on_directoryEntered?4(directory)
+eric7.EricWidgets.EricDirFileDialog.EricDirFileDialog.on_selectionChanged?4(selected, deselected)
+eric7.EricWidgets.EricDirFileDialog.EricDirFileDialog?1(parent=None, caption="", directory="", filterStr="")
 eric7.EricWidgets.EricErrorMessage.EricErrorMessage.editMessageFilters?4()
 eric7.EricWidgets.EricErrorMessage.EricErrorMessage.showMessage?4(message, msgType="")
 eric7.EricWidgets.EricErrorMessage.EricErrorMessage?1(parent=None)
@@ -1279,6 +1285,7 @@
 eric7.EricWidgets.EricFileDialog.ReadOnly?7
 eric7.EricWidgets.EricFileDialog.ShowDirsOnly?7
 eric7.EricWidgets.EricFileDialog.getExistingDirectory?4(parent=None, caption="", directory="", options=QFileDialog.Option.ShowDirsOnly)
+eric7.EricWidgets.EricFileDialog.getOpenFileAndDirNames?4(parent=None, caption="", directory="", filterStr="", options=None)
 eric7.EricWidgets.EricFileDialog.getOpenFileName?4(parent=None, caption="", directory="", filterStr="", options=None)
 eric7.EricWidgets.EricFileDialog.getOpenFileNameAndFilter?4(parent=None, caption="", directory="", filterStr="", initialFilter="", options=None)
 eric7.EricWidgets.EricFileDialog.getOpenFileNames?4(parent=None, caption="", directory="", filterStr="", options=None)
@@ -1527,6 +1534,7 @@
 eric7.EricWidgets.EricPathPicker.EricPathPickerModes.DIRECTORY_MODE?7
 eric7.EricWidgets.EricPathPicker.EricPathPickerModes.DIRECTORY_SHOW_FILES_MODE?7
 eric7.EricWidgets.EricPathPicker.EricPathPickerModes.NO_MODE?7
+eric7.EricWidgets.EricPathPicker.EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE?7
 eric7.EricWidgets.EricPathPicker.EricPathPickerModes.OPEN_FILES_MODE?7
 eric7.EricWidgets.EricPathPicker.EricPathPickerModes.OPEN_FILE_MODE?7
 eric7.EricWidgets.EricPathPicker.EricPathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE?7
@@ -2713,7 +2721,7 @@
 eric7.Network.IRC.IrcNetworkEditDialog.IrcNetworkEditDialog.on_editChannelButton_clicked?4()
 eric7.Network.IRC.IrcNetworkEditDialog.IrcNetworkEditDialog.on_editIdentitiesButton_clicked?4()
 eric7.Network.IRC.IrcNetworkEditDialog.IrcNetworkEditDialog.on_editServerButton_clicked?4()
-eric7.Network.IRC.IrcNetworkEditDialog.IrcNetworkEditDialog.on_identityCombo_currentIndexChanged?4(index)
+eric7.Network.IRC.IrcNetworkEditDialog.IrcNetworkEditDialog.on_identityCombo_currentTextChanged?4(identity)
 eric7.Network.IRC.IrcNetworkEditDialog.IrcNetworkEditDialog.on_networkEdit_textChanged?4(txt)
 eric7.Network.IRC.IrcNetworkEditDialog.IrcNetworkEditDialog.on_serverEdit_textChanged?4(txt)
 eric7.Network.IRC.IrcNetworkEditDialog.IrcNetworkEditDialog?1(manager, networkName, parent=None)
@@ -7234,6 +7242,7 @@
 eric7.Project.Project.Project.getFiles?4(start)
 eric7.Project.Project.Project.getFiletypeAssociations?4(associationType)
 eric7.Project.Project.Project.getHash?4()
+eric7.Project.Project.Project.getIgnorePatterns?4()
 eric7.Project.Project.Project.getMainScript?4(normalized=False)
 eric7.Project.Project.Project.getMenu?4(menuName)
 eric7.Project.Project.Project.getModel?4()
--- a/eric7/APIs/Python3/eric7.bas	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/APIs/Python3/eric7.bas	Thu Jun 03 15:58:59 2021 +0200
@@ -204,6 +204,7 @@
 EricComboPathPicker EricPathPickerBase
 EricComboSelectionDialog QDialog Ui_E5ComboSelectionDialog
 EricDirCompleter QCompleter
+EricDirFileDialog QFileDialog
 EricDnDTabBar EricWheelTabBar
 EricErrorMessage QErrorMessage
 EricErrorMessageFilterDialog QDialog Ui_EricErrorMessageFilterDialog
Binary file eric7/Documentation/Help/source.qch has changed
--- a/eric7/Documentation/Help/source.qhp	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/Documentation/Help/source.qhp	Thu Jun 03 15:58:59 2021 +0200
@@ -134,6 +134,7 @@
             <section title="eric7.EricWidgets.EricClickableLabel" ref="eric7.EricWidgets.EricClickableLabel.html" />
             <section title="eric7.EricWidgets.EricComboSelectionDialog" ref="eric7.EricWidgets.EricComboSelectionDialog.html" />
             <section title="eric7.EricWidgets.EricCompleters" ref="eric7.EricWidgets.EricCompleters.html" />
+            <section title="eric7.EricWidgets.EricDirFileDialog" ref="eric7.EricWidgets.EricDirFileDialog.html" />
             <section title="eric7.EricWidgets.EricErrorMessage" ref="eric7.EricWidgets.EricErrorMessage.html" />
             <section title="eric7.EricWidgets.EricErrorMessageFilterDialog" ref="eric7.EricWidgets.EricErrorMessageFilterDialog.html" />
             <section title="eric7.EricWidgets.EricFileDialog" ref="eric7.EricWidgets.EricFileDialog.html" />
@@ -4742,6 +4743,14 @@
       <keyword name="EricDirCompleter (Constructor)" id="EricDirCompleter (Constructor)" ref="eric7.EricWidgets.EricCompleters.html#EricDirCompleter.__init__" />
       <keyword name="EricDirCompleter.rootPath" id="EricDirCompleter.rootPath" ref="eric7.EricWidgets.EricCompleters.html#EricDirCompleter.rootPath" />
       <keyword name="EricDirCompleter.setRootPath" id="EricDirCompleter.setRootPath" ref="eric7.EricWidgets.EricCompleters.html#EricDirCompleter.setRootPath" />
+      <keyword name="EricDirFileDialog" id="EricDirFileDialog" ref="eric7.EricWidgets.EricDirFileDialog.html#EricDirFileDialog" />
+      <keyword name="EricDirFileDialog (Constructor)" id="EricDirFileDialog (Constructor)" ref="eric7.EricWidgets.EricDirFileDialog.html#EricDirFileDialog.__init__" />
+      <keyword name="EricDirFileDialog (Module)" id="EricDirFileDialog (Module)" ref="eric7.EricWidgets.EricDirFileDialog.html" />
+      <keyword name="EricDirFileDialog.accept" id="EricDirFileDialog.accept" ref="eric7.EricWidgets.EricDirFileDialog.html#EricDirFileDialog.accept" />
+      <keyword name="EricDirFileDialog.exec" id="EricDirFileDialog.exec" ref="eric7.EricWidgets.EricDirFileDialog.html#EricDirFileDialog.exec" />
+      <keyword name="EricDirFileDialog.getOpenFileAndDirNames" id="EricDirFileDialog.getOpenFileAndDirNames" ref="eric7.EricWidgets.EricDirFileDialog.html#EricDirFileDialog.getOpenFileAndDirNames" />
+      <keyword name="EricDirFileDialog.on_directoryEntered" id="EricDirFileDialog.on_directoryEntered" ref="eric7.EricWidgets.EricDirFileDialog.html#EricDirFileDialog.on_directoryEntered" />
+      <keyword name="EricDirFileDialog.on_selectionChanged" id="EricDirFileDialog.on_selectionChanged" ref="eric7.EricWidgets.EricDirFileDialog.html#EricDirFileDialog.on_selectionChanged" />
       <keyword name="EricDnDTabBar" id="EricDnDTabBar" ref="eric7.EricWidgets.EricTabWidget.html#EricDnDTabBar" />
       <keyword name="EricDnDTabBar (Constructor)" id="EricDnDTabBar (Constructor)" ref="eric7.EricWidgets.EricTabWidget.html#EricDnDTabBar.__init__" />
       <keyword name="EricDnDTabBar.dragEnterEvent" id="EricDnDTabBar.dragEnterEvent" ref="eric7.EricWidgets.EricTabWidget.html#EricDnDTabBar.dragEnterEvent" />
@@ -9030,7 +9039,7 @@
       <keyword name="IrcNetworkEditDialog.on_editChannelButton_clicked" id="IrcNetworkEditDialog.on_editChannelButton_clicked" ref="eric7.Network.IRC.IrcNetworkEditDialog.html#IrcNetworkEditDialog.on_editChannelButton_clicked" />
       <keyword name="IrcNetworkEditDialog.on_editIdentitiesButton_clicked" id="IrcNetworkEditDialog.on_editIdentitiesButton_clicked" ref="eric7.Network.IRC.IrcNetworkEditDialog.html#IrcNetworkEditDialog.on_editIdentitiesButton_clicked" />
       <keyword name="IrcNetworkEditDialog.on_editServerButton_clicked" id="IrcNetworkEditDialog.on_editServerButton_clicked" ref="eric7.Network.IRC.IrcNetworkEditDialog.html#IrcNetworkEditDialog.on_editServerButton_clicked" />
-      <keyword name="IrcNetworkEditDialog.on_identityCombo_currentIndexChanged" id="IrcNetworkEditDialog.on_identityCombo_currentIndexChanged" ref="eric7.Network.IRC.IrcNetworkEditDialog.html#IrcNetworkEditDialog.on_identityCombo_currentIndexChanged" />
+      <keyword name="IrcNetworkEditDialog.on_identityCombo_currentTextChanged" id="IrcNetworkEditDialog.on_identityCombo_currentTextChanged" ref="eric7.Network.IRC.IrcNetworkEditDialog.html#IrcNetworkEditDialog.on_identityCombo_currentTextChanged" />
       <keyword name="IrcNetworkEditDialog.on_networkEdit_textChanged" id="IrcNetworkEditDialog.on_networkEdit_textChanged" ref="eric7.Network.IRC.IrcNetworkEditDialog.html#IrcNetworkEditDialog.on_networkEdit_textChanged" />
       <keyword name="IrcNetworkEditDialog.on_serverEdit_textChanged" id="IrcNetworkEditDialog.on_serverEdit_textChanged" ref="eric7.Network.IRC.IrcNetworkEditDialog.html#IrcNetworkEditDialog.on_serverEdit_textChanged" />
       <keyword name="IrcNetworkListDialog" id="IrcNetworkListDialog" ref="eric7.Network.IRC.IrcNetworkListDialog.html#IrcNetworkListDialog" />
@@ -11065,7 +11074,6 @@
       <keyword name="PluginManager.__getShortInfo" id="PluginManager.__getShortInfo" ref="eric7.PluginManager.PluginManager.html#PluginManager.__getShortInfo" />
       <keyword name="PluginManager.__insertPluginsPaths" id="PluginManager.__insertPluginsPaths" ref="eric7.PluginManager.PluginManager.html#PluginManager.__insertPluginsPaths" />
       <keyword name="PluginManager.__loadPlugins" id="PluginManager.__loadPlugins" ref="eric7.PluginManager.PluginManager.html#PluginManager.__loadPlugins" />
-      <keyword name="PluginManager.__onlineStateChanged" id="PluginManager.__onlineStateChanged" ref="eric7.PluginManager.PluginManager.html#PluginManager.__onlineStateChanged" />
       <keyword name="PluginManager.__pluginDirectoriesExist" id="PluginManager.__pluginDirectoriesExist" ref="eric7.PluginManager.PluginManager.html#PluginManager.__pluginDirectoriesExist" />
       <keyword name="PluginManager.__pluginModulesExist" id="PluginManager.__pluginModulesExist" ref="eric7.PluginManager.PluginManager.html#PluginManager.__pluginModulesExist" />
       <keyword name="PluginManager.__sslErrors" id="PluginManager.__sslErrors" ref="eric7.PluginManager.PluginManager.html#PluginManager.__sslErrors" />
@@ -11439,6 +11447,7 @@
       <keyword name="Project.getFiles" id="Project.getFiles" ref="eric7.Project.Project.html#Project.getFiles" />
       <keyword name="Project.getFiletypeAssociations" id="Project.getFiletypeAssociations" ref="eric7.Project.Project.html#Project.getFiletypeAssociations" />
       <keyword name="Project.getHash" id="Project.getHash" ref="eric7.Project.Project.html#Project.getHash" />
+      <keyword name="Project.getIgnorePatterns" id="Project.getIgnorePatterns" ref="eric7.Project.Project.html#Project.getIgnorePatterns" />
       <keyword name="Project.getMainScript" id="Project.getMainScript" ref="eric7.Project.Project.html#Project.getMainScript" />
       <keyword name="Project.getMenu" id="Project.getMenu" ref="eric7.Project.Project.html#Project.getMenu" />
       <keyword name="Project.getModel" id="Project.getModel" ref="eric7.Project.Project.html#Project.getModel" />
@@ -15685,6 +15694,7 @@
       <keyword name="UserInterface.__checkActions" id="UserInterface.__checkActions" ref="eric7.UI.UserInterface.html#UserInterface.__checkActions" />
       <keyword name="UserInterface.__chmViewer" id="UserInterface.__chmViewer" ref="eric7.UI.UserInterface.html#UserInterface.__chmViewer" />
       <keyword name="UserInterface.__clearPrivateData" id="UserInterface.__clearPrivateData" ref="eric7.UI.UserInterface.html#UserInterface.__clearPrivateData" />
+      <keyword name="UserInterface.__commitData" id="UserInterface.__commitData" ref="eric7.UI.UserInterface.html#UserInterface.__commitData" />
       <keyword name="UserInterface.__compareFiles" id="UserInterface.__compareFiles" ref="eric7.UI.UserInterface.html#UserInterface.__compareFiles" />
       <keyword name="UserInterface.__compareFilesSbs" id="UserInterface.__compareFilesSbs" ref="eric7.UI.UserInterface.html#UserInterface.__compareFilesSbs" />
       <keyword name="UserInterface.__configShortcuts" id="UserInterface.__configShortcuts" ref="eric7.UI.UserInterface.html#UserInterface.__configShortcuts" />
@@ -15753,6 +15763,7 @@
       <keyword name="UserInterface.__restart" id="UserInterface.__restart" ref="eric7.UI.UserInterface.html#UserInterface.__restart" />
       <keyword name="UserInterface.__saveCurrentViewProfile" id="UserInterface.__saveCurrentViewProfile" ref="eric7.UI.UserInterface.html#UserInterface.__saveCurrentViewProfile" />
       <keyword name="UserInterface.__saveSessionToFile" id="UserInterface.__saveSessionToFile" ref="eric7.UI.UserInterface.html#UserInterface.__saveSessionToFile" />
+      <keyword name="UserInterface.__saveState" id="UserInterface.__saveState" ref="eric7.UI.UserInterface.html#UserInterface.__saveState" />
       <keyword name="UserInterface.__setEditProfile" id="UserInterface.__setEditProfile" ref="eric7.UI.UserInterface.html#UserInterface.__setEditProfile" />
       <keyword name="UserInterface.__setWindowCaption" id="UserInterface.__setWindowCaption" ref="eric7.UI.UserInterface.html#UserInterface.__setWindowCaption" />
       <keyword name="UserInterface.__setupDockWindow" id="UserInterface.__setupDockWindow" ref="eric7.UI.UserInterface.html#UserInterface.__setupDockWindow" />
@@ -17918,6 +17929,7 @@
       <keyword name="getMicroPython" id="getMicroPython" ref="eric7.Preferences.__init__.html#getMicroPython" />
       <keyword name="getModuleQualnameFromPath" id="getModuleQualnameFromPath" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Security.SecurityUtils.html#getModuleQualnameFromPath" />
       <keyword name="getMultiProject" id="getMultiProject" ref="eric7.Preferences.__init__.html#getMultiProject" />
+      <keyword name="getOpenFileAndDirNames" id="getOpenFileAndDirNames" ref="eric7.EricWidgets.EricFileDialog.html#getOpenFileAndDirNames" />
       <keyword name="getOpenFileFiltersList" id="getOpenFileFiltersList" ref="eric7.QScintilla.Lexers.__init__.html#getOpenFileFiltersList" />
       <keyword name="getOpenFileName" id="getOpenFileName" ref="eric7.EricWidgets.EricFileDialog.html#getOpenFileName" />
       <keyword name="getOpenFileNameAndFilter" id="getOpenFileNameAndFilter" ref="eric7.EricWidgets.EricFileDialog.html#getOpenFileNameAndFilter" />
@@ -18594,6 +18606,7 @@
       <file>eric7.EricWidgets.EricClickableLabel.html</file>
       <file>eric7.EricWidgets.EricComboSelectionDialog.html</file>
       <file>eric7.EricWidgets.EricCompleters.html</file>
+      <file>eric7.EricWidgets.EricDirFileDialog.html</file>
       <file>eric7.EricWidgets.EricErrorMessage.html</file>
       <file>eric7.EricWidgets.EricErrorMessageFilterDialog.html</file>
       <file>eric7.EricWidgets.EricFileDialog.html</file>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/Documentation/Source/eric7.EricWidgets.EricDirFileDialog.html	Thu Jun 03 15:58:59 2021 +0200
@@ -0,0 +1,234 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric7.EricWidgets.EricDirFileDialog</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>eric7.EricWidgets.EricDirFileDialog</h1>
+
+<p>
+Module implementing a dialog to select files and directories simultaneously.
+</p>
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+
+<tr>
+<td><a href="#EricDirFileDialog">EricDirFileDialog</a></td>
+<td>Derived QFileDialog to select files and directories simultaneously.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr />
+<hr />
+<a NAME="EricDirFileDialog" ID="EricDirFileDialog"></a>
+<h2>EricDirFileDialog</h2>
+
+<p>
+    Derived QFileDialog to select files and directories simultaneously.
+</p>
+<p>
+    For this purpose the none native file dialog is used.
+</p>
+<h3>Derived from</h3>
+QFileDialog
+<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="#EricDirFileDialog.__init__">EricDirFileDialog</a></td>
+<td>Constructor</td>
+</tr>
+<tr>
+<td><a href="#EricDirFileDialog.accept">accept</a></td>
+<td>Public slot to update the list with the selected files and folders.</td>
+</tr>
+<tr>
+<td><a href="#EricDirFileDialog.exec">exec</a></td>
+<td>Public slot to finalize initialization and start the event loop.</td>
+</tr>
+<tr>
+<td><a href="#EricDirFileDialog.on_directoryEntered">on_directoryEntered</a></td>
+<td>Private slot to reset selections if another directory was entered.</td>
+</tr>
+<tr>
+<td><a href="#EricDirFileDialog.on_selectionChanged">on_selectionChanged</a></td>
+<td>Private method to determine the selected files and folders and update the line edit.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#EricDirFileDialog.getOpenFileAndDirNames">getOpenFileAndDirNames</a></td>
+<td>Static method to get the names of files and directories for opening it.</td>
+</tr>
+</table>
+
+<a NAME="EricDirFileDialog.__init__" ID="EricDirFileDialog.__init__"></a>
+<h4>EricDirFileDialog (Constructor)</h4>
+<b>EricDirFileDialog</b>(<i>parent=None, caption="", directory="", filterStr=""</i>)
+
+<p>
+        Constructor
+</p>
+<dl>
+
+<dt><i>parent</i> (QWidget)</dt>
+<dd>
+parent widget of the dialog
+</dd>
+<dt><i>caption</i> (str)</dt>
+<dd>
+window title of the dialog
+</dd>
+<dt><i>directory</i> (str)</dt>
+<dd>
+working directory of the dialog
+</dd>
+<dt><i>filterStr</i> (str)</dt>
+<dd>
+filter string for the dialog
+</dd>
+</dl>
+<a NAME="EricDirFileDialog.accept" ID="EricDirFileDialog.accept"></a>
+<h4>EricDirFileDialog.accept</h4>
+<b>accept</b>(<i></i>)
+
+<p>
+        Public slot to update the list with the selected files and folders.
+</p>
+<a NAME="EricDirFileDialog.exec" ID="EricDirFileDialog.exec"></a>
+<h4>EricDirFileDialog.exec</h4>
+<b>exec</b>(<i></i>)
+
+<p>
+        Public slot to finalize initialization and start the event loop.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+accepted or rejected
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+QDialog.DialogCode
+</dd>
+</dl>
+<a NAME="EricDirFileDialog.on_directoryEntered" ID="EricDirFileDialog.on_directoryEntered"></a>
+<h4>EricDirFileDialog.on_directoryEntered</h4>
+<b>on_directoryEntered</b>(<i>directory</i>)
+
+<p>
+        Private slot to reset selections if another directory was entered.
+</p>
+<dl>
+
+<dt><i>directory</i> (str)</dt>
+<dd>
+name of the directory entered
+</dd>
+</dl>
+<a NAME="EricDirFileDialog.on_selectionChanged" ID="EricDirFileDialog.on_selectionChanged"></a>
+<h4>EricDirFileDialog.on_selectionChanged</h4>
+<b>on_selectionChanged</b>(<i>selected, deselected</i>)
+
+<p>
+        Private method to determine the selected files and folders and update
+        the line edit.
+</p>
+<dl>
+
+<dt><i>selected</i> (QItemSelection)</dt>
+<dd>
+newly selected entries
+</dd>
+<dt><i>deselected</i> (QItemSelection)</dt>
+<dd>
+deselected entries
+</dd>
+</dl>
+<a NAME="EricDirFileDialog.getOpenFileAndDirNames" ID="EricDirFileDialog.getOpenFileAndDirNames"></a>
+<h4>EricDirFileDialog.getOpenFileAndDirNames (static)</h4>
+<b>getOpenFileAndDirNames</b>(<i>caption="", directory="", filterStr="", options=None</i>)
+
+<p>
+        Static method to get the names of files and directories for opening it.
+</p>
+<dl>
+
+<dt><i>parent</i> (QWidget)</dt>
+<dd>
+parent widget of the dialog
+</dd>
+<dt><i>caption</i> (str)</dt>
+<dd>
+window title of the dialog
+</dd>
+<dt><i>directory</i> (str)</dt>
+<dd>
+working directory of the dialog
+</dd>
+<dt><i>filterStr</i> (str)</dt>
+<dd>
+filter string for the dialog
+</dd>
+<dt><i>options</i> (QFileDialog.Options)</dt>
+<dd>
+various options for the dialog
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+names of the selected files and folders
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/eric7/Documentation/Source/eric7.EricWidgets.EricFileDialog.html	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/Documentation/Source/eric7.EricWidgets.EricFileDialog.html	Thu Jun 03 15:58:59 2021 +0200
@@ -23,8 +23,7 @@
 <h1>eric7.EricWidgets.EricFileDialog</h1>
 
 <p>
-Module implementing alternative functions for the QFileDialog static methods
-to cope with distributor's usage of KDE wrapper dialogs for Qt file dialogs.
+Module implementing alternative functions for the QFileDialog static methods.
 </p>
 <h3>Global Attributes</h3>
 
@@ -49,6 +48,10 @@
 <td>Module function to get the name of a directory.</td>
 </tr>
 <tr>
+<td><a href="#getOpenFileAndDirNames">getOpenFileAndDirNames</a></td>
+<td>Module function to get the names of files and directories for opening.</td>
+</tr>
+<tr>
 <td><a href="#getOpenFileName">getOpenFileName</a></td>
 <td>Module function to get the name of a file for opening it.</td>
 </tr>
@@ -85,19 +88,25 @@
 </p>
 <dl>
 
-<dt><i>filterStr</i></dt>
+<dt><i>filterStr</i> (str)</dt>
 <dd>
-Qt file filter (string)
+Qt file filter
 </dd>
-<dt><i>initialFilter</i></dt>
+<dt><i>initialFilter</i> (str)</dt>
 <dd>
-initial filter (string)
+initial filter
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-the rearranged Qt file filter (string)
+the rearranged Qt file filter
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
@@ -112,27 +121,78 @@
 </p>
 <dl>
 
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-parent widget of the dialog (QWidget)
+parent widget of the dialog
 </dd>
-<dt><i>caption</i></dt>
+<dt><i>caption</i> (str)</dt>
 <dd>
-window title of the dialog (string)
+window title of the dialog
 </dd>
-<dt><i>directory</i></dt>
+<dt><i>directory</i> (str)</dt>
 <dd>
-working directory of the dialog (string)
+working directory of the dialog
 </dd>
-<dt><i>options</i></dt>
+<dt><i>options</i> (QFileDialog.Options)</dt>
 <dd>
-various options for the dialog (QFileDialog.Options)
+various options for the dialog
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-name of selected directory (string)
+name of selected directory
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="getOpenFileAndDirNames" ID="getOpenFileAndDirNames"></a>
+<h2>getOpenFileAndDirNames</h2>
+<b>getOpenFileAndDirNames</b>(<i>parent=None, caption="", directory="", filterStr="", options=None</i>)
+
+<p>
+    Module function to get the names of files and directories for opening.
+</p>
+<dl>
+
+<dt><i>parent</i> (QWidget)</dt>
+<dd>
+parent widget of the dialog
+</dd>
+<dt><i>caption</i> (str)</dt>
+<dd>
+window title of the dialog
+</dd>
+<dt><i>directory</i> (str)</dt>
+<dd>
+working directory of the dialog
+</dd>
+<dt><i>filterStr</i> (str)</dt>
+<dd>
+filter string for the dialog
+</dd>
+<dt><i>options</i> (QFileDialog.Options)</dt>
+<dd>
+various options for the dialog
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+names of the selected files and folders
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
@@ -147,31 +207,37 @@
 </p>
 <dl>
 
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-parent widget of the dialog (QWidget)
+parent widget of the dialog
 </dd>
-<dt><i>caption</i></dt>
+<dt><i>caption</i> (str)</dt>
 <dd>
-window title of the dialog (string)
+window title of the dialog
 </dd>
-<dt><i>directory</i></dt>
+<dt><i>directory</i> (str)</dt>
 <dd>
-working directory of the dialog (string)
+working directory of the dialog
 </dd>
-<dt><i>filterStr</i></dt>
+<dt><i>filterStr</i> (str)</dt>
 <dd>
-filter string for the dialog (string)
+filter string for the dialog
 </dd>
-<dt><i>options</i></dt>
+<dt><i>options</i> (QFileDialog.Options)</dt>
 <dd>
-various options for the dialog (QFileDialog.Options)
+various options for the dialog
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-name of file to be opened (string)
+name of file to be opened
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
@@ -187,35 +253,41 @@
 </p>
 <dl>
 
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-parent widget of the dialog (QWidget)
+parent widget of the dialog
 </dd>
-<dt><i>caption</i></dt>
+<dt><i>caption</i> (str)</dt>
 <dd>
-window title of the dialog (string)
+window title of the dialog
 </dd>
-<dt><i>directory</i></dt>
+<dt><i>directory</i> (str)</dt>
 <dd>
-working directory of the dialog (string)
+working directory of the dialog
 </dd>
-<dt><i>filterStr</i></dt>
+<dt><i>filterStr</i> (str)</dt>
 <dd>
-filter string for the dialog (string)
+filter string for the dialog
 </dd>
-<dt><i>initialFilter</i></dt>
+<dt><i>initialFilter</i> (str)</dt>
 <dd>
-initial filter for the dialog (string)
+initial filter for the dialog
 </dd>
-<dt><i>options</i></dt>
+<dt><i>options</i> (QFileDialog.Options)</dt>
 <dd>
-various options for the dialog (QFileDialog.Options)
+various options for the dialog
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-name of file to be opened and selected filter (string, string)
+name of file to be opened and selected filter
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (str, str)
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
@@ -230,31 +302,37 @@
 </p>
 <dl>
 
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-parent widget of the dialog (QWidget)
+parent widget of the dialog
 </dd>
-<dt><i>caption</i></dt>
+<dt><i>caption</i> (str)</dt>
 <dd>
-window title of the dialog (string)
+window title of the dialog
 </dd>
-<dt><i>directory</i></dt>
+<dt><i>directory</i> (str)</dt>
 <dd>
-working directory of the dialog (string)
+working directory of the dialog
 </dd>
-<dt><i>filterStr</i></dt>
+<dt><i>filterStr</i> (str)</dt>
 <dd>
-filter string for the dialog (string)
+filter string for the dialog
 </dd>
-<dt><i>options</i></dt>
+<dt><i>options</i> (QFileDialog.Options)</dt>
 <dd>
-various options for the dialog (QFileDialog.Options)
+various options for the dialog
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-list of file names to be opened (list of string)
+list of file names to be opened
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
@@ -270,36 +348,41 @@
 </p>
 <dl>
 
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-parent widget of the dialog (QWidget)
+parent widget of the dialog
 </dd>
-<dt><i>caption</i></dt>
+<dt><i>caption</i> (str)</dt>
 <dd>
-window title of the dialog (string)
+window title of the dialog
 </dd>
-<dt><i>directory</i></dt>
+<dt><i>directory</i> (str)</dt>
 <dd>
-working directory of the dialog (string)
+working directory of the dialog
 </dd>
-<dt><i>filterStr</i></dt>
+<dt><i>filterStr</i> (str)</dt>
 <dd>
-filter string for the dialog (string)
+filter string for the dialog
 </dd>
-<dt><i>initialFilter</i></dt>
+<dt><i>initialFilter</i> (str)</dt>
 <dd>
-initial filter for the dialog (string)
+initial filter for the dialog
 </dd>
-<dt><i>options</i></dt>
+<dt><i>options</i> (QFileDialog.Options)</dt>
 <dd>
-various options for the dialog (QFileDialog.Options)
+various options for the dialog
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
 list of file names to be opened and selected filter
-        (list of string, string)
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (list of str, str)
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
@@ -314,31 +397,37 @@
 </p>
 <dl>
 
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-parent widget of the dialog (QWidget)
+parent widget of the dialog
 </dd>
-<dt><i>caption</i></dt>
+<dt><i>caption</i> (str)</dt>
 <dd>
-window title of the dialog (string)
+window title of the dialog
 </dd>
-<dt><i>directory</i></dt>
+<dt><i>directory</i> (str)</dt>
 <dd>
-working directory of the dialog (string)
+working directory of the dialog
 </dd>
-<dt><i>filterStr</i></dt>
+<dt><i>filterStr</i> (str)</dt>
 <dd>
-filter string for the dialog (string)
+filter string for the dialog
 </dd>
-<dt><i>options</i></dt>
+<dt><i>options</i> (QFileDialog.Options)</dt>
 <dd>
-various options for the dialog (QFileDialog.Options)
+various options for the dialog
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-name of file to be saved (string)
+name of file to be saved
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
@@ -354,35 +443,41 @@
 </p>
 <dl>
 
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-parent widget of the dialog (QWidget)
+parent widget of the dialog
 </dd>
-<dt><i>caption</i></dt>
+<dt><i>caption</i> (str)</dt>
 <dd>
-window title of the dialog (string)
+window title of the dialog
 </dd>
-<dt><i>directory</i></dt>
+<dt><i>directory</i> (str)</dt>
 <dd>
-working directory of the dialog (string)
+working directory of the dialog
 </dd>
-<dt><i>filterStr</i></dt>
+<dt><i>filterStr</i> (str)</dt>
 <dd>
-filter string for the dialog (string)
+filter string for the dialog
 </dd>
-<dt><i>initialFilter</i></dt>
+<dt><i>initialFilter</i> (str)</dt>
 <dd>
-initial filter for the dialog (string)
+initial filter for the dialog
 </dd>
-<dt><i>options</i></dt>
+<dt><i>options</i> (QFileDialog.Options)</dt>
 <dd>
-various options for the dialog (QFileDialog.Options)
+various options for the dialog
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-name of file to be saved and selected filter (string, string)
+name of file to be saved and selected filte
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (str, str)
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/eric7/Documentation/Source/eric7.EricWidgets.EricPathPicker.html	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/Documentation/Source/eric7.EricWidgets.EricPathPicker.html	Thu Jun 03 15:58:59 2021 +0200
@@ -1129,7 +1129,7 @@
 <h3>Class Attributes</h3>
 
 <table>
-<tr><td>CUSTOM_MODE</td></tr><tr><td>DIRECTORY_MODE</td></tr><tr><td>DIRECTORY_SHOW_FILES_MODE</td></tr><tr><td>NO_MODE</td></tr><tr><td>OPEN_FILES_MODE</td></tr><tr><td>OPEN_FILE_MODE</td></tr><tr><td>SAVE_FILE_ENSURE_EXTENSION_MODE</td></tr><tr><td>SAVE_FILE_MODE</td></tr><tr><td>SAVE_FILE_OVERWRITE_MODE</td></tr>
+<tr><td>CUSTOM_MODE</td></tr><tr><td>DIRECTORY_MODE</td></tr><tr><td>DIRECTORY_SHOW_FILES_MODE</td></tr><tr><td>NO_MODE</td></tr><tr><td>OPEN_FILES_AND_DIRS_MODE</td></tr><tr><td>OPEN_FILES_MODE</td></tr><tr><td>OPEN_FILE_MODE</td></tr><tr><td>SAVE_FILE_ENSURE_EXTENSION_MODE</td></tr><tr><td>SAVE_FILE_MODE</td></tr><tr><td>SAVE_FILE_OVERWRITE_MODE</td></tr>
 </table>
 <h3>Class Methods</h3>
 
--- a/eric7/Documentation/Source/eric7.Network.IRC.IrcNetworkEditDialog.html	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/Documentation/Source/eric7.Network.IRC.IrcNetworkEditDialog.html	Thu Jun 03 15:58:59 2021 +0200
@@ -117,7 +117,7 @@
 <td>Private slot to edit the server configuration.</td>
 </tr>
 <tr>
-<td><a href="#IrcNetworkEditDialog.on_identityCombo_currentIndexChanged">on_identityCombo_currentIndexChanged</a></td>
+<td><a href="#IrcNetworkEditDialog.on_identityCombo_currentTextChanged">on_identityCombo_currentTextChanged</a></td>
 <td>Private slot to handle the selection of an identity.</td>
 </tr>
 <tr>
@@ -266,18 +266,18 @@
 <p>
         Private slot to edit the server configuration.
 </p>
-<a NAME="IrcNetworkEditDialog.on_identityCombo_currentIndexChanged" ID="IrcNetworkEditDialog.on_identityCombo_currentIndexChanged"></a>
-<h4>IrcNetworkEditDialog.on_identityCombo_currentIndexChanged</h4>
-<b>on_identityCombo_currentIndexChanged</b>(<i>index</i>)
+<a NAME="IrcNetworkEditDialog.on_identityCombo_currentTextChanged" ID="IrcNetworkEditDialog.on_identityCombo_currentTextChanged"></a>
+<h4>IrcNetworkEditDialog.on_identityCombo_currentTextChanged</h4>
+<b>on_identityCombo_currentTextChanged</b>(<i>identity</i>)
 
 <p>
         Private slot to handle the selection of an identity.
 </p>
 <dl>
 
-<dt><i>index</i> (int)</dt>
+<dt><i>identity</i> (str)</dt>
 <dd>
-index of the selected entry
+selected identity
 </dd>
 </dl>
 <a NAME="IrcNetworkEditDialog.on_networkEdit_textChanged" ID="IrcNetworkEditDialog.on_networkEdit_textChanged"></a>
--- a/eric7/Documentation/Source/eric7.PluginManager.PluginManager.html	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/Documentation/Source/eric7.PluginManager.PluginManager.html	Thu Jun 03 15:58:59 2021 +0200
@@ -134,10 +134,6 @@
 <td>Private method to load the plugins found.</td>
 </tr>
 <tr>
-<td><a href="#PluginManager.__onlineStateChanged">__onlineStateChanged</a></td>
-<td>Private slot handling changes in online state.</td>
-</tr>
-<tr>
 <td><a href="#PluginManager.__pluginDirectoriesExist">__pluginDirectoriesExist</a></td>
 <td>Private method to check, if the plugin folders exist.</td>
 </tr>
@@ -455,20 +451,6 @@
 <p>
         Private method to load the plugins found.
 </p>
-<a NAME="PluginManager.__onlineStateChanged" ID="PluginManager.__onlineStateChanged"></a>
-<h4>PluginManager.__onlineStateChanged</h4>
-<b>__onlineStateChanged</b>(<i>online</i>)
-
-<p>
-        Private slot handling changes in online state.
-</p>
-<dl>
-
-<dt><i>online</i> (bool)</dt>
-<dd>
-flag indicating the online state
-</dd>
-</dl>
 <a NAME="PluginManager.__pluginDirectoriesExist" ID="PluginManager.__pluginDirectoriesExist"></a>
 <h4>PluginManager.__pluginDirectoriesExist</h4>
 <b>__pluginDirectoriesExist</b>(<i></i>)
--- a/eric7/Documentation/Source/eric7.Project.Project.html	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/Documentation/Source/eric7.Project.Project.html	Thu Jun 03 15:58:59 2021 +0200
@@ -701,6 +701,10 @@
 <td>Public method to get the project hash.</td>
 </tr>
 <tr>
+<td><a href="#Project.getIgnorePatterns">getIgnorePatterns</a></td>
+<td>Public method to get the list of file name patterns for files to be ignored.</td>
+</tr>
+<tr>
 <td><a href="#Project.getMainScript">getMainScript</a></td>
 <td>Public method to return the main script filename.</td>
 </tr>
@@ -2501,8 +2505,8 @@
 <dt><i>associationType</i> (str)</dt>
 <dd>
 type of the association (one of FORMS,
-            INTERFACES, OTHERS, PROTOCOLS, RESOURCES, SOURCES or
-            TRANSLATIONS)
+            INTERFACES, OTHERS, PROTOCOLS, RESOURCES, SOURCES,
+            TRANSLATIONS or __IGNORE__)
 </dd>
 </dl>
 <dl>
@@ -2530,6 +2534,26 @@
 project hash as a hex string (string)
 </dd>
 </dl>
+<a NAME="Project.getIgnorePatterns" ID="Project.getIgnorePatterns"></a>
+<h4>Project.getIgnorePatterns</h4>
+<b>getIgnorePatterns</b>(<i></i>)
+
+<p>
+        Public method to get the list of file name patterns for files to be
+        ignored.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+list of ignore file name patterns
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
+</dd>
+</dl>
 <a NAME="Project.getMainScript" ID="Project.getMainScript"></a>
 <h4>Project.getMainScript</h4>
 <b>getMainScript</b>(<i>normalized=False</i>)
--- a/eric7/Documentation/Source/eric7.QScintilla.Editor.html	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/Documentation/Source/eric7.QScintilla.Editor.html	Thu Jun 03 15:58:59 2021 +0200
@@ -5097,7 +5097,7 @@
 <dl>
 <dt>Return Type:</dt>
 <dd>
-list of tuple of (Qt.KeyboardModifiers, Qt.MouseButton,func)
+list of tuple of (Qt.KeyboardModifiers, Qt.MouseButton, func)
 </dd>
 </dl>
 <a NAME="Editor.getNoName" ID="Editor.getNoName"></a>
--- a/eric7/Documentation/Source/eric7.UI.UserInterface.html	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/Documentation/Source/eric7.UI.UserInterface.html	Thu Jun 03 15:58:59 2021 +0200
@@ -330,6 +330,10 @@
 <td>Private slot to clear the private data lists.</td>
 </tr>
 <tr>
+<td><a href="#UserInterface.__commitData">__commitData</a></td>
+<td>Private slot to commit unsaved data when instructed by the desktop session manager.</td>
+</tr>
+<tr>
 <td><a href="#UserInterface.__compareFiles">__compareFiles</a></td>
 <td>Private slot to handle the Compare Files dialog.</td>
 </tr>
@@ -602,6 +606,10 @@
 <td>Private slot to save a session to disk.</td>
 </tr>
 <tr>
+<td><a href="#UserInterface.__saveState">__saveState</a></td>
+<td>Private slot to save the state when instructed by the desktop session manager.</td>
+</tr>
+<tr>
 <td><a href="#UserInterface.__setEditProfile">__setEditProfile</a></td>
 <td>Private slot to activate the edit view profile.</td>
 </tr>
@@ -1394,6 +1402,21 @@
 <p>
         Private slot to clear the private data lists.
 </p>
+<a NAME="UserInterface.__commitData" ID="UserInterface.__commitData"></a>
+<h4>UserInterface.__commitData</h4>
+<b>__commitData</b>(<i>manager: QSessionManager</i>)
+
+<p>
+        Private slot to commit unsaved data when instructed by the desktop
+        session manager.
+</p>
+<dl>
+
+<dt><i>manager</i> (QSessionManager)</dt>
+<dd>
+reference to the desktop session manager
+</dd>
+</dl>
 <a NAME="UserInterface.__compareFiles" ID="UserInterface.__compareFiles"></a>
 <h4>UserInterface.__compareFiles</h4>
 <b>__compareFiles</b>(<i></i>)
@@ -2115,6 +2138,21 @@
 <p>
         Private slot to save a session to disk.
 </p>
+<a NAME="UserInterface.__saveState" ID="UserInterface.__saveState"></a>
+<h4>UserInterface.__saveState</h4>
+<b>__saveState</b>(<i>manager: QSessionManager</i>)
+
+<p>
+        Private slot to save the state when instructed by the desktop session
+        manager.
+</p>
+<dl>
+
+<dt><i>manager</i> (QSessionManager)</dt>
+<dd>
+reference to the desktop session manager
+</dd>
+</dl>
 <a NAME="UserInterface.__setEditProfile" ID="UserInterface.__setEditProfile"></a>
 <h4>UserInterface.__setEditProfile</h4>
 <b>__setEditProfile</b>(<i>save=True</i>)
--- a/eric7/Documentation/Source/index-eric7.EricWidgets.html	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/Documentation/Source/index-eric7.EricWidgets.html	Thu Jun 03 15:58:59 2021 +0200
@@ -57,6 +57,10 @@
 <td>Module implementing various kinds of completers.</td>
 </tr>
 <tr>
+<td><a href="eric7.EricWidgets.EricDirFileDialog.html">EricDirFileDialog</a></td>
+<td>Module implementing a dialog to select files and directories simultaneously.</td>
+</tr>
+<tr>
 <td><a href="eric7.EricWidgets.EricErrorMessage.html">EricErrorMessage</a></td>
 <td>Module implementing a specialized error message dialog.</td>
 </tr>
@@ -66,7 +70,7 @@
 </tr>
 <tr>
 <td><a href="eric7.EricWidgets.EricFileDialog.html">EricFileDialog</a></td>
-<td>Module implementing alternative functions for the QFileDialog static methods to cope with distributor's usage of KDE wrapper dialogs for Qt file dialogs.</td>
+<td>Module implementing alternative functions for the QFileDialog static methods.</td>
 </tr>
 <tr>
 <td><a href="eric7.EricWidgets.EricFileSaveConfirmDialog.html">EricFileSaveConfirmDialog</a></td>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/EricWidgets/EricDirFileDialog.py	Thu Jun 03 15:58:59 2021 +0200
@@ -0,0 +1,140 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to select files and directories simultaneously.
+"""
+
+from PyQt6.QtCore import pyqtSlot, QItemSelection
+from PyQt6.QtGui import QFileSystemModel
+from PyQt6.QtWidgets import QFileDialog, QPushButton, QLineEdit, QTreeView
+
+
+class EricDirFileDialog(QFileDialog):
+    """
+    Derived QFileDialog to select files and directories simultaneously.
+    
+    For this purpose the none native file dialog is used.
+    """
+    def __init__(self, parent=None, caption="", directory="", filterStr=""):
+        """
+        Constructor
+        
+        @param parent parent widget of the dialog
+        @type QWidget
+        @param caption window title of the dialog
+        @type str
+        @param directory working directory of the dialog
+        @type str
+        @param filterStr filter string for the dialog
+        @type str
+        """
+        self.__selectedFilesFolders = []
+        
+        super().__init__(parent, caption, directory, filterStr)
+        self.setFileMode(QFileDialog.FileMode.ExistingFiles)
+    
+    @pyqtSlot()
+    def exec(self):
+        """
+        Public slot to finalize initialization and start the event loop.
+        
+        @return accepted or rejected
+        @rtype QDialog.DialogCode
+        """
+        self.__openBtn = self.findChildren(QPushButton)[0]
+        self.__fileNameEdit = self.findChild(QLineEdit)
+        self.directoryEntered.connect(self.on_directoryEntered)
+        self.__tree = self.findChild(QTreeView)
+        self.__tree.selectionModel().selectionChanged.connect(
+            self.on_selectionChanged)
+        
+        return QFileDialog.exec(self)
+    
+    @pyqtSlot()
+    def accept(self):
+        """
+        Public slot to update the list with the selected files and folders.
+        """
+        # Avoid to close the dialog if only return is pressed
+        if not self.__openBtn.isEnabled():
+            return
+        
+        self.__selectedFilesFolders = [
+            x.data(QFileSystemModel.Roles.FilePathRole)
+            for x in self.__tree.selectionModel().selectedIndexes()
+            if x.column() == 0]
+        
+        self.hide()
+    
+    @pyqtSlot(str)
+    def on_directoryEntered(self, directory):
+        """
+        Private slot to reset selections if another directory was entered.
+        
+        @param directory name of the directory entered
+        @type str
+        """
+        self.__tree.selectionModel().clear()
+        self.__fileNameEdit.clear()
+        self.__openBtn.setEnabled(False)
+    
+    @pyqtSlot(QItemSelection, QItemSelection)
+    def on_selectionChanged(self, selected, deselected):
+        """
+        Private method to determine the selected files and folders and update
+        the line edit.
+        
+        @param selected newly selected entries
+        @type QItemSelection
+        @param deselected deselected entries
+        @type QItemSelection
+        """
+        selectedItems = self.__tree.selectionModel().selectedIndexes()
+        if self.__tree.rootIndex() in selectedItems or selectedItems == []:
+            return
+        
+        selectedFiles = [x.data(QFileSystemModel.Roles.FileNameRole)
+                         for x in selectedItems if x.column() == 0]
+        enteredFiles = self.__fileNameEdit.text().split('"')
+        enteredFiles = [x.strip() for x in enteredFiles if x.strip()]
+        
+        # Check if there is a directory in the selection. Then update the
+        # lineEdit.
+        for selectedFile in selectedFiles:
+            if selectedFile not in enteredFiles:
+                txt = '" "'.join(selectedFiles)
+                if len(selectedFiles) > 1:
+                    txt = '"{0}"'.format(txt)
+                self.__fileNameEdit.setText(txt)
+                break
+    
+    @staticmethod
+    def getOpenFileAndDirNames(parent=None, caption="", directory="",
+                               filterStr="", options=None):
+        """
+        Static method to get the names of files and directories for opening it.
+        
+        @param parent parent widget of the dialog
+        @type QWidget
+        @param caption window title of the dialog
+        @type str
+        @param directory working directory of the dialog
+        @type str
+        @param filterStr filter string for the dialog
+        @type str
+        @param options various options for the dialog
+        @type QFileDialog.Options
+        @return names of the selected files and folders
+        @rtype list of str
+        """
+        if options is None:
+            options = QFileDialog.Options(0)
+        options |= QFileDialog.Option.DontUseNativeDialog
+        dlg = EricDirFileDialog(parent, caption, directory, filterStr)
+        dlg.setOptions(options)
+        dlg.exec()
+        
+        return dlg.__selectedFilesFolders
--- a/eric7/EricWidgets/EricFileDialog.py	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/EricWidgets/EricFileDialog.py	Thu Jun 03 15:58:59 2021 +0200
@@ -4,8 +4,7 @@
 #
 
 """
-Module implementing alternative functions for the QFileDialog static methods
-to cope with distributor's usage of KDE wrapper dialogs for Qt file dialogs.
+Module implementing alternative functions for the QFileDialog static methods.
 """
 
 from PyQt6.QtWidgets import QFileDialog
@@ -28,9 +27,12 @@
     Private function to reorder the file filter to cope with a KDE issue
     introduced by distributor's usage of KDE file dialogs.
     
-    @param filterStr Qt file filter (string)
-    @param initialFilter initial filter (string)
-    @return the rearranged Qt file filter (string)
+    @param filterStr Qt file filter
+    @type str
+    @param initialFilter initial filter
+    @type str
+    @return the rearranged Qt file filter
+    @rtype str
     """
     if initialFilter and not Globals.isMacPlatform():
         fileFilters = filterStr.split(';;')
@@ -47,12 +49,18 @@
     """
     Module function to get the name of a file for opening it.
     
-    @param parent parent widget of the dialog (QWidget)
-    @param caption window title of the dialog (string)
-    @param directory working directory of the dialog (string)
-    @param filterStr filter string for the dialog (string)
-    @param options various options for the dialog (QFileDialog.Options)
-    @return name of file to be opened (string)
+    @param parent parent widget of the dialog
+    @type QWidget
+    @param caption window title of the dialog
+    @type str
+    @param directory working directory of the dialog
+    @type str
+    @param filterStr filter string for the dialog
+    @type str
+    @param options various options for the dialog
+    @type QFileDialog.Options
+    @return name of file to be opened
+    @rtype str
     """
     if options is None:
         options = QFileDialog.Option(0)
@@ -69,13 +77,20 @@
     Module function to get the name of a file for opening it and the selected
     file name filter.
     
-    @param parent parent widget of the dialog (QWidget)
-    @param caption window title of the dialog (string)
-    @param directory working directory of the dialog (string)
-    @param filterStr filter string for the dialog (string)
-    @param initialFilter initial filter for the dialog (string)
-    @param options various options for the dialog (QFileDialog.Options)
-    @return name of file to be opened and selected filter (string, string)
+    @param parent parent widget of the dialog
+    @type QWidget
+    @param caption window title of the dialog
+    @type str
+    @param directory working directory of the dialog
+    @type str
+    @param filterStr filter string for the dialog
+    @type str
+    @param initialFilter initial filter for the dialog
+    @type str
+    @param options various options for the dialog
+    @type QFileDialog.Options
+    @return name of file to be opened and selected filter
+    @rtype tuple of (str, str)
     """
     if options is None:
         options = QFileDialog.Option(0)
@@ -91,12 +106,18 @@
     """
     Module function to get a list of names of files for opening.
     
-    @param parent parent widget of the dialog (QWidget)
-    @param caption window title of the dialog (string)
-    @param directory working directory of the dialog (string)
-    @param filterStr filter string for the dialog (string)
-    @param options various options for the dialog (QFileDialog.Options)
-    @return list of file names to be opened (list of string)
+    @param parent parent widget of the dialog
+    @type QWidget
+    @param caption window title of the dialog
+    @type str
+    @param directory working directory of the dialog
+    @type str
+    @param filterStr filter string for the dialog
+    @type str
+    @param options various options for the dialog
+    @type QFileDialog.Options
+    @return list of file names to be opened
+    @rtype list of str
     """
     if options is None:
         options = QFileDialog.Option(0)
@@ -113,14 +134,20 @@
     Module function to get a list of names of files for opening and the
     selected file name filter.
     
-    @param parent parent widget of the dialog (QWidget)
-    @param caption window title of the dialog (string)
-    @param directory working directory of the dialog (string)
-    @param filterStr filter string for the dialog (string)
-    @param initialFilter initial filter for the dialog (string)
-    @param options various options for the dialog (QFileDialog.Options)
+    @param parent parent widget of the dialog
+    @type QWidget
+    @param caption window title of the dialog
+    @type str
+    @param directory working directory of the dialog
+    @type str
+    @param filterStr filter string for the dialog
+    @type str
+    @param initialFilter initial filter for the dialog
+    @type str
+    @param options various options for the dialog
+    @type QFileDialog.Options
     @return list of file names to be opened and selected filter
-        (list of string, string)
+    @rtype tuple of (list of str, str)
     """
     if options is None:
         options = QFileDialog.Option(0)
@@ -131,17 +158,47 @@
         parent, caption, directory, newfilter, initialFilter, options)
 
 
+def getOpenFileAndDirNames(parent=None, caption="", directory="",
+                           filterStr="", options=None):
+    """
+    Module function to get the names of files and directories for opening.
+    
+    @param parent parent widget of the dialog
+    @type QWidget
+    @param caption window title of the dialog
+    @type str
+    @param directory working directory of the dialog
+    @type str
+    @param filterStr filter string for the dialog
+    @type str
+    @param options various options for the dialog
+    @type QFileDialog.Options
+    @return names of the selected files and folders
+    @rtype list of str
+    """
+    from .EricDirFileDialog import EricDirFileDialog
+    return EricDirFileDialog.getOpenFileAndDirNames(
+        parent, caption, directory, filterStr, options
+    )
+
+
 def getSaveFileName(parent=None, caption="", directory="",
                     filterStr="", options=None):
     """
     Module function to get the name of a file for saving it.
     
-    @param parent parent widget of the dialog (QWidget)
-    @param caption window title of the dialog (string)
-    @param directory working directory of the dialog (string)
-    @param filterStr filter string for the dialog (string)
-    @param options various options for the dialog (QFileDialog.Options)
-    @return name of file to be saved (string)
+    @param parent parent widget of the dialog
+    @type QWidget
+    @param caption window title of the dialog
+    @type str
+    @param directory working directory of the dialog
+    @type str
+    @param filterStr filter string for the dialog
+    @type str
+    @param options various options for the dialog
+    @type QFileDialog.Options
+    @return name of file to be saved
+    @rtype str
     """
     if options is None:
         options = QFileDialog.Option(0)
@@ -158,13 +215,20 @@
     Module function to get the name of a file for saving it and the selected
     file name filter.
     
-    @param parent parent widget of the dialog (QWidget)
-    @param caption window title of the dialog (string)
-    @param directory working directory of the dialog (string)
-    @param filterStr filter string for the dialog (string)
-    @param initialFilter initial filter for the dialog (string)
-    @param options various options for the dialog (QFileDialog.Options)
-    @return name of file to be saved and selected filter (string, string)
+    @param parent parent widget of the dialog
+    @type QWidget
+    @param caption window title of the dialog
+    @type str
+    @param directory working directory of the dialog
+    @type str
+    @param filterStr filter string for the dialog
+    @type str
+    @param initialFilter initial filter for the dialog
+    @type str
+    @param options various options for the dialog
+    @type QFileDialog.Options
+    @return name of file to be saved and selected filte
+    @rtype tuple of (str, str)
     """
     if options is None:
         options = QFileDialog.Option(0)
@@ -181,11 +245,16 @@
     """
     Module function to get the name of a directory.
     
-    @param parent parent widget of the dialog (QWidget)
-    @param caption window title of the dialog (string)
-    @param directory working directory of the dialog (string)
-    @param options various options for the dialog (QFileDialog.Options)
-    @return name of selected directory (string)
+    @param parent parent widget of the dialog
+    @type QWidget
+    @param caption window title of the dialog
+    @type str
+    @param directory working directory of the dialog
+    @type str
+    @param options various options for the dialog
+    @type QFileDialog.Options
+    @return name of selected directory
+    @rtype str
     """
     if options is None:
         options = QFileDialog.Option(0)
--- a/eric7/EricWidgets/EricPathPicker.py	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/EricWidgets/EricPathPicker.py	Thu Jun 03 15:58:59 2021 +0200
@@ -32,6 +32,7 @@
     SAVE_FILE_OVERWRITE_MODE = 4
     DIRECTORY_MODE = 5
     DIRECTORY_SHOW_FILES_MODE = 6
+    OPEN_FILES_AND_DIRS_MODE = 7
     CUSTOM_MODE = 99
     NO_MODE = 100
 
@@ -158,7 +159,10 @@
                         self._completer = EricFileCompleter(self._editor)
                 
                 # set inactive text
-                if mode == EricPathPickerModes.OPEN_FILES_MODE:
+                if mode in (
+                    EricPathPickerModes.OPEN_FILES_MODE,
+                    EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE,
+                ):
                     self._editor.setPlaceholderText(
                         self.tr("Enter Path Names separated by ';'"))
                 else:
@@ -242,7 +246,10 @@
             a native format
         @type bool
         """
-        if self.__mode == EricPathPickerModes.OPEN_FILES_MODE:
+        if self.__mode in (
+            EricPathPickerModes.OPEN_FILES_MODE,
+            EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE,
+        ):
             self._setEditorText(path)
         else:
             if toNative:
@@ -261,7 +268,10 @@
         @return current path
         @rtype str
         """
-        if self.__mode == EricPathPickerModes.OPEN_FILES_MODE:
+        if self.__mode in (
+            EricPathPickerModes.OPEN_FILES_MODE,
+            EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE,
+        ):
             if toNative:
                 return ";".join(
                     [QDir.toNativeSeparators(path)
@@ -333,7 +343,10 @@
         @return entered paths
         @rtype list of str
         """
-        if self.__mode == EricPathPickerModes.OPEN_FILES_MODE:
+        if self.__mode in (
+            EricPathPickerModes.OPEN_FILES_MODE,
+            EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE,
+        ):
             return self.path(toNative=toNative).split(";")
         else:
             return [self.path(toNative=toNative)]
@@ -503,6 +516,8 @@
                 windowTitle = self.tr("Choose a file to open")
             elif self.__mode == EricPathPickerModes.OPEN_FILES_MODE:
                 windowTitle = self.tr("Choose files to open")
+            elif self.__mode == EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE:
+                windowTitle = self.tr("Choose files and directories")
             elif self.__mode in [
                 EricPathPickerModes.SAVE_FILE_MODE,
                     EricPathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE,
@@ -516,7 +531,9 @@
             directory = self.__defaultDirectory
         directory = (
             os.path.expanduser(directory.split(";")[0])
-            if self.__mode == EricPathPickerModes.OPEN_FILES_MODE else
+            if self.__mode in (
+                EricPathPickerModes.OPEN_FILES_MODE,
+                EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE) else
             os.path.expanduser(directory)
         )
         if not os.path.isabs(directory) and self.__defaultDirectory:
@@ -538,6 +555,14 @@
                 self.__filters)
             path = ";".join([QDir.toNativeSeparators(path)
                              for path in paths])
+        elif self.__mode == EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE:
+            paths = EricFileDialog.getOpenFileAndDirNames(
+                self,
+                windowTitle,
+                directory,
+                self.__filters)
+            path = ";".join([QDir.toNativeSeparators(path)
+                             for path in paths])
         elif self.__mode == EricPathPickerModes.SAVE_FILE_MODE:
             path = EricFileDialog.getSaveFileName(
                 self,
--- a/eric7/i18n/eric7_cs.ts	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/i18n/eric7_cs.ts	Thu Jun 03 15:58:59 2021 +0200
@@ -17395,34 +17395,39 @@
   <context>
     <name>EricPathPickerBase</name>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="166" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="97" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="90" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="170" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="98" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="91" />
       <source>Enter Path Name</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="163" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="167" />
       <source>Enter Path Names separated by ';'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="503" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="516" />
       <source>Choose a file to open</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="505" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="518" />
       <source>Choose files to open</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="510" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="520" />
+      <source>Choose files and directories</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../EricWidgets/EricPathPicker.py" line="525" />
       <source>Choose a file to save</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="512" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="527" />
       <source>Choose a directory</source>
       <translation type="unfinished" />
     </message>
Binary file eric7/i18n/eric7_de.qm has changed
--- a/eric7/i18n/eric7_de.ts	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/i18n/eric7_de.ts	Thu Jun 03 15:58:59 2021 +0200
@@ -16434,34 +16434,39 @@
   <context>
     <name>EricPathPickerBase</name>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="166" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="97" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="90" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="170" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="98" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="91" />
       <source>Enter Path Name</source>
       <translation>Gib den Pfadnamen ein</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="163" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="167" />
       <source>Enter Path Names separated by ';'</source>
       <translation>Gib Pfadnamen getrennt durch ";" ein</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="503" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="516" />
       <source>Choose a file to open</source>
       <translation>Wähle eine zu öffnende Datei aus</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="505" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="518" />
       <source>Choose files to open</source>
       <translation>Wähle zu öffnende Dateien aus</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="510" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="520" />
+      <source>Choose files and directories</source>
+      <translation>Wähle Dateien und Verzeichnisse aus</translation>
+    </message>
+    <message>
+      <location filename="../EricWidgets/EricPathPicker.py" line="525" />
       <source>Choose a file to save</source>
       <translation>Wähle eine zu schreibende Datei aus</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="512" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="527" />
       <source>Choose a directory</source>
       <translation>Wähle ein Verzeichnis aus</translation>
     </message>
--- a/eric7/i18n/eric7_empty.ts	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/i18n/eric7_empty.ts	Thu Jun 03 15:58:59 2021 +0200
@@ -16329,34 +16329,39 @@
   <context>
     <name>EricPathPickerBase</name>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="166" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="97" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="90" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="170" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="98" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="91" />
       <source>Enter Path Name</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="163" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="167" />
       <source>Enter Path Names separated by ';'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="503" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="516" />
       <source>Choose a file to open</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="505" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="518" />
       <source>Choose files to open</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="510" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="520" />
+      <source>Choose files and directories</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../EricWidgets/EricPathPicker.py" line="525" />
       <source>Choose a file to save</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="512" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="527" />
       <source>Choose a directory</source>
       <translation type="unfinished" />
     </message>
--- a/eric7/i18n/eric7_en.ts	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/i18n/eric7_en.ts	Thu Jun 03 15:58:59 2021 +0200
@@ -16344,34 +16344,39 @@
   <context>
     <name>EricPathPickerBase</name>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="166" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="97" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="90" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="170" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="98" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="91" />
       <source>Enter Path Name</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="163" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="167" />
       <source>Enter Path Names separated by ';'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="503" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="516" />
       <source>Choose a file to open</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="505" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="518" />
       <source>Choose files to open</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="510" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="520" />
+      <source>Choose files and directories</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../EricWidgets/EricPathPicker.py" line="525" />
       <source>Choose a file to save</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="512" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="527" />
       <source>Choose a directory</source>
       <translation type="unfinished" />
     </message>
--- a/eric7/i18n/eric7_es.ts	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/i18n/eric7_es.ts	Thu Jun 03 15:58:59 2021 +0200
@@ -17674,34 +17674,39 @@
   <context>
     <name>EricPathPickerBase</name>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="166" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="97" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="90" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="170" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="98" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="91" />
       <source>Enter Path Name</source>
       <translation type="unfinished">Introducir Nombre de Ruta</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="163" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="167" />
       <source>Enter Path Names separated by ';'</source>
       <translation type="unfinished">Introducir Nombres de Ruta separados por ';'</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="503" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="516" />
       <source>Choose a file to open</source>
       <translation type="unfinished">Elegir un archivo para abrir</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="505" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="518" />
       <source>Choose files to open</source>
       <translation type="unfinished">Elegir archivos a abrir</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="510" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="520" />
+      <source>Choose files and directories</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../EricWidgets/EricPathPicker.py" line="525" />
       <source>Choose a file to save</source>
       <translation type="unfinished">Elegir un archivo para guardar</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="512" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="527" />
       <source>Choose a directory</source>
       <translation type="unfinished">Elegir un directorio</translation>
     </message>
--- a/eric7/i18n/eric7_fr.ts	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/i18n/eric7_fr.ts	Thu Jun 03 15:58:59 2021 +0200
@@ -17870,34 +17870,39 @@
   <context>
     <name>EricPathPickerBase</name>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="166" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="97" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="90" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="170" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="98" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="91" />
       <source>Enter Path Name</source>
       <translation type="unfinished">Entrer le nom du chemin</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="163" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="167" />
       <source>Enter Path Names separated by ';'</source>
       <translation type="unfinished">Entrer les noms de chemin séparés par ';'</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="503" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="516" />
       <source>Choose a file to open</source>
       <translation type="unfinished">Choisir un fichier à ouvrir</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="505" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="518" />
       <source>Choose files to open</source>
       <translation type="unfinished">Choisir les fichiers à ouvrir</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="510" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="520" />
+      <source>Choose files and directories</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../EricWidgets/EricPathPicker.py" line="525" />
       <source>Choose a file to save</source>
       <translation type="unfinished">Choisir un fichier à enregistrer</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="512" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="527" />
       <source>Choose a directory</source>
       <translation type="unfinished">Choisir un répertoire</translation>
     </message>
--- a/eric7/i18n/eric7_it.ts	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/i18n/eric7_it.ts	Thu Jun 03 15:58:59 2021 +0200
@@ -18277,34 +18277,39 @@
   <context>
     <name>EricPathPickerBase</name>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="166" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="97" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="90" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="170" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="98" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="91" />
       <source>Enter Path Name</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="163" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="167" />
       <source>Enter Path Names separated by ';'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="503" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="516" />
       <source>Choose a file to open</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="505" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="518" />
       <source>Choose files to open</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="510" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="520" />
+      <source>Choose files and directories</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../EricWidgets/EricPathPicker.py" line="525" />
       <source>Choose a file to save</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="512" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="527" />
       <source>Choose a directory</source>
       <translation type="unfinished" />
     </message>
--- a/eric7/i18n/eric7_pt.ts	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/i18n/eric7_pt.ts	Thu Jun 03 15:58:59 2021 +0200
@@ -18171,34 +18171,39 @@
   <context>
     <name>EricPathPickerBase</name>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="166" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="97" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="90" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="170" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="98" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="91" />
       <source>Enter Path Name</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="163" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="167" />
       <source>Enter Path Names separated by ';'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="503" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="516" />
       <source>Choose a file to open</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="505" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="518" />
       <source>Choose files to open</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="510" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="520" />
+      <source>Choose files and directories</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../EricWidgets/EricPathPicker.py" line="525" />
       <source>Choose a file to save</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="512" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="527" />
       <source>Choose a directory</source>
       <translation type="unfinished" />
     </message>
--- a/eric7/i18n/eric7_ru.ts	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/i18n/eric7_ru.ts	Thu Jun 03 15:58:59 2021 +0200
@@ -17709,34 +17709,39 @@
   <context>
     <name>EricPathPickerBase</name>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="166" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="97" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="90" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="170" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="98" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="91" />
       <source>Enter Path Name</source>
       <translation type="unfinished">Задайте путь</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="163" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="167" />
       <source>Enter Path Names separated by ';'</source>
       <translation type="unfinished">Задайте пути, разделенные ';'</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="503" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="516" />
       <source>Choose a file to open</source>
       <translation type="unfinished">Выберите файл для открытия</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="505" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="518" />
       <source>Choose files to open</source>
       <translation type="unfinished">Выберите файлы для открытия</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="510" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="520" />
+      <source>Choose files and directories</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../EricWidgets/EricPathPicker.py" line="525" />
       <source>Choose a file to save</source>
       <translation type="unfinished">Выберите файл для сохранения</translation>
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="512" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="527" />
       <source>Choose a directory</source>
       <translation type="unfinished">Выберите директорию</translation>
     </message>
--- a/eric7/i18n/eric7_tr.ts	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/i18n/eric7_tr.ts	Thu Jun 03 15:58:59 2021 +0200
@@ -17497,34 +17497,39 @@
   <context>
     <name>EricPathPickerBase</name>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="166" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="97" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="90" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="170" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="98" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="91" />
       <source>Enter Path Name</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="163" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="167" />
       <source>Enter Path Names separated by ';'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="503" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="516" />
       <source>Choose a file to open</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="505" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="518" />
       <source>Choose files to open</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="510" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="520" />
+      <source>Choose files and directories</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../EricWidgets/EricPathPicker.py" line="525" />
       <source>Choose a file to save</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="512" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="527" />
       <source>Choose a directory</source>
       <translation type="unfinished" />
     </message>
--- a/eric7/i18n/eric7_zh_CN.ts	Sun May 30 19:03:39 2021 +0200
+++ b/eric7/i18n/eric7_zh_CN.ts	Thu Jun 03 15:58:59 2021 +0200
@@ -17814,34 +17814,39 @@
   <context>
     <name>EricPathPickerBase</name>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="166" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="97" />
-      <location filename="../EricWidgets/EricPathPicker.py" line="90" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="170" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="98" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="91" />
       <source>Enter Path Name</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="163" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="167" />
       <source>Enter Path Names separated by ';'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="503" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="516" />
       <source>Choose a file to open</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="505" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="518" />
       <source>Choose files to open</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="510" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="520" />
+      <source>Choose files and directories</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../EricWidgets/EricPathPicker.py" line="525" />
       <source>Choose a file to save</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricPathPicker.py" line="512" />
+      <location filename="../EricWidgets/EricPathPicker.py" line="527" />
       <source>Choose a directory</source>
       <translation type="unfinished" />
     </message>

eric ide

mercurial