148
153
def _no_tags_available(self):
149
154
""" No tags in the branch. """
150
155
self._model.append([_("No tagged revisions in the branch."), ""])
156
self._button_add.set_sensitive(True)
151
157
self._button_remove.set_sensitive(False)
153
159
def _on_add_clicked(self, widget):
154
160
""" Add button event handler. """
161
dialog = AddTagDialog(self.branch, self)
162
response = dialog.run()
163
if response != gtk.RESPONSE_NONE:
166
if response == gtk.RESPONSE_OK:
167
self.branch.tags.set_tag(dialog.tagname, dialog.revid)
157
172
def _on_close_clicked(self, widget):
158
173
""" Close button event handler. """
246
264
def _on_remove_clicked(self, widget):
247
265
""" Remove button event handler. """
248
266
self.response(gtk.RESPONSE_OK)
269
class AddTagDialog(gtk.Dialog):
270
""" Add tag dialog. """
271
def __init__(self, branch, parent):
272
""" Initialize Add tag dialog. """
273
gtk.Dialog.__init__(self, title="Add tag - Olive",
276
buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
279
self._branch = branch
282
self._button_add = gtk.Button(_("_Add tag"), use_underline=True)
283
self._button_revid = gtk.Button('')
284
self._table = gtk.Table(2, 2)
285
self._label_name = gtk.Label(_("Tag Name:"))
286
self._label_revid = gtk.Label(_("Revision ID:"))
287
self._entry_name = gtk.Entry()
288
self._entry_revid = gtk.Entry()
289
self._hbox_revid = gtk.HBox()
292
self._button_add.connect('clicked', self._on_add_clicked)
293
self._button_revid.connect('clicked', self._on_revid_clicked)
296
self._label_name.set_alignment(0, 0.5)
297
self._label_revid.set_alignment(0, 0.5)
298
self._button_add.set_image(gtk.image_new_from_stock(gtk.STOCK_ADD,
299
gtk.ICON_SIZE_BUTTON))
300
self._button_revid.set_image(gtk.image_new_from_stock(gtk.STOCK_OPEN,
301
gtk.ICON_SIZE_BUTTON))
302
self._button_add.set_flags(gtk.CAN_DEFAULT)
304
# Construct the dialog
305
self._hbox_revid.pack_start(self._entry_revid, True, True)
306
self._hbox_revid.pack_start(self._button_revid, False, False)
307
self._table.attach(self._label_name, 0, 1, 0, 1)
308
self._table.attach(self._label_revid, 0, 1, 1, 2)
309
self._table.attach(self._entry_name, 1, 2, 0, 1)
310
self._table.attach(self._hbox_revid, 1, 2, 1, 2)
311
self.vbox.add(self._table)
312
self.action_area.pack_end(self._button_add)
317
def _on_revid_clicked(self, widget):
318
""" Browse for revision button clicked handler. """
319
from revbrowser import RevisionBrowser
321
revb = RevisionBrowser(self._branch, self)
322
response = revb.run()
323
if response != gtk.RESPONSE_NONE:
326
if response == gtk.RESPONSE_OK:
327
if revb.selected_revno is not None:
328
self._entry_revid.set_text(revb.selected_revid)
332
def _on_add_clicked(self, widget):
333
""" Add button clicked handler. """
334
if len(self._entry_name.get_text()) == 0:
335
error_dialog(_("No tag name specified"),
336
_("You have to specify the tag's desired name."))
339
if len(self._entry_revid.get_text()) == 0:
340
self.revid = self._branch.last_revision()
342
self.revid = self._entry_revid.get_text()
344
self.tagname = self._entry_name.get_text()
346
self.response(gtk.RESPONSE_OK)