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

  • Committer: Jelmer Vernooij
  • Date: 2011-03-11 23:00:17 UTC
  • mfrom: (719.1.3 bzr-gtk)
  • Revision ID: jelmer@canonical.com-20110311230017-yexxy58qe5f8fegx
Merge translations.

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
 
28
28
from bzrlib.config import GlobalConfig
29
29
from bzrlib.plugins.gtk import _i18n
30
 
from bzrlib.plugins.gtk.dialog import (
31
 
    error_dialog,
32
 
    warning_dialog,
33
 
    )
 
30
 
 
31
from dialog import error_dialog, warning_dialog
34
32
 
35
33
 
36
34
class ConflictsDialog(gtk.Dialog):
42
40
                                  parent=parent,
43
41
                                  flags=0,
44
42
                                  buttons=(gtk.STOCK_CLOSE, gtk.RESPONSE_CANCEL))
45
 
 
 
43
        
46
44
        # Get arguments
47
45
        self.wt = wt
48
 
 
 
46
        
49
47
        # Create the widgets
50
48
        self._scrolledwindow = gtk.ScrolledWindow()
51
49
        self._treeview = gtk.TreeView()
54
52
        self._image_diff3 = gtk.Image()
55
53
        self._button_diff3 = gtk.Button()
56
54
        self._hbox_diff3 = gtk.HBox()
57
 
 
 
55
        
58
56
        # Set callbacks
59
57
        self._button_diff3.connect('clicked', self._on_diff3_clicked)
60
 
 
 
58
        
61
59
        # Set properties
62
60
        self._scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC,
63
61
                                        gtk.POLICY_AUTOMATIC)
67
65
        self._hbox_diff3.set_spacing(3)
68
66
        self.vbox.set_spacing(3)
69
67
        self.set_default_size(400, 300)
70
 
 
 
68
        
71
69
        # Construct dialog
72
70
        self._hbox_diff3.pack_start(self._label_diff3, False, False)
73
71
        self._hbox_diff3.pack_start(self._entry_diff3, True, True)
75
73
        self._scrolledwindow.add(self._treeview)
76
74
        self.vbox.pack_start(self._scrolledwindow, True, True)
77
75
        self.vbox.pack_start(self._hbox_diff3, False, False)
78
 
 
 
76
        
79
77
        # Create the conflict list
80
78
        self._create_conflicts()
81
 
 
 
79
        
82
80
        # Show the dialog
83
81
        self.vbox.show_all()
84
 
 
 
82
    
85
83
    def _get_diff3(self):
86
84
        """ Get the specified diff3 utility. Default is meld. """
87
85
        config = GlobalConfig()
89
87
        if diff3 is None:
90
88
            diff3 = 'meld'
91
89
        return diff3
92
 
 
 
90
    
93
91
    def _set_diff3(self, cmd):
94
92
        """ Set the default diff3 utility to cmd. """
95
93
        config = GlobalConfig()
96
94
        config.set_user_option('gconflicts_diff3', cmd)
97
 
 
 
95
    
98
96
    def _create_conflicts(self):
99
97
        """ Construct the list of conflicts. """
100
98
        if len(self.wt.conflicts()) == 0:
102
100
            self._treeview.set_model(self.model)
103
101
            self._treeview.append_column(gtk.TreeViewColumn(_i18n('Conflicts'),
104
102
                                         gtk.CellRendererText(), text=0))
105
 
            self._treeview.set_headers_visible(False)
 
103
            self._treeview.set_headers_visible(False)            
106
104
            self.model.append([ _i18n("No conflicts in working tree.") ])
107
105
            self._button_diff3.set_sensitive(False)
108
106
        else:
136
134
                    t = _i18n("deleting parent")
137
135
                else:
138
136
                    t = _i18n("unknown type of conflict")
139
 
 
140
 
                self.model.append([ conflict.path, t, conflict.typestring ])
141
 
 
 
137
                
 
138
                self.model.append([ conflict.path, t, conflict.typestring ]) 
 
139
    
142
140
    def _get_selected_file(self):
143
141
        """ Return the selected conflict's filename. """
144
142
        treeselection = self._treeview.get_selection()
145
143
        (model, iter) = treeselection.get_selected()
146
 
 
 
144
        
147
145
        if iter is None:
148
146
            return None
149
147
        else:
150
148
            return model.get_value(iter, 0)
151
 
 
 
149
    
152
150
    def _get_selected_type(self):
153
151
        """ Return the type of the selected conflict. """
154
152
        treeselection = self._treeview.get_selection()
155
153
        (model, iter) = treeselection.get_selected()
156
 
 
 
154
        
157
155
        if iter is None:
158
156
            return None
159
157
        else:
160
158
            return model.get_value(iter, 2)
161
 
 
 
159
    
162
160
    def _on_diff3_clicked(self, widget):
163
161
        """ Launch external utility to resolve conflicts. """
164
162
        self._set_diff3(self._entry_diff3.get_text())