/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 olive/info.py

  • Committer: Jelmer Vernooij
  • Date: 2006-09-27 20:30:59 UTC
  • mto: (0.12.2 olive)
  • mto: This revision was merged to the branch mainline in revision 83.
  • Revision ID: jelmer@samba.org-20060927203059-85792ae0a81db524
Bunch of small fixes, cleanups and simplifications.

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
 
import os
 
17
import sys
18
18
 
19
19
try:
20
20
    import pygtk
23
23
    pass
24
24
 
25
25
import gtk
 
26
import gtk.glade
 
27
import gobject
 
28
import pango
26
29
 
27
30
import bzrlib.errors as errors
28
31
 
29
 
from bzrlib.plugins.gtk import _i18n, icon_path
30
 
from bzrlib.plugins.gtk.dialog import error_dialog
31
 
 
 
32
from olive import gladefile
32
33
 
33
34
def info(location):
34
35
    """ Get info about branch, working tree, and repository
80
81
    try:
81
82
        a_bzrdir = bzrdir.BzrDir.open_containing(location)[0]
82
83
    except errors.NotBranchError:
83
 
        raise errors.NotBranchError(location)
 
84
        raise NotBranchError(location)
84
85
 
85
86
    try:
86
87
        working = a_bzrdir.open_workingtree()
109
110
 
110
111
    try:
111
112
        branch = a_bzrdir.open_branch()
112
 
        repository = branch.repository
113
 
        control = a_bzrdir
114
113
        branch.lock_read()
115
114
        try:
116
115
            ret['location'] = info_helper.get_location_info(repository, branch)
137
136
            ret['repstats'] = info_helper.get_repository_stats(repository)
138
137
        finally:
139
138
            repository.unlock()
140
 
        return ret
 
139
            return ret
 
140
        return
141
141
    except errors.NoRepositoryPresent:
142
142
        pass
143
143
 
144
144
 
145
 
class InfoDialog(object):
 
145
class OliveInfo:
146
146
    """ Display Informations window and perform the needed actions. """
147
 
    
148
 
    def __init__(self, branch):
 
147
    def __init__(self, comm):
149
148
        """ Initialize the Informations window. """
 
149
        self.glade = gtk.glade.XML(gladefile, 'window_info', 'olive-gtk')
 
150
        
 
151
        # Communication object
 
152
        self.comm = comm
 
153
        
 
154
        # Get the Informations window widget
 
155
        self.window = self.glade.get_widget('window_info')
 
156
        
150
157
        # Check if current location is a branch
151
158
        self.notbranch = False
152
159
        try:
153
 
            self.ret = info(branch.base)
 
160
            self.ret = info(self.comm.get_path())
154
161
        except errors.NotBranchError:
155
162
            self.notbranch = True
156
163
            return
157
164
        
158
 
        # Create the window
159
 
        self.window = gtk.Dialog(title="Olive - Information",
160
 
                                  parent = None,
161
 
                                  flags=0,
162
 
                                  buttons=None)
163
 
        self.window.set_icon_list(gtk.gdk.pixbuf_new_from_file(icon_path("oliveicon2.png")),
164
 
                                  gtk.gdk.pixbuf_new_from_file(icon_path("olive-gtk.png")))
165
 
        self.window.vbox.set_spacing(3)
166
 
        self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_NORMAL)
167
 
        
168
 
        infokeylist = ( ('location', _i18n("Location"), (
169
 
                            ('lightcoroot', _i18n("Light checkout root")),
170
 
                            ('sharedrepo', _i18n("Shared repository")),
171
 
                            ('repobranch', _i18n("Repository branch")),
172
 
                            ('cobranch', _i18n("Checkout of branch")),
173
 
                            ('repoco', _i18n("Repository checkout")),
174
 
                            ('coroot', _i18n("Checkout root")),
175
 
                            ('branchroot', _i18n("Branch root")),
176
 
                            )),
177
 
                        ('related', _i18n("Related branches"), (
178
 
                            ('parentbranch', _i18n("Parent branch")),
179
 
                            ('publishbranch', _i18n("Publish to branch")),
180
 
                            )),
181
 
                        ('format', _i18n("Format"), (
182
 
                            ('control', _i18n("Control format")),
183
 
                            ('workingtree', _i18n("Working tree format")),
184
 
                            ('branch', _i18n("Branch format")),
185
 
                            ('repository', _i18n("Repository format")),
186
 
                            )),
187
 
                        ('locking', _i18n("Lock status"), (
188
 
                            ('workingtree', _i18n("Working tree lock status")),
189
 
                            ('branch', _i18n("Branch lock status")),
190
 
                            ('repository', _i18n("Repository lock status")),
191
 
                            )),
192
 
                        #('missing', _i18n("Missing revisions"), (
193
 
                        #    ('branch', _i18n("Missing revisions in branch")),
194
 
                        #    ('workingtree', _i18n("Missing revisions in working tree")),
195
 
                        #    )), # Missing is 'temporary' disabled
196
 
                        ('wtstats', _i18n("In the working tree"), (
197
 
                            ('unchanged', _i18n("Unchanged files")),
198
 
                            ('modified', _i18n("Modified files")),
199
 
                            ('added', _i18n("Added files")),
200
 
                            ('removed', _i18n("Removed files")),
201
 
                            ('renamed', _i18n("Renamed files")),
202
 
                            ('unknown', _i18n("Unknown files")),
203
 
                            ('ignored', _i18n("Ignored files")),
204
 
                            ('subdirs', _i18n("Versioned subdirectories")),
205
 
                            )),
206
 
                        ('brstats', _i18n("Branch history"), (
207
 
                            ('revno', _i18n("Revisions in branch")),
208
 
                            ('commiters', _i18n("Number of commiters")),
209
 
                            ('age', _i18n("Age of branch in days")),
210
 
                            ('firstrev', _i18n("Time of first revision")),
211
 
                            ('lastrev', _i18n("Time of last revision")),
212
 
                            )),
213
 
                        ('repstats', _i18n("Revision store"), (
214
 
                            ('revisions', _i18n("Revisions in repository")),
215
 
                            ('size', _i18n("Size of repository in bytes")),
216
 
                            )),
217
 
                        )
218
 
               
 
165
        # Dictionary for signal_autoconnect
 
166
        dic = { "on_button_info_close_clicked": self.close,
 
167
                "on_expander_info_location_activate": self.activate,
 
168
                "on_expander_info_related_activate": self.activate,
 
169
                "on_expander_info_format_activate": self.activate,
 
170
                "on_expander_info_locking_activate": self.activate,
 
171
                "on_expander_info_missing_activate": self.activate,
 
172
                "on_expander_info_wtstats_activate": self.activate,
 
173
                "on_expander_info_brstats_activate": self.activate,
 
174
                "on_expander_info_repstats_activate": self.activate }
 
175
        
 
176
        # Connect the signals to the handlers
 
177
        self.glade.signal_autoconnect(dic)
 
178
        
219
179
        # Generate status output
220
 
        self._generate_info(infokeylist)
221
 
        
222
 
        button_close = gtk.Button(stock=gtk.STOCK_CLOSE)        
223
 
        button_close.connect('clicked', self.close)
224
 
        self.window.action_area.pack_end(button_close)
225
 
        self.window.set_focus(button_close)
226
 
    
227
 
    def _generate_info(self, infokeylist):
 
180
        self._generate_info()
 
181
 
 
182
    def _generate_info(self):
228
183
        """ Generate 'bzr info' output. """
229
 
        for key, keystring, subkeylist in infokeylist:
230
 
            if self.ret.has_key(key):
231
 
                tablelength = 0
232
 
                for subkey, subkeystring in subkeylist:
233
 
                    if self.ret[key].has_key(subkey):
234
 
                        tablelength += 1
235
 
                if tablelength == 0:
236
 
                    pass
237
 
                else:
238
 
                    exec "exp_%s = gtk.Expander('<b>%s</b>')"%(key, keystring)
239
 
                    eval("exp_%s.set_use_markup(True)"%key)
240
 
                    eval("exp_%s.connect('activate', self.activate)"%key)
241
 
                    
242
 
                    exec "alignment_%s = gtk.Alignment()"%key
243
 
                    eval("alignment_%s.set_padding(0, 0, 24, 0)"%key)
244
 
                    eval("exp_%s.add(alignment_%s)"%(key, key))
245
 
                    
246
 
                    exec "table_%s = gtk.Table(tablelength, 2)"%key
247
 
                    eval("table_%s.set_col_spacings(12)"%key)
248
 
                    eval("alignment_%s.add(table_%s)"%(key, key))
249
 
                    
250
 
                    tablepos = 0
251
 
                    for subkey, subkeystring in subkeylist:
252
 
                        if self.ret[key].has_key(subkey):
253
 
                            exec "%s_%s_label = gtk.Label('%s:')"%(key,subkey, subkeystring)
254
 
                            eval("table_%s.attach(%s_%s_label, 0, 1, %i, %i, gtk.FILL)"%(key, key, subkey, tablepos, tablepos + 1))
255
 
                            eval("%s_%s_label.set_alignment(0, 0.5)"%(key, subkey))
256
 
                            
257
 
                            exec "%s_%s = gtk.Label('%s')"%(key, subkey, str(self.ret[key][subkey]))
258
 
                            eval("table_%s.attach(%s_%s, 1, 2, %i, %i, gtk.FILL)"%(key, key, subkey, tablepos, tablepos + 1))
259
 
                            eval("%s_%s.set_alignment(0, 0.5)"%(key, subkey))
260
 
                            tablepos += 1
261
 
                    eval("exp_%s.set_expanded(True)"%key)
262
 
                    eval("self.window.vbox.pack_start(exp_%s, False, True, 0)"%key)
 
184
        # location
 
185
        if self.ret.has_key('location'):
 
186
            display = False
 
187
            e = self.glade.get_widget('expander_info_location')
 
188
            if self.ret['location'].has_key('lightcoroot'):
 
189
                ll = self.glade.get_widget('label_info_location_lightcoroot_label')
 
190
                l = self.glade.get_widget('label_info_location_lightcoroot')
 
191
                l.set_text(self.ret['location']['lightcoroot'])
 
192
                ll.show()
 
193
                l.show()
 
194
                if not display:
 
195
                    e.set_expanded(True)
 
196
                    e.show()
 
197
                    display = True
 
198
            if self.ret['location'].has_key('sharedrepo'):
 
199
                ll = self.glade.get_widget('label_info_location_sharedrepo_label')
 
200
                l = self.glade.get_widget('label_info_location_sharedrepo')
 
201
                l.set_text(self.ret['location']['sharedrepo'])
 
202
                ll.show()
 
203
                l.show()
 
204
                if not display:
 
205
                    e.set_expanded(True)
 
206
                    e.show()
 
207
                    display = True
 
208
            if self.ret['location'].has_key('repobranch'):
 
209
                ll = self.glade.get_widget('label_info_location_repobranch_label')
 
210
                l = self.glade.get_widget('label_info_location_repobranch')
 
211
                l.set_text(self.ret['location']['repobranch'])
 
212
                ll.show()
 
213
                l.show()
 
214
                if not display:
 
215
                    e.set_expanded(True)
 
216
                    e.show()
 
217
                    display = True
 
218
            if self.ret['location'].has_key('cobranch'):
 
219
                ll = self.glade.get_widget('label_info_location_cobranch_label')
 
220
                l = self.glade.get_widget('label_info_location_cobranch')
 
221
                l.set_text(self.ret['location']['cobranch'])
 
222
                ll.show()
 
223
                l.show()
 
224
                if not display:
 
225
                    e.set_expanded(True)
 
226
                    e.show()
 
227
                    display = True
 
228
            if self.ret['location'].has_key('repoco'):
 
229
                ll = self.glade.get_widget('label_info_location_repoco_label')
 
230
                l = self.glade.get_widget('label_info_location_repoco')
 
231
                l.set_text(self.ret['location']['repoco'])
 
232
                ll.show()
 
233
                l.show()
 
234
                if not display:
 
235
                    e.set_expanded(True)
 
236
                    e.show()
 
237
                    display = True
 
238
            if self.ret['location'].has_key('coroot'):
 
239
                ll = self.glade.get_widget('label_info_location_coroot_label')
 
240
                l = self.glade.get_widget('label_info_location_coroot')
 
241
                l.set_text(self.ret['location']['coroot'])
 
242
                ll.show()
 
243
                l.show()
 
244
                if not display:
 
245
                    e.set_expanded(True)
 
246
                    e.show()
 
247
                    display = True
 
248
            if self.ret['location'].has_key('branchroot'):
 
249
                ll = self.glade.get_widget('label_info_location_branchroot_label')
 
250
                l = self.glade.get_widget('label_info_location_branchroot')
 
251
                l.set_text(self.ret['location']['branchroot'])
 
252
                ll.show()
 
253
                l.show()
 
254
                if not display:
 
255
                    e.set_expanded(True)
 
256
                    e.show()
 
257
                    display = True
 
258
        # related
 
259
        if self.ret.has_key('related'):
 
260
            display = False
 
261
            e = self.glade.get_widget('expander_info_related')
 
262
            if self.ret['related'].has_key('parentbranch'):
 
263
                ll = self.glade.get_widget('label_info_related_parentbranch_label')
 
264
                l = self.glade.get_widget('label_info_related_parentbranch')
 
265
                l.set_text(self.ret['related']['parentbranch'])
 
266
                ll.show()
 
267
                l.show()
 
268
                if not display:
 
269
                    e.set_expanded(True)
 
270
                    e.show()
 
271
                    display = True
 
272
            if self.ret['related'].has_key('publishbranch'):
 
273
                ll = self.glade.get_widget('label_info_related_publishbranch_label')
 
274
                l = self.glade.get_widget('label_info_related_publishbranch')
 
275
                l.set_text(self.ret['related']['publishbranch'])
 
276
                ll.show()
 
277
                l.show()
 
278
                if not display:
 
279
                    e.set_expanded(True)
 
280
                    e.show()
 
281
                    display = True
 
282
        # format
 
283
        if self.ret.has_key('format'):
 
284
            display = False
 
285
            e = self.glade.get_widget('expander_info_format')
 
286
            if self.ret['format'].has_key('control'):
 
287
                ll = self.glade.get_widget('label_info_format_control_label')
 
288
                l = self.glade.get_widget('label_info_format_control')
 
289
                l.set_text(self.ret['format']['control'])
 
290
                ll.show()
 
291
                l.show()
 
292
                if not display:
 
293
                    e.set_expanded(True)
 
294
                    e.show()
 
295
                    display = True
 
296
            if self.ret['format'].has_key('workingtree'):
 
297
                ll = self.glade.get_widget('label_info_format_workingtree_label')
 
298
                l = self.glade.get_widget('label_info_format_workingtree')
 
299
                l.set_text(self.ret['format']['workingtree'])
 
300
                ll.show()
 
301
                l.show()
 
302
                if not display:
 
303
                    e.set_expanded(True)
 
304
                    e.show()
 
305
                    display = True
 
306
            if self.ret['format'].has_key('branch'):
 
307
                ll = self.glade.get_widget('label_info_format_branch_label')
 
308
                l = self.glade.get_widget('label_info_format_branch')
 
309
                l.set_text(self.ret['format']['branch'])
 
310
                ll.show()
 
311
                l.show()
 
312
                if not display:
 
313
                    e.set_expanded(True)
 
314
                    e.show()
 
315
                    display = True
 
316
            if self.ret['format'].has_key('repository'):
 
317
                ll = self.glade.get_widget('label_info_format_repository_label')
 
318
                l = self.glade.get_widget('label_info_format_repository')
 
319
                l.set_text(self.ret['format']['repository'])
 
320
                ll.show()
 
321
                l.show()
 
322
                if not display:
 
323
                    e.set_expanded(True)
 
324
                    e.show()
 
325
                    display = True
 
326
        # locking
 
327
        if self.ret.has_key('locking'):
 
328
            display = False
 
329
            e = self.glade.get_widget('expander_info_locking')
 
330
            if self.ret['locking'].has_key('workingtree'):
 
331
                ll = self.glade.get_widget('label_info_locking_workingtree_label')
 
332
                l = self.glade.get_widget('label_info_locking_workingtree')
 
333
                l.set_text(self.ret['locking']['workingtree'])
 
334
                ll.show()
 
335
                l.show()
 
336
                if not display:
 
337
                    e.set_expanded(True)
 
338
                    e.show()
 
339
                    display = True
 
340
            if self.ret['locking'].has_key('branch'):
 
341
                ll = self.glade.get_widget('label_info_locking_branch_label')
 
342
                l = self.glade.get_widget('label_info_locking_branch')
 
343
                l.set_text(self.ret['locking']['branch'])
 
344
                ll.show()
 
345
                l.show()
 
346
                if not display:
 
347
                    e.set_expanded(True)
 
348
                    e.show()
 
349
                    display = True
 
350
            if self.ret['locking'].has_key('repository'):
 
351
                ll = self.glade.get_widget('label_info_locking_repository_label')
 
352
                l = self.glade.get_widget('label_info_locking_repository')
 
353
                l.set_text(self.ret['locking']['repository'])
 
354
                ll.show()
 
355
                l.show()
 
356
                if not display:
 
357
                    e.set_expanded(True)
 
358
                    e.show()
 
359
                    display = True
 
360
        # missing - temporary disabled
 
361
        """
 
