46
45
# Create the widgets
47
46
self._scrolledwindow = gtk.ScrolledWindow()
48
47
self._treeview = gtk.TreeView()
49
self._label_diff3 = gtk.Label(_i18n("External utility:"))
48
self._label_diff3 = gtk.Label(_("External utility:"))
50
49
self._entry_diff3 = gtk.Entry()
51
50
self._image_diff3 = gtk.Image()
52
51
self._button_diff3 = gtk.Button()
97
96
if len(self.wt.conflicts()) == 0:
98
97
self.model = gtk.ListStore(gobject.TYPE_STRING)
99
98
self._treeview.set_model(self.model)
100
self._treeview.append_column(gtk.TreeViewColumn(_i18n('Conflicts'),
99
self._treeview.append_column(gtk.TreeViewColumn(_('Conflicts'),
101
100
gtk.CellRendererText(), text=0))
102
101
self._treeview.set_headers_visible(False)
103
self.model.append([ _i18n("No conflicts in working tree.") ])
104
self._button_diff3.set_sensitive(False)
102
self.model.append([ _("No conflicts in working tree.") ])
106
104
self.model = gtk.ListStore(gobject.TYPE_STRING,
107
105
gobject.TYPE_STRING,
108
106
gobject.TYPE_STRING)
109
107
self._treeview.set_model(self.model)
110
self._treeview.append_column(gtk.TreeViewColumn(_i18n('Path'),
108
self._treeview.append_column(gtk.TreeViewColumn(_('Path'),
111
109
gtk.CellRendererText(), text=0))
112
self._treeview.append_column(gtk.TreeViewColumn(_i18n('Type'),
110
self._treeview.append_column(gtk.TreeViewColumn(_('Type'),
113
111
gtk.CellRendererText(), text=1))
114
112
self._treeview.set_search_column(0)
115
113
for conflict in self.wt.conflicts():
116
114
if conflict.typestring == 'path conflict':
117
t = _i18n("path conflict")
115
t = _("path conflict")
118
116
elif conflict.typestring == 'contents conflict':
119
t = _i18n("contents conflict")
117
t = _("contents conflict")
120
118
elif conflict.typestring == 'text conflict':
121
t = _i18n("text conflict")
119
t = _("text conflict")
122
120
elif conflict.typestring == 'duplicate id':
123
t = _i18n("duplicate id")
121
t = _("duplicate id")
124
122
elif conflict.typestring == 'duplicate':
125
t = _i18n("duplicate")
126
124
elif conflict.typestring == 'parent loop':
127
t = _i18n("parent loop")
128
126
elif conflict.typestring == 'unversioned parent':
129
t = _i18n("unversioned parent")
127
t = _("unversioned parent")
130
128
elif conflict.typestring == 'missing parent':
131
t = _i18n("missing parent")
129
t = _("missing parent")
132
130
elif conflict.typestring == 'deleting parent':
133
t = _i18n("deleting parent")
131
t = _("deleting parent")
135
t = _i18n("unknown type of conflict")
133
t = _("unknown type of conflict")
137
135
self.model.append([ conflict.path, t, conflict.typestring ])
161
159
self._set_diff3(self._entry_diff3.get_text())
162
160
selected = self._get_selected_file()
163
161
if selected is None:
164
error_dialog(_i18n('No file was selected'),
165
_i18n('Please select a file from the list.'))
162
error_dialog(_('No file was selected'),
163
_('Please select a file from the list.'))
167
165
elif self._get_selected_type() == 'text conflict':
168
166
base = self.wt.abspath(selected) + '.BASE'
172
170
p = subprocess.Popen([ self._entry_diff3.get_text(), base, this, other ])
174
172
except OSError, e:
175
warning_dialog(_i18n('Call to external utility failed'), str(e))
173
warning_dialog(_('Call to external utility failed'), str(e))
177
warning_dialog(_i18n('Cannot resolve conflict'),
178
_i18n('Only conflicts on the text of files can be resolved with Olive at the moment. Content conflicts, on the structure of the tree, need to be resolved using the command line.'))
175
warning_dialog(_('Cannot resolve conflict'),
176
_('Only conflicts on the text of files can be resolved with Olive at the moment. Content conflicts, on the structure of the tree, need to be resolved using the command line.'))