/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz

« back to all changes in this revision

Viewing changes to config.py

  • Committer: Dan Loda
  • Date: 2005-11-06 07:01:31 UTC
  • mto: (0.1.25 gannotate)
  • mto: This revision was merged to the branch mainline in revision 49.
  • Revision ID: danloda@gmail.com-20051106070131-c81d61d9a762d4c8
Remember custom spans across sessions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
    "maximized = boolean(default=False)",
31
31
    "x = integer(default=0)",
32
32
    "y = integer(default=0)",
33
 
    "pane_position = integer(default=325)"
 
33
    "pane_position = integer(default=325)",
 
34
    "[spans]",
 
35
    "max_custom_spans = integer(default=4)",
 
36
    "custom_spans = float_list()"
34
37
)
35
38
 
36
39
gannotate_config_filename = os.path.join(config_dir(), "gannotate.conf")
49
52
                                     configspec=gannotate_configspec)
50
53
        self.window = window
51
54
        self.pane = window.pane
 
55
        self.span_selector = window.span_selector
52
56
        
53
57
        self.initial_comment = ["gannotate plugin configuration"]
54
58
        self.validate(Validator())
58
62
 
59
63
    def apply(self):
60
64
        """Apply properties and such from gannotate.conf, or
61
 
        gannotate_config_spec defaults."""
 
65
        gannotate_configspec defaults."""
62
66
        self.pane.set_position(self["window"]["pane_position"])
63
67
        self.window.set_default_size(self["window"]["width"],
64
68
                                     self["window"]["height"])
67
71
        if self["window"]["maximized"]:
68
72
            self.window.maximize()
69
73
 
 
74
        self.span_selector.max_custom_spans =\
 
75
                self["spans"]["max_custom_spans"]
 
76
 
 
77
        # XXX Don't know how to set an empty list as default in
 
78
        # gannotate_configspec.
 
79
        try:
 
80
            for span in self["spans"]["custom_spans"]:
 
81
                self.span_selector.add_custom_span(span)
 
82
        except KeyError:
 
83
            pass
 
84
 
70
85
    def _connect_signals(self):
71
86
        self.window.connect("destroy", self._write)
72
87
        self.window.connect("configure-event", self._save_window_props)
73
88
        self.window.connect("window-state-event", self._save_window_props)
74
89
        self.pane.connect("notify", self._save_pane_props)
 
90
        self.span_selector.connect("custom-span-added",
 
91
                                   self._save_custom_spans)
75
92
 
76
93
    def _save_window_props(self, w, e, *args):
77
94
        if e.window.get_state() & gtk.gdk.WINDOW_STATE_MAXIMIZED:
91
108
 
92
109
        return False
93
110
 
 
111
    def _save_custom_spans(self, w, *args):
 
112
        self["spans"]["custom_spans"] = w.custom_spans
 
113
 
 
114
        return False
 
115
 
94
116
    def _write(self, *args):
95
117
        self.write()
96
118