/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 viz/branchwin.py

  • Committer: Daniel Schierbeck
  • Date: 2007-10-14 15:33:50 UTC
  • mto: This revision was merged to the branch mainline in revision 317.
  • Revision ID: daniel.schierbeck@gmail.com-20071014153350-ejjs1qt77w66fzzr
Refactored the GTK window code, creating a single base window class that handles keyboard events.

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
import pango
15
15
import treemodel
16
16
 
 
17
from bzrlib.plugins.gtk.window import Window
17
18
from bzrlib.osutils import format_date
18
19
 
19
20
from linegraph import linegraph, same_branch
21
22
from treemodel import TreeModel
22
23
 
23
24
 
24
 
class BranchWindow(gtk.Window):
 
25
class BranchWindow(Window):
25
26
    """Branch window.
26
27
 
27
28
    This object represents and manages a single window containing information
29
30
    """
30
31
 
31
32
    def __init__(self, parent=None):
32
 
        gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
 
33
        Window.__init__(self, parent=parent)
33
34
        self.set_border_width(0)
34
35
        self.set_title("Revision history")
35
36
 
36
 
        self._parent = parent
37
 
 
38
 
        self.connect('key-press-event', self._on_key_pressed)
39
 
 
40
37
        # Use three-quarters of the screen by default
41
38
        screen = self.get_screen()
42
39
        monitor = screen.get_monitor_geometry(0)
216
213
        self.loading_msg_box.hide()
217
214
        return False
218
215
    
219
 
    def _on_key_pressed(self, widget, event):
220
 
        """ Key press event handler. """
221
 
        keyname = gtk.gdk.keyval_name(event.keyval)
222
 
        func = getattr(self, '_on_key_press_' + keyname, None)
223
 
        if func:
224
 
            return func(event)
225
 
 
226
 
    def _on_key_press_w(self, event):
227
 
        if event.state & gtk.gdk.CONTROL_MASK:
228
 
            self.destroy()
229
 
            if self._parent is None:
230
 
                gtk.main_quit()
231
 
 
232
 
    def _on_key_press_q(self, event):
233
 
        if event.state & gtk.gdk.CONTROL_MASK:
234
 
            gtk.main_quit()
235
 
    
236
216
    def _treeselection_changed_cb(self, selection, *args):
237
217
        """Callback for when the treeview changes."""
238
218
        (model, selected_rows) = selection.get_selected_rows()
293
273
    def show_diff(self, branch, revid, parentid):
294
274
        """Open a new window to show a diff between the given revisions."""
295
275
        from bzrlib.plugins.gtk.diff import DiffWindow
296
 
        window = DiffWindow()
 
276
        window = DiffWindow(parent=self)
297
277
        (parent_tree, rev_tree) = branch.repository.revision_trees([parentid, 
298
278
                                                                   revid])
299
279
        description = revid + " - " + branch.nick