1
2
3
4
5
6
7
8
9
10
11 import os, sys
12
13 from twisted.internet import defer
14 from PyQt4.Qt import *
18
20 '''
21 File Dialog nesnesi oluşturur.
22 '''
23 QFileDialog.__init__(self, *args)
24
25 self.deferer = defer.Deferred()
26
28 '''
29 Folders to be listed in sidebar.
30 '''
31 sidebarUrls = self.sidebarUrls()
32
33
34 if sys.platform.startswith('win'):
35
36 try:
37 import winshell
38
39 desktopUrl = 'file:///%s' % winshell.desktop()
40 documentsUrl = 'file:///%s' % winshell.my_documents()
41
42 sidebarUrls.append(QUrl(desktopUrl))
43 sidebarUrls.append(QUrl(documentsUrl))
44 except:
45 pass
46
47 else:
48 desktopUrl = 'file://%s' % os.path.join(os.getenv('HOME'), 'Desktop')
49 sidebarUrls.append(QUrl(desktopUrl))
50
51 return sidebarUrls
52
54 '''
55 Returns the desktop folder of the current user.
56 '''
57 desktopUrl = ''
58
59
60 if sys.platform.startswith('win'):
61
62 try:
63 import winshell
64 desktopUrl = winshell.desktop()
65 except:
66 pass
67
68 else:
69 desktopUrl = os.path.join(os.getenv('HOME'), 'Desktop')
70
71 return desktopUrl
72
74 '''
75 Fires the deferred with the selected files. If no
76 file is selected, fires the deferred with an empty
77 string.
78 '''
79 if selectedFiles is not None and len(selectedFiles) == 1:
80 selectedFile = unicode(selectedFiles[0])
81 self.deferer.callback(selectedFile)
82
83 else:
84 self.deferer.callback('')
85
86 @staticmethod
87 - def getSaveFileName(parent, caption, directory, dirFilter, onlyDirs=False):
88 '''
89 Opens the file save dialog.
90 '''
91 fileDialog = MCFileDialog(parent, caption, directory, dirFilter)
92 fileDialog.setModal(True)
93 fileDialog.setAcceptMode(QFileDialog.AcceptSave)
94 fileDialog.setSidebarUrls(fileDialog.userFolders())
95
96 if onlyDirs:
97 fileDialog.setFileMode(QFileDialog.Directory)
98
99 if not directory:
100 fileDialog.setDirectory(fileDialog.desktopFolder())
101
102 fileDialog.show()
103
104 fileDialog.connect(fileDialog, SIGNAL('filesSelected(const QStringList &)'), fileDialog.fileSelected)
105 fileDialog.connect(fileDialog, SIGNAL('rejected()'), fileDialog.fileSelected)
106
107 return fileDialog.deferer
108
109 @staticmethod
111 '''
112 Opens the file open dialog.
113 '''
114 fileDialog = MCFileDialog(parent, caption, directory, dirFilter)
115 fileDialog.setModal(True)
116 fileDialog.setFileMode(QFileDialog.ExistingFile)
117 fileDialog.setAcceptMode(QFileDialog.AcceptOpen)
118 fileDialog.setSidebarUrls(fileDialog.userFolders())
119
120 if not directory:
121 fileDialog.setDirectory(fileDialog.desktopFolder())
122
123 fileDialog.show()
124
125 fileDialog.connect(fileDialog, SIGNAL('filesSelected(const QStringList &)'), fileDialog.fileSelected)
126 fileDialog.connect(fileDialog, SIGNAL('rejected()'), fileDialog.fileSelected)
127
128 return fileDialog.deferer
129