/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 annotate/config.py

  • Committer: Vincent Ladeuil
  • Date: 2008-06-10 15:25:47 UTC
  • mto: This revision was merged to the branch mainline in revision 504.
  • Revision ID: v.ladeuil+lp@free.fr-20080610152547-dwmil1p8pd0mfpnl
Fix third failing test (thanks to jam).

* tests/test_commit.py:
(TestPendingRevisions.test_pending_revisions_multi_merge): Fix
provided by jam: bzr we now filter the pending merges so that only
the 'heads()' are included. We just ensure that the pending merges
contain the unique tips for the ancestries.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
import gtk.gdk
20
20
 
21
 
from bzrlib import config
22
 
try:
23
 
    import bzrlib.util.configobj.configobj as configobj
24
 
except ImportError:
25
 
    import configobj
26
 
 
27
 
 
28
 
def gannotate_config_filename():
29
 
    return os.path.join(config.config_dir(), "gannotate.conf")
 
21
from bzrlib.config import config_dir
 
22
import bzrlib.util.configobj.configobj as configobj
 
23
 
 
24
 
 
25
gannotate_configspec = (
 
26
    "[window]",
 
27
    "width = integer(default=750)",
 
28
    "height = integer(default=550)",
 
29
    "maximized = boolean(default=False)",
 
30
    "x = integer(default=0)",
 
31
    "y = integer(default=0)",
 
32
    "pane_position = integer(default=325)",
 
33
    "[spans]",
 
34
    "max_custom_spans = integer(default=4)",
 
35
    "custom_spans = float_list()"
 
36
)
 
37
 
 
38
gannotate_config_filename = os.path.join(config_dir(), "gannotate.conf")
30
39
 
31
40
 
32
41
class GAnnotateConfig(configobj.ConfigObj):
38
47
    """
39
48
 
40
49
    def __init__(self, window):
41
 
        configobj.ConfigObj.__init__(self, gannotate_config_filename())
 
50
        configobj.ConfigObj.__init__(self, gannotate_config_filename,
 
51
                                     configspec=gannotate_configspec)
42
52
        self.window = window
43
53
        self.pane = window.pane
44
 
 
45
 
        if 'window' not in self:
46
 
            # Set default values, configobj expects strings here
47
 
            self.initial_comment = ["gannotate plugin configuration"]
48
 
            self['window'] = {}
49
 
            self['window']['width'] = '750'
50
 
            self['window']['height'] = '550'
51
 
            self['window']['maximized'] = 'False'
52
 
            self['window']['x'] = '0'
53
 
            self['window']['y'] = '0'
54
 
            self['window']['pane_position'] = '325'
 
54
        
 
55
        self.initial_comment = ["gannotate plugin configuration"]
 
56
        self['window']['width'] = 750
 
57
        self['window']['height'] = 550
 
58
        self['window']['maximized'] = False
 
59
        self['window']['x'] = 0
 
60
        self['window']['y'] = 0
 
61
        self['window']['pane_position'] = 325
 
62
        self['spans']['max_custom_spans'] = 4
 
63
        self['spans']['custom_spans'] = []
55
64
 
56
65
        self.apply()
57
66
        self._connect_signals()
59
68
    def apply(self):
60
69
        """Apply properties and such from gannotate.conf, or
61
70
        gannotate_configspec defaults."""
62
 
        self.pane.set_position(self['window'].as_int('pane_position'))
63
 
        self.window.set_default_size(self['window'].as_int('width'),
64
 
                                     self['window'].as_int('height'))
65
 
        self.window.move(self['window'].as_int('x'), self['window'].as_int('y'))
 
71
        self.pane.set_position(self["window"]["pane_position"])
 
72
        self.window.set_default_size(self["window"]["width"],
 
73
                                     self["window"]["height"])
 
74
        self.window.move(self["window"]["x"], self["window"]["y"])
66
75
 
67
 
        if self['window'].as_bool('maximized'):
 
76
        if self["window"]["maximized"]:
68
77
            self.window.maximize()
69
78
 
 
79
        # XXX Don't know how to set an empty list as default in
 
80
        # gannotate_configspec.
70
81
    def _connect_signals(self):
71
82
        self.window.connect("destroy", self._write)
72
83
        self.window.connect("configure-event", self._save_window_props)
80
91
            self["window"]["width"], self["window"]["height"] = w.get_size()
81
92
            self["window"]["x"], self["window"]["y"] = w.get_position()
82
93
            maximized = False
 
94
 
83
95
        self["window"]["maximized"] = maximized
 
96
        
84
97
        return False
85
98
 
86
99
    def _save_pane_props(self, w, gparam):
89
102
 
90
103
        return False
91
104
 
 
105
    def _save_custom_spans(self, w, *args):
 
106
        self["spans"]["custom_spans"] = w.custom_spans
 
107
 
 
108
        return False
 
109
 
92
110
    def _write(self, *args):
93
111
        self.write()
94
112