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

Add options to viz treeview to not show the line graph, and to only show the main line.
Set the revision browser to use these options.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
from gi.repository import Gtk
2
 
 
3
 
 
4
 
RESPONSE_BREAK = 0
5
 
RESPONSE_CANCEL = Gtk.ResponseType.CANCEL
6
 
 
7
 
READ = "read"
8
 
WRITE = "write"
9
 
 
10
 
 
11
 
def acquire(branch, lock_type):
12
 
    if branch.get_physical_lock_status():
13
 
        dialog = LockDialog(branch)
14
 
        response = dialog.run()
15
 
        dialog.destroy()
16
 
 
17
 
        if response == RESPONSE_BREAK:
18
 
            branch.break_lock()
19
 
        else:
20
 
            return False
21
 
 
22
 
    if lock_type == READ:
23
 
        branch.lock_read()
24
 
    elif lock_type == WRITE:
25
 
        branch.lock_write()
26
 
 
27
 
    return True
28
 
 
29
 
 
30
 
def release(branch):
31
 
    if branch.get_physical_lock_status():
32
 
        dialog = LockDialog(branch)
33
 
        response = dialog.run()
34
 
        dialog.destroy()
35
 
 
36
 
        if response == RESPONSE_BREAK:
37
 
            branch.break_lock()
38
 
        elif response == RESPONSE_CANCEL:
39
 
            return False
40
 
 
41
 
    branch.unlock()
42
 
 
43
 
    return True
44
 
 
45
 
 
46
 
class LockDialog(Gtk.Dialog):
47
 
 
48
 
    def __init__(self, branch):
49
 
        super(LockDialog, self).__init__()
50
 
 
51
 
        self.branch = branch
52
 
 
53
 
        self.set_title('Lock Not Held')
54
 
 
55
 
        self.get_content_area().add(
56
 
            Gtk.Label(label=(
57
 
                'This operation cannot be completed as '
58
 
                'another application has locked the branch.')))
59
 
 
60
 
        self.add_button('Break Lock', RESPONSE_BREAK)
61
 
        self.add_button(Gtk.STOCK_CANCEL, RESPONSE_CANCEL)
62
 
 
63
 
        self.get_content_area().show_all()