Redid the native file dialog code to be future proof.

Sun, 06 Feb 2011 15:41:44 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 06 Feb 2011 15:41:44 +0100
changeset 882
34b86be88bf0
parent 881
ff23d907f87b
child 883
ac0c6a9ab656

Redid the native file dialog code to be future proof.

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
Cooperation/ChatWidget.py file | annotate | diff | comparison | revisions
Debugger/EditBreakpointDialog.py file | annotate | diff | comparison | revisions
Debugger/StartDialog.py file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric5.E5Gui.E5FileDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Globals.__init__.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.E5Gui.html file | annotate | diff | comparison | revisions
E5Gui/E5FileDialog.py file | annotate | diff | comparison | revisions
E5Network/E5NetworkProxyFactory.py file | annotate | diff | comparison | revisions
Globals/__init__.py file | annotate | diff | comparison | revisions
Graphics/UMLGraphicsView.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksManager.py file | annotate | diff | comparison | revisions
Helpviewer/Download/DownloadItem.py file | annotate | diff | comparison | revisions
Helpviewer/HelpWindow.py file | annotate | diff | comparison | revisions
Helpviewer/OpenSearch/OpenSearchDialog.py file | annotate | diff | comparison | revisions
Helpviewer/QtHelpDocumentationDialog.py file | annotate | diff | comparison | revisions
Helpviewer/SslCertificatesDialog.py file | annotate | diff | comparison | revisions
IconEditor/IconEditorWindow.py file | annotate | diff | comparison | revisions
MultiProject/AddProjectDialog.py file | annotate | diff | comparison | revisions
MultiProject/MultiProject.py file | annotate | diff | comparison | revisions
PluginManager/PluginInstallDialog.py file | annotate | diff | comparison | revisions
Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py file | annotate | diff | comparison | revisions
Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/hg.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsPySvn/SvnCommandDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsPySvn/SvnCopyDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsPySvn/SvnDiffDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsPySvn/SvnNewProjectOptionsDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsPySvn/SvnOptionsDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnCommandDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnCopyDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnNewProjectOptionsDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnOptionsDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnPropSetDialog.py file | annotate | diff | comparison | revisions
Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py file | annotate | diff | comparison | revisions
Plugins/WizardPlugins/PyRegExpWizard/PyRegExpWizardDialog.py file | annotate | diff | comparison | revisions
Plugins/WizardPlugins/QRegExpWizard/QRegExpWizardDialog.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/CorbaPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerPython3Page.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerPythonPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerRubyPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorAPIsPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorHighlightingStylesPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorSpellCheckingPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/HelpAppearancePage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/HelpDocumentationPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/HelpViewersPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/IconsPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/InterfacePage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/NetworkPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/PluginManagerPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/QtPage.py file | annotate | diff | comparison | revisions
Preferences/ToolConfigurationDialog.py file | annotate | diff | comparison | revisions
Preferences/__init__.py file | annotate | diff | comparison | revisions
Project/AddDirectoryDialog.py file | annotate | diff | comparison | revisions
Project/AddFileDialog.py file | annotate | diff | comparison | revisions
Project/DebuggerPropertiesDialog.py file | annotate | diff | comparison | revisions
Project/NewDialogClassDialog.py file | annotate | diff | comparison | revisions
Project/Project.py file | annotate | diff | comparison | revisions
Project/ProjectFormsBrowser.py file | annotate | diff | comparison | revisions
Project/ProjectResourcesBrowser.py file | annotate | diff | comparison | revisions
Project/PropertiesDialog.py file | annotate | diff | comparison | revisions
Project/SpellingPropertiesDialog.py file | annotate | diff | comparison | revisions
Project/TranslationPropertiesDialog.py file | annotate | diff | comparison | revisions
PyUnit/UnittestDialog.py file | annotate | diff | comparison | revisions
QScintilla/Editor.py file | annotate | diff | comparison | revisions
QScintilla/Exporters/ExporterBase.py file | annotate | diff | comparison | revisions
QScintilla/MiniEditor.py file | annotate | diff | comparison | revisions
SqlBrowser/SqlConnectionDialog.py file | annotate | diff | comparison | revisions
Templates/TemplateViewer.py file | annotate | diff | comparison | revisions
Tools/TRPreviewer.py file | annotate | diff | comparison | revisions
Tools/UIPreviewer.py file | annotate | diff | comparison | revisions
UI/Browser.py file | annotate | diff | comparison | revisions
UI/CompareDialog.py file | annotate | diff | comparison | revisions
UI/DiffDialog.py file | annotate | diff | comparison | revisions
UI/EmailDialog.py file | annotate | diff | comparison | revisions
UI/FindFileDialog.py file | annotate | diff | comparison | revisions
UI/FindFileNameDialog.py file | annotate | diff | comparison | revisions
UI/UserInterface.py file | annotate | diff | comparison | revisions
Utilities/__init__.py file | annotate | diff | comparison | revisions
ViewManager/BookmarkedFilesDialog.py file | annotate | diff | comparison | revisions
ViewManager/ViewManager.py file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric5.api	Sat Feb 05 19:55:33 2011 +0100
+++ b/APIs/Python3/eric5.api	Sun Feb 06 15:41:44 2011 +0100
@@ -1124,8 +1124,19 @@
 eric5.E5Gui.E5Completers.E5DirCompleter?1(parent = None, completionMode = QCompleter.PopupCompletion, showHidden = False)
 eric5.E5Gui.E5Completers.E5FileCompleter?1(parent = None, completionMode = QCompleter.PopupCompletion, showHidden = False)
 eric5.E5Gui.E5Completers.E5StringListCompleter?1(parent = None, strings = [], completionMode = QCompleter.PopupCompletion)
+eric5.E5Gui.E5FileDialog.DontConfirmOverwrite?7
+eric5.E5Gui.E5FileDialog.DontResolveSymlinks?7
+eric5.E5Gui.E5FileDialog.DontUseNativeDialog?7
+eric5.E5Gui.E5FileDialog.DontUseSheet?7
+eric5.E5Gui.E5FileDialog.HideNameFilterDetails?7
+eric5.E5Gui.E5FileDialog.ReadOnly?7
+eric5.E5Gui.E5FileDialog.ShowDirsOnly?7
+eric5.E5Gui.E5FileDialog.getExistingDirectory?4(parent = None, caption = "", directory = "", options = QFileDialog.ShowDirsOnly)
+eric5.E5Gui.E5FileDialog.getOpenFileName?4(parent = None, caption = "", directory = "", filter = "", options = QFileDialog.Options())
 eric5.E5Gui.E5FileDialog.getOpenFileNameAndFilter?4(parent = None, caption = "", directory = "", filter = "", initialFilter = "", options = QFileDialog.Options())
+eric5.E5Gui.E5FileDialog.getOpenFileNames?4(parent = None, caption = "", directory = "", filter = "", options = QFileDialog.Options())
 eric5.E5Gui.E5FileDialog.getOpenFileNamesAndFilter?4(parent = None, caption = "", directory = "", filter = "", initialFilter = "", options = QFileDialog.Options())
+eric5.E5Gui.E5FileDialog.getSaveFileName?4(parent = None, caption = "", directory = "", filter = "", options = QFileDialog.Options())
 eric5.E5Gui.E5FileDialog.getSaveFileNameAndFilter?4(parent = None, caption = "", directory = "", filter = "", initialFilter = "", options = QFileDialog.Options())
 eric5.E5Gui.E5Led.E5Led.color?4()
 eric5.E5Gui.E5Led.E5Led.darkFactor?4()
@@ -1526,6 +1537,8 @@
 eric5.E5XML.XMLStreamWriterBase.XMLStreamWriterBase.writeBasics?4(tag, pyobject)
 eric5.E5XML.XMLStreamWriterBase.XMLStreamWriterBase.writeXML?4()
 eric5.E5XML.XMLStreamWriterBase.XMLStreamWriterBase?1(device)
+eric5.Globals.isLinuxPlatform?4()
+eric5.Globals.isMacPlatform?4()
 eric5.Globals.isWindowsPlatform?4()
 eric5.Globals.recentNameFiles?7
 eric5.Globals.recentNameHosts?7
--- a/Cooperation/ChatWidget.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Cooperation/ChatWidget.py	Sun Feb 06 15:41:44 2011 +0100
@@ -8,10 +8,10 @@
 """
 
 from PyQt4.QtCore import Qt, pyqtSlot, pyqtSignal, QDateTime, QPoint, QFileInfo
-from PyQt4.QtGui import QWidget, QColor, QListWidgetItem, QMenu, QFileDialog, QApplication
+from PyQt4.QtGui import QWidget, QColor, QListWidgetItem, QMenu, QApplication
 
 from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from Globals import recentNameHosts
 
@@ -529,14 +529,13 @@
         """
         txt = self.chatEdit.toPlainText()
         if txt:
-            fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+            fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
                 self,
                 self.trUtf8("Save Chat"),
                 "",
                 self.trUtf8("Text Files (*.txt);;All Files (*)"),
                 None,
-                QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                    QFileDialog.DontUseNativeDialog))
+                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
             if fname:
                 ext = QFileInfo(fname).suffix()
                 if not ext:
--- a/Debugger/EditBreakpointDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Debugger/EditBreakpointDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,6 +13,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5FileCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_EditBreakpointDialog import Ui_EditBreakpointDialog
 
@@ -110,12 +111,11 @@
         """
         Private slot to select a file via a file selection dialog.
         """
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select filename of the breakpoint"),
             self.filenameCombo.currentText(),
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
             
         if file:
             self.filenameCombo.setEditText(Utilities.toNativeSeparators(file))
--- a/Debugger/StartDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Debugger/StartDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -11,6 +11,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5DirCompleter
+from E5Gui import E5FileDialog
 
 import Utilities
 import Preferences
