/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/linegraph.py

  • Committer: Gary van der Merwe
  • Date: 2007-09-20 21:18:15 UTC
  • mto: (256.2.54 gtk)
  • mto: This revision was merged to the branch mainline in revision 289.
  • Revision ID: garyvdm@gmail.com-20070920211815-c15lse7k0hz1t2o3
Chose what column to place nodes and lines in better.

Show diffs side-by-side

added added

removed removed

Lines of Context:
96
96
        
97
97
    branch_ids.sort(branch_id_cmp)
98
98
    lines = []
99
 
    columns = []
100
99
    empty_column = [False for i in range(len(graph_parents))]
101
 
    
 
100
    columns = [list(empty_column)]
102
101
    
103
102
    
104
103
    for branch_id in branch_ids:
105
104
        branch_line = branch_lines[branch_id]
106
105
        
 
106
        parent_col_index = 0
 
107
        if len(branch_id) > 1:
 
108
            parent_branch_id = branch_id[0:-2]
 
109
            parent_col_index = branch_lines[parent_branch_id]["col_index"]
 
110
        
107
111
        branch_line["col_index"] = append_line(columns,
108
112
                                               (branch_line["min_index"],
109
113
                                                branch_line["max_index"]),
110
 
                                               empty_column)
 
114
                                               empty_column,
 
115
                                               parent_col_index)
111
116
        color = reduce(lambda x, y: x+y, branch_id, 0)
112
117
        col_index = branch_line["col_index"]
113
118
        node = (col_index, color)        
131
136
                    if branch_id != parent_branch_id and \
132
137
                                    parent_index - rev_index > 1:
133
138
                        col_index = append_line(columns,
134
 
                                                (rev_index+1, parent_index),
135
 
                                                empty_column)
 
139
                                                (rev_index+1, parent_index-1),
 
140
                                                empty_column,
 
141
                                                branch_line["col_index"])
136
142
                    lines.append((rev_index, parent_index, col_index))
137
143
    
138
144
    for (child_index, parent_index, line_col_index) in lines:
170
176
    
171
177
    return (linegraph, revid_index)
172
178
 
173
 
def append_line(columns, line, empty_column):
 
179
def append_line(columns, line, empty_column, starting_col_index):
174
180
    line_range = range(line[0], line[1]+1)
175
 
    for col_index, column in enumerate(columns):
 
181
    col_order = range(starting_col_index, -1, -1) + \
 
182
                range(starting_col_index+1, len(columns))
 
183
    for col_index in col_order:
 
184
        column = columns[col_index]
176
185
        has_overlaping_line = False
177
186
        for row_index in line_range:
178
187
            if column[row_index]: