/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz
1 by Scott James Remnant
Commit the first version of bzrk.
1
# -*- coding: UTF-8 -*-
2
"""Application object.
3
4
This module contains the application object that manages the windows
5
on screen, and can be used to create new windows of various types.
6
"""
7
8
__copyright__ = "Copyright © 2005 Canonical Ltd."
9
__author__    = "Scott James Remnant <scott@ubuntu.com>"
10
11
12
import pygtk
13
pygtk.require("2.0")
14
15
import gtk
16
17
from branchwin import BranchWindow
149 by Jelmer Vernooij
Move diff to top-level directory as well.
18
from bzrlib.plugins.gtk.diff import DiffWindow
1 by Scott James Remnant
Commit the first version of bzrk.
19
20
21
class BzrkApp(object):
22
    """Application manager.
23
24
    This object manages the bzrk application, creating and managing
25
    individual branch windows and ensuring the application exits when
26
    the last window is closed.
27
    """
28
40 by David Allouche
remove --robust, pyflakes fixes, update README
29
    def show(self, branch, start, maxnum):
1 by Scott James Remnant
Commit the first version of bzrk.
30
        """Open a new window to show the given branch."""
10 by Scott James Remnant
Add an extra window type, clicking the little icons next to a parent
31
        window = BranchWindow(self)
40 by David Allouche
remove --robust, pyflakes fixes, update README
32
        window.set_branch(branch, start, maxnum)
10 by Scott James Remnant
Add an extra window type, clicking the little icons next to a parent
33
        window.connect("destroy", self._destroy_cb)
34
        window.show()
35
36
    def show_diff(self, branch, revid, parentid):
37
        """Open a new window to show a diff between the given revisions."""
51 by Jelmer Vernooij
Rework some of the parameters to DiffWindow.set_diff() to be
38
        window = DiffWindow()
39
        rev_tree = branch.repository.revision_tree(revid)
40
        parent_tree = branch.repository.revision_tree(parentid)
41
        description = revid + " - " + branch.nick
42
        window.set_diff(description, rev_tree, parent_tree)
1 by Scott James Remnant
Commit the first version of bzrk.
43
        window.show()
44
45
    def _destroy_cb(self, widget):
46
        """Callback for when a window we manage is destroyed."""
17 by Scott James Remnant
stop managing windows so much, just quit when the viz window is closed
47
        self.quit()
1 by Scott James Remnant
Commit the first version of bzrk.
48
49
    def main(self):
50
        """Start the GTK+ main loop."""
51
        gtk.main()
52
53
    def quit(self):
54
        """Stop the GTK+ main loop."""
55
        gtk.main_quit()