@@ -115,12 +116,11 @@
         Private method used to open a directory selection dialog.
         """
         cwd = self.ui.workdirCombo.currentText()
-        d = QFileDialog.getExistingDirectory(
+        d = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Working directory"),
             cwd,
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
             
         if d:
             self.ui.workdirCombo.setEditText(Utilities.toNativeSeparators(d))
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Sat Feb 05 19:55:33 2011 +0100
+++ b/Documentation/Help/source.qhp	Sun Feb 06 15:41:44 2011 +0100
@@ -3160,6 +3160,8 @@
       <keyword name="ToolGroupConfigurationDialog.on_newButton_clicked" id="ToolGroupConfigurationDialog.on_newButton_clicked" ref="eric5.Preferences.ToolGroupConfigurationDialog.html#ToolGroupConfigurationDialog.on_newButton_clicked" />
       <keyword name="ToolGroupConfigurationDialog.on_upButton_clicked" id="ToolGroupConfigurationDialog.on_upButton_clicked" ref="eric5.Preferences.ToolGroupConfigurationDialog.html#ToolGroupConfigurationDialog.on_upButton_clicked" />
       <keyword name="Globals (Package)" id="Globals (Package)" ref="index-eric5.Globals.html" />
+      <keyword name="isLinuxPlatform" id="isLinuxPlatform" ref="eric5.Globals.__init__.html#isLinuxPlatform" />
+      <keyword name="isMacPlatform" id="isMacPlatform" ref="eric5.Globals.__init__.html#isMacPlatform" />
       <keyword name="isWindowsPlatform" id="isWindowsPlatform" ref="eric5.Globals.__init__.html#isWindowsPlatform" />
       <keyword name="Cooperation (Package)" id="Cooperation (Package)" ref="index-eric5.Cooperation.html" />
       <keyword name="ChatWidget (Module)" id="ChatWidget (Module)" ref="eric5.Cooperation.ChatWidget.html" />
@@ -4357,8 +4359,12 @@
       <keyword name="E5TreeView.removeSelected" id="E5TreeView.removeSelected" ref="eric5.E5Gui.E5TreeView.html#E5TreeView.removeSelected" />
       <keyword name="E5FileDialog (Module)" id="E5FileDialog (Module)" ref="eric5.E5Gui.E5FileDialog.html" />
       <keyword name="__reorderFilter" id="__reorderFilter" ref="eric5.E5Gui.E5FileDialog.html#__reorderFilter" />
+      <keyword name="getExistingDirectory" id="getExistingDirectory" ref="eric5.E5Gui.E5FileDialog.html#getExistingDirectory" />
+      <keyword name="getOpenFileName" id="getOpenFileName" ref="eric5.E5Gui.E5FileDialog.html#getOpenFileName" />
       <keyword name="getOpenFileNameAndFilter" id="getOpenFileNameAndFilter" ref="eric5.E5Gui.E5FileDialog.html#getOpenFileNameAndFilter" />
+      <keyword name="getOpenFileNames" id="getOpenFileNames" ref="eric5.E5Gui.E5FileDialog.html#getOpenFileNames" />
       <keyword name="getOpenFileNamesAndFilter" id="getOpenFileNamesAndFilter" ref="eric5.E5Gui.E5FileDialog.html#getOpenFileNamesAndFilter" />
+      <keyword name="getSaveFileName" id="getSaveFileName" ref="eric5.E5Gui.E5FileDialog.html#getSaveFileName" />
       <keyword name="getSaveFileNameAndFilter" id="getSaveFileNameAndFilter" ref="eric5.E5Gui.E5FileDialog.html#getSaveFileNameAndFilter" />
       <keyword name="E5TextSpinBox (Module)" id="E5TextSpinBox (Module)" ref="eric5.E5Gui.E5TextSpinBox.html" />
       <keyword name="E5TextSpinBox" id="E5TextSpinBox" ref="eric5.E5Gui.E5TextSpinBox.html#E5TextSpinBox" />
@@ -9692,6 +9698,7 @@
       <keyword name="FileDialogWizardDialog (Module)" id="FileDialogWizardDialog (Module)" ref="eric5.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html" />
       <keyword name="FileDialogWizardDialog" id="FileDialogWizardDialog" ref="eric5.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html#FileDialogWizardDialog" />
       <keyword name="FileDialogWizardDialog (Constructor)" id="FileDialogWizardDialog (Constructor)" ref="eric5.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html#FileDialogWizardDialog.__init__" />
+      <keyword name="FileDialogWizardDialog.__adjustOptions" id="FileDialogWizardDialog.__adjustOptions" ref="eric5.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html#FileDialogWizardDialog.__adjustOptions" />
       <keyword name="FileDialogWizardDialog.__getCode4" id="FileDialogWizardDialog.__getCode4" ref="eric5.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html#FileDialogWizardDialog.__getCode4" />
       <keyword name="FileDialogWizardDialog.__toggleConfirmCheckBox" id="FileDialogWizardDialog.__toggleConfirmCheckBox" ref="eric5.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html#FileDialogWizardDialog.__toggleConfirmCheckBox" />
       <keyword name="FileDialogWizardDialog.__toggleGroupsAndTest" id="FileDialogWizardDialog.__toggleGroupsAndTest" ref="eric5.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html#FileDialogWizardDialog.__toggleGroupsAndTest" />
--- a/Documentation/Source/eric5.E5Gui.E5FileDialog.html	Sat Feb 05 19:55:33 2011 +0100
+++ b/Documentation/Source/eric5.E5Gui.E5FileDialog.html	Sun Feb 06 15:41:44 2011 +0100
@@ -23,11 +23,11 @@
 <h1>eric5.E5Gui.E5FileDialog</h1>
 <p>
 Module implementing alternative functions for the QFileDialog static methods
-to cope with dustributor's usage of KDE wrapper dialogs for Qt file dialogs.
+to cope with distributor's usage of KDE wrapper dialogs for Qt file dialogs.
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>None</td></tr>
+<tr><td>DontConfirmOverwrite</td></tr><tr><td>DontResolveSymlinks</td></tr><tr><td>DontUseNativeDialog</td></tr><tr><td>DontUseSheet</td></tr><tr><td>HideNameFilterDetails</td></tr><tr><td>ReadOnly</td></tr><tr><td>ShowDirsOnly</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
@@ -39,12 +39,24 @@
 <td><a href="#__reorderFilter">__reorderFilter</a></td>
 <td>Private function to reorder the file filter to cope with a KDE issue introduced by distributor's usage of KDE file dialogs.</td>
 </tr><tr>
+<td><a href="#getExistingDirectory">getExistingDirectory</a></td>
+<td>Module function to get the name of a directory.</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><tr>
 <td><a href="#getOpenFileNameAndFilter">getOpenFileNameAndFilter</a></td>
 <td>Module function to get the name of a file for opening it and the selected file name filter.</td>
 </tr><tr>
+<td><a href="#getOpenFileNames">getOpenFileNames</a></td>
+<td>Module function to get a list of names of files for opening.</td>
+</tr><tr>
 <td><a href="#getOpenFileNamesAndFilter">getOpenFileNamesAndFilter</a></td>
 <td>Module function to get a list of names of files for opening and the selected file name filter.</td>
 </tr><tr>
+<td><a href="#getSaveFileName">getSaveFileName</a></td>
+<td>Module function to get the name of a file for saving it.</td>
+</tr><tr>
 <td><a href="#getSaveFileNameAndFilter">getSaveFileNameAndFilter</a></td>
 <td>Module function to get the name of a file for saving it and the selected file name filter.</td>
 </tr>
@@ -54,8 +66,8 @@
 <h2>__reorderFilter</h2>
 <b>__reorderFilter</b>(<i>filter, initialFilter = ""</i>)
 <p>
-    Private function to reorder the file filter to cope with a KDE issue introduced
-    by distributor's usage of KDE file dialogs.
+    Private function to reorder the file filter to cope with a KDE issue
+    introduced by distributor's usage of KDE file dialogs.
 </p><dl>
 <dt><i>filter</i></dt>
 <dd>
@@ -72,6 +84,63 @@
 </dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
+<a NAME="getExistingDirectory" ID="getExistingDirectory"></a>
+<h2>getExistingDirectory</h2>
+<b>getExistingDirectory</b>(<i>parent = None, caption = "", directory = "", options = QFileDialog.ShowDirsOnly</i>)
+<p>
+    Module function to get the name of a directory.
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+parent widget of the dialog (QWidget)
+</dd><dt><i>caption</i></dt>
+<dd>
+window title of the dialog (string)
+</dd><dt><i>directory</i></dt>
+<dd>
+working directory of the dialog (string)
+</dd><dt><i>options</i></dt>
+<dd>
+various options for the dialog (QFileDialog.Options)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+name of selected directory (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="getOpenFileName" ID="getOpenFileName"></a>
+<h2>getOpenFileName</h2>
+<b>getOpenFileName</b>(<i>parent = None, caption = "", directory = "", filter = "", options = QFileDialog.Options()</i>)
+<p>
+    Module function to get the name of a file for opening it.
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+parent widget of the dialog (QWidget)
+</dd><dt><i>caption</i></dt>
+<dd>
+window title of the dialog (string)
+</dd><dt><i>directory</i></dt>
+<dd>
+working directory of the dialog (string)
+</dd><dt><i>filter</i></dt>
+<dd>
+filter string for the dialog (string)
+</dd><dt><i>options</i></dt>
+<dd>
+various options for the dialog (QFileDialog.Options)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+name of file to be opened (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
 <a NAME="getOpenFileNameAndFilter" ID="getOpenFileNameAndFilter"></a>
 <h2>getOpenFileNameAndFilter</h2>
 <b>getOpenFileNameAndFilter</b>(<i>parent = None, caption = "", directory = "", filter = "", initialFilter = "", options = QFileDialog.Options()</i>)
@@ -106,12 +175,42 @@
 </dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
+<a NAME="getOpenFileNames" ID="getOpenFileNames"></a>
+<h2>getOpenFileNames</h2>
+<b>getOpenFileNames</b>(<i>parent = None, caption = "", directory = "", filter = "", options = QFileDialog.Options()</i>)
+<p>
+    Module function to get a list of names of files for opening.
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+parent widget of the dialog (QWidget)
+</dd><dt><i>caption</i></dt>
+<dd>
+window title of the dialog (string)
+</dd><dt><i>directory</i></dt>
+<dd>
+working directory of the dialog (string)
+</dd><dt><i>filter</i></dt>
+<dd>
+filter string for the dialog (string)
+</dd><dt><i>options</i></dt>
+<dd>
+various options for the dialog (QFileDialog.Options)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+list of file names to be opened (list of string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
 <a NAME="getOpenFileNamesAndFilter" ID="getOpenFileNamesAndFilter"></a>
 <h2>getOpenFileNamesAndFilter</h2>
 <b>getOpenFileNamesAndFilter</b>(<i>parent = None, caption = "", directory = "", filter = "", initialFilter = "", options = QFileDialog.Options()</i>)
 <p>
-    Module function to get a list of names of files for opening and the selected
-    file name filter.
+    Module function to get a list of names of files for opening and the
+    selected file name filter.
 </p><dl>
 <dt><i>parent</i></dt>
 <dd>
@@ -141,6 +240,36 @@
 </dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
+<a NAME="getSaveFileName" ID="getSaveFileName"></a>
+<h2>getSaveFileName</h2>
+<b>getSaveFileName</b>(<i>parent = None, caption = "", directory = "", filter = "", options = QFileDialog.Options()</i>)
+<p>
+    Module function to get the name of a file for saving it.
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+parent widget of the dialog (QWidget)
+</dd><dt><i>caption</i></dt>
+<dd>
+window title of the dialog (string)
+</dd><dt><i>directory</i></dt>
+<dd>
+working directory of the dialog (string)
+</dd><dt><i>filter</i></dt>
+<dd>
+filter string for the dialog (string)
+</dd><dt><i>options</i></dt>
+<dd>
+various options for the dialog (QFileDialog.Options)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+name of file to be saved (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
 <a NAME="getSaveFileNameAndFilter" ID="getSaveFileNameAndFilter"></a>
 <h2>getSaveFileNameAndFilter</h2>
 <b>getSaveFileNameAndFilter</b>(<i>parent = None, caption = "", directory = "", filter = "", initialFilter = "", options = QFileDialog.Options()</i>)
--- a/Documentation/Source/eric5.Globals.__init__.html	Sat Feb 05 19:55:33 2011 +0100
+++ b/Documentation/Source/eric5.Globals.__init__.html	Sun Feb 06 15:41:44 2011 +0100
@@ -35,11 +35,43 @@
 <h3>Functions</h3>
 <table>
 <tr>
+<td><a href="#isLinuxPlatform">isLinuxPlatform</a></td>
+<td>Function to check, if this is a Linux platform.</td>
+</tr><tr>
+<td><a href="#isMacPlatform">isMacPlatform</a></td>
+<td>Function to check, if this is a Mac platform.</td>
+</tr><tr>
 <td><a href="#isWindowsPlatform">isWindowsPlatform</a></td>
 <td>Function to check, if this is a Windows platform.</td>
 </tr>
 </table>
 <hr /><hr />
+<a NAME="isLinuxPlatform" ID="isLinuxPlatform"></a>
+<h2>isLinuxPlatform</h2>
+<b>isLinuxPlatform</b>(<i></i>)
+<p>
+    Function to check, if this is a Linux platform.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating Linux platform (boolean)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="isMacPlatform" ID="isMacPlatform"></a>
+<h2>isMacPlatform</h2>
+<b>isMacPlatform</b>(<i></i>)
+<p>
+    Function to check, if this is a Mac platform.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating Mac platform (boolean)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
 <a NAME="isWindowsPlatform" ID="isWindowsPlatform"></a>
 <h2>isWindowsPlatform</h2>
 <b>isWindowsPlatform</b>(<i></i>)
--- a/Documentation/Source/eric5.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html	Sat Feb 05 19:55:33 2011 +0100
+++ b/Documentation/Source/eric5.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html	Sun Feb 06 15:41:44 2011 +0100
@@ -60,6 +60,9 @@
 <td><a href="#FileDialogWizardDialog.__init__">FileDialogWizardDialog</a></td>
 <td>Constructor</td>
 </tr><tr>
+<td><a href="#FileDialogWizardDialog.__adjustOptions">__adjustOptions</a></td>
+<td>Private method to adjust the file dialog options.</td>
+</tr><tr>
 <td><a href="#FileDialogWizardDialog.__getCode4">__getCode4</a></td>
 <td>Private method to get the source code for Qt4.</td>
 </tr><tr>
@@ -89,6 +92,21 @@
 <dd>
 parent widget (QWidget)
 </dd>
+</dl><a NAME="FileDialogWizardDialog.__adjustOptions" ID="FileDialogWizardDialog.__adjustOptions"></a>
+<h4>FileDialogWizardDialog.__adjustOptions</h4>
+<b>__adjustOptions</b>(<i>options</i>)
+<p>
+        Private method to adjust the file dialog options.
+</p><dl>
+<dt><i>options</i></dt>
+<dd>
+file dialog options (QFileDialog.Options)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+modified options (QFileDialog.Options)
+</dd>
 </dl><a NAME="FileDialogWizardDialog.__getCode4" ID="FileDialogWizardDialog.__getCode4"></a>
 <h4>FileDialogWizardDialog.__getCode4</h4>
 <b>__getCode4</b>(<i>indLevel, indString</i>)
--- a/Documentation/Source/index-eric5.E5Gui.html	Sat Feb 05 19:55:33 2011 +0100
+++ b/Documentation/Source/index-eric5.E5Gui.html	Sun Feb 06 15:41:44 2011 +0100
@@ -41,7 +41,7 @@
 <td>Module implementing various kinds of completers.</td>
 </tr><tr>
 <td><a href="eric5.E5Gui.E5FileDialog.html">E5FileDialog</a></td>
-<td>Module implementing alternative functions for the QFileDialog static methods to cope with dustributor's usage of KDE wrapper dialogs for Qt file dialogs.</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>
 </tr><tr>
 <td><a href="eric5.E5Gui.E5Led.html">E5Led</a></td>
 <td>Module implementing a LED widget.</td>
--- a/E5Gui/E5FileDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/E5Gui/E5FileDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -5,15 +5,25 @@
 
 """
 Module implementing alternative functions for the QFileDialog static methods
-to cope with dustributor's usage of KDE wrapper dialogs for Qt file dialogs.
+to cope with distributor's usage of KDE wrapper dialogs for Qt file dialogs.
 """
 
 from PyQt4.QtGui import QFileDialog
 
+import Globals
+
+ShowDirsOnly = QFileDialog.ShowDirsOnly
+DontResolveSymlinks = QFileDialog.DontResolveSymlinks
+DontConfirmOverwrite = QFileDialog.DontConfirmOverwrite
+DontUseNativeDialog = QFileDialog.DontUseNativeDialog
+ReadOnly = QFileDialog.ReadOnly
+HideNameFilterDetails = QFileDialog.HideNameFilterDetails
+DontUseSheet = QFileDialog.DontUseSheet
+
 def __reorderFilter(filter, initialFilter = ""):
     """
-    Private function to reorder the file filter to cope with a KDE issue introduced
-    by distributor's usage of KDE file dialogs.
+    Private function to reorder the file filter to cope with a KDE issue
+    introduced by distributor's usage of KDE file dialogs.
     
     @param filter Qt file filter (string)
     @param initialFilter initial filter (string)
@@ -28,6 +38,23 @@
     else:
         return filter
 
+def getOpenFileName(parent = None, caption = "", directory = "",
+                    filter = "", options = QFileDialog.Options()):
+    """
+    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 filter filter string for the dialog (string)
+    @param options various options for the dialog (QFileDialog.Options)
+    @return name of file to be opened (string)
+    """
+    if Globals.isLinuxPlatform():
+        options |= QFileDialog.DontUseNativeDialog
+    return QFileDialog.getOpenFileName(parent, caption, directory, 
+                                       filter, options)
+
 def getOpenFileNameAndFilter(parent = None, caption = "", directory = "",
                              filter = "", initialFilter = "", 
                              options = QFileDialog.Options()):
@@ -43,16 +70,36 @@
     @param options various options for the dialog (QFileDialog.Options)
     @return name of file to be opened and selected filter (string, string)
     """
+    if Globals.isLinuxPlatform():
+        options |= QFileDialog.DontUseNativeDialog
     newfilter = __reorderFilter(filter, initialFilter)
     return QFileDialog.getOpenFileNameAndFilter(parent, caption, directory, 
-                                                newfilter, initialFilter, options)
+                                                newfilter, initialFilter, 
+                                                options)
+
+def getOpenFileNames(parent = None, caption = "", directory = "",
+                     filter = "", options = QFileDialog.Options()):
+    """
+    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 filter 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)
+    """
+    if Globals.isLinuxPlatform():
+        options |= QFileDialog.DontUseNativeDialog
+    return QFileDialog.getOpenFileNames(parent, caption, directory, 
+                                        filter, options)
 
 def getOpenFileNamesAndFilter(parent = None, caption = "", directory = "",
                               filter = "", initialFilter = "", 
                               options = QFileDialog.Options()):
     """
