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

  • Committer: Jelmer Vernooij
  • Date: 2007-07-15 18:12:57 UTC
  • Revision ID: jelmer@samba.org-20070715181257-g264qus2zyi3v39z
Add RevisionSelectionBox widget, use in TagDialog.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# Copyright (C) 2007 by Szilveszter Farkas (Phanatic) <szilveszter.farkas@gmail.com>
 
2
# Copyright (C) 2007 by Jelmer Vernooij <jelmer@samba.org>
2
3
#
3
4
# This program is free software; you can redistribute it and/or modify
4
5
# it under the terms of the GNU General Public License as published by
25
26
from bzrlib.plugins.gtk.logview import LogView
26
27
 
27
28
from dialog import error_dialog
 
29
from revidbox import RevisionSelectionBox
28
30
 
29
31
 
30
32
class TagsWindow(gtk.Window):
158
160
    
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,
 
164
                              self.branch, self)
162
165
        response = dialog.run()
163
166
        if response != gtk.RESPONSE_NONE:
164
167
            dialog.hide()
269
272
 
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",
275
278
                                  parent=parent,
276
279
                                  flags=0,
277
 
                                  buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
 
280
                                  buttons=(gtk.STOCK_CANCEL, 
 
281
                                           gtk.RESPONSE_CANCEL))
278
282
        
279
283
        # Get arguments
 
284
        self._repository = repository
 
285
        self._revid = revid
280
286
        self._branch = branch
281
287
        
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)
291
295
        
292
296
        # Set callbacks
293
297
        self._button_add.connect('clicked', self._on_add_clicked)
294
 
        self._button_revid.connect('clicked', self._on_revid_clicked)
295
298
        
296
299
        # Set properties
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)
304
305
        
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()
317
316
    
318
 
    def _on_revid_clicked(self, widget):
319
 
        """ Browse for revision button clicked handler. """
320
 
        from revbrowser import RevisionBrowser
321
 
        
322
 
        revb = RevisionBrowser(self._branch, self)
323
 
        response = revb.run()
324
 
        if response != gtk.RESPONSE_NONE:
325
 
            revb.hide()
326
 
        
327
 
            if response == gtk.RESPONSE_OK:
328
 
                if revb.selected_revno is not None:
329
 
                    self._entry_revid.set_text(revb.selected_revid)
330
 
            
331
 
            revb.destroy()
332
 
    
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."))
338
322
            return
339
323
        
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()
342
326
        else:
343
 
            self.revid = self._entry_revid.get_text()
 
327
            self.revid = self.hbox_revid.get_revision_id()
344
328
        
345
329
        self.tagname = self._entry_name.get_text()
346
330