~jflaker/pyroom/BugFixB1124380

« back to all changes in this revision

Viewing changes to PyRoom/preferences.py

  • Committer: Matthew Pirocchi
  • Date: 2009-09-21 20:29:17 UTC
  • mto: This revision was merged to the branch mainline in revision 198.
  • Revision ID: matthew.pirocchi@gmail.com-20090921202917-ayzpg4oo0vu2lkfg
Refactored preferences.py to use GtkBuilder.

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
"""
28
28
 
29
29
import gtk
30
 
import gtk.glade
31
30
import os
32
31
 
33
32
from gui import Theme
38
37
class Preferences(object):
39
38
    """our main preferences object, to be passed around where needed"""
40
39
    def __init__(self):
41
 
        self.wTree = gtk.glade.XML(os.path.join(
42
 
            state['absolute_path'], "interface.glade"),
43
 
            "dialog-preferences")
 
40
        gladefile = os.path.join(state['absolute_path'], "preferences.glade")
 
41
        builder = gtk.Builder()
 
42
        builder.add_from_file(gladefile)
44
43
 
45
44
        # Defining widgets needed
46
 
        self.window = self.wTree.get_widget("dialog-preferences")
47
 
        self.colorpreference = self.wTree.get_widget("colorbutton")
48
 
        self.textboxbgpreference = self.wTree.get_widget("textboxbgbutton")
49
 
        self.bgpreference = self.wTree.get_widget("bgbutton")
50
 
        self.borderpreference = self.wTree.get_widget("borderbutton")
51
 
        self.paddingpreference = self.wTree.get_widget("paddingtext")
52
 
        self.heightpreference = self.wTree.get_widget("heighttext")
 
45
        self.window = builder.get_object("dialog-preferences")
 
46
        self.colorpreference = builder.get_object("colorbutton")
 
47
        self.textboxbgpreference = builder.get_object("textboxbgbutton")
 
48
        self.bgpreference = builder.get_object("bgbutton")
 
49
        self.borderpreference = builder.get_object("borderbutton")
 
50
        self.paddingpreference = builder.get_object("paddingtext")
 
51
        self.heightpreference = builder.get_object("heighttext")
53
52
        self.heightpreference.set_range(5, 95)
54
 
        self.widthpreference = self.wTree.get_widget("widthtext")
 
53
        self.widthpreference = builder.get_object("widthtext")
55
54
        self.widthpreference.set_range(5, 95)
56
 
        self.presetscombobox = self.wTree.get_widget("presetscombobox")
57
 
        self.showborderbutton = self.wTree.get_widget("showborder")
58
 
        self.autosave = self.wTree.get_widget("autosavetext")
59
 
        self.autosave_spinbutton = self.wTree.get_widget("autosavetime")
60
 
        self.linespacing_spinbutton = self.wTree.get_widget("linespacing")
61
 
        self.indent_check = self.wTree.get_widget("indent_check")
 
55
        self.presetscombobox = builder.get_object("presetscombobox")
 
56
        self.showborderbutton = builder.get_object("showborder")
 
57
        self.autosave = builder.get_object("autosavetext")
 
58
        self.autosave_spinbutton = builder.get_object("autosavetime")
 
59
        self.linespacing_spinbutton = builder.get_object("linespacing")
 
60
        self.indent_check = builder.get_object("indent_check")
62
61
        if config.get('visual', 'indent') == '1':
63
62
            self.indent_check.set_active(True)
64
 
        self.save_custom_button = self.wTree.get_widget("save_custom_theme")
65
 
        self.custom_font_preference = self.wTree.get_widget("fontbutton1")
 
63
        self.save_custom_button = builder.get_object("save_custom_theme")
 
64
        self.custom_font_preference = builder.get_object("fontbutton1")
66
65
        if not config.get('visual', 'use_font_type') == 'custom':
67
66
            self.custom_font_preference.set_sensitive(False)
68
67
        self.font_radios = {
69
 
            'document':self.wTree.get_widget("radio_document_font"),
70
 
            'monospace':self.wTree.get_widget("radio_monospace_font"),
71
 
            'custom':self.wTree.get_widget("radio_custom_font")
 
68
            'document':builder.get_object("radio_document_font"),
 
69
            'monospace':builder.get_object("radio_monospace_font"),
 
70
            'custom':builder.get_object("radio_custom_font")
72
71
        }
73
72
        self.orientation_radios = {
74
 
                'top':self.wTree.get_widget('orientation_top'),
75
 
                'center':self.wTree.get_widget('orientation_center'),
 
73
                'top':builder.get_object('orientation_top'),
 
74
                'center':builder.get_object('orientation_center'),
76
75
                }
77
76
        for widget in self.font_radios.values():
78
77
            if not widget.get_name() == 'radio_custom_font':
131
130
                "on_button-close_clicked": self.kill_preferences,
132
131
                "on_close": self.kill_preferences
133
132
                }
134
 
        self.wTree.signal_autoconnect(dic)
 
133
        builder.connect_signals(dic)
 
134
 
135
135
        self.showborderbutton.connect('toggled', self.toggleborder)
136
136
        self.autosave.connect('toggled', self.toggleautosave)
137
137
        self.autosave_spinbutton.connect('value-changed', self.toggleautosave)
309
309
 
310
310
    def show(self):
311
311
        """display the preferences dialog"""
312
 
        self.dlg = self.wTree.get_widget("dialog-preferences")
 
312
        self.dlg = self.window
313
313
        self.dlg.show()
314
314
 
315
315
    def toggle_indent(self, widget):