/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz
231 by Jelmer Vernooij
Add RevisionSelectionBox widget, use in TagDialog.
1
# Copyright (C) 2007 by Szilveszter Farkas (Phanatic) <szilveszter.farkas@gmail.com>
2
# Copyright (C) 2007 by Jelmer Vernooij <jelmer@samba.org>
3
#
4
# This program is free software; you can redistribute it and/or modify
5
# it under the terms of the GNU General Public License as published by
6
# the Free Software Foundation; either version 2 of the License, or
7
# (at your option) any later version.
8
#
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
#
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
16
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
18
try:
19
    import pygtk
20
    pygtk.require("2.0")
21
except:
22
    pass
23
24
import gtk
25
26
class RevisionSelectionBox(gtk.HBox):
724 by Jelmer Vernooij
Fix formatting, imports.
27
231 by Jelmer Vernooij
Add RevisionSelectionBox widget, use in TagDialog.
28
    def __init__(self, branch):
29
        super(RevisionSelectionBox, self).__init__()
30
        self._branch = branch
31
        self._entry_revid = gtk.Entry()
32
        self._button_revid = gtk.Button('')
33
        self._button_revid.set_image(gtk.image_new_from_stock(
34
            gtk.STOCK_OPEN, gtk.ICON_SIZE_BUTTON))
35
        self.pack_start(self._entry_revid, True, True)
724 by Jelmer Vernooij
Fix formatting, imports.
36
        self.pack_start(self._button_revid, False, False)
231 by Jelmer Vernooij
Add RevisionSelectionBox widget, use in TagDialog.
37
38
        self._button_revid.connect('clicked', self._on_revid_clicked)
39
40
    def _on_revid_clicked(self, widget):
41
        """ Browse for revision button clicked handler. """
42
        from revbrowser import RevisionBrowser
724 by Jelmer Vernooij
Fix formatting, imports.
43
231 by Jelmer Vernooij
Add RevisionSelectionBox widget, use in TagDialog.
44
        # FIXME: Should specific parent window here - how to get to it?
45
        # JRV 20070715
46
        revb = RevisionBrowser(self._branch)
47
        response = revb.run()
48
        if response != gtk.RESPONSE_NONE:
49
            revb.hide()
724 by Jelmer Vernooij
Fix formatting, imports.
50
231 by Jelmer Vernooij
Add RevisionSelectionBox widget, use in TagDialog.
51
            if response == gtk.RESPONSE_OK:
52
                if revb.selected_revno is not None:
53
                    self._entry_revid.set_text(revb.selected_revid)
724 by Jelmer Vernooij
Fix formatting, imports.
54
231 by Jelmer Vernooij
Add RevisionSelectionBox widget, use in TagDialog.
55
            revb.destroy()
56
57
    def get_revision_id(self):
58
        if len(self._entry_revid.get_text()) == 0:
59
            return None
60
        else:
61
            return self._entry_revid.get_text()