362
        if self.ret.has_key('missing'):
 
363
            display = False
 
364
            e = self.glade.get_widget('expander_info_missing')
 
365
            if self.ret['missing'].has_key('branch'):
 
366
                ll = self.glade.get_widget('label_info_missing_branch_label')
 
367
                l = self.glade.get_widget('label_info_missing_branch')
 
368
                l.set_text(self.ret['missing']['branch'])
 
369
                ll.set_markup('<b>' + ll.get_text() + '</b>')
 
370
                ll.show()
 
371
                l.show()
 
372
                if not display:
 
373
                    e.set_expanded(True)
 
374
                    e.show()
 
375
                    display = True
 
376
            if self.ret['missing'].has_key('workingtree'):
 
377
                ll = self.glade.get_widget('label_info_missing_workingtree_label')
 
378
                l = self.glade.get_widget('label_info_missing_workingtree')
 
379
                l.set_text(self.ret['missing']['branch'])
 
380
                ll.set_markup('<b>' + ll.get_text() + '</b>')
 
381
                ll.show()
 
382
                l.show()
 
383
                if not display:
 
384
                    e.set_expanded(True)
 
385
                    e.show()
 
386
                    display = True
 
387
        """
 
388
        # working tree stats
 
389
        if self.ret.has_key('wtstats'):
 
390
            display = False
 
391
            e = self.glade.get_widget('expander_info_wtstats')
 
392
            if self.ret['wtstats'].has_key('unchanged'):
 
393
                ll = self.glade.get_widget('label_info_wtstats_unchanged_label')
 
394
                l = self.glade.get_widget('label_info_wtstats_unchanged')
 
395
                l.set_text(str(self.ret['wtstats']['unchanged']))
 
396
                ll.show()
 
397
                l.show()
 
398
                if not display:
 
399
                    e.set_expanded(True)
 
400
                    e.show()
 
401
                    display = True
 
402
            if self.ret['wtstats'].has_key('modified'):
 
403
                ll = self.glade.get_widget('label_info_wtstats_modified_label')
 
404
                l = self.glade.get_widget('label_info_wtstats_modified')
 
405
                l.set_text(str(self.ret['wtstats']['modified']))
 
406
                ll.show()
 
407
                l.show()
 
408
                if not display:
 
409
                    e.set_expanded(True)
 
410
                    e.show()
 
411
                    display = True
 
412
            if self.ret['wtstats'].has_key('added'):
 
413
                ll = self.glade.get_widget('label_info_wtstats_added_label')
 
414
                l = self.glade.get_widget('label_info_wtstats_added')
 
415
                l.set_text(str(self.ret['wtstats']['added']))
 
416
                ll.show()
 
417
                l.show()
 
418
                if not display:
 
419
                    e.set_expanded(True)
 
420
                    e.show()
 
421
                    display = True
 
422
            if self.ret['wtstats'].has_key('removed'):
 
423
                ll = self.glade.get_widget('label_info_wtstats_removed_label')
 
424
                l = self.glade.get_widget('label_info_wtstats_removed')
 
425
                l.set_text(str(self.ret['wtstats']['removed']))
 
426
                ll.show()
 
427
                l.show()
 
428
                if not display:
 
429
                    e.set_expanded(True)
 
430
                    e.show()
 
431
                    display = True
 
432
            if self.ret['wtstats'].has_key('renamed'):
 
433
                ll = self.glade.get_widget('label_info_wtstats_renamed_label')
 
434
                l = self.glade.get_widget('label_info_wtstats_renamed')
 
435
                l.set_text(str(self.ret['wtstats']['renamed']))
 
436
                ll.show()
 
437
                l.show()
 
438
                if not display:
 
439
                    e.set_expanded(True)
 
440
                    e.show()
 
441
                    display = True
 
442
            if self.ret['wtstats'].has_key('unknown'):
 
443
                ll = self.glade.get_widget('label_info_wtstats_unknown_label')
 
444
                l = self.glade.get_widget('label_info_wtstats_unknown')
 
445
                l.set_text(str(self.ret['wtstats']['unknown']))
 
446
                ll.show()
 
447
                l.show()
 
448
                if not display:
 
449
                    e.set_expanded(True)
 
450
                    e.show()
 
451
                    display = True
 
452
            if self.ret['wtstats'].has_key('ignored'):
 
453
                ll = self.glade.get_widget('label_info_wtstats_ignored_label')
 
454
                l = self.glade.get_widget('label_info_wtstats_ignored')
 
455
                l.set_text(str(self.ret['wtstats']['ignored']))
 
456
                ll.show()
 
457
                l.show()
 
458
                if not display:
 
459
                    e.set_expanded(True)
 
460
                    e.show()
 
461
                    display = True
 
462
            if self.ret['wtstats'].has_key('subdirs'):
 
463
                ll = self.glade.get_widget('label_info_wtstats_subdirs_label')
 
464
                l = self.glade.get_widget('label_info_wtstats_subdirs')
 
465
                l.set_text(str(self.ret['wtstats']['subdirs']))
 
466
                ll.show()
 
467
                l.show()
 
468
                if not display:
 
469
                    e.set_expanded(True)
 
470
                    e.show()
 
471
                    display = True
 
472
        # branch stats
 
473
        if self.ret.has_key('brstats'):
 
474
            display = False
 
475
            e = self.glade.get_widget('expander_info_brstats')
 
476
            if self.ret['brstats'].has_key('revno'):
 
477
                ll = self.glade.get_widget('label_info_brstats_revno_label')
 
478
                l = self.glade.get_widget('label_info_brstats_revno')
 
479
                l.set_text(str(self.ret['brstats']['revno']))
 
480
                ll.show()
 
481
                l.show()
 
482
                if not display:
 
483
                    e.set_expanded(True)
 
484
                    e.show()
 
485
                    display = True
 
486
            if self.ret['brstats'].has_key('commiters'):
 
487
                ll = self.glade.get_widget('label_info_brstats_commiters_label')
 
488
                l = self.glade.get_widget('label_info_brstats_commiters')
 
489
                l.set_text(str(self.ret['brstats']['commiters']))
 
490
                ll.show()
 
491
                l.show()
 
492
                if not display:
 
493
                    e.set_expanded(True)
 
494
                    e.show()
 
495
                    display = True
 
496
            if self.ret['brstats'].has_key('age'):
 
497
                ll = self.glade.get_widget('label_info_brstats_age_label')
 
498
                l = self.glade.get_widget('label_info_brstats_age')
 
499
                l.set_text('%d days' % self.ret['brstats']['age'])
 
500
                ll.show()
 
501
                l.show()
 
502
                if not display:
 
503
                    e.set_expanded(True)
 
504
                    e.show()
 
505
                    display = True
 
506
            if self.ret['brstats'].has_key('firstrev'):
 
507
                ll = self.glade.get_widget('label_info_brstats_firstrev_label')
 
508
                l = self.glade.get_widget('label_info_brstats_firstrev')
 
509
                l.set_text(self.ret['brstats']['firstrev'])
 
510
                ll.show()
 
511
                l.show()
 
512
                if not display:
 
513
                    e.set_expanded(True)
 
514
                    e.show()
 
515
                    display = True
 
516
            if self.ret['brstats'].has_key('lastrev'):
 
517
                ll = self.glade.get_widget('label_info_brstats_lastrev_label')
 
518
                l = self.glade.get_widget('label_info_brstats_lastrev')
 
519
                l.set_text(self.ret['brstats']['lastrev'])
 
520
                ll.show()
 
521
                l.show()
 
522
                if not display:
 
523
                    e.set_expanded(True)
 
524
                    e.show()
 
525
                    display = True
 
526
        # repository stats
 
527
        if self.ret.has_key('repstats'):
 
528
            display = False
 
529
            e = self.glade.get_widget('expander_info_repstats')
 
530
            if self.ret['repstats'].has_key('revisions'):
 
531
                ll = self.glade.get_widget('label_info_repstats_revisions_label')
 
532
                l = self.glade.get_widget('label_info_repstats_revisions')
 
533
                l.set_text(str(self.ret['repstats']['revisions']))
 
534
                ll.show()
 
535
                l.show()
 
536
                if not display:
 
537
                    e.set_expanded(True)
 
538
                    e.show()
 
539
                    display = True
 
540
            if self.ret['repstats'].has_key('size'):
 
541
                ll = self.glade.get_widget('label_info_repstats_size_label')
 
542
                l = self.glade.get_widget('label_info_repstats_size')
 
543
                l.set_text('%d KiB' % (self.ret['repstats']['size'] / 1024))
 
544
                ll.show()
 
545
                l.show()
 
546
                if not display:
 
547
                    e.set_expanded(True)
 
548
                    e.show()
 
549
                    display = True
263
550
    
264
551
    def activate(self, expander):
265
552
        """ Redraw the window. """
269
556
    def display(self):
270
557
        """ Display the Informations window. """
271
558
        if self.notbranch:
272
 
            error_dialog(_i18n('Directory is not a branch'),
273
 
                         _i18n('You can perform this action only in a branch.'))
 
559
            error_dialog(_('Directory is not a branch'),
 
560
                                     _('You can perform this action only in a branch.'))
274
561
            self.close()
275
562
        else:
276
 
            self.window.show_all()
277
 
    
 
563
            self.window.show()
 
564
 
278
565
    def close(self, widget=None):
279
566
        self.window.destroy()