/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 branchview/graphcell.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:
149
149
        box_size = self.box_size(widget)
150
150
 
151
151
        ctx.set_line_width(box_size / 8)
152
 
        ctx.set_line_cap(cairo.LINE_CAP_ROUND)
153
152
 
154
153
        # Draw lines into the cell
155
154
        for start, end, colour in self.in_lines:
156
155
            self.render_line (ctx, cell_area, box_size,
157
156
                         bg_area.y, bg_area.height,
158
 
                         start, end, colour)
 
157
                         start, end, colour, flags)
159
158
 
160
159
        # Draw lines out of the cell
161
160
        for start, end, colour in self.out_lines:
162
161
            self.render_line (ctx, cell_area, box_size,
163
162
                         bg_area.y + bg_area.height, bg_area.height,
164
 
                         start, end, colour)
 
163
                         start, end, colour, flags)
165
164
 
166
165
        # Draw the revision node in the right column
167
166
        (column, colour) = self.node
169
168
                cell_area.y + cell_area.height / 2,
170
169
                box_size / 4, 0, 2 * math.pi)
171
170
 
 
171
        if flags & gtk.CELL_RENDERER_SELECTED:
 
172
            ctx.set_source_rgb(1.0, 1.0, 1.0)
 
173
            ctx.set_line_width(box_size / 4)
 
174
            ctx.stroke_preserve()
 
175
            ctx.set_line_width(box_size / 8)
 
176
 
172
177
        self.set_colour(ctx, colour, 0.0, 0.5)
173
178
        ctx.stroke_preserve()
174
179
 
177
182
 
178
183
        self.render_tags(ctx, widget.create_pango_context(), cell_area, box_size)
179
184
    
180
 
    def render_line(self, ctx, cell_area, box_size, mid, height, start, end, colour):
 
185
    def render_line(self, ctx, cell_area, box_size, mid, height, start, end, colour, flags):
181
186
        if start is None:
 
187
            ctx.set_line_cap(cairo.LINE_CAP_ROUND)
182
188
            x = cell_area.x + box_size * end + box_size / 2
183
189
            ctx.move_to(x, mid + height / 3)
184
190
            ctx.line_to(x, mid + height / 3)
186
192
            ctx.line_to(x, mid + height / 6)
187
193
            
188
194
        elif end is None:
 
195
            ctx.set_line_cap(cairo.LINE_CAP_ROUND)
189
196
            x = cell_area.x + box_size * start + box_size / 2
190
197
            ctx.move_to(x, mid - height / 3)
191
198
            ctx.line_to(x, mid - height / 3)
192
199
            ctx.move_to(x, mid - height / 6)
193
200
            ctx.line_to(x, mid - height / 6)
 
201
 
194
202
        else:
 
203
            ctx.set_line_cap(cairo.LINE_CAP_BUTT)
195
204
            startx = cell_area.x + box_size * start + box_size / 2
196
205
            endx = cell_area.x + box_size * end + box_size / 2
197
206
            
198
207
            ctx.move_to(startx, mid - height / 2)
199
208
            
200
209
            if start - end == 0 :
201
 
                ctx.line_to(endx, mid + height / 2)
 
210
                ctx.line_to(endx, mid + height / 2 + 1)
202
211
            else:
203
212
                ctx.curve_to(startx, mid - height / 5,
204
213
                             startx, mid - height / 5,
205
214
                             startx + (endx - startx) / 2, mid)
206
 
                
 
215
 
207
216
                ctx.curve_to(endx, mid + height / 5,
208
217
                             endx, mid + height / 5 ,
209
 
                             endx, mid + height / 2)
210
 
                
 
218
                             endx, mid + height / 2 + 1)
 
219
 
 
220
        if flags & gtk.CELL_RENDERER_SELECTED:
 
221
            ctx.set_source_rgb(1.0, 1.0, 1.0)
 
222
            ctx.set_line_width(box_size / 5)
 
223
            ctx.stroke_preserve()
 
224
            ctx.set_line_width(box_size / 8)
 
225
 
211
226
        self.set_colour(ctx, colour, 0.0, 0.65)
 
227
 
212
228
        ctx.stroke()
213
229
 
214
230
    def render_tags(self, ctx, pango_ctx, cell_area, box_size):