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

  • Committer: Gary van der Merwe
  • Date: 2007-08-10 10:45:06 UTC
  • mto: This revision was merged to the branch mainline in revision 256.
  • Revision ID: garyvdm@gmail.com-20070810104506-wo2mp9zfkh338axe
Make icon locations consistant between source and installed version. Let glade nkow where to find the icons with a project file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
gannotate         GTK+ annotate. 
20
20
gbranch           GTK+ branching. 
21
21
gcheckout         GTK+ checkout. 
22
 
gcommit           GTK+ commit dialog.
 
22
gcommit           GTK+ commit dialog 
23
23
gconflicts        GTK+ conflicts. 
24
24
gdiff             Show differences in working tree in a GTK+ Window. 
25
25
ginit             Initialise a new branch.
26
26
gmissing          GTK+ missing revisions dialog. 
27
27
gpreferences      GTK+ preferences dialog. 
28
 
gpush             GTK+ push.
29
 
gsend             GTK+ send merge directive.
30
 
gstatus           GTK+ status dialog.
 
28
gpush             GTK+ push. 
 
29
gstatus           GTK+ status dialog 
31
30
gtags             Manage branch tags.
32
31
visualise         Graphically visualise this branch. 
33
32
"""
34
33
 
35
 
import sys
36
 
 
37
34
import bzrlib
38
35
 
39
 
version_info = (0, 94, 0, 'dev', 0)
 
36
__version__ = '0.19.0'
 
37
version_info = tuple(int(n) for n in __version__.split('.'))
40
38
 
41
 
if version_info[3] == 'final':
42
 
    version_string = '%d.%d.%d' % version_info[:3]
43
 
else:
44
 
    version_string = '%d.%d.%d%s%d' % version_info
45
 
__version__ = version_string
46
39
 
47
40
def check_bzrlib_version(desired):
48
41
    """Check that bzrlib is compatible.
64
57
        from warnings import warn as warning
65
58
    if bzrlib_version < desired:
66
59
        from bzrlib.errors import BzrError
