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

  • Committer: Vincent Ladeuil
  • Date: 2009-06-15 14:02:08 UTC
  • mto: This revision was merged to the branch mainline in revision 649.
  • Revision ID: v.ladeuil+lp@free.fr-20090615140208-k5zg9c0vttrr9se8
Integrater Jelmer patch and implement a more robust solution.

* ui.py:
(GtkUIFactory._progress_all_finished): *Don't* uninstall the
widget.

* branchview/treeview.py:
(TreeView.__init__): Unconditionally install the progress widget
that will remain active until someone else install one or the
TreeView is destroyed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
import os
18
18
import re
19
19
import sys
20
 
try:
21
 
    from xml.etree.ElementTree import Element, SubElement, tostring
22
 
except ImportError:
23
 
    from elementtree.ElementTree import Element, SubElement, tostring
 
20
from xml.etree.ElementTree import Element, SubElement, tostring
24
21
 
25
22
try:
26
23
    import gtksourceview2
34
31
    have_gconf = False
35
32
 
36
33
from bzrlib import (
37
 
    errors,
38
34
    merge as _mod_merge,
39
35
    osutils,
 
36
    progress,
40
37
    urlutils,
41
38
    workingtree,
42
39
)
43
40
from bzrlib.diff import show_diff_trees, internal_diff
 
41
from bzrlib.errors import NoSuchFile
44
42
from bzrlib.patches import parse_patches
45
43
from bzrlib.trace import warning
46
44
from bzrlib.plugins.gtk import _i18n
48
46
from dialog import error_dialog, info_dialog, warning_dialog
49
47
 
50
48
 
51
 
def fallback_guess_language(slm, content_type):
52
 
    for lang_id in slm.get_language_ids():
53
 
        lang = slm.get_language(lang_id)
54
 
        if "text/x-patch" in lang.get_mime_types():
55
 
            return lang
56
 
    return None
57
 
 
58
 
 
59
49
class SelectCancelled(Exception):
60
50
 
61
51
    pass
76
66
        if have_gtksourceview:
77
67
            self.buffer = gtksourceview2.Buffer()
78
68
            slm = gtksourceview2.LanguageManager()
79
 
            guess_language = getattr(gtksourceview2.LanguageManager, 
80
 
                "guess_language", fallback_guess_language)
81
 
            gsl = guess_language(slm, content_type="text/x-patch")
 
69
            gsl = slm.guess_language(content_type="text/x-patch")
82
70
            if have_gconf:
83
71
                self.apply_gedit_colors(self.buffer)
84
72
            self.apply_colordiff_colors(self.buffer)
107
95
 
108
96
        client = gconf.client_get_default()
109
97
        style_scheme_name = client.get_string(GEDIT_SCHEME_PATH)
110
 
        if style_scheme_name is not None:
111
 
            style_scheme = gtksourceview2.StyleSchemeManager().get_scheme(style_scheme_name)
112
 
            
113
 
            buf.set_style_scheme(style_scheme)
 
98
        style_scheme = gtksourceview2.StyleSchemeManager().get_scheme(style_scheme_name)
 
99
        
 
100
        buf.set_style_scheme(style_scheme)
114
101
 
115
102
    @classmethod
116
103
    def apply_colordiff_colors(klass, buf):
375
362
                    tv_path = child.path
376
363
                    break
377
364
        if tv_path is None:
378
 
            raise errors.NoSuchFile(file_path)
 
365
            raise NoSuchFile(file_path)
379
366
        self.treeview.set_cursor(tv_path)
380
367
        self.treeview.scroll_to_cell(tv_path)
381
368
 
583
570
        tree.lock_write()
584
571
        try:
585
572
            try:
586
 
                if tree.has_changes():
587
 
                    raise errors.UncommittedChanges(tree)
588
 
                merger, verified = _mod_merge.Merger.from_mergeable(
589
 
                    tree, self.directive, pb=None)
 
573
                merger, verified = _mod_merge.Merger.from_mergeable(tree,
 
574
                    self.directive, progress.DummyProgress())
 
575
                merger.check_basis(True)
590
576
                merger.merge_type = _mod_merge.Merge3Merger
591
577
                conflict_count = merger.do_merge()
592
578
                merger.set_pending()