159
161
def _on_add_clicked(self, widget):
160
162
""" Add button event handler. """
161
dialog = AddTagDialog(self.branch, self)
163
dialog = AddTagDialog(self.branch.repository, None,
162
165
response = dialog.run()
163
166
if response != gtk.RESPONSE_NONE:
270
273
class AddTagDialog(gtk.Dialog):
271
274
""" Add tag dialog. """
272
def __init__(self, branch, parent):
275
def __init__(self, repository, revid=None, branch=None, parent=None):
273
276
""" Initialize Add tag dialog. """
274
277
gtk.Dialog.__init__(self, title="Add tag - Olive",
277
buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
280
buttons=(gtk.STOCK_CANCEL,
281
gtk.RESPONSE_CANCEL))
284
self._repository = repository
280
286
self._branch = branch
282
288
# Create the widgets
283
289
self._button_add = gtk.Button(_("_Add tag"), use_underline=True)
284
self._button_revid = gtk.Button('')
285
290
self._table = gtk.Table(2, 2)
286
291
self._label_name = gtk.Label(_("Tag Name:"))
287
292
self._label_revid = gtk.Label(_("Revision ID:"))
288
293
self._entry_name = gtk.Entry()
289
self._entry_revid = gtk.Entry()
290
self._hbox_revid = gtk.HBox()
294
self._hbox_revid = RevisionSelectionBox(self._branch)
293
297
self._button_add.connect('clicked', self._on_add_clicked)
294
self._button_revid.connect('clicked', self._on_revid_clicked)
297
300
self._label_name.set_alignment(0, 0.5)
298
301
self._label_revid.set_alignment(0, 0.5)
299
302
self._button_add.set_image(gtk.image_new_from_stock(gtk.STOCK_ADD,
300
303
gtk.ICON_SIZE_BUTTON))
301
self._button_revid.set_image(gtk.image_new_from_stock(gtk.STOCK_OPEN,
302
gtk.ICON_SIZE_BUTTON))
303
304
self._button_add.set_flags(gtk.CAN_DEFAULT)
305
306
# Construct the dialog
306
self._hbox_revid.pack_start(self._entry_revid, True, True)
307
self._hbox_revid.pack_start(self._button_revid, False, False)
308
307
self._table.attach(self._label_name, 0, 1, 0, 1)
309
308
self._table.attach(self._label_revid, 0, 1, 1, 2)
310
309
self._table.attach(self._entry_name, 1, 2, 0, 1)
315
314
# Show the dialog
316
315
self.vbox.show_all()
318
def _on_revid_clicked(self, widget):
319
""" Browse for revision button clicked handler. """
320
from revbrowser import RevisionBrowser
322
revb = RevisionBrowser(self._branch, self)
323
response = revb.run()
324
if response != gtk.RESPONSE_NONE:
327
if response == gtk.RESPONSE_OK:
328
if revb.selected_revno is not None:
329
self._entry_revid.set_text(revb.selected_revid)
333
317
def _on_add_clicked(self, widget):
334
318
""" Add button clicked handler. """
335
319
if len(self._entry_name.get_text()) == 0:
337
321
_("You have to specify the tag's desired name."))
340
if len(self._entry_revid.get_text()) == 0:
324
if self._hbox_revid.get_revision_id() is None:
341
325
self.revid = self._branch.last_revision()
343
self.revid = self._entry_revid.get_text()
327
self.revid = self.hbox_revid.get_revision_id()
345
329
self.tagname = self._entry_name.get_text()