1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 """
27 Library used by selector and the installer to select the working directories.
28 """
29
30 import distutils.sysconfig, os, sys
31
32 try:
33 import pygtk ; pygtk.require('2.0')
34 import gtk, gtk.glade
35 except:
36 raise "Selector needs pygtk and glade-2 available from http://www.pygtk.org/"
37
38 from config import Config
39 config = Config()
40
41 unifiedglade = os.path.join(distutils.sysconfig.get_python_lib(), "imagizer", "selector.glade")
42
44 """print a warning before starting the program and allows to chang the working directory"""
45 - def __init__(self, directory, window="dialog-warning"):
46 self.directory = directory
47 self.window = window
48 self.quit = True
49 self.xml = gtk.glade.XML(unifiedglade, root=self.window)
50 self.xml.signal_connect('on_dialog_warning_destroy', self.destroy)
51 self.xml.signal_connect('on_Select_clicked', self.filer)
52 self.xml.signal_connect('on_cancel_clicked', self.destroy)
53 self.xml.signal_connect('on_ok_clicked', self.continu)
54 self.xml.signal_connect('on_dirname_editing_done', self.continu)
55 while gtk.events_pending():gtk.main_iteration()
56 self.xml.get_widget("dirname").set_text(directory)
57 gtk.main()
58
60 """just destroy the window and goes on ...."""
61 self.directory = self.xml.get_widget("dirname").get_text().strip()
62 gtk.main_quit()
63 self.quit = False
64 self.xml.get_widget(self.window).destroy()
65 while gtk.events_pending():
66 gtk.main_iteration()
67
69 """destroy clicked by user -> quit the program"""
70 if self.quit:
71 sys.exit(0)
72
74 """Launch the filer GUI to choose the root directory"""
75 self.xml2 = gtk.glade.XML(unifiedglade, root="filer")
76 self.xml2.get_widget("filer").set_current_folder(self.directory)
77 self.xml2.signal_connect('on_Open_clicked', self.filerselect)
78 self.xml2.signal_connect('on_Cancel_clicked', self.filerdestroy)
79
81 """Close the filer GUI and update the data"""
82 self.directory = self.xml2.get_widget("filer").get_current_folder()
83 self.xml.get_widget("dirname").set_text(self.directory)
84 self.xml2.get_widget("filer").destroy()
85
87 """Close the filer GUI"""
88 self.xml2.get_widget("filer").destroy()
89