-    Module function to get a list of names of files for opening and the selected
-    file name filter.
+    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)
@@ -63,9 +110,29 @@
     @return list of file names to be opened and selected filter 
         (list of string, string)
     """
+    if Globals.isLinuxPlatform():
+        options |= QFileDialog.DontUseNativeDialog
     newfilter = __reorderFilter(filter, initialFilter)
     return QFileDialog.getOpenFileNamesAndFilter(parent, caption, directory, 
-                                                newfilter, initialFilter, options)
+                                                newfilter, initialFilter,
+                                                options)
+
+def getSaveFileName(parent = None, caption = "", directory = "",
+                    filter = "", options = QFileDialog.Options()):
+    """
+    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 filter filter string for the dialog (string)
+    @param options various options for the dialog (QFileDialog.Options)
+    @return name of file to be saved (string)
+    """
+    if Globals.isLinuxPlatform():
+        options |= QFileDialog.DontUseNativeDialog
+    return QFileDialog.getSaveFileName(parent, caption, directory, 
+                                       filter, options)
 
 def getSaveFileNameAndFilter(parent = None, caption = "", directory = "",
                              filter = "", initialFilter = "", 
@@ -82,6 +149,25 @@
     @param options various options for the dialog (QFileDialog.Options)
     @return name of file to be saved and selected filter (string, string)
     """
+    if Globals.isLinuxPlatform():
+        options |= QFileDialog.DontUseNativeDialog
     newfilter = __reorderFilter(filter, initialFilter)
     return QFileDialog.getSaveFileNameAndFilter(parent, caption, directory, 
-                                                newfilter, initialFilter, options)
+                                                newfilter, initialFilter,
+                                                options)
+
+def getExistingDirectory(parent = None, caption = "", 
+                         directory = "", options = QFileDialog.ShowDirsOnly):
+    """
+    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)
+    """
+    if Globals.isLinuxPlatform():
+        options |= QFileDialog.DontUseNativeDialog
+    return QFileDialog.getExistingDirectory(parent, caption, directory, 
+                                            options)
--- a/E5Network/E5NetworkProxyFactory.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/E5Network/E5NetworkProxyFactory.py	Sun Feb 06 15:41:44 2011 +0100
@@ -7,7 +7,6 @@
 Module implementing a network proxy factory.
 """
 
-import sys
 import os
 
 from PyQt4.QtCore import QUrl, Qt, QCoreApplication
@@ -19,6 +18,7 @@
 from UI.AuthenticationDialog import AuthenticationDialog
 
 import Preferences
+import Globals
 
 def schemeFromProxyType(proxyType):
     """
@@ -84,7 +84,8 @@
            Preferences.getUI("UseProxy"):
             if Preferences.getUI("UseSystemProxy"):
                 proxyList = QNetworkProxyFactory.systemProxyForQuery(query)
-                if sys.platform not in ["darwin", "nt"] and \
+                if (not Globals.isWindowsPlatform() and \
+                    not Globals.isMacPlatform()) and \
                    len(proxyList) == 1 and \
                    proxyList[0].type() == QNetworkProxy.NoProxy:
                     # try it the Python way
--- a/Globals/__init__.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Globals/__init__.py	Sun Feb 06 15:41:44 2011 +0100
@@ -27,3 +27,19 @@
     @return flag indicating Windows platform (boolean)
     """
     return sys.platform.startswith("win")
+
+def isMacPlatform():
+    """
+    Function to check, if this is a Mac platform.
+    
+    @return flag indicating Mac platform (boolean)
+    """
+    return sys.platform == "darwin"
+
+def isLinuxPlatform():
+    """
+    Function to check, if this is a Linux platform.
+    
+    @return flag indicating Linux platform (boolean)
+    """
+    return sys.platform.startswith("linux")
--- a/Graphics/UMLGraphicsView.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Graphics/UMLGraphicsView.py	Sun Feb 06 15:41:44 2011 +0100
@@ -12,7 +12,7 @@
 
 from E5Graphics.E5GraphicsView import E5GraphicsView
 
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .UMLItem import UMLItem
 from .UMLSceneSizeDialog import UMLSceneSizeDialog
@@ -322,15 +322,14 @@
         """
         Private method to handle the save context menu entry.
         """
-        fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
             self,
             self.trUtf8("Save Diagram"),
             "",
             self.trUtf8("Portable Network Graphics (*.png);;"
                         "Scalable Vector Graphics (*.svg)"),
             "",
-            QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         if fname:
             ext = QFileInfo(fname).suffix()
             if not ext:
--- a/Helpviewer/Bookmarks/BookmarksManager.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Helpviewer/Bookmarks/BookmarksManager.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,7 +13,7 @@
 from PyQt4.QtGui import *
 from PyQt4.QtWebKit import QWebPage
 
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .BookmarkNode import BookmarkNode
 from .BookmarksModel import BookmarksModel
@@ -334,12 +334,11 @@
             self.trUtf8("HTML Netscape bookmarks") + " (*.html)"
         ]
         
-        fileName = QFileDialog.getOpenFileName(
+        fileName = E5FileDialog.getOpenFileName(
             None,
             self.trUtf8("Import Bookmarks"),
             "",
-            ";;".join(supportedFormats), 
-            QFileDialog.DontUseNativeDialog)
+            ";;".join(supportedFormats))
         if not fileName:
             return
         
@@ -383,12 +382,11 @@
         """
         Public method to export the bookmarks.
         """
-        fileName, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+        fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
             None,
             self.trUtf8("Export Bookmarks"),
             "eric5_bookmarks.xbel",
-            self.trUtf8("XBEL bookmarks (*.xbel);;XBEL bookmarks (*.xml)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("XBEL bookmarks (*.xbel);;XBEL bookmarks (*.xml)"))
         if not fileName:
             return
         
--- a/Helpviewer/Download/DownloadItem.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Helpviewer/Download/DownloadItem.py	Sun Feb 06 15:41:44 2011 +0100
@@ -9,10 +9,10 @@
 
 from PyQt4.QtCore import pyqtSlot, pyqtSignal, Qt, QTime, QFile, QFileInfo, QUrl, \
     QIODevice
-from PyQt4.QtGui import QWidget, QPalette, QStyle, QDesktopServices, QFileDialog
+from PyQt4.QtGui import QWidget, QPalette, QStyle, QDesktopServices
 from PyQt4.QtNetwork import QNetworkRequest, QNetworkReply
 
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .Ui_DownloadItem import Ui_DownloadItem
 
@@ -171,12 +171,11 @@
         
         if ask and not self.__autoOpen and self.__requestFilename:
             self.__gettingFileName = True
-            fileName = QFileDialog.getSaveFileName(
+            fileName = E5FileDialog.getSaveFileName(
                 None,
                 self.trUtf8("Save File"),
                 defaultFileName,
-                "", 
-                QFileDialog.DontUseNativeDialog)
+                "")
             self.__gettingFileName = False
             if not fileName:
                 self.progressBar.setVisible(False)
--- a/Helpviewer/HelpWindow.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Helpviewer/HelpWindow.py	Sun Feb 06 15:41:44 2011 +0100
@@ -44,7 +44,7 @@
 from .Download.DownloadManager import DownloadManager
 
 from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from E5Network.E5NetworkMonitor import E5NetworkMonitor
 
@@ -1454,7 +1454,7 @@
         """
         Private slot called to open a file.
         """
-        fn = QFileDialog.getOpenFileName(
+        fn = E5FileDialog.getOpenFileName(
             self, 
             self.trUtf8("Open File"),
             "",
@@ -1462,8 +1462,7 @@
                         "PDF Files (*.pdf);;"
                         "CHM Files (*.chm);;"
                         "All Files (*)"
-            ), 
-            QFileDialog.DontUseNativeDialog)
+            ))
         if fn:
             if Utilities.isWindowsPlatform():
                 url = "file:///" + Utilities.fromNativeSeparators(fn)
@@ -1475,7 +1474,7 @@
         """
         Private slot called to open a file in a new tab.
         """
-        fn = QFileDialog.getOpenFileName(
+        fn = E5FileDialog.getOpenFileName(
             self, 
             self.trUtf8("Open File"),
             "",
@@ -1483,8 +1482,7 @@
                         "PDF Files (*.pdf);;"
                         "CHM Files (*.chm);;"
                         "All Files (*)"
-            ), 
-            QFileDialog.DontUseNativeDialog)
+            ))
         if fn:
             if Utilities.isWindowsPlatform():
                 url = "file:///" + Utilities.fromNativeSeparators(fn)
--- a/Helpviewer/OpenSearch/OpenSearchDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Helpviewer/OpenSearch/OpenSearchDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -7,10 +7,10 @@
 Module implementing a dialog for the configuration of search engines.
 """
 
-from PyQt4.QtGui import QDialog, QFileDialog
+from PyQt4.QtGui import QDialog
 from PyQt4.QtCore import pyqtSlot
 
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .OpenSearchEngineModel import OpenSearchEngineModel
 from .OpenSearchEditDialog import OpenSearchEditDialog
@@ -50,12 +50,11 @@
         """
         Private slot to add a new search engine.
         """
