Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 0.8, 0.8.1, and 0.8.2

history: make the viewer independent of having a status bar

When the history viewer is created, the status bar is optional. However, it is required a validation every time a method in the status bar is called. It allow the use of the history viewer reusable (i.e. a stand-alone application that not always has a repo shown)

Changeset 261f240e4c35

Parent 350a863107ff

by Germán Póo-Caamaño

Changes to one file · Browse files at 261f240e4c35 Showing diff from parent 350a863107ff Diff from another changeset...

 
83
84
85
 
 
 
 
 
86
87
88
 
101
102
103
 
 
 
 
104
105
106
 
136
137
138
 
 
 
 
139
140
141
 
157
158
159
160
 
 
161
162
163
 
178
179
180
181
 
 
182
183
184
 
216
217
218
219
 
 
220
221
222
223
224
 
 
225
226
227
 
251
252
253
254
255
256
257
258
259
260
261
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
262
263
264
 
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
 
282
283
284
 
83
84
85
86
87
88
89
90
91
92
93
 
106
107
108
109
110
111
112
113
114
115
 
145
146
147
148
149
150
151
152
153
154
 
170
171
172
 
173
174
175
176
177
 
192
193
194
 
195
196
197
198
199
 
231
232
233
 
234
235
236
237
238
239
 
240
241
242
243
244
 
268
269
270
 
 
 
 
 
 
 
 
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
 
302
303
304
 
 
 
 
 
 
 
 
 
 
 
 
 
305
306
307
308
@@ -83,6 +83,11 @@
  self.construct_treeview()   self.pbar = pbar   + def set_repo(self, repo, pbar=None): + self.repo = repo + self.pbar = pbar + self.set_author_color() +   def search_in_tree(self, model, column, key, iter, data):   """Searches all fields shown in the tree when the user hits crtr+f,   not just the ones that are set via tree.set_search_column. @@ -101,6 +106,10 @@
  return True     def create_log_generator(self, graphcol, pats, opts): + if self.repo is None: + self.grapher = None + return +   if 'filehist' in opts:   self.grapher = filelog_grapher(self.repo, opts['filehist'])   elif graphcol: @@ -136,6 +145,10 @@
  """Fill the treeview with contents.   """   stopped = False + if self.repo is None: + stopped = True + return False +   try:   (rev, node, lines, parents) = self.grapher.next()   self.max_cols = max(self.max_cols, len(lines)) @@ -157,7 +170,8 @@
    if not len(self.graphdata):   self.treeview.set_model(None) - self.pbar.end() + if self.pbar is not None: + self.pbar.end()   self.emit('revisions-loaded')   return False   @@ -178,7 +192,8 @@
  self.emit('revisions-loaded')   if revision is not None:   self.set_revision_id(revision[treemodel.REVID]) - self.pbar.end() + if self.pbar is not None: + self.pbar.end()   return False     def do_get_property(self, property): @@ -216,12 +231,14 @@
  def next_revision_batch(self, size):   self.batchsize = size   self.limit += self.batchsize - self.pbar.begin() + if self.pbar is not None: + self.pbar.begin()   gobject.idle_add(self.populate)     def load_all_revisions(self):   self.limit = None - self.pbar.begin() + if self.pbar is not None: + self.pbar.begin()   gobject.idle_add(self.populate)     def get_revision(self): @@ -251,14 +268,33 @@
  return self.get_property('parents')     def refresh(self, graphcol, pats, opts): - self.repo.invalidate() - self.repo.dirstate.invalidate() - if len(self.repo.changelog) > 0: - self.create_log_generator(graphcol, pats, opts) - self.pbar.begin() - gobject.idle_add(self.populate, self.get_revision()) - else: - self.pbar.set_status_text('Repository is empty') + if self.repo is not None: + self.repo.invalidate() + self.repo.dirstate.invalidate() + if len(self.repo.changelog) > 0: + self.create_log_generator(graphcol, pats, opts) + if self.pbar is not None: + self.pbar.begin() + gobject.idle_add(self.populate, self.get_revision()) + else: + self.pbar.set_status_text('Repository is empty') + + def set_author_color(self): + # If user has configured authorcolor in [tortoisehg], color + # rows by author matches + self.author_pats = [] + self.color_func = self.text_color_orig + + if self.repo is not None: + for k, v in self.repo.ui.configitems('tortoisehg'): + if not k.startswith('authorcolor.'): continue + pat = k[12:] + self.author_pats.append((re.compile(pat, re.I), v)) + if self.author_pats or self.repo.ui.configbool('tortoisehg', + 'authorcolor'): + self.color_func = self.text_color_author + else: + self.color_func = self.text_color_orig     def construct_treeview(self):   self.treeview = gtk.TreeView() @@ -266,19 +302,7 @@
  self.treeview.set_reorderable(False)   self.treeview.set_enable_search(True)   self.treeview.set_search_equal_func(self.search_in_tree, None) - - # If user has configured authorcolor in [tortoisehg], color - # rows by author matches - self.author_pats = [] - for k, v in self.repo.ui.configitems('tortoisehg'): - if not k.startswith('authorcolor.'): continue - pat = k[12:] - self.author_pats.append((re.compile(pat, re.I), v)) - if self.author_pats or self.repo.ui.configbool('tortoisehg', - 'authorcolor'): - self.color_func = self.text_color_author - else: - self.color_func = self.text_color_orig + self.set_author_color()     # Fix old PyGTK (<1.12) bug - by JAM   set_tooltip = getattr(self.treeview, 'set_tooltip_column', None)