84
85
class MonitorWindow(Gtk.VBox):
89
selected_monitor_view = None
86
91
def __init__(self):
87
92
super(MonitorWindow, self).__init__()
90
self.pack_start(hbox, True, True, 12)
94
self.monitor_dialog = FilterManagerDialog()
96
self.hbox = Gtk.HBox()
97
self.pack_start(self.hbox, True, True, 12)
92
99
list_vbox = Gtk.VBox()
93
hbox.pack_start(list_vbox, False, False, 0)
100
self.hbox.pack_start(list_vbox, False, False, 0)
95
102
monitor_vbox = Gtk.VBox()
96
103
list_vbox.pack_start(monitor_vbox, True, True, 0)
97
self.monitors = Gtk.ListStore(int, str)
104
self.monitors = Gtk.ListStore(int, str, bool)
98
105
self.monitor_tree = Gtk.TreeView(self.monitors)
106
self.monitor_tree.connect("cursor-changed", self.on_treeview_selected)
99
107
self.monitor_tree.set_size_request(200, 600)
100
108
self.monitor_tree.set_border_width(1)
101
109
self.monitor_tree.set_visible(True)
132
140
filter_remove = Gtk.ToolButton.new(None, "Remove Filter")
133
141
filter_remove.set_icon_name("list-remove-symbolic")
142
filter_remove.connect("clicked", self.on_remove_clicked)
134
143
self.toolbar.insert(filter_remove, 1)
136
145
def on_add_clicked(self, button):
146
res = self.monitor_dialog.run()
147
self.monitor_dialog.hide()
148
if res == Gtk.ResponseType.OK:
149
index, entry, is_predefined = self.monitor_dialog.get_selected_entry()
150
if entry is not None:
151
if (is_predefined and index in self.monitor_builtin.keys()) or \
152
(not is_predefined and index in self.monitor_custom.keys()):
155
self.monitors.append([index, entry[0], is_predefined])
156
# Add it in the list of ids
157
monitor_inst = MonitorViewer()
158
monitor_inst.map(index, is_predefined)
160
self.monitor_builtin[index] = monitor_inst
162
self.monitor_custom[index] = monitor_inst
139
164
def on_remove_clicked(self, button):
140
print "Remove Clicked"
165
selection = self.monitor_tree.get_selection()
166
if selection is not None:
167
model, _iter = selection.get_selected()
168
if _iter is not None:
169
index = model.get(_iter, 0)[0]
170
is_predefined = model.get(_iter, 2)[0]
171
self.monitors.remove(_iter)
173
self.monitor_builtin.pop(index)
175
self.monitor_custom.pop(index)
177
if self.selected_monitor_view is not None:
178
self.hbox.remove(self.selected_monitor_view)
179
self.selected_monitor_view= None
182
def on_treeview_selected(self, treeview):
183
selection = self.monitor_tree.get_selection()
184
if selection is not None:
185
model, _iter = selection.get_selected()
186
if _iter is not None:
187
index = model.get(_iter, 0)[0]
188
is_predefined = model.get(_iter, 2)[0]
189
monitor_viewer = self.monitor_builtin[index] if is_predefined \
190
else self.monitor_custom[index]
192
if self.selected_monitor_view is not None:
193
self.hbox.remove(self.selected_monitor_view)
194
self.hbox.pack_start(monitor_viewer, True, True, 12)
195
self.selected_monitor_view = monitor_viewer
143
197
class ExplorerWindow(Gtk.VBox):