-        fileNames = QFileDialog.getOpenFileNames(
+        fileNames = E5FileDialog.getOpenFileNames(
             self,
             self.trUtf8("Add search engine"),
             "",
-            self.trUtf8("OpenSearch (*.xml);;All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("OpenSearch (*.xml);;All Files (*)"))
         
         osm = self.__mw.openSearchManager()
         for fileName in fileNames:
--- a/Helpviewer/QtHelpDocumentationDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Helpviewer/QtHelpDocumentationDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -11,7 +11,7 @@
 from PyQt4.QtCore import *
 from PyQt4.QtHelp import QHelpEngineCore
 
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .Ui_QtHelpDocumentationDialog import Ui_QtHelpDocumentationDialog
 
@@ -53,12 +53,11 @@
         """
         Private slot to add documents to the help database.
         """
-        fileNames = QFileDialog.getOpenFileNames(
+        fileNames = E5FileDialog.getOpenFileNames(
             self,
             self.trUtf8("Add Documentation"),
             "",
-            self.trUtf8("Qt Compressed Help Files (*.qch)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Qt Compressed Help Files (*.qch)"))
         if not fileNames:
             return
         
--- a/Helpviewer/SslCertificatesDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Helpviewer/SslCertificatesDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -8,13 +8,13 @@
 """
 
 from PyQt4.QtCore import pyqtSlot, Qt, QByteArray, QFile, QFileInfo, QIODevice
-from PyQt4.QtGui import QDialog, QTreeWidgetItem, QFileDialog
+from PyQt4.QtGui import QDialog, QTreeWidgetItem
 try:
     from PyQt4.QtNetwork import QSslCertificate, QSslSocket, QSslConfiguration, QSsl
 except ImportError:
     pass
 
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .Ui_SslCertificatesDialog import Ui_SslCertificatesDialog
 
@@ -371,15 +371,14 @@
         @param cert certificate to be exported (QSslCertificate)
         """
         if cert is not None:
-            fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+            fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
                 self,
                 self.trUtf8("Export Certificate"),
                 name,
                 self.trUtf8("Certificate File (PEM) (*.pem);;"
                             "Certificate File (DER) (*.der)"),
                 None,
-                QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                    QFileDialog.DontUseNativeDialog))
+                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
             
             if fname:
                 ext = QFileInfo(fname).suffix()
@@ -418,13 +417,12 @@
         
         @return certificates read (list of QSslCertificate)
         """
-        fname = QFileDialog.getOpenFileName(
+        fname = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Import Certificate"),
             "",
             self.trUtf8("Certificate Files (*.pem *.crt *.der *.cer *.ca);;"
-                        "All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+                        "All Files (*)"))
         
         if fname:
             f = QFile(fname)
--- a/IconEditor/IconEditorWindow.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/IconEditor/IconEditorWindow.py	Sun Feb 06 15:41:44 2011 +0100
@@ -969,8 +969,7 @@
                 self.trUtf8("Open icon file"),
                 "",
                 self.__inputFilter,
-                self.__defaultFilter,
-                QFileDialog.DontUseNativeDialog)[0]
+                self.__defaultFilter)[0]
             if fileName:
                 self.__loadIconFile(fileName)
         self.__checkActions()
@@ -994,8 +993,7 @@
             "",
             self.__outputFilter,
             self.__defaultFilter,
-            QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         if not fileName:
             return False
         
--- a/MultiProject/AddProjectDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/MultiProject/AddProjectDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -11,6 +11,7 @@
 from PyQt4.QtCore import *
 
 from E5Gui.E5Completers import E5FileCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_AddProjectDialog import Ui_AddProjectDialog
 
@@ -57,12 +58,11 @@
         startdir = self.filenameEdit.text()
         if not startdir and self.startdir is not None:
             startdir = self.startdir
-            projectFile = QFileDialog.getOpenFileName(
+            projectFile = E5FileDialog.getOpenFileName(
                 self,
                 self.trUtf8("Add Project"),
                 startdir,
-                self.trUtf8("Project Files (*.e4p)"), 
-                QFileDialog.DontUseNativeDialog)
+                self.trUtf8("Project Files (*.e4p)"))
         
         if projectFile:
             self.filenameEdit.setText(Utilities.toNativeSeparators(projectFile))
--- a/MultiProject/MultiProject.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/MultiProject/MultiProject.py	Sun Feb 06 15:41:44 2011 +0100
@@ -18,8 +18,7 @@
 from .AddProjectDialog import AddProjectDialog
 
 from E5Gui.E5Action import E5Action, createActionGroup
-from E5Gui import E5FileDialog
-from E5Gui import E5MessageBox
+from E5Gui import E5FileDialog, E5MessageBox
 
 from E5XML.MultiProjectReader import MultiProjectReader
 from E5XML.MultiProjectWriter import MultiProjectWriter
@@ -403,12 +402,11 @@
             return
         
         if fn is None:
-            fn = QFileDialog.getOpenFileName(
+            fn = E5FileDialog.getOpenFileName(
                 self.parent(),
                 self.trUtf8("Open multiproject"),
                 "",
-                self.trUtf8("Multiproject Files (*.e4m)"), 
-                QFileDialog.DontUseNativeDialog)
+                self.trUtf8("Multiproject Files (*.e4m)"))
             
             if fn == "":
                 fn = None
@@ -464,8 +462,7 @@
             self.ppath,
             self.trUtf8("Multiproject Files (*.e4m)"),
             defaultFilter,
-            QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         
         if fn:
             ext = QFileInfo(fn).suffix()
--- a/PluginManager/PluginInstallDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/PluginManager/PluginInstallDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -17,6 +17,8 @@
 from PyQt4.QtGui import *
 from PyQt4.QtCore import *
 
+from E5Gui import E5FileDialog
+
 from .PluginManager import PluginManager
 from .Ui_PluginInstallDialog import Ui_PluginInstallDialog
 
@@ -142,12 +144,11 @@
         Private slot to select plugin ZIP-archives via a file selection dialog.
         """
         dn = Preferences.getPluginManager("DownloadPath")
-        archives = QFileDialog.getOpenFileNames(
+        archives = E5FileDialog.getOpenFileNames(
             self,
             self.trUtf8("Select plugin ZIP-archives"),
             dn,
-            self.trUtf8("Plugin archive (*.zip)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Plugin archive (*.zip)"))
         
         if archives:
             matchflags = Qt.MatchFixedString
--- a/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -15,6 +15,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_EricapiConfigDialog import Ui_EricapiConfigDialog
 import Utilities
@@ -165,12 +166,11 @@
         It displays a file selection dialog to
         select the file the api is written to.
         """
-        filename = QFileDialog.getSaveFileName(
+        filename = E5FileDialog.getSaveFileName(
             self,
             self.trUtf8("Select output file"),
             self.outputFileEdit.text(),
-            self.trUtf8("API files (*.api);;All files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("API files (*.api);;All files (*)"))
             
         if filename:
             # make it relative, if it is in a subdirectory of the project path 
@@ -197,12 +197,11 @@
         startDir = self.ignoreDirEdit.text()
         if not startDir:
             startDir = self.ppath
-        directory = QFileDialog.getExistingDirectory(
+        directory = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Select directory to exclude"),
             startDir,
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
             
         if directory:
             # make it relative, if it is a subdirectory of the project path 
--- a/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -15,6 +15,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_EricdocConfigDialog import Ui_EricdocConfigDialog
 from DocumentationTools.Config import eric5docDefaultColors, eric5docColorParameterNames
@@ -257,12 +258,11 @@
         It displays a directory selection dialog to
         select the directory the documentations is written to.
         """
-        directory = QFileDialog.getExistingDirectory(
+        directory = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Select output directory"),
             self.outputDirEdit.text(),
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
             
         if directory:
             # make it relative, if it is a subdirectory of the project path 
@@ -283,12 +283,11 @@
         startDir = self.ignoreDirEdit.text()
         if not startDir:
             startDir = self.ppath
-        directory = QFileDialog.getExistingDirectory(
+        directory = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Select directory to exclude"),
             startDir,
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
             
         if directory:
             # make it relative, if it is a subdirectory of the project path 
@@ -322,12 +321,11 @@
         """
         Private slot to select a css style sheet.
         """
-        cssFile = QFileDialog.getOpenFileName(
+        cssFile = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select CSS style sheet"),
             getConfig('ericCSSDir'),
-            self.trUtf8("Style sheet (*.css);;All files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Style sheet (*.css);;All files (*)"))
             
         if cssFile:
             # make it relative, if it is in a subdirectory of the project path 
@@ -471,12 +469,11 @@
         It displays a directory selection dialog to
         select the directory the QtHelp files are written to.
         """
-        directory = QFileDialog.getExistingDirectory(
+        directory = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Select output directory for QtHelp files"),
             self.qtHelpDirEdit.text(),
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
             
         if directory:
             # make it relative, if it is a subdirectory of the project path 
--- a/Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -10,9 +10,10 @@
 import os.path
 
 from PyQt4.QtCore import pyqtSlot
-from PyQt4.QtGui import QDialog, QFileDialog
+from PyQt4.QtGui import QDialog
 
 from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_HgCopyDialog import Ui_HgCopyDialog
 
@@ -62,20 +63,18 @@
         selection dialog.
         """
         if os.path.isdir(self.source):
-            target = QFileDialog.getExistingDirectory(
+            target = E5FileDialog.getExistingDirectory(
                 self,
                 self.trUtf8("Select target"),
                 self.targetEdit.text(),
-                QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                    QFileDialog.DontUseNativeDialog))
+                E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
         else:
-            target = QFileDialog.getSaveFileName(
+            target = E5FileDialog.getSaveFileName(
                 self,
                 self.trUtf8("Select target"),
                 self.targetEdit.text(),
                 "",
-                QFileDialog.Options(QFileDialog.DontConfirmOverwrite | 
-                                    QFileDialog.DontUseNativeDialog))
+                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         
         if target:
             self.targetEdit.setText(target)
--- a/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -11,9 +11,9 @@
 
 from PyQt4.QtCore import pyqtSlot, QProcess, QTimer, QFileInfo, Qt
 from PyQt4.QtGui import QWidget, QDialogButtonBox, QBrush, QColor, \
-    QTextCursor, QFileDialog, QLineEdit
+    QTextCursor, QLineEdit
 
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .Ui_HgDiffDialog import Ui_HgDiffDialog
 
@@ -263,14 +263,13 @@
         else:
             fname = self.vcs.splitPath(self.filename)[0]
         
-        fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
             self,
             self.trUtf8("Save Diff"),
             fname,
             self.trUtf8("Patch Files (*.diff)"),
             None,
-            QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         
         if not fname:
             return  # user aborted
--- a/Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -10,9 +10,10 @@
 import os
 
 from PyQt4.QtCore import pyqtSlot, QDir
-from PyQt4.QtGui import QDialog, QFileDialog
+from PyQt4.QtGui import QDialog
 
 from E5Gui.E5Completers import E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_HgNewProjectOptionsDialog import Ui_HgNewProjectOptionsDialog
 from .Config import ConfigHgProtocols
@@ -54,12 +55,11 @@
         Private slot to display a selection dialog.
         """
         if self.protocolCombo.currentText() == "file://":
-            directory = QFileDialog.getExistingDirectory(
+            directory = E5FileDialog.getExistingDirectory(
                 self,
                 self.trUtf8("Select Repository-Directory"),
                 self.vcsUrlEdit.text(),
-                QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                    QFileDialog.DontUseNativeDialog))
+                E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
             
             if directory:
                 self.vcsUrlEdit.setText(Utilities.toNativeSeparators(directory))
@@ -69,12 +69,11 @@
         """
         Private slot to display a directory selection dialog.
         """
-        directory = QFileDialog.getExistingDirectory(
+        directory = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Select Project Directory"),
             self.vcsProjectDirEdit.text(),
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
         
         if directory:
             self.vcsProjectDirEdit.setText(Utilities.toNativeSeparators(directory))
--- a/Plugins/VcsPlugins/vcsMercurial/hg.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/VcsPlugins/vcsMercurial/hg.py	Sun Feb 06 15:41:44 2011 +0100
@@ -12,10 +12,10 @@
 import urllib.request, urllib.parse, urllib.error
 
 from PyQt4.QtCore import QProcess, pyqtSignal, QFileInfo
-from PyQt4.QtGui import QApplication, QDialog, QInputDialog, QFileDialog
+from PyQt4.QtGui import QApplication, QDialog, QInputDialog
 
 from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from QScintilla.MiniEditor import MiniEditor
 
@@ -1721,14 +1721,13 @@
         if dlg.exec_() == QDialog.Accepted:
             rev, compression, all = dlg.getParameters()
             
-            fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+            fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
                 None,
                 self.trUtf8("Create changegroup"),
                 repodir,
                 self.trUtf8("Mercurial Changegroup Files (*.hg)"),
                 None,
-                QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                    QFileDialog.DontUseNativeDialog))
+                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
             
             if not fname:
                 return  # user aborted
@@ -1782,12 +1781,11 @@
             if repodir == os.sep:
                 return
         
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             None,
             self.trUtf8("Preview changegroup"),
             repodir,
-            self.trUtf8("Mercurial Changegroup Files (*.hg);;All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Mercurial Changegroup Files (*.hg);;All Files (*)"))
         if file:
             if self.getPlugin().getPreferences("UseLogBrowser"):
                 self.logBrowser = \
@@ -1814,12 +1812,11 @@
             if repodir == os.sep:
                 return
         
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             None,
             self.trUtf8("Preview changegroup"),
             repodir,
-            self.trUtf8("Mercurial Changegroup Files (*.hg);;All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Mercurial Changegroup Files (*.hg);;All Files (*)"))
         if file:
             args = []
             args.append('identify')
@@ -1845,12 +1842,11 @@
             if repodir == os.sep:
                 return
         
-        files = QFileDialog.getOpenFileNames(
+        files = E5FileDialog.getOpenFileNames(
             None,
             self.trUtf8("Apply changegroups"),
             repodir,
-            self.trUtf8("Mercurial Changegroup Files (*.hg);;All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Mercurial Changegroup Files (*.hg);;All Files (*)"))
         if files:
             update = E5MessageBox.yesNo(self.__ui,
                 self.trUtf8("Apply changegroups"),
--- a/Plugins/VcsPlugins/vcsPySvn/SvnCommandDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/VcsPlugins/vcsPySvn/SvnCommandDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -11,6 +11,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_SvnCommandDialog import Ui_SvnCommandDialog
 
@@ -65,12 +66,11 @@
         cwd = self.workdirCombo.currentText()
         if not cwd:
             cwd = self.projectDirLabel.text()
-        d = QFileDialog.getExistingDirectory(
+        d = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Working directory"),
             cwd,
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
         
         if d:
             self.workdirCombo.setEditText(Utilities.toNativeSeparators(d))
--- a/Plugins/VcsPlugins/vcsPySvn/SvnCopyDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/VcsPlugins/vcsPySvn/SvnCopyDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,6 +13,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_SvnCopyDialog import Ui_SvnCopyDialog
 
@@ -62,20 +63,18 @@
         selection dialog.
         """
         if os.path.isdir(self.source):
-            target = QFileDialog.getExistingDirectory(
+            target = E5FileDialog.getExistingDirectory(
                 None,
                 self.trUtf8("Select target"),
                 self.targetEdit.text(),
-                QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                    QFileDialog.DontUseNativeDialog))
+                E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
         else:
-            target = QFileDialog.getSaveFileName(
+            target = E5FileDialog.getSaveFileName(
                 None,
                 self.trUtf8("Select target"),
                 self.targetEdit.text(),
                 "",
-                QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                    QFileDialog.DontUseNativeDialog))
+                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         
         if target:
             self.targetEdit.setText(target)
--- a/Plugins/VcsPlugins/vcsPySvn/SvnDiffDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/VcsPlugins/vcsPySvn/SvnDiffDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -15,7 +15,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .SvnDialogMixin import SvnDialogMixin
 from .Ui_SvnDiffDialog import Ui_SvnDiffDialog
@@ -313,14 +313,13 @@
         else:
             fname = self.vcs.splitPath(self.filename)[0]
         
-        fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
             self,
             self.trUtf8("Save Diff"),
             fname,
             self.trUtf8("Patch Files (*.diff)"),
             None,
-            QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         
         if not fname:
             return  # user aborted
--- a/Plugins/VcsPlugins/vcsPySvn/SvnNewProjectOptionsDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/VcsPlugins/vcsPySvn/SvnNewProjectOptionsDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,6 +13,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .SvnRepoBrowserDialog import SvnRepoBrowserDialog
 from .Ui_SvnNewProjectOptionsDialog import Ui_SvnNewProjectOptionsDialog
@@ -55,12 +56,11 @@
         Private slot to display a selection dialog.
         """
         if self.protocolCombo.currentText() == "file://":
-            directory = QFileDialog.getExistingDirectory(
+            directory = E5FileDialog.getExistingDirectory(
                 self,
                 self.trUtf8("Select Repository-Directory"),
                 self.vcsUrlEdit.text(),
-                QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                    QFileDialog.DontUseNativeDialog))
+                E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
             
             if directory:
                 self.vcsUrlEdit.setText(Utilities.toNativeSeparators(directory))
@@ -81,12 +81,11 @@
         """
         Private slot to display a directory selection dialog.
         """
-        directory = QFileDialog.getExistingDirectory(
+        directory = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Select Project Directory"),
             self.vcsProjectDirEdit.text(),
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
         
         if directory:
             self.vcsProjectDirEdit.setText(Utilities.toNativeSeparators(directory))
--- a/Plugins/VcsPlugins/vcsPySvn/SvnOptionsDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/VcsPlugins/vcsPySvn/SvnOptionsDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,6 +13,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .SvnRepoBrowserDialog import SvnRepoBrowserDialog
 from .Ui_SvnOptionsDialog import Ui_SvnOptionsDialog
@@ -58,12 +59,11 @@
         Private slot to display a selection dialog.
         """
         if self.protocolCombo.currentText() == "file://":
-            directory = QFileDialog.getExistingDirectory(
+            directory = E5FileDialog.getExistingDirectory(
                 self,
                 self.trUtf8("Select Repository-Directory"),
                 self.vcsUrlEdit.text(),
-                QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                    QFileDialog.DontUseNativeDialog))
+                E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
             
             if directory:
                 self.vcsUrlEdit.setText(Utilities.toNativeSeparators(directory))
--- a/Plugins/VcsPlugins/vcsSubversion/SvnCommandDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnCommandDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -11,6 +11,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_SvnCommandDialog import Ui_SvnCommandDialog
 
@@ -65,12 +66,11 @@
         cwd = self.workdirCombo.currentText()
         if not cwd:
             cwd = self.projectDirLabel.text()
-        d = QFileDialog.getExistingDirectory(
+        d = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Working directory"),
             cwd,
-            QFileDialog.Options(QFileDialog.ShowDirsOnly) |
-                                QFileDialog.DontUseNativeDialog)
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
         
         if d:
             self.workdirCombo.setEditText(Utilities.toNativeSeparators(d))
--- a/Plugins/VcsPlugins/vcsSubversion/SvnCopyDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnCopyDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,6 +13,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_SvnCopyDialog import Ui_SvnCopyDialog
 
@@ -62,20 +63,18 @@
         selection dialog.
         """
         if os.path.isdir(self.source):
-            target = QFileDialog.getExistingDirectory(
+            target = E5FileDialog.getExistingDirectory(
                 None,
                 self.trUtf8("Select target"),
                 self.targetEdit.text(),
-                QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                    QFileDialog.DontUseNativeDialog))
+                E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
         else:
-            target = QFileDialog.getSaveFileName(
+            target = E5FileDialog.getSaveFileName(
                 None,
                 self.trUtf8("Select target"),
                 self.targetEdit.text(),
                 "",
-                QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                    QFileDialog.DontUseNativeDialog))
+                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         
         if target:
             self.targetEdit.setText(target)
--- a/Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,7 +13,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .Ui_SvnDiffDialog import Ui_SvnDiffDialog
 
@@ -273,14 +273,13 @@
         else:
             fname = self.vcs.splitPath(self.filename)[0]
         
-        fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
             self,
             self.trUtf8("Save Diff"),
             fname,
             self.trUtf8("Patch Files (*.diff)"),
             None,
-            QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         
         if not fname:
             return  # user aborted
--- a/Plugins/VcsPlugins/vcsSubversion/SvnNewProjectOptionsDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnNewProjectOptionsDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,6 +13,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .SvnRepoBrowserDialog import SvnRepoBrowserDialog
 from .Ui_SvnNewProjectOptionsDialog import Ui_SvnNewProjectOptionsDialog
@@ -55,12 +56,11 @@
         Private slot to display a selection dialog.
         """
         if self.protocolCombo.currentText() == "file://":
-            directory = QFileDialog.getExistingDirectory(
+            directory = E5FileDialog.getExistingDirectory(
                 self,
                 self.trUtf8("Select Repository-Directory"),
                 self.vcsUrlEdit.text(),
-                QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                    QFileDialog.DontUseNativeDialog))
+                E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
             
             if directory:
                 self.vcsUrlEdit.setText(Utilities.toNativeSeparators(directory))
@@ -81,12 +81,11 @@
         """
         Private slot to display a directory selection dialog.
         """
-        directory = QFileDialog.getExistingDirectory(
+        directory = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Select Project Directory"),
             self.vcsProjectDirEdit.text(),
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
         
         if directory:
             self.vcsProjectDirEdit.setText(Utilities.toNativeSeparators(directory))
--- a/Plugins/VcsPlugins/vcsSubversion/SvnOptionsDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnOptionsDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,6 +13,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .SvnRepoBrowserDialog import SvnRepoBrowserDialog
 from .Ui_SvnOptionsDialog import Ui_SvnOptionsDialog
@@ -58,12 +59,11 @@
         Private slot to display a selection dialog.
         """
         if self.protocolCombo.currentText() == "file://":
-            directory = QFileDialog.getExistingDirectory(
+            directory = E5FileDialog.getExistingDirectory(
                 self,
                 self.trUtf8("Select Repository-Directory"),
                 self.vcsUrlEdit.text(),
-                QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                    QFileDialog.DontUseNativeDialog))
+                E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
             
             if directory:
                 self.vcsUrlEdit.setText(Utilities.toNativeSeparators(directory))
--- a/Plugins/VcsPlugins/vcsSubversion/SvnPropSetDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnPropSetDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -11,6 +11,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5FileCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_SvnPropSetDialog import Ui_SvnPropSetDialog
 
@@ -36,12 +37,11 @@
         """
         Private slot called by pressing the file selection button.
         """
-        fn = QFileDialog.getOpenFileName(
+        fn = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select file for property"),
             self.propFileEdit.text(),
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
         
         if fn:
             self.propFileEdit.setText(Utilities.toNativeSeparators(fn))
--- a/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -16,6 +16,8 @@
 
 from .Ui_FileDialogWizardDialog import Ui_FileDialogWizardDialog
 
+import Globals
+
 class FileDialogWizardDialog(QDialog, Ui_FileDialogWizardDialog):
     """
     Class implementing the color dialog wizard dialog.
@@ -45,6 +47,17 @@
         self.bTest = \
             self.buttonBox.addButton(self.trUtf8("Test"), QDialogButtonBox.ActionRole)
         
+    def __adjustOptions(self, options):
+        """
+        Private method to adjust the file dialog options.
+        
+        @param options file dialog options (QFileDialog.Options)
+        @return modified options (QFileDialog.Options)
+        """
+        if Globals.isLinuxPlatform():
+            options |= QFileDialog.DontUseNativeDialog
+        return options
+        
     def on_buttonBox_clicked(self, button):
         """
         Private slot called by a button of the button box clicked.
@@ -64,7 +77,7 @@
                 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks)
             else:
                 options = QFileDialog.Options()
-            options |= QFileDialog.Options(QFileDialog.DontUseNativeDialog)
+            options = self.__adjustOptions(options)
             QFileDialog.getOpenFileName(
                 None,
                 self.eCaption.text(),
@@ -76,7 +89,7 @@
                 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks)
             else:
                 options = QFileDialog.Options()
-            options |= QFileDialog.Options(QFileDialog.DontUseNativeDialog)
+            options = self.__adjustOptions(options)
             QFileDialog.getOpenFileNames(
                 None,
                 self.eCaption.text(),
@@ -88,7 +101,7 @@
                 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks)
             else:
                 options = QFileDialog.Options()
-            options |= QFileDialog.Options(QFileDialog.DontUseNativeDialog)
+            options = self.__adjustOptions(options)
             QFileDialog.getSaveFileName(
                 None,
                 self.eCaption.text(),
@@ -103,7 +116,7 @@
                 options |= QFileDialog.Options(QFileDialog.ShowDirsOnly)
             else:
                 options |= QFileDialog.Options(QFileDialog.Option(0))
-            options |= QFileDialog.Options(QFileDialog.DontUseNativeDialog)
+            options = self.__adjustOptions(options)
             QFileDialog.getExistingDirectory(
                 None,
                 self.eCaption.text(),
--- a/Plugins/WizardPlugins/PyRegExpWizard/PyRegExpWizardDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/WizardPlugins/PyRegExpWizard/PyRegExpWizardDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,7 +13,7 @@
 from PyQt4.QtCore import *
 from PyQt4.QtGui import *
 
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .Ui_PyRegExpWizardDialog import Ui_PyRegExpWizardDialog
 
@@ -297,14 +297,13 @@
         """
         Private slot to save the regexp to a file.
         """
-        fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
             self,
             self.trUtf8("Save regular expression"),
             "",
             self.trUtf8("RegExp Files (*.rx);;All Files (*)"),
             None,
-            QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         if fname:
             ext = QFileInfo(fname).suffix()
             if not ext:
@@ -335,12 +334,11 @@
         """
         Private slot to load a regexp from a file.
         """
-        fname = QFileDialog.getOpenFileName(
+        fname = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Load regular expression"),
             "",
-            self.trUtf8("RegExp Files (*.rx);;All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("RegExp Files (*.rx);;All Files (*)"))
         if fname:
             try:
                 f=open(Utilities.toNativeSeparators(fname), "r", encoding = "utf-8")
--- a/Plugins/WizardPlugins/QRegExpWizard/QRegExpWizardDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Plugins/WizardPlugins/QRegExpWizard/QRegExpWizardDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -12,7 +12,7 @@
 from PyQt4.QtCore import *
 from PyQt4.QtGui import *
 
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .Ui_QRegExpWizardDialog import Ui_QRegExpWizardDialog
 
@@ -211,14 +211,13 @@
         """
         Private slot to save the regexp to a file.
         """
-        fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
             self,
             self.trUtf8("Save regular expression"),
             "",
             self.trUtf8("RegExp Files (*.rx);;All Files (*)"),
             None,
-            QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         if fname:
             ext = QFileInfo(fname).suffix()
             if not ext:
@@ -249,12 +248,11 @@
         """
         Private slot to load a regexp from a file.
         """
-        fname = QFileDialog.getOpenFileName(
+        fname = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Load regular expression"),
             "",
-            self.trUtf8("RegExp Files (*.rx);;All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("RegExp Files (*.rx);;All Files (*)"))
         if fname:
             try:
                 f=open(Utilities.toNativeSeparators(fname), "r", encoding = "utf-8")
--- a/Preferences/ConfigurationPages/CorbaPage.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Preferences/ConfigurationPages/CorbaPage.py	Sun Feb 06 15:41:44 2011 +0100
@@ -8,9 +8,9 @@
 """
 
 from PyQt4.QtCore import pyqtSlot
-from PyQt4.QtGui import QFileDialog
 
 from E5Gui.E5Completers import E5FileCompleter
+from E5Gui import E5FileDialog
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_CorbaPage import Ui_CorbaPage
@@ -46,12 +46,11 @@
         """
         Private slot to handle the IDL compiler selection.
         """
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select IDL compiler"),
             self.idlEdit.text(),
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
         
         if file:
             self.idlEdit.setText(Utilities.toNativeSeparators(file))
--- a/Preferences/ConfigurationPages/DebuggerPython3Page.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Preferences/ConfigurationPages/DebuggerPython3Page.py	Sun Feb 06 15:41:44 2011 +0100
@@ -8,9 +8,9 @@
 """
 
 from PyQt4.QtCore import pyqtSlot
-from PyQt4.QtGui import QFileDialog
 
 from E5Gui.E5Completers import E5FileCompleter
+from E5Gui import E5FileDialog
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_DebuggerPython3Page import Ui_DebuggerPython3Page
@@ -83,12 +83,11 @@
         """
         Private slot to handle the Python interpreter selection.
         """
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select Python interpreter for Debug Client"),
             self.interpreterEdit.text(),
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
             
         if file:
             self.interpreterEdit.setText(
@@ -99,12 +98,11 @@
         """
         Private slot to handle the Debug Client selection.
         """
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             None,
             self.trUtf8("Select Debug Client"),
             self.debugClientEdit.text(),
-            self.trUtf8("Python Files (*.py *.py3)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Python Files (*.py *.py3)"))
             
         if file:
             self.debugClientEdit.setText(
--- a/Preferences/ConfigurationPages/DebuggerPythonPage.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Preferences/ConfigurationPages/DebuggerPythonPage.py	Sun Feb 06 15:41:44 2011 +0100
@@ -8,9 +8,9 @@
 """
 
 from PyQt4.QtCore import pyqtSlot
-from PyQt4.QtGui import QFileDialog
 
 from E5Gui.E5Completers import E5FileCompleter
+from E5Gui import E5FileDialog
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_DebuggerPythonPage import Ui_DebuggerPythonPage
@@ -79,12 +79,11 @@
         """
         Private slot to handle the Python interpreter selection.
         """
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select Python interpreter for Debug Client"),
             self.interpreterEdit.text(),
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
             
         if file:
             self.interpreterEdit.setText(
@@ -95,12 +94,11 @@
         """
         Private slot to handle the Debug Client selection.
         """
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             None,
             self.trUtf8("Select Debug Client"),
             self.debugClientEdit.text(),
-            self.trUtf8("Python Files (*.py *.py2)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Python Files (*.py *.py2)"))
             
         if file:
             self.debugClientEdit.setText(
--- a/Preferences/ConfigurationPages/DebuggerRubyPage.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Preferences/ConfigurationPages/DebuggerRubyPage.py	Sun Feb 06 15:41:44 2011 +0100
@@ -8,9 +8,9 @@
 """
 
 from PyQt4.QtCore import pyqtSlot
-from PyQt4.QtGui import QFileDialog
 
 from E5Gui.E5Completers import E5FileCompleter
+from E5Gui import E5FileDialog
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_DebuggerRubyPage import Ui_DebuggerRubyPage
@@ -52,11 +52,10 @@
         """
         Private slot to handle the Ruby interpreter selection.
         """
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select Ruby interpreter for Debug Client"),
-            self.rubyInterpreterEdit.text(), 
-            QFileDialog.DontUseNativeDialog)
+            self.rubyInterpreterEdit.text())
             
         if file:
             self.rubyInterpreterEdit.setText(
--- a/Preferences/ConfigurationPages/EditorAPIsPage.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Preferences/ConfigurationPages/EditorAPIsPage.py	Sun Feb 06 15:41:44 2011 +0100
@@ -8,10 +8,11 @@
 """
 
 from PyQt4.QtCore import QDir, pyqtSlot, QFileInfo
-from PyQt4.QtGui import QFileDialog, QInputDialog
+from PyQt4.QtGui import QInputDialog
 
 from E5Gui.E5Application import e5App
 from E5Gui.E5Completers import E5FileCompleter
+from E5Gui import E5FileDialog
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_EditorAPIsPage import Ui_EditorAPIsPage
@@ -125,12 +126,11 @@
         """
         Private method to select an api file.
         """
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select API file"),
             self.apiFileEdit.text(),
-            self.trUtf8("API File (*.api);;All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("API File (*.api);;All Files (*)"))
             
         if file:
             self.apiFileEdit.setText(Utilities.toNativeSeparators(file))
--- a/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Sun Feb 06 15:41:44 2011 +0100
@@ -8,13 +8,13 @@
 """
 
 from PyQt4.QtCore import pyqtSlot, QFileInfo, QFile, QIODevice
-from PyQt4.QtGui import QPalette, QFileDialog, QColorDialog, QFontDialog, \
+from PyQt4.QtGui import QPalette, QColorDialog, QFontDialog, \
                         QInputDialog, QFont, QMenu
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_EditorHighlightingStylesPage import Ui_EditorHighlightingStylesPage
 
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from E5XML.HighlightingStylesWriter import HighlightingStylesWriter
 from E5XML.HighlightingStylesReader import HighlightingStylesReader
@@ -363,14 +363,13 @@
         
         @param lexers list of lexer objects for which to export the styles
         """
-        fn, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+        fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
             self,
             self.trUtf8("Export Highlighting Styles"),
             "",
             self.trUtf8("Highlighting styles file (*.e4h)"),
             "",
-            QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         
         if not fn:
             return
@@ -399,12 +398,11 @@
         
         @param lexers dictionary of lexer objects for which to import the styles
         """
-        fn = QFileDialog.getOpenFileName(
+        fn = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Import Highlighting Styles"),
             "",
-            self.trUtf8("Highlighting styles file (*.e4h)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Highlighting styles file (*.e4h)"))
         
         if not fn:
             return
--- a/Preferences/ConfigurationPages/EditorSpellCheckingPage.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Preferences/ConfigurationPages/EditorSpellCheckingPage.py	Sun Feb 06 15:41:44 2011 +0100
@@ -8,9 +8,9 @@
 """
 
 from PyQt4.QtCore import pyqtSlot
-from PyQt4.QtGui import QFileDialog
 
 from E5Gui.E5Completers import E5FileCompleter
+from E5Gui import E5FileDialog
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_EditorSpellCheckingPage import Ui_EditorSpellCheckingPage
@@ -110,12 +110,11 @@
         """
         Private method to select the personal word list file.
         """
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select personal word list"),
             self.pwlEdit.text(),
-            self.trUtf8("Dictionary File (*.dic);;All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Dictionary File (*.dic);;All Files (*)"))
             
         if file:
             self.pwlEdit.setText(Utilities.toNativeSeparators(file))
@@ -125,12 +124,11 @@
         """
         Private method to select the personal exclude list file.
         """
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select personal exclude list"),
             self.pelEdit.text(),
-            self.trUtf8("Dictionary File (*.dic);;All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Dictionary File (*.dic);;All Files (*)"))
             
         if file:
             self.pelEdit.setText(Utilities.toNativeSeparators(file))
--- a/Preferences/ConfigurationPages/HelpAppearancePage.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Preferences/ConfigurationPages/HelpAppearancePage.py	Sun Feb 06 15:41:44 2011 +0100
@@ -8,9 +8,9 @@
 """
 
 from PyQt4.QtCore import pyqtSlot
-from PyQt4.QtGui import QFileDialog
 
 from E5Gui.E5Completers import E5FileCompleter
+from E5Gui import E5FileDialog
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_HelpAppearancePage import Ui_HelpAppearancePage
@@ -100,12 +100,11 @@
         """
         Private slot to handle the user style sheet selection.
         """
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select Style Sheet"),
             self.styleSheetEdit.text(),
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
         
         if file:
             self.styleSheetEdit.setText(Utilities.toNativeSeparators(file))
--- a/Preferences/ConfigurationPages/HelpDocumentationPage.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Preferences/ConfigurationPages/HelpDocumentationPage.py	Sun Feb 06 15:41:44 2011 +0100
@@ -8,9 +8,9 @@
 """
 
 from PyQt4.QtCore import pyqtSlot, QUrl
-from PyQt4.QtGui import QFileDialog
 
 from E5Gui.E5Completers import E5FileCompleter
+from E5Gui import E5FileDialog
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_HelpDocumentationPage import Ui_HelpDocumentationPage
@@ -75,14 +75,13 @@
         """
         Private slot to select the Python 2 documentation directory.
         """
-        entry = QFileDialog.getOpenFileName(
+        entry = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select Python 2 documentation entry"),
             QUrl(self.python2DocDirEdit.text()).path(),
             self.trUtf8("HTML Files (*.html *.htm);;"
                 "Compressed Help Files (*.chm);;"
-                "All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+                "All Files (*)"))
         
         if entry:
             self.python2DocDirEdit.setText(Utilities.toNativeSeparators(entry))
@@ -92,14 +91,13 @@
         """
         Private slot to select the Python 3 documentation directory.
         """
-        entry = QFileDialog.getOpenFileName(
+        entry = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select Python 3 documentation entry"),
             QUrl(self.pythonDocDirEdit.text()).path(),
             self.trUtf8("HTML Files (*.html *.htm);;"
                 "Compressed Help Files (*.chm);;"
-                "All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+                "All Files (*)"))
         
         if entry:
             self.pythonDocDirEdit.setText(Utilities.toNativeSeparators(entry))
@@ -109,12 +107,11 @@
         """
         Private slot to select the Qt4 documentation directory.
         """
-        entry = QFileDialog.getOpenFileName(
+        entry = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select Qt4 documentation entry"),
             QUrl(self.qt4DocDirEdit.text()).path(),
-            self.trUtf8("HTML Files (*.html *.htm);;All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("HTML Files (*.html *.htm);;All Files (*)"))
         
         if entry:
             self.qt4DocDirEdit.setText(Utilities.toNativeSeparators(entry))
@@ -124,12 +121,11 @@
         """
         Private slot to select the PyQt4 documentation directory.
         """
-        entry = QFileDialog.getOpenFileName(
+        entry = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select PyQt4 documentation entry"),
             QUrl(self.pyqt4DocDirEdit.text()).path(),
-            self.trUtf8("HTML Files (*.html *.htm);;All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("HTML Files (*.html *.htm);;All Files (*)"))
         
         if entry:
             self.pyqt4DocDirEdit.setText(Utilities.toNativeSeparators(entry))
@@ -139,12 +135,11 @@
         """
         Private slot to select the PySide documentation directory.
         """
-        entry = QFileDialog.getOpenFileName(
+        entry = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select PySide documentation entry"),
             QUrl(self.pysideDocDirEdit.text()).path(),
-            self.trUtf8("HTML Files (*.html *.htm);;All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("HTML Files (*.html *.htm);;All Files (*)"))
         
         if entry:
             self.pysideDocDirEdit.setText(Utilities.toNativeSeparators(entry))
--- a/Preferences/ConfigurationPages/HelpViewersPage.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Preferences/ConfigurationPages/HelpViewersPage.py	Sun Feb 06 15:41:44 2011 +0100
@@ -8,9 +8,10 @@
 """
 
 from PyQt4.QtCore import pyqtSlot
-from PyQt4.QtGui import QButtonGroup, QFileDialog
+from PyQt4.QtGui import QButtonGroup
 
 from E5Gui.E5Completers import E5FileCompleter
+from E5Gui import E5FileDialog
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_HelpViewersPage import Ui_HelpViewersPage
@@ -72,12 +73,11 @@
         """
         Private slot to handle the custom viewer selection.
         """
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select Custom Viewer"),
             self.customViewerEdit.text(),
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
         
         if file:
             self.customViewerEdit.setText(Utilities.toNativeSeparators(file))
@@ -87,12 +87,11 @@
         """
         Private slot to handle the Web browser selection.
         """
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select Web-Browser"),
             self.webbrowserEdit.text(),
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
         
         if file:
             self.webbrowserEdit.setText(Utilities.toNativeSeparators(file))
@@ -102,12 +101,11 @@
         """
         Private slot to handle the PDF viewer selection.
         """
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select PDF-Viewer"),
             self.pdfviewerEdit.text(),
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
         
         if file:
             self.pdfviewerEdit.setText(Utilities.toNativeSeparators(file))
@@ -117,12 +115,11 @@
         """
         Private slot to handle the CHM viewer selection.
         """
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select CHM-Viewer"),
             self.chmviewerEdit.text(),
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
         
         if file:
             self.chmviewerEdit.setText(Utilities.toNativeSeparators(file))
--- a/Preferences/ConfigurationPages/IconsPage.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Preferences/ConfigurationPages/IconsPage.py	Sun Feb 06 15:41:44 2011 +0100
@@ -8,9 +8,10 @@
 """
 
 from PyQt4.QtCore import pyqtSlot
-from PyQt4.QtGui import QListWidgetItem, QFileDialog
+from PyQt4.QtGui import QListWidgetItem
 
 from E5Gui.E5Completers import E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .IconsPreviewDialog import IconsPreviewDialog
@@ -121,12 +122,11 @@
         """
         Private slot to select an icon directory.
         """
-        dir = QFileDialog.getExistingDirectory(
+        dir = E5FileDialog.getExistingDirectory(
             None,
             self.trUtf8("Select icon directory"),
             "",
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
             
         if dir:
             self.iconDirectoryEdit.setText(Utilities.toNativeSeparators(dir))
--- a/Preferences/ConfigurationPages/InterfacePage.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Preferences/ConfigurationPages/InterfacePage.py	Sun Feb 06 15:41:44 2011 +0100
@@ -11,9 +11,10 @@
 import os
 
 from PyQt4.QtCore import pyqtSlot, QTranslator, qVersion
-from PyQt4.QtGui import QStyleFactory, QFileDialog
+from PyQt4.QtGui import QStyleFactory
 
 from E5Gui.E5Completers import E5FileCompleter
+from E5Gui import E5FileDialog
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_InterfacePage import Ui_InterfacePage
@@ -247,13 +248,12 @@
         """
         Private method to select the style sheet file via a dialog.
         """
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select style sheet file"),
             self.styleSheetEdit.text(),
             self.trUtf8("Qt Style Sheets (*.qss);;Cascading Style Sheets (*.css);;"
-                        "All files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+                        "All files (*)"))
         
         if file:
             self.styleSheetEdit.setText(Utilities.toNativeSeparators(file))
--- a/Preferences/ConfigurationPages/NetworkPage.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Preferences/ConfigurationPages/NetworkPage.py	Sun Feb 06 15:41:44 2011 +0100
@@ -10,9 +10,9 @@
 import os
 
 from PyQt4.QtCore import pyqtSlot
-from PyQt4.QtGui import QFileDialog
 
 from E5Gui.E5Completers import E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_NetworkPage import Ui_NetworkPage
@@ -109,12 +109,11 @@
         """
         Private slot to handle the directory selection via dialog.
         """
-        directory = QFileDialog.getExistingDirectory(
+        directory = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Select download directory"),
             self.downloadDirEdit.text(),
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
             
         if directory:
             dn = Utilities.toNativeSeparators(directory)
--- a/Preferences/ConfigurationPages/PluginManagerPage.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Preferences/ConfigurationPages/PluginManagerPage.py	Sun Feb 06 15:41:44 2011 +0100
@@ -10,9 +10,9 @@
 import os
 
 from PyQt4.QtCore import pyqtSlot
-from PyQt4.QtGui import QFileDialog
 
 from E5Gui.E5Completers import E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_PluginManagerPage import Ui_PluginManagerPage
@@ -54,12 +54,11 @@
         """
         Private slot to handle the directory selection via dialog.
         """
-        directory = QFileDialog.getExistingDirectory(
+        directory = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Select plugins download directory"),
             self.downloadDirEdit.text(),
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
             
         if directory:
             dn = Utilities.toNativeSeparators(directory)
--- a/Preferences/ConfigurationPages/QtPage.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Preferences/ConfigurationPages/QtPage.py	Sun Feb 06 15:41:44 2011 +0100
@@ -7,12 +7,10 @@
 Module implementing the Qt configuration page.
 """
 
-import sys
-
 from PyQt4.QtCore import pyqtSlot
-from PyQt4.QtGui import QFileDialog
 
 from E5Gui.E5Completers import E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_QtPage import Ui_QtPage
@@ -35,7 +33,7 @@
         self.qt4Completer = E5DirCompleter(self.qt4Edit)
         self.qt4TransCompleter = E5DirCompleter(self.qt4TransEdit)
         
-        if sys.platform != "darwin":
+        if not Utilities.isMacPlatform():
             self.qt4Group.hide()
         
         # set initial values
@@ -59,12 +57,11 @@
         """
         Private slot to handle the Qt4 directory selection.
         """
-        dir = QFileDialog.getExistingDirectory(
+        dir = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Select Qt4 Directory"),
             self.qt4Edit.text(),
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
             
         if dir:
             self.qt4Edit.setText(Utilities.toNativeSeparators(dir))
@@ -74,12 +71,11 @@
         """
         Private slot to handle the Qt4 translations directory selection.
         """
-        dir = QFileDialog.getExistingDirectory(
+        dir = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Select Qt4 Translations Directory"),
             self.qt4TransEdit.text(),
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
             
         if dir:
             self.qt4TransEdit.setText(Utilities.toNativeSeparators(dir))
--- a/Preferences/ToolConfigurationDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Preferences/ToolConfigurationDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,7 +13,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5FileCompleter
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .Ui_ToolConfigurationDialog import Ui_ToolConfigurationDialog
 import Utilities
@@ -247,12 +247,11 @@
         """
         Private slot to handle the executable selection via a file selection dialog.
         """
-        execfile = QFileDialog.getOpenFileName(
+        execfile = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select executable"),
             self.executableEdit.text(),
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
         if execfile:
             execfile = Utilities.toNativeSeparators(execfile)
             if not Utilities.isinpath(execfile):
@@ -269,12 +268,11 @@
         """
         Private slot to handle the icon selection via a file selection dialog.
         """
-        icon = QFileDialog.getOpenFileName(
+        icon = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select icon file"),
             self.iconEdit.text(),
-            self.trUtf8("Icon files (*.png)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Icon files (*.png)"))
         if icon:
             self.iconEdit.setText(icon)
     
--- a/Preferences/__init__.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Preferences/__init__.py	Sun Feb 06 15:41:44 2011 +0100
@@ -16,7 +16,6 @@
 to import it.
 """
 
-import sys
 import os
 import fnmatch
 import shutil
@@ -25,10 +24,12 @@
 from PyQt4 import Qsci
 from PyQt4.QtWebKit import QWebSettings
 
+from E5Gui import E5FileDialog
+
 import QScintilla.Lexers
 
 from Globals import settingsNameOrganization, settingsNameGlobal, settingsNameRecent, \
-    isWindowsPlatform
+    isWindowsPlatform, isLinuxPlatform
 
 from Project.ProjectBrowserFlags import SourcesBrowserFlag, FormsBrowserFlag, \
     ResourcesBrowserFlag, TranslationsBrowserFlag, InterfacesBrowserFlag, \
@@ -674,7 +675,7 @@
         "MonospacedFont" : "Courier,10,-1,5,50,0,0,0,0,0", 
         "MarginsFont" : "Sans Serif,10,-1,5,50,0,0,0,0,0",
     }
-    if sys.platform.lower().startswith("linux"):
+    if isLinuxPlatform():
         terminalDefaults["Shell"] = "bash"
 
     # defaults for Qt related stuff
@@ -892,15 +893,14 @@
     
     @param prefClass preferences class used as the storage area
     """
-    filename, selectedFilter = QtGui.QFileDialog.getSaveFileNameAndFilter(
+    filename, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
         None,
         QtCore.QCoreApplication.translate("Preferences", "Export Preferences"),
         "",
         QtCore.QCoreApplication.translate("Preferences", 
             "Properties File (*.ini);;All Files (*)"),
         None, 
-        QtGui.QFileDialog.Options(QtGui.QFileDialog.DontConfirmOverwrite |
-                                  QtGui.QFileDialog.DontUseNativeDialog))
+        E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
     if filename:
         ext = QtCore.QFileInfo(filename).suffix()
         if not ext:
@@ -919,13 +919,12 @@
     
     @param prefClass preferences class used as the storage area
     """
-    filename = QtGui.QFileDialog.getOpenFileName(
+    filename = E5FileDialog.getOpenFileName(
         None,
         QtCore.QCoreApplication.translate("Preferences", "Import Preferences"),
         "",
         QtCore.QCoreApplication.translate("Preferences", 
-            "Properties File (*.ini);;All Files (*)"), 
-        QtGui.QFileDialog.DontUseNativeDialog)
+            "Properties File (*.ini);;All Files (*)"))
     if filename:
         settingsFile = prefClass.settings.fileName()
         shutil.copy(filename, settingsFile)
--- a/Project/AddDirectoryDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Project/AddDirectoryDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -11,6 +11,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_AddDirectoryDialog import Ui_AddDirectoryDialog
 
@@ -91,12 +92,10 @@
         if not startdir and self.startdir is not None:
             startdir = self.startdir
         
-        directory = QFileDialog.getExistingDirectory(
+        directory = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Select directory"),
-            startdir,
-            QFileDialog.Options(QFileDialog.Option(
-                                QFileDialog.DontUseNativeDialog)))
+            startdir)
         
         if directory:
             textEdit.setText(Utilities.toNativeSeparators(directory))
--- a/Project/AddFileDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Project/AddFileDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,6 +13,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_AddFileDialog import Ui_AddFileDialog
 
@@ -57,12 +58,10 @@
         startdir = self.targetDirEdit.text()
         if not startdir and self.startdir is not None:
             startdir = self.startdir
-        directory = QFileDialog.getExistingDirectory(
+        directory = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Select target directory"),
-            startdir,
-            QFileDialog.Options(QFileDialog.Option(
-                                QFileDialog.DontUseNativeDialog)))
+            startdir)
             
         if directory:
             self.targetDirEdit.setText(Utilities.toNativeSeparators(directory))
@@ -148,8 +147,7 @@
         else:
             return
         
-        fnames = QFileDialog.getOpenFileNames(self, caption, dir, dfilter, 
-            QFileDialog.DontUseNativeDialog)
+        fnames = E5FileDialog.getOpenFileNames(self, caption, dir, dfilter)
         
         if len(fnames):
             self.sourceFileEdit.setText(Utilities.toNativeSeparators(
--- a/Project/DebuggerPropertiesDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Project/DebuggerPropertiesDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -14,6 +14,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_DebuggerPropertiesDialog import Ui_DebuggerPropertiesDialog
 
@@ -97,12 +98,11 @@
         """
         Private slot to handle the interpreter selection.
         """
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select interpreter for Debug Client"),
             self.interpreterEdit.text(),
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
             
         if file:
             self.interpreterEdit.setText(Utilities.toNativeSeparators(file))
@@ -114,12 +114,11 @@
         """
         filters = self.project.dbgFilters[self.project.pdata["PROGLANGUAGE"][0]]
         filters += self.trUtf8("All Files (*)")
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select Debug Client"),
             self.debugClientEdit.text(),
-            filters, 
-            QFileDialog.DontUseNativeDialog)
+            filters)
             
         if file:
             self.debugClientEdit.setText(Utilities.toNativeSeparators(file))
--- a/Project/NewDialogClassDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Project/NewDialogClassDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,6 +13,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_NewDialogClassDialog import Ui_NewDialogClassDialog
 
@@ -46,12 +47,10 @@
         """
         Private slot called to open a directory selection dialog.
         """
-        path = QFileDialog.getExistingDirectory(
+        path = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Select source directory"),
-            QDir.fromNativeSeparators(self.pathnameEdit.text()),
-            QFileDialog.Options(QFileDialog.Option(
-                                QFileDialog.DontUseNativeDialog)))
+            QDir.fromNativeSeparators(self.pathnameEdit.text()))
         if path:
             self.pathnameEdit.setText(QDir.toNativeSeparators(path))
         
--- a/Project/Project.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Project/Project.py	Sun Feb 06 15:41:44 2011 +0100
@@ -1520,13 +1520,12 @@
         isSourceFile = fn in self.pdata["SOURCES"]
         
         if newfn is None:
-            newfn = QFileDialog.getSaveFileName(
+            newfn = E5FileDialog.getSaveFileName(
                 None,
                 self.trUtf8("Rename file"),
                 os.path.dirname(oldfn),
                 "",
-                QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                    QFileDialog.DontUseNativeDialog))
+                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
             if not newfn:
                 return False
             newfn = Utilities.toNativeSeparators(newfn)
@@ -2222,12 +2221,11 @@
             return
         
         if fn is None:
-            fn = QFileDialog.getOpenFileName(
+            fn = E5FileDialog.getOpenFileName(
                 self.parent(),
                 self.trUtf8("Open project"),
                 "",
-                self.trUtf8("Project Files (*.e4p)"), 
-                QFileDialog.DontUseNativeDialog)
+                self.trUtf8("Project Files (*.e4p)"))
         
         QApplication.processEvents()
         
@@ -2390,8 +2388,7 @@
             self.ppath,
             self.trUtf8("Project Files (*.e4p)"),
             defaultFilter,
-            QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         
         if fn:
             ext = QFileInfo(fn).suffix()
--- a/Project/ProjectFormsBrowser.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Project/ProjectFormsBrowser.py	Sun Feb 06 15:41:44 2011 +0100
@@ -15,7 +15,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .ProjectBrowserModel import ProjectBrowserFileItem, \
     ProjectBrowserSimpleDirectoryItem, ProjectBrowserDirectoryItem, \
@@ -492,14 +492,13 @@
         templateFile = os.path.join(getConfig('ericTemplatesDir'),
             self.templates4[templateIndex])
         
-        fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
             self,
             self.trUtf8("New Form"),
             path,
             self.trUtf8("Qt User-Interface Files (*.ui);;All Files (*)"),
             "",
-            QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         
         if not fname:
             # user aborted or didn't enter a filename
--- a/Project/ProjectResourcesBrowser.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Project/ProjectResourcesBrowser.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,7 +13,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .ProjectBrowserModel import ProjectBrowserFileItem, \
     ProjectBrowserSimpleDirectoryItem, ProjectBrowserDirectoryItem, \
@@ -386,14 +386,13 @@
         if self.hooks["newResource"] is not None:
             self.hooks["newResource"](path)
         else:
-            fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+            fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
                 self,
                 self.trUtf8("New Resource"),
                 path,
                 self.trUtf8("Qt Resource Files (*.qrc)"),
                 "",
-                QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                    QFileDialog.DontUseNativeDialog))
+                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
             
             if not fname:
                 # user aborted or didn't enter a filename
--- a/Project/PropertiesDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Project/PropertiesDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,8 +13,8 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Application import e5App
-
 from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_PropertiesDialog import Ui_PropertiesDialog
 from .TranslationPropertiesDialog import TranslationPropertiesDialog
@@ -131,12 +131,11 @@
         """
         Private slot to display a directory selection dialog.
         """
-        directory = QFileDialog.getExistingDirectory(
+        directory = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Select project directory"),
             self.dirEdit.text(),
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
         
         if directory:
             self.dirEdit.setText(Utilities.toNativeSeparators(directory))
@@ -181,12 +180,11 @@
                 patterns.append(pattern)
         filters = self.trUtf8("Source Files ({0});;All Files (*)")\
             .format(" ".join(patterns))
-        fn = QFileDialog.getOpenFileName(
+        fn = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select main script file"),
             dir,
-            filters, 
-            QFileDialog.DontUseNativeDialog)
+            filters)
         
         if fn:
             ppath = self.dirEdit.text()
--- a/Project/SpellingPropertiesDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Project/SpellingPropertiesDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,6 +13,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5FileCompleter
+from E5Gui import E5FileDialog
 
 from QScintilla.SpellChecker import SpellChecker
 
@@ -71,12 +72,11 @@
         pwl = self.pwlEdit.text()
         if not pwl:
             pwl = self.project.ppath
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select project word list"),
             pwl,
-            self.trUtf8("Dictionary File (*.dic);;All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Dictionary File (*.dic);;All Files (*)"))
         
         if file:
             self.pwlEdit.setText(Utilities.toNativeSeparators(file))
@@ -89,12 +89,11 @@
         pel = self.pelEdit.text()
         if not pel:
             pel = self.project.ppath
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select project exclude list"),
             pel,
-            self.trUtf8("Dictionary File (*.dic);;All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Dictionary File (*.dic);;All Files (*)"))
             
         if file:
             self.pelEdit.setText(Utilities.toNativeSeparators(file))
--- a/Project/TranslationPropertiesDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Project/TranslationPropertiesDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,6 +13,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_TranslationPropertiesDialog import Ui_TranslationPropertiesDialog
 
@@ -90,12 +91,11 @@
         tp = self.transPatternEdit.text()
         if "%language%" in tp:
             tp = tp.split("%language%")[0]
-        tsfile = QFileDialog.getOpenFileName(
+        tsfile = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select translation file"),
             tp,
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
         
         if tsfile:
             self.transPatternEdit.setText(Utilities.toNativeSeparators(tsfile))
@@ -115,12 +115,10 @@
         """
         Private slot to display a directory selection dialog.
         """
-        directory = QFileDialog.getExistingDirectory(
+        directory = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Select directory for binary translations"),
-            self.transBinPathEdit.text(),
-            QFileDialog.Options(QFileDialog.Option(
-                                QFileDialog.DontUseNativeDialog)))
+            self.transBinPathEdit.text())
         
         if directory:
             self.transBinPathEdit.setText(Utilities.toNativeSeparators(directory))
@@ -159,12 +157,11 @@
         """
         Private slot to select a file to exempt from translation.
         """
-        texcept = QFileDialog.getOpenFileName(
+        texcept = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Exempt file from translation"),
             self.project.ppath,
-            self.filters, 
-            QFileDialog.DontUseNativeDialog)
+            self.filters)
         if texcept:
             self.exceptionEdit.setText(Utilities.toNativeSeparators(texcept))
         
@@ -173,12 +170,11 @@
         """
         Private slot to select a file to exempt from translation.
         """
-        texcept = QFileDialog.getExistingDirectory(
+        texcept = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Exempt directory from translation"),
             self.project.ppath,
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
         if texcept:
             self.exceptionEdit.setText(Utilities.toNativeSeparators(texcept))
         
--- a/PyUnit/UnittestDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/PyUnit/UnittestDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -19,7 +19,7 @@
 
 from E5Gui.E5Application import e5App
 from E5Gui.E5Completers import E5FileCompleter
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .Ui_UnittestDialog import Ui_UnittestDialog
 from .Ui_UnittestStacktraceDialog import Ui_UnittestStacktraceDialog
@@ -160,12 +160,11 @@
                 .format(py2Extensions, py3Extensions)
         else:
             filter = self.trUtf8("Python Files (*.py);;All Files (*)")
-        prog = QFileDialog.getOpenFileName(
+        prog = E5FileDialog.getOpenFileName(
             self,
             "",
             self.testsuiteComboBox.currentText(),
-            filter, 
-            QFileDialog.DontUseNativeDialog)
+            filter)
         
         if not prog:
             return
--- a/QScintilla/Editor.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/QScintilla/Editor.py	Sun Feb 06 15:41:44 2011 +0100
@@ -2469,8 +2469,7 @@
                 path,
                 Lexers.getSaveFileFiltersList(True, True), 
                 defaultFilter,
-                QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                    QFileDialog.DontUseNativeDialog))
+                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
             
             if fn:
                 if fn.endswith("."):
@@ -4816,12 +4815,11 @@
         Public method to load a macro from a file.
         """
         configDir = Utilities.getConfigDir()
-        fname = QFileDialog.getOpenFileName(
+        fname = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Load macro file"),
             configDir,
-            self.trUtf8("Macro files (*.macro)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Macro files (*.macro)"))
         
         if not fname:
             return  # user aborted
@@ -4857,14 +4855,13 @@
         if not ok or not name:
             return  # user abort
         
-        fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
             self,
             self.trUtf8("Save macro file"),
             configDir,
             self.trUtf8("Macro files (*.macro)"),
             "",
-            QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         
         if not fname:
             return  # user aborted
@@ -5291,12 +5288,11 @@
         Private method to handle the Add file context menu action.
         """
         dirStr = os.path.dirname(self.fileName)
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Add file resource"),
             dirStr,
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
         if file:
             relFile = QDir(dirStr).relativeFilePath(file)
             line, index = self.getCursorPosition()
@@ -5308,12 +5304,11 @@
         Private method to handle the Add files context menu action.
         """
         dirStr = os.path.dirname(self.fileName)
-        files = QFileDialog.getOpenFileNames(
+        files = E5FileDialog.getOpenFileNames(
             self,
             self.trUtf8("Add file resources"),
             dirStr,
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
         if files:
             myDir = QDir(dirStr)
             filesText = ""
@@ -5329,12 +5324,11 @@
         Private method to handle the Add aliased file context menu action.
         """
         dirStr = os.path.dirname(self.fileName)
-        file = QFileDialog.getOpenFileName(
+        file = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Add aliased file resource"),
             dirStr,
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
         if file:
             relFile = QDir(dirStr).relativeFilePath(file)
             alias, ok = QInputDialog.getText(
--- a/QScintilla/Exporters/ExporterBase.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/QScintilla/Exporters/ExporterBase.py	Sun Feb 06 15:41:44 2011 +0100
@@ -10,7 +10,7 @@
 from PyQt4.QtCore import *
 from PyQt4.QtGui import *
 
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 import Utilities
 
@@ -38,14 +38,13 @@
         filter_ = filter
         filter_ += ";;"
         filter_ += QApplication.translate('Exporter', "All Files (*)")
-        fn, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+        fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
             self.editor,
             self.trUtf8("Export source"),
             "",
             filter_,
             "",
-            QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         
         if fn:
             ext = QFileInfo(fn).suffix()
--- a/QScintilla/MiniEditor.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/QScintilla/MiniEditor.py	Sun Feb 06 15:41:44 2011 +0100
@@ -15,7 +15,7 @@
 from PyQt4.Qsci import QsciScintilla
 
 from E5Gui.E5Action import E5Action, createActionGroup
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from . import Lexers
 from .QsciScintillaCompat import QsciScintillaCompat
@@ -202,8 +202,7 @@
         Private slot to open a file.
         """
         if self.__maybeSave():
-            fileName = QFileDialog.getOpenFileName(self,
-                options = QFileDialog.DontUseNativeDialog)
+            fileName = E5FileDialog.getOpenFileName(self)
             if fileName:
                 self.__loadFile(fileName)
         self.__checkActions()
@@ -221,8 +220,7 @@
         """
         Private slot to save a file with a new name.
         """
-        fileName = QFileDialog.getSaveFileName(self, 
-            options =  QFileDialog.DontUseNativeDialog)
+        fileName = E5FileDialog.getSaveFileName(self)
         if not fileName:
             return False
         
--- a/SqlBrowser/SqlConnectionDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/SqlBrowser/SqlConnectionDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -12,6 +12,7 @@
 from PyQt4.QtSql import QSqlDatabase
 
 from E5Gui.E5Completers import E5FileCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_SqlConnectionDialog import Ui_SqlConnectionDialog
 
@@ -87,12 +88,11 @@
         Private slot to open a database file via a file selection dialog.
         """
         startdir = self.databaseEdit.text()
-        dbFile = QFileDialog.getOpenFileName(
+        dbFile = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select Database File"),
             startdir,
-            self.trUtf8("All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("All Files (*)"))
         
         if dbFile:
             self.databaseEdit.setText(Utilities.toNativeSeparators(dbFile))
--- a/Templates/TemplateViewer.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Templates/TemplateViewer.py	Sun Feb 06 15:41:44 2011 +0100
@@ -15,7 +15,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .TemplatePropertiesDialog import TemplatePropertiesDialog
 from .TemplateMultipleVariablesDialog import TemplateMultipleVariablesDialog
@@ -520,12 +520,11 @@
         """
         Private slot to handle the Import context menu action.
         """
-        fn = QFileDialog.getOpenFileName(
+        fn = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Import Templates"),
             "",
-            self.trUtf8("Templates Files (*.e4c);; All Files (*)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Templates Files (*.e4c);; All Files (*)"))
         
         if fn:
             self.readTemplates(fn)
@@ -534,14 +533,13 @@
         """
         Private slot to handle the Export context menu action.
         """
-        fn, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+        fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
             self,
             self.trUtf8("Export Templates"),
             "",
             self.trUtf8("Templates Files (*.e4c);; All Files (*)"),
             "",
-            QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         
         if fn:
             ext = QFileInfo(fn).suffix()
--- a/Tools/TRPreviewer.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Tools/TRPreviewer.py	Sun Feb 06 15:41:44 2011 +0100
@@ -13,7 +13,7 @@
 from PyQt4.QtGui import *
 from PyQt4 import uic
 
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .TRSingleApplication import TRSingleApplicationServer
 
@@ -338,12 +338,11 @@
         """
         Private slot to handle the Open Dialog action.
         """
-        fileNameList = QFileDialog.getOpenFileNames(
+        fileNameList = E5FileDialog.getOpenFileNames(
             None,
             self.trUtf8("Select UI files"),
             "",
-            self.trUtf8("Qt User-Interface Files (*.ui)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Qt User-Interface Files (*.ui)"))
         
         for fileName in fileNameList:
             self.preview.loadWidget(fileName)
@@ -354,12 +353,11 @@
         """
         Private slot to handle the Open Translation action.
         """
-        fileNameList = QFileDialog.getOpenFileNames(
+        fileNameList = E5FileDialog.getOpenFileNames(
             None,
             self.trUtf8("Select translation files"),
             "",
-            self.trUtf8("Qt Translation Files (*.qm)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Qt Translation Files (*.qm)"))
         
         first = True
         for fileName in fileNameList:
--- a/Tools/UIPreviewer.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Tools/UIPreviewer.py	Sun Feb 06 15:41:44 2011 +0100
@@ -11,7 +11,7 @@
 from PyQt4.QtGui import *
 from PyQt4 import uic
 
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 import Preferences
 import UI.PixmapCache
@@ -289,12 +289,11 @@
         """
         Private slot to load a new file.
         """
-        fn = QFileDialog.getOpenFileName(
+        fn = E5FileDialog.getOpenFileName(
             self, 
             self.trUtf8("Select UI file"),
             self.currentFile,
-            self.trUtf8("Qt User-Interface Files (*.ui)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Qt User-Interface Files (*.ui)"))
         if fn:
             self.__loadFile(fn)
         
@@ -426,12 +425,11 @@
             filters = "{0}*.{1} ".format(filters, bytes(format).decode().lower())
         filter = self.trUtf8("Images ({0})").format(filters[:-1])
         
-        fname = QFileDialog.getSaveFileName(
+        fname = E5FileDialog.getSaveFileName(
             self,
             self.trUtf8("Save Image"),
             "",
-            filter,
-            QFileDialog.DontUseNativeDialog)
+            filter)
         if not fname:
             return
             
--- a/UI/Browser.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/UI/Browser.py	Sun Feb 06 15:41:44 2011 +0100
@@ -14,6 +14,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Application import e5App
+from E5Gui import E5FileDialog
 
 from .BrowserModel import BrowserModel, \
     BrowserDirectoryItem, BrowserFileItem, BrowserClassItem, BrowserMethodItem, \
@@ -412,12 +413,11 @@
         """
         Private slot to handle the New toplevel directory popup menu entry.
         """
-        dname = QFileDialog.getExistingDirectory(
+        dname = E5FileDialog.getExistingDirectory(
             None,
             QApplication.translate('Browser', "New toplevel directory"),
             "",
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
         if dname:
             dname = os.path.abspath(Utilities.toNativeSeparators(dname))
             self.__model.addTopLevelDir(dname)
--- a/UI/CompareDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/UI/CompareDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -14,7 +14,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5FileCompleter
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 import UI.PixmapCache
 
@@ -381,12 +381,11 @@
         @param lineEdit field for the display of the selected filename
                 (QLineEdit)
         """
-        filename = QFileDialog.getOpenFileName(
+        filename = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select file to compare"),
             lineEdit.text(),
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
             
         if filename:
             lineEdit.setText(Utilities.toNativeSeparators(filename))
--- a/UI/DiffDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/UI/DiffDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -14,7 +14,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5FileCompleter
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .Ui_DiffDialog import Ui_DiffDialog
 import Utilities
@@ -269,14 +269,13 @@
         else:
             fname = dname
             
-        fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
             self,
             self.trUtf8("Save Diff"),
             fname,
             self.trUtf8("Patch Files (*.diff)"),
             None, 
-            QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         
         if not fname:
             return
@@ -458,12 +457,11 @@
         @param lineEdit field for the display of the selected filename
                 (QLineEdit)
         """
-        filename = QFileDialog.getOpenFileName(
+        filename = E5FileDialog.getOpenFileName(
             self,
             self.trUtf8("Select file to compare"),
             lineEdit.text(),
-            "", 
-            QFileDialog.DontUseNativeDialog)
+            "")
             
         if filename:
             lineEdit.setText(Utilities.toNativeSeparators(filename))
--- a/UI/EmailDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/UI/EmailDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -15,7 +15,7 @@
 from PyQt4.QtCore import *
 from PyQt4.QtGui import *
 
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .Ui_EmailDialog import Ui_EmailDialog
 
@@ -315,10 +315,9 @@
         """
         Private slot to handle the Add... button.
         """
-        fname = QFileDialog.getOpenFileName(
+        fname = E5FileDialog.getOpenFileName(
             self,
-            self.trUtf8("Attach file"),
-            options = QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Attach file"))
         if fname:
             self.attachFile(fname, False)
         
--- a/UI/FindFileDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/UI/FindFileDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -14,7 +14,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 
 from .Ui_FindFileDialog import Ui_FindFileDialog
 
@@ -530,12 +530,11 @@
         """
         Private slot to display a directory selection dialog.
         """
-        directory = QFileDialog.getExistingDirectory(
+        directory = E5FileDialog.getExistingDirectory(
             self,
             self.trUtf8("Select directory"),
             self.dirCombo.currentText(),
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
             
         if directory:
             self.dirCombo.setEditText(Utilities.toNativeSeparators(directory))
--- a/UI/FindFileNameDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/UI/FindFileNameDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -14,6 +14,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5DirCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_FindFileNameDialog import Ui_FindFileNameDialog
 from Utilities import direntries
@@ -180,12 +181,11 @@
         Private slot to handle the clicked signal of the search directory selection 
         button.
         """
-        searchDir = QFileDialog.getExistingDirectory(
+        searchDir = E5FileDialog.getExistingDirectory(
             None,
             self.trUtf8("Select search directory"),
             self.searchDirEdit.text(),
-            QFileDialog.Options(QFileDialog.ShowDirsOnly |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
         
         if searchDir:
             self.searchDirEdit.setText(Utilities.toNativeSeparators(searchDir))
--- a/UI/UserInterface.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/UI/UserInterface.py	Sun Feb 06 15:41:44 2011 +0100
@@ -81,7 +81,7 @@
 from E5Gui.E5SqueezeLabels import E5SqueezeLabelPath
 from E5Gui.E5ToolBox import E5VerticalToolBox, E5HorizontalToolBox
 from E5Gui.E5SideBar import E5SideBar
-from E5Gui import E5MessageBox
+from E5Gui import E5MessageBox, E5FileDialog
 from E5Gui.E5Application import e5App
 
 from VCS.StatusMonitorLed import StatusMonitorLed
@@ -4063,7 +4063,7 @@
                         .format(fn))
                 return
         
-        if sys.platform == "darwin":
+        if Utilities.isMacPlatform():
             designer, args = Utilities.prepareQtMacBundle("designer", version, args)
         else:
             if version == 4:
@@ -4120,7 +4120,7 @@
                         .format(fn))
                 return
         
-        if sys.platform == "darwin":
+        if Utilities.isMacPlatform():
             linguist, args = Utilities.prepareQtMacBundle("linguist", version, args)
         else:
             if version == 4:
@@ -4164,7 +4164,7 @@
                 args.append('-showUrl')
             args.append(home)
         
-        if sys.platform == "darwin":
+        if Utilities.isMacPlatform():
             assistant, args = Utilities.prepareQtMacBundle("assistant", version, args)
         else:
             if version == 4:
@@ -4988,14 +4988,13 @@
         """
         Private slot to export the keyboard shortcuts.
         """
-        fn, selectedFilter = QFileDialog.getSaveFileNameAndFilter(
+        fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
             None,
             self.trUtf8("Export Keyboard Shortcuts"),
             "",
             self.trUtf8("Keyboard shortcut file (*.e4k)"),
             "",
-            QFileDialog.Options(QFileDialog.DontConfirmOverwrite |
-                                QFileDialog.DontUseNativeDialog))
+            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
         
         if not fn:
             return
@@ -5012,12 +5011,11 @@
         """
         Private slot to import the keyboard shortcuts.
         """
-        fn = QFileDialog.getOpenFileName(
+        fn = E5FileDialog.getOpenFileName(
             None,
             self.trUtf8("Import Keyboard Shortcuts"),
             "",
-            self.trUtf8("Keyboard shortcut file (*.e4k)"), 
-            QFileDialog.DontUseNativeDialog)
+            self.trUtf8("Keyboard shortcut file (*.e4k)"))
         
         if fn:
             Shortcuts.importShortcuts(fn)
--- a/Utilities/__init__.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/Utilities/__init__.py	Sun Feb 06 15:41:44 2011 +0100
@@ -43,7 +43,8 @@
     qVersion, PYQT_VERSION_STR, QCoreApplication, QCryptographicHash
 from PyQt4.Qsci import QSCINTILLA_VERSION_STR, QsciScintilla
 
-from Globals import isWindowsPlatform   # import this method into the Utilities namespace
+from Globals import isWindowsPlatform, isLinuxPlatform, isMacPlatform  # __IGNORE_WARNING__
+# import these methods into the Utilities namespace
 
 from E5Gui.E5Application import e5App
 
@@ -1355,7 +1356,7 @@
     @return string with plugins version infos (string)
     """
     infoStr = ""
-    if sys.platform.startswith("linux"):
+    if isLinuxPlatform():
         releaseList = glob.glob("/etc/*-release")
         if releaseList:
             infoStr = "Distribution Info:{0}".format(linesep)
--- a/ViewManager/BookmarkedFilesDialog.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/ViewManager/BookmarkedFilesDialog.py	Sun Feb 06 15:41:44 2011 +0100
@@ -11,6 +11,7 @@
 from PyQt4.QtGui import *
 
 from E5Gui.E5Completers import E5FileCompleter
+from E5Gui import E5FileDialog
 
 from .Ui_BookmarkedFilesDialog import Ui_BookmarkedFilesDialog
 
@@ -163,8 +164,7 @@
         """
         Private slot to handle the file selection via a file selection dialog.
         """
-        bookmark = QFileDialog.getOpenFileName(
-            options = QFileDialog.DontUseNativeDialog)
+        bookmark = E5FileDialog.getOpenFileName()
         if bookmark:
             bookmark = Utilities.toNativeSeparators(bookmark)
             self.fileEdit.setText(bookmark)
--- a/ViewManager/ViewManager.py	Sat Feb 05 19:55:33 2011 +0100
+++ b/ViewManager/ViewManager.py	Sun Feb 06 15:41:44 2011 +0100
@@ -2947,9 +2947,7 @@
                 QApplication.translate('ViewManager', "Open files"),
                 self._getOpenStartDir(),
                 QScintilla.Lexers.getOpenFileFiltersList(True, True), 
-                filter,
-                QFileDialog.DontUseNativeDialog
-                )[0]
+                filter)[0]
         else:
             progs = [prog]
         

eric ide

mercurial