Thu, 03 Jun 2021 15:58:59 +0200
Added a special file dialog to select files and directories simultaneously.
--- 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
--- 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>
--- 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>