E5Gui/E5FileDialog.py

changeset 520
b0f523c3b037
child 521
29a1a1771e5a
diff -r 3636a66eb5a2 -r b0f523c3b037 E5Gui/E5FileDialog.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/E5Gui/E5FileDialog.py	Sun Aug 29 16:15:41 2010 +0200
@@ -0,0 +1,87 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing alternative functions for the QFileDialog static methods
+to cope with dustributor's usage of KDE wrapper dialogs for Qt file dialogs.
+"""
+
+from PyQt4.QtGui import QFileDialog
+
+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.
+    
+    @param filter Qt file filter (string)
+    @param initialFilter initial filter (string)
+    @return the rearranged Qt file filter (string)
+    """
+    if initialFilter:
+        fileFilters = filter.split(';;')
+        if len(fileFilters < 10) and initialFilter in fileFilters:
+            fileFilters.remove(initialFilter)
+        fileFilters.insert(0, initialFilter)
+        return ";;".join(fileFilters)
+    else:
+        return filter
+
+def getOpenFileNameAndFilter(parent = None, caption = "", directory = "",
+                             filter = "", initialFilter = "", 
+                             options = QFileDialog.Options()):
+    """
+    Module function to get the name of a file for opening it and the selected
+    file name filter.
+    
+    @param parent parent widget of the dialog (QWidget)
+    @param caption window title of the dialog (string)
+    @param directory working directory of the dialog (string)
+    @param filter filter string for the dialog (string)
+    @param initialFilter initial filter for the dialog (string)
+    @param options various options for the dialog (QFileDialog.Options)
+    @return name of file to be opened and selected filter (string, string)
+    """
+    newfilter = __reorderFilter(filter, initialFilter)
+    return QFileDialog.getOpenFileNameAndFilter(parent, caption, directory, 
+                                                newfilter, initialFilter, 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.
+    
+    @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 initialFilter initial filter for the dialog (string)
+    @param options various options for the dialog (QFileDialog.Options)
+    @return list of file names to be opened and selected filter 
+        (list of string, string)
+    """
+    newfilter = __reorderFilter(filter, initialFilter)
+    return QFileDialog.getOpenFileNamesAndFilter(parent, caption, directory, 
+                                                newfilter, initialFilter, options)
+
+def getSaveFileNameAndFilter(parent = None, caption = "", directory = "",
+                             filter = "", initialFilter = "", 
+                             options = QFileDialog.Options()):
+    """
+    Module function to get the name of a file for saving it and the selected
+    file name filter.
+    
+    @param parent parent widget of the dialog (QWidget)
+    @param caption window title of the dialog (string)
+    @param directory working directory of the dialog (string)
+    @param filter filter string for the dialog (string)
+    @param initialFilter initial filter for the dialog (string)
+    @param options various options for the dialog (QFileDialog.Options)
+    @return name of file to be saved and selected filter (string, string)
+    """
+    newfilter = __reorderFilter(filter, initialFilter)
+    return QFileDialog.getSaveFileNameAndFilter(parent, caption, directory, 
+                                                newfilter, initialFilter, options)

eric ide

mercurial