3
# creates a bookmarks view
15
class Bookmarks_Widget:
20
def menuaction_handler_scan(self, parm1):
21
handlers.scan(self, self.mainwindow)
23
def menuaction_handler_umount(self, parm1):
24
self.mainwindow.umount()
26
def menuaction_handler_mount(self, parm1):
27
handlers.mount(self, self.mainwindow)
29
def menuaction_handler_filemngr(self, parm1):
30
handlers.filemanager(self, self.mainwindow)
32
def menuaction_handler_remove(self, parm1):
33
handlers.remove(self, self.mainwindow)
35
def widget_popup(self, type, mounted):
37
separator = gtk.SeparatorMenuItem()
38
if type == "host_menu":
39
item1 = gtk.ImageMenuItem("SCAN")
40
item1.connect("activate", self.menuaction_handler_scan)
41
item2 = gtk.ImageMenuItem(gtk.STOCK_REMOVE)
42
item2.connect("activate", self.menuaction_handler_remove)
45
if type == "share_menu":
47
item1 = gtk.ImageMenuItem("UNMOUNT")
48
item1.connect("activate", self.menuaction_handler_umount)
49
item2 = gtk.ImageMenuItem("FILEMANAGER")
50
item2.connect("activate", self.menuaction_handler_filemngr)
54
item1 = gtk.ImageMenuItem("MOUNT")
55
item1.connect("activate", self.menuaction_handler_mount)
60
def select_on_click(self, treeview):
61
treestore = treeview.get_selection()
62
(model, iter) = treestore.get_selected()
63
if self.if_popup == 1:
64
if model.iter_parent(iter) == None:
65
menu = self.widget_popup("host_menu", False)
67
mountpoint = model.get_value(iter, 3)
69
menu = self.widget_popup("share_menu", True)
71
menu = self.widget_popup("share_menu", False)
73
menu.popup(None, None, None, 3, gtk.get_current_event_time())
77
def button_clicked(self, widget, event):
78
if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
79
treeselection = self.treeview.get_selection()
80
(model, iter) = treeselection.get_selected()
82
path = model.get_path(iter)
83
column = self.treeview.get_column(0)
84
if model.iter_parent(iter) == None:
85
handlers.scan(self, self.mainwindow)
87
handlers.mount(self, self.mainwindow)
88
if event.type == gtk.gdk.BUTTON_PRESS and event.button == 3:
93
self.column_names = ['Name', 'Comment', 'Mountpoint']
98
# we'll add some data now - a list of our hosts
99
self.hostlist = readconfig.readconfig()
102
for parent in self.hostlist:
103
iter = self.treestore.append(None, [ self.hostlist[c], 'host', "", ""])
104
self.treestore.set(iter, 2, '')
107
# create the TreeView using treestore
108
tvcolumn = [None] * len(self.column_names)
110
# create 3 TreeViewColumns to display the data
111
cell = gtk.CellRendererText()
112
cell1 = gtk.CellRendererText()
113
cellpb = gtk.CellRendererPixbuf()
114
tvcolumn[0] = gtk.TreeViewColumn(self.column_names[0])
115
self.treeview.append_column(tvcolumn[0])
117
tvcolumn[0].pack_start(cellpb, False)
118
tvcolumn[0].pack_start(cell, True)
119
tvcolumn[0].set_attributes(cellpb, stock_id=1)
120
tvcolumn[0].set_attributes(cell, text=0)
122
tvcolumn[0].set_resizable(True)
123
for n in range (1, len(self.column_names)):
124
tvcolumn[n] = gtk.TreeViewColumn(self.column_names[n])
125
self.treeview.append_column(tvcolumn[n])
126
tvcolumn[n].pack_start(cell1, True)
127
tvcolumn[n].set_attributes(cell1, text=n+1)
128
tvcolumn[n].set_resizable(True)
130
self.treeview.set_expander_column(self.treeview.get_column(0))
133
scrolledwindow = gtk.ScrolledWindow()
134
scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
135
scrolledwindow.add(self.treeview)
137
# make it searchable and connect popups
138
self.treeview.set_search_column(1)
139
self.treeview.connect("cursor-changed", self.select_on_click)
140
self.treeview.connect("button_press_event", self.button_clicked)
142
return scrolledwindow, self.treestore, self.treeview
144
def __init__(self, MainWindow):
145
# create a TreeStore with one string column to use as the model
146
self.treestore = gtk.TreeStore(str, str, str, str)
147
self.treeview = gtk.TreeView(self.treestore)
148
self.mainwindow = MainWindow