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.") ])
102
self.model.append([ _("No conflicts in working tree.") ])
104
103
self._button_diff3.set_sensitive(False)
106
105
self.model = gtk.ListStore(gobject.TYPE_STRING,
107
106
gobject.TYPE_STRING,
108
107
gobject.TYPE_STRING)
109
108
self._treeview.set_model(self.model)
110
self._treeview.append_column(gtk.TreeViewColumn(_i18n('Path'),
109
self._treeview.append_column(gtk.TreeViewColumn(_('Path'),
111
110
gtk.CellRendererText(), text=0))
112
self._treeview.append_column(gtk.TreeViewColumn(_i18n('Type'),
111
self._treeview.append_column(gtk.TreeViewColumn(_('Type'),
113
112
gtk.CellRendererText(), text=1))
114
113
self._treeview.set_search_column(0)
115
114
for conflict in self.wt.conflicts():
116
115
if conflict.typestring == 'path conflict':
117
t = _i18n("path conflict")
116
t = _("path conflict")
118
117
elif conflict.typestring == 'contents conflict':
119
t = _i18n("contents conflict")
118
t = _("contents conflict")
120
119
elif conflict.typestring == 'text conflict':
121
t = _i18n("text conflict")
120
t = _("text conflict")
122
121
elif conflict.typestring == 'duplicate id':
123
t = _i18n("duplicate id")
122
t = _("duplicate id")
124
123
elif conflict.typestring == 'duplicate':
125
t = _i18n("duplicate")
126
125
elif conflict.typestring == 'parent loop':
127
t = _i18n("parent loop")
128
127
elif conflict.typestring == 'unversioned parent':
129
t = _i18n("unversioned parent")
128
t = _("unversioned parent")
130
129
elif conflict.typestring == 'missing parent':
131
t = _i18n("missing parent")
130
t = _("missing parent")
132
131
elif conflict.typestring == 'deleting parent':
133
t = _i18n("deleting parent")
132
t = _("deleting parent")
135
t = _i18n("unknown type of conflict")
134
t = _("unknown type of conflict")
137
136
self.model.append([ conflict.path, t, conflict.typestring ])
161
160
self._set_diff3(self._entry_diff3.get_text())
162
161
selected = self._get_selected_file()
163
162
if selected is None:
164
error_dialog(_i18n('No file was selected'),
165
_i18n('Please select a file from the list.'))
163
error_dialog(_('No file was selected'),
164
_('Please select a file from the list.'))
167
166
elif self._get_selected_type() == 'text conflict':
168
167
base = self.wt.abspath(selected) + '.BASE'
172
171
p = subprocess.Popen([ self._entry_diff3.get_text(), base, this, other ])
174
173
except OSError, e:
175
warning_dialog(_i18n('Call to external utility failed'), str(e))
174
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.'))
176
warning_dialog(_('Cannot resolve conflict'),
177
_('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.'))