42
42
Class to create the import/export watch dialog.
45
def __init__(self, specto, action):
45
def __init__(self, specto, notifier):
46
46
self.specto = specto
47
self.notifier = notifier
48
50
gladefile= self.specto.PATH + 'glade/import_export.glade'
49
51
windowname= "import_export"
50
52
self.wTree=gtk.glade.XML(gladefile,windowname, self.specto.glade_gettext)
51
self.model = gtk.ListStore(gobject.TYPE_BOOLEAN, gtk.gdk.Pixbuf, gobject.TYPE_STRING, gobject.TYPE_INT, gobject.TYPE_INT)
53
self.export_watch=self.wTree.get_widget("import_export")
54
self.export_watch.set_title(_("Export watches"))
55
self.wTree.get_widget("button_action").set_label(_("Export watches"))
57
self.model = gtk.ListStore(gobject.TYPE_BOOLEAN, gtk.gdk.Pixbuf, gobject.TYPE_STRING, gobject.TYPE_INT, gobject.TYPE_STRING)
58
self.new_watch_db = {}
55
61
dic= { "on_button_select_all_clicked": self.select_all,
56
62
"on_button_deselect_all_clicked": self.deselect_all,
81
78
self.renderer = gtk.CellRendererToggle()
82
79
self.renderer.set_property("activatable", True)
83
80
self.renderer.connect("toggled", self.check_clicked, self.model)
84
self.columnCheck = gtk.TreeViewColumn(_("Active"), self.renderer, active=0)
85
#self.columnCheck.connect("clicked", self.sort_column_active)
86
#self.columnCheck.set_sort_column_id(0)
87
#self.column.set_resizable(True)
81
self.columnCheck = gtk.TreeViewColumn(_("Select"), self.renderer, active=0)
88
82
self.treeview.append_column(self.columnCheck)
91
85
self.renderer = gtk.CellRendererPixbuf()
92
86
self.columnIcon = gtk.TreeViewColumn(_("Type"), self.renderer, pixbuf=1)
93
#self.columnIcon.set_clickable(True)
94
#self.columnIcon.connect("clicked", self.sort_column_type)
95
87
self.treeview.append_column(self.columnIcon)
98
90
self.renderer = gtk.CellRendererText()
99
#self.renderer.set_property("editable", True)
100
#self.renderer.connect('edited', self.change_entry_name)
101
91
self.columnTitel = gtk.TreeViewColumn(_("Name"), self.renderer, markup=2)
102
#self.columnTitel.connect("clicked", self.sort_column_name)
103
92
self.columnTitel.set_expand(True)
104
93
self.columnTitel.set_resizable(True)
105
#self.columnTitel.set_sort_column_id(2)
106
94
self.treeview.append_column(self.columnTitel)
118
106
self.columnType.set_visible(False)
119
107
#self.columnType.set_sort_column_id(4)
120
108
self.treeview.append_column(self.columnType)
123
for i in self.specto.watch_db:
124
watch = self.specto.watch_db[i]
125
self.add_watch_entry(watch.name, watch.type, watch.id)
110
for watch in self.specto.watch_db:
111
if watch.deleted == False:
112
self.add_watch_entry(watch.id)
128
114
def select_all(self, widget):
129
for i in self.specto.watch_db:
130
self.model.set_value(self.iter[i], 0, 1)
115
db = self.specto.watch_db
118
if watch.deleted == False:
119
self.model.set_value(self.iter[watch.id], 0, 1)
132
121
def deselect_all(self, widget):
133
for i in self.specto.watch_db:
134
self.model.set_value(self.iter[i], 0, 0)
122
db = self.specto.watch_db
125
if watch.deleted == False:
126
self.model.set_value(self.iter[watch.id], 0, 0)
136
128
def do_action(self, widget):
137
if self.action == True:
140
self.save = Save_dialog(self.specto, False, self.get_selected_watches())
129
self.export_watch.hide_all()
130
self.save = Save_dialog(self.specto, None, False, self.get_selected_watches())
142
132
def delete_event(self, widget, *args):
143
133
""" Destroy the window. """
144
self.import_watch.destroy()
134
self.export_watch.destroy()
147
137
def get_selected_watches(self):
148
138
selected_watches_db = {}
150
for i in self.specto.watch_db:
151
if self.model.get_value(self.iter[i], 0) == True:
152
id = len(selected_watches_db)
153
selected_watches_db[id] = self.specto.watch_db[i]
140
watch_db = self.specto.watch_db
142
for watch in watch_db:
143
if watch.deleted == False:
144
if self.model.get_value(self.iter[watch.id], 0) == True:
145
selected_watches_db[i] = watch
154
147
return selected_watches_db
157
def add_watch_entry(self, name, type, id):
150
def add_watch_entry(self, id):
158
151
""" Add an entry to the notifier list. """
161
icon = self.specto.icon_theme.load_icon("error", 22, 0)
162
if type == 0:#website
163
icon = self.specto.icon_theme.load_icon("applications-internet", 22, 0)
164
elif type == 1:#email
165
icon = self.specto.icon_theme.load_icon("emblem-mail", 22, 0)
166
elif type == 2:#file/folder
167
icon = self.specto.icon_theme.load_icon("folder", 22, 0)
168
elif type == 3:#system process
169
icon = self.specto.icon_theme.load_icon("applications-system", 22, 0)
171
icon = self.specto.icon_theme.load_icon("network-transmit-receive", 22, 0)
173
self.iter[i] = self.model.insert_before(None, None)
174
self.model.set_value(self.iter[i], 0, 0)
175
self.model.set_value(self.iter[i], 1, icon)#self.specto.notifier.make_transparent(icon, 50))#does not need transparency here
176
self.model.set_value(self.iter[i], 2, name)
177
self.model.set_value(self.iter[i], 3, id)
178
self.model.set_value(self.iter[i], 4, type)
179
#self.watches = self.watches + 1 #this line was in notifier.py. Should it be here also?
152
watch = self.specto.watch_db[id]
153
entry_name = watch.name.replace("&", "&")
154
icon = self.notifier.get_icon(watch.icon, 50, False)
155
self.iter[id] = self.model.insert_before(None, None)
156
self.model.set_value(self.iter[id], 0, 0)
157
self.model.set_value(self.iter[id], 1, icon)#self.specto.notifier.make_transparent(icon, 50))#does not need transparency here
158
self.model.set_value(self.iter[id], 2, entry_name)
159
self.model.set_value(self.iter[id], 3, watch.id)
160
self.model.set_value(self.iter[id], 4, watch.type)
162
def set_new_watch_db(self, watch_db):
163
self.new_watch_db = watch_db
181
165
def check_clicked(self, object, path, model):
182
166
""" Call the main function to start/stop the selected watch. """