source: trunk/PARPG/scripts/parpgfilebrowser.py @ 181

Revision 163, 1.7 KB checked in by bretzel_parpg, 10 years ago (diff)

Made PARPGFileBrowser a sub-class of FIFE's FileBrowser? instead of copying the whole file

Line 
1# coding: utf-8
2
3import fife, sys
4import pychan
5from pychan import widgets
6from filebrowser import FileBrowser
7
8def u2s(string):
9        return string.encode(sys.getfilesystemencoding())
10
11class PARPGFileBrowser(FileBrowser):
12        """
13        A sub-class of filebrowser.FileBrowser
14        """
15        def __init__(self, engine, fileSelected, savefile=False, selectdir=False, extensions=('xml',), guixmlpath="gui/filebrowser.xml"):
16                self.engine = engine
17                self.fileSelected = fileSelected
18
19                self._widget = None
20                self.savefile = savefile
21                self.selectdir = selectdir
22               
23                self.guixmlpath = guixmlpath
24
25                self.extensions = extensions
26                self.path = './saves'
27                self.dir_list = []
28                self.file_list = []
29
30        def _selectFile(self):
31                self._widget.hide()
32                selection = self._widget.collectData('fileList')
33                if self.savefile:
34                        data = self._widget.collectData('saveField')
35
36                        try:
37                                data_split = data.split('.')[1]
38                        except:
39                                self._warningMessage()
40                                return
41                       
42                if self.savefile:
43                        if (data_split == 'dat'):
44                                self.fileSelected(self.path, u2s(self._widget.collectData('saveField')))
45                                return
46                        else:
47                                self._warningMessage()
48                                return
49                else:
50                        if selection >= 0 and selection < len(self.file_list):
51                                self.fileSelected(self.path, u2s(self.file_list[selection]))
52                                return
53                       
54                        if self.selectdir:
55                                self.fileSelected(self.path)
56                                return
57
58                                print 'FileBrowser: error, no selection.'
59                               
60        def _warningMessage(self):
61                window = widgets.Window(title="Warning")
62                text = "Please save the file as a .dat"
63                label = widgets.Label(text=text)
64                ok_button = widgets.Button(name="ok_button", text="Ok")
65                window.addChildren([label, ok_button])
66                window.mapEvents({'ok_button':window.hide})
67                window.show()
Note: See TracBrowser for help on using the repository browser.