/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 viz/treeview.py

  • Committer: Daniel Schierbeck
  • Date: 2007-11-12 17:59:50 UTC
  • mto: This revision was merged to the branch mainline in revision 396.
  • Revision ID: daniel.schierbeck@gmail.com-20071112175950-c4hf2n7xg2vznaqw
Cleaned up code in the TreeView, removing instance variables.

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
                     'The currently selected revision',
33
33
                     gobject.PARAM_READWRITE),
34
34
 
 
35
        'children': (gobject.TYPE_PYOBJECT,
 
36
                     'Child revisions',
 
37
                     'Children of the currently selected revision',
 
38
                     gobject.PARAM_READABLE),
 
39
 
 
40
        'parents': (gobject.TYPE_PYOBJECT,
 
41
                    'Parent revisions',
 
42
                    'Parents to the currently selected revision',
 
43
                    gobject.PARAM_READABLE),
 
44
 
35
45
        'revno-column-visible': (gobject.TYPE_BOOLEAN,
36
46
                                 'Revision number',
37
47
                                 'Show revision number column',
72
82
 
73
83
        self.construct_treeview()
74
84
 
 
85
        self.iter   = None
75
86
        self.branch = branch
76
87
 
77
88
        gobject.idle_add(self.populate, start, maxnum, 
78
89
                         broken_line_length)
79
90
 
80
 
        self.revision = None
81
 
        self.children = None
82
 
        self.parents  = None
83
 
 
84
91
        self.connect("destroy", lambda x: self.branch.unlock())
85
92
 
86
93
    def do_get_property(self, property):
91
98
        elif property.name == 'branch':
92
99
            return self.branch
93
100
        elif property.name == 'revision':
94
 
            return self.revision
 
101
            return self.model.get_value(self.iter, treemodel.REVISION)
 
102
        elif property.name == 'children':
 
103
            return self.model.get_value(self.iter, treemodel.CHILDREN)
 
104
        elif property.name == 'parents':
 
105
            return self.model.get_value(self.iter, treemodel.PARENTS)
95
106
        else:
96
107
            raise AttributeError, 'unknown property %s' % property.name
97
108
 
109
120
 
110
121
    def get_revision(self):
111
122
        """Return revision id of currently selected revision, or None."""
112
 
        return self.revision
 
123
        return self.get_property('revision')
 
124
 
 
125
    def set_revision(self, revision):
 
126
        self.set_property('revision', revision)
113
127
 
114
128
    def set_revision_id(self, revid):
115
129
        """Change the currently selected revision.
124
138
 
125
139
        :return: list of revision ids.
126
140
        """
127
 
        return self.children
 
141
        return self.get_property('children')
128
142
 
129
143
    def get_parents(self):
130
144
        """Return the parents of the currently selected revision.
131
145
 
132
146
        :return: list of revision ids.
133
147
        """
134
 
        return self.parents
 
148
        return self.get_property('parents')
135
149
        
136
150
    def back(self):
137
151
        """Signal handler for the Back button."""
138
 
        (path, col) = self.treeview.get_cursor()
139
 
        revision = self.model[path][treemodel.REVISION]
140
 
        parents = self.model[path][treemodel.PARENTS]
 
152
        parents = self.get_parents()
141
153
        if not len(parents):
142
154
            return
143
155
 
144
156
        for parent_id in parents:
145
157
            parent_index = self.index[parent_id]
146
158
            parent = self.model[parent_index][treemodel.REVISION]
147
 
            if same_branch(revision, parent):
 
159
            if same_branch(self.get_revision(), parent):
148
160
                self.treeview.set_cursor(parent_index)
149
161
                break
150
162
        else:
153
165
 
154
166
    def forward(self):
155
167
        """Signal handler for the Forward button."""
156
 
        (path, col) = self.treeview.get_cursor()
157
 
        revision = self.model[path][treemodel.REVISION]
158
 
        children = self.model[path][treemodel.CHILDREN]
 
168
        children = self.get_children()
159
169
        if not len(children):
160
170
            return
161
171
 
162
172
        for child_id in children:
163
173
            child_index = self.index[child_id]
164
174
            child = self.model[child_index][treemodel.REVISION]
165
 
            if same_branch(child, revision):
 
175
            if same_branch(child, self.get_revision()):
166
176
                self.treeview.set_cursor(child_index)
167
177
                break
168
178
        else:
201
211
        from bzrlib.plugins.gtk.diff import DiffWindow
202
212
        window = DiffWindow(parent=self)
203
213
 
 
214
        parents = self.get_parents()
 
215
 
204
216
        if revid is None:
205
 
            revid = self.revision.revision_id
 
217
            revid = self.get_revision().revision_id
206
218
 
207
 
            if parentid is None and len(self.parents) > 0:
208
 
                parentid = self.parents[0]
 
219
            if parentid is None and len(parents) > 0:
 
220
                parentid = parents[0]
209
221
 
210
222
        if parentid is None:
211
223
            parentid = NULL_REVISION
301
313
        """callback for when the treeview changes."""
302
314
        (path, focus) = treeview.get_cursor()
303
315
        if path is not None:
304
 
            iter = self.model.get_iter(path)
305
 
            self.revision = self.model.get_value(iter, treemodel.REVISION)
306
 
            self.parents = self.model.get_value(iter, treemodel.PARENTS)
307
 
            self.children = self.model.get_value(iter, treemodel.CHILDREN)
308
 
 
 
316
            self.iter = self.model.get_iter(path)
309
317
            self.emit('revision-selected')
310
318
 
311
319
    def _on_revision_selected(self, widget, event):