/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: 2008-10-28 16:02:01 UTC
  • Revision ID: jelmer@samba.org-20081028160201-5t1bznxbbgoqj5or
Add notifications tab in preferences dialog.

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