E5Gui/E5FileDialog.py

changeset 520
b0f523c3b037
child 521
29a1a1771e5a
equal deleted inserted replaced
519:3636a66eb5a2 520:b0f523c3b037
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing alternative functions for the QFileDialog static methods
8 to cope with dustributor's usage of KDE wrapper dialogs for Qt file dialogs.
9 """
10
11 from PyQt4.QtGui import QFileDialog
12
13 def __reorderFilter(filter, initialFilter = ""):
14 """
15 Private function to reorder the file filter to cope with a KDE issue introduced
16 by distributor's usage of KDE file dialogs.
17
18 @param filter Qt file filter (string)
19 @param initialFilter initial filter (string)
20 @return the rearranged Qt file filter (string)
21 """
22 if initialFilter:
23 fileFilters = filter.split(';;')
24 if len(fileFilters < 10) and initialFilter in fileFilters:
25 fileFilters.remove(initialFilter)
26 fileFilters.insert(0, initialFilter)
27 return ";;".join(fileFilters)
28 else:
29 return filter
30
31 def getOpenFileNameAndFilter(parent = None, caption = "", directory = "",
32 filter = "", initialFilter = "",
33 options = QFileDialog.Options()):
34 """
35 Module function to get the name of a file for opening it and the selected
36 file name filter.
37
38 @param parent parent widget of the dialog (QWidget)
39 @param caption window title of the dialog (string)
40 @param directory working directory of the dialog (string)
41 @param filter filter string for the dialog (string)
42 @param initialFilter initial filter for the dialog (string)
43 @param options various options for the dialog (QFileDialog.Options)
44 @return name of file to be opened and selected filter (string, string)
45 """
46 newfilter = __reorderFilter(filter, initialFilter)
47 return QFileDialog.getOpenFileNameAndFilter(parent, caption, directory,
48 newfilter, initialFilter, options)
49
50 def getOpenFileNamesAndFilter(parent = None, caption = "", directory = "",
51 filter = "", initialFilter = "",
52 options = QFileDialog.Options()):
53 """
54 Module function to get a list of names of files for opening and the selected
55 file name filter.
56
57 @param parent parent widget of the dialog (QWidget)
58 @param caption window title of the dialog (string)
59 @param directory working directory of the dialog (string)
60 @param filter filter string for the dialog (string)
61 @param initialFilter initial filter for the dialog (string)
62 @param options various options for the dialog (QFileDialog.Options)
63 @return list of file names to be opened and selected filter
64 (list of string, string)
65 """
66 newfilter = __reorderFilter(filter, initialFilter)
67 return QFileDialog.getOpenFileNamesAndFilter(parent, caption, directory,
68 newfilter, initialFilter, options)
69
70 def getSaveFileNameAndFilter(parent = None, caption = "", directory = "",
71 filter = "", initialFilter = "",
72 options = QFileDialog.Options()):
73 """
74 Module function to get the name of a file for saving it and the selected
75 file name filter.
76
77 @param parent parent widget of the dialog (QWidget)
78 @param caption window title of the dialog (string)
79 @param directory working directory of the dialog (string)
80 @param filter filter string for the dialog (string)
81 @param initialFilter initial filter for the dialog (string)
82 @param options various options for the dialog (QFileDialog.Options)
83 @return name of file to be saved and selected filter (string, string)
84 """
85 newfilter = __reorderFilter(filter, initialFilter)
86 return QFileDialog.getSaveFileNameAndFilter(parent, caption, directory,
87 newfilter, initialFilter, options)

eric ide

mercurial