67
 
        warning('Installed Bazaar version %s is too old to be used with bzr-gtk'
 
60
        warning('Installed bzr version %s is too old to be used with bzr-gtk'
68
61
                ' %s.' % (bzrlib.__version__, __version__))
69
 
        raise BzrError('Version mismatch: %r, %r' % (version_info, bzrlib.version_info) )
 
62
        raise BzrError('Version mismatch: %r' % version_info)
70
63
    else:
71
64
        warning('bzr-gtk is not up to date with installed bzr version %s.'
72
65
                ' \nThere should be a newer version available, e.g. %i.%i.' 
73
66
                % (bzrlib.__version__, bzrlib_version[0], bzrlib_version[1]))
74
67
 
75
68
 
76
 
if version_info[2] == "final":
77
 
    check_bzrlib_version(version_info[:2])
 
69
check_bzrlib_version(version_info[:2])
78
70
 
79
71
from bzrlib.trace import warning
80
72
if __name__ != 'bzrlib.plugins.gtk':
228
220
    :return: The viz window object.
229
221
    """
230
222
    from viz.branchwin import BranchWindow
231
 
    return BranchWindow(branch, revision, limit)
 
223
    branch.lock_read()
 
224
    pp = BranchWindow()
 
225
    pp.set_branch(branch, revision, limit)
 
226
    # cleanup locks when the window is closed
 
227
    pp.connect("destroy", lambda w: branch.unlock())
 
228
    return pp
232
229
 
233
230
 
234
231
class cmd_visualise(Command):
250
247
    def run(self, location=".", revision=None, limit=None):
251
248
        set_ui_factory()
252
249
        (br, path) = branch.Branch.open_containing(location)
253
 
        if revision is None:
254
 
            revid = br.last_revision()
255
 
            if revid is None:
256
 
                return
257
 
        else:
258
 
            (revno, revid) = revision[0].in_history(br)
 
250
        br.lock_read()
 
251
        try:
 
252
            if revision is None:
 
253
                revid = br.last_revision()
 
254
                if revid is None:
 
255
                    return
 
256
            else:
 
257
                (revno, revid) = revision[0].in_history(br)
259
258
 
260
 
        import gtk
261
 
        pp = start_viz_window(br, revid, limit)
262
 
        pp.connect("destroy", lambda w: gtk.main_quit())
263
 
        pp.show()
264
 
        gtk.main()
 
259
            import gtk
 
260
            pp = start_viz_window(br, revid, limit)
 
261
            pp.connect("destroy", lambda w: gtk.main_quit())
 
262
            pp.show()
 
263
            gtk.main()
 
264
        finally:
 
265
            br.unlock()
265
266
 
266
267
 
267
268
class cmd_gannotate(GTKCommand):
334
335
    """GTK+ commit dialog
335
336
 
336
337
    Graphical user interface for committing revisions"""
337
 
 
 
338
    
338
339
    aliases = [ "gci" ]
339
340
    takes_args = []
340
341
    takes_options = []
353
354
            (wt, path) = workingtree.WorkingTree.open_containing(filename)
354
355
            br = wt.branch
355
356
        except NoWorkingTree, e:
356
 
            from dialog import error_dialog
357
 
            error_dialog(_('Directory does not have a working tree'),
358
 
                         _('Operation aborted.'))
359
 
            return 1 # should this be retval=3?
360
 
 
361
 
        # It is a good habit to keep things locked for the duration, but it
362
 
        # could cause difficulties if someone wants to do things in another
363
 
        # window... We could lock_read() until we actually go to commit
364
 
        # changes... Just a thought.
365
 
        wt.lock_write()
366
 
        try:
367
 
            dlg = CommitDialog(wt)
368
 
            return dlg.run()
369
 
        finally:
370
 
            wt.unlock()
 
357
            path = e.base
 
358
            (br, path) = branch.Branch.open_containing(path)
 
359
 
 
360
        commit = CommitDialog(wt, path, not br)
 
361
        commit.run()
 
362
 
371
363
 
372
364
 
373
365
class cmd_gstatus(GTKCommand):
390
382
        status.run()
391
383
 
392
384
 
393
 
class cmd_gsend(GTKCommand):
394
 
    """GTK+ send merge directive.
395
 
 
396
 
    """
397
 
    def run(self):
398
 
        (br, path) = branch.Branch.open_containing(".")
399
 
        gtk = self.open_display()
400
 
        from bzrlib.plugins.gtk.mergedirective import SendMergeDirectiveDialog
401
 
        from StringIO import StringIO
402
 
        dialog = SendMergeDirectiveDialog(br)
403
 
        if dialog.run() == gtk.RESPONSE_OK:
404
 
            outf = StringIO()
405
 
            outf.writelines(dialog.get_merge_directive().to_lines())
406
 
            mail_client = br.get_config().get_mail_client()
407
 
            mail_client.compose_merge_request(dialog.get_mail_to(), "[MERGE]", 
408
 
                outf.getvalue())
409
 
 
410
 
            
411
 
 
412
385
 
413
386
class cmd_gconflicts(GTKCommand):
414
 
    """GTK+ conflicts.
 
387
    """ GTK+ conflicts.
415
388
    
416
389
    Select files from the list of conflicts and run an external utility to
417
390
    resolve them.
424
397
        dialog.run()
425
398
 
426
399
 
 
400
 
427
401
class cmd_gpreferences(GTKCommand):
428
402
    """ GTK+ preferences dialog.
429
403
 
435
409
        dialog.run()
436
410
 
437
411
 
 
412
 
438
413
class cmd_gmissing(Command):
439
414
    """ GTK+ missing revisions dialog.
440
415
 
491
466
 
492
467
 
493
468
commands = [
 
469
    cmd_gmissing, 
 
470
    cmd_gpreferences, 
 
471
    cmd_gconflicts, 
 
472
    cmd_gstatus,
 
473
    cmd_gcommit, 
494
474
    cmd_gannotate, 
 
475
    cmd_visualise, 
 
476
    cmd_gdiff,
 
477
    cmd_gpush, 
 
478
    cmd_gcheckout, 
495
479
    cmd_gbranch,
496
 
    cmd_gcheckout, 
497
 
    cmd_gcommit, 
498
 
    cmd_gconflicts, 
499
 
    cmd_gdiff,
500
480
    cmd_ginit,
501
 
    cmd_gmissing, 
502
 
    cmd_gpreferences, 
503
 
    cmd_gpush, 
504
 
    cmd_gsend,
505
 
    cmd_gstatus,
506
 
    cmd_gtags,
507
 
    cmd_visualise
 
481
    cmd_gtags
508
482
    ]
509
483
 
510
484
for cmd in commands:
619
593
register_command(cmd_gselftest)
620
594
 
621
595
 
622
 
class cmd_test_gtk(GTKCommand):
623
 
    """Version of selftest that just runs the gtk test suite."""
624
 
 
625
 
    takes_options = ['verbose',
626
 
                     Option('one', short_name='1',
627
 
                            help='Stop when one test fails.'),
628
 
                     Option('benchmark', help='Run the benchmarks.'),
629
 
                     Option('lsprof-timed',
630
 
                     help='Generate lsprof output for benchmarked'
631
 
                          ' sections of code.'),
632
 
                     Option('list-only',
633
 
                     help='List the tests instead of running them.'),
634
 
                     Option('randomize', type=str, argname="SEED",
635
 
                     help='Randomize the order of tests using the given'
636
 
                          ' seed or "now" for the current time.'),
637
 
                    ]
638
 
    takes_args = ['testspecs*']
639
 
 
640
 
    def run(self, verbose=None, one=False, benchmark=None,
641
 
            lsprof_timed=None, list_only=False, randomize=None,
642
 
            testspecs_list=None):
643
 
        from bzrlib import __path__ as bzrlib_path
644
 
        from bzrlib.tests import selftest
645
 
 
646
 
        print '%10s: %s' % ('bzrlib', bzrlib_path[0])
647
 
        if benchmark:
648
 
            print 'No benchmarks yet'
649
 
            return 3
650
 
 
651
 
            test_suite_factory = bench_suite
652
 
            if verbose is None:
653
 
                verbose = True
654
 
            # TODO: should possibly lock the history file...
655
 
            benchfile = open(".perf_history", "at", buffering=1)
656
 
        else:
657
 
            test_suite_factory = test_suite
658
 
            if verbose is None:
659
 
                verbose = False
660
 
            benchfile = None
661
 
 
662
 
        if testspecs_list is not None:
663
 
            pattern = '|'.join(testspecs_list)
664
 
        else:
665
 
            pattern = ".*"
666
 
 
667
 
        try:
668
 
            result = selftest(verbose=verbose,
669
 
                              pattern=pattern,
670
 
                              stop_on_failure=one,
671
 
                              test_suite_factory=test_suite_factory,
672
 
                              lsprof_timed=lsprof_timed,
673
 
                              bench_history=benchfile,
674
 
                              list_only=list_only,
675
 
                              random_seed=randomize,
676
 
                             )
677
 
        finally:
678
 
            if benchfile is not None:
679
 
                benchfile.close()
680
 
 
681
 
register_command(cmd_test_gtk)
682
 
 
683
 
 
684
596
import gettext
685
597
gettext.install('olive-gtk')
686
598
 
699
611
    default_encoding = sys.getdefaultencoding()
700
612
    try:
701
613
        result = TestSuite()
702
 
        try:
703
 
            import_pygtk()
704
 
        except errors.BzrCommandError:
705
 
            return result
706
614
        result.addTest(tests.test_suite())
707
615
    finally:
708
616
        if sys.getdefaultencoding() != default_encoding: