diff options
author | flavio <fdanesse@gmail.com> | 2012-04-25 16:08:24 (GMT) |
---|---|---|
committer | flavio <fdanesse@gmail.com> | 2012-04-25 16:08:24 (GMT) |
commit | 8b3669916ca63b9b4237eaddd369d0dd80dbd767 (patch) | |
tree | b76568ff1fb1a2e166e0df7bdc6ef3fd1f74bbce | |
parent | 40c72c67b36bd80a4dd936a8bc889526dd62b2af (diff) |
Agrego Marcar Favorito
-rw-r--r-- | CeibalNotifica.py | 54 | ||||
-rw-r--r-- | prueba.db | bin | 2048 -> 2048 bytes | |||
-rw-r--r-- | store.py | 2 |
3 files changed, 46 insertions, 10 deletions
diff --git a/CeibalNotifica.py b/CeibalNotifica.py index 18d949d..2669dc7 100644 --- a/CeibalNotifica.py +++ b/CeibalNotifica.py @@ -38,6 +38,7 @@ class CeibalNotifica(gtk.Window): self.listore_model = None self.modelsort = None self.notify_store = None + self.info_label = None self.set_layout() self.show_all() @@ -45,6 +46,7 @@ class CeibalNotifica(gtk.Window): self.connect("delete_event", self.delete_event) self.notify_store.connect("show_notify", self.show_notify) self.notify_store.connect("delete_notify", self.delete_notify) + self.notify_store.connect("marcar_notify", self.marcar_notify) self.load_notify() self.notify_store.columns_autosize() @@ -63,29 +65,48 @@ class CeibalNotifica(gtk.Window): scroll = gtk.ScrolledWindow() scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scroll.add_with_viewport(self.notify_store) - hpanel.pack1(scroll, resize=False, shrink=True) + hpanel.pack1(scroll, resize = False, shrink = True) scroll = gtk.ScrolledWindow() scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scroll.add_with_viewport(self.text_view) - hpanel.pack2(scroll, resize=False, shrink=False) - hpanel.show_all() + hpanel.pack2(scroll, resize = False, shrink = True) - self.add(hpanel) + vbox = gtk.VBox() + self.info_label = gtk.Label("") + vbox.pack_start(hpanel, True, True, 0) + vbox.pack_start(self.info_label, False, False, 0) + + hpanel.show_all() + self.add(vbox) - def show_notify(self, widget, text): + def show_notify(self, widget, text, info): self.text_buffer.set_text(text) + self.info_label.set_text(info) def delete_notify(self, widget, path): iter = widget.get_model().get_iter(path) id_registro = int(widget.get_model().get_value(iter, 0)) self.store.db.remove_message(id_registro) - self.load_notify() + iter = self.listore_model.get_iter(path) + self.listore_model.remove(iter) + self.text_buffer.set_text('') + self.info_label.set_text('') + + def marcar_notify(self, widget, path): + iter = widget.get_model().get_iter(path) + id_registro = int(widget.get_model().get_value(iter, 0)) + marca = not self.store.db.is_fav(id_registro) + self.store.db.set_fav(id_registro, fav=marca) + iter = self.listore_model.get_iter(path) + self.listore_model.set_value(iter, 7, int(self.store.db.is_fav(id_registro))) + self.info_label.set_text('') def load_notify(self): notificaciones = self.store.db.get_messages([]) self.listore_model.clear() self.text_buffer.set_text('') + self.info_label.set_text('') for notif in notificaciones: self.add_notify(notif) @@ -117,8 +138,10 @@ set_fav(self, id_msg, fav=True) marcará favorito. remove_message(self, id_msg) borra un registro en la base.''' class Notify_Store(gtk.TreeView): __gsignals__ = {"show_notify": (gobject.SIGNAL_RUN_FIRST, - gobject.TYPE_NONE, (gobject.TYPE_STRING, )), + gobject.TYPE_NONE, (gobject.TYPE_STRING, gobject.TYPE_STRING)), "delete_notify": (gobject.SIGNAL_RUN_FIRST, + gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT, )), + "marcar_notify": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT, ))} def __init__(self, model): gtk.TreeView.__init__(self, model) @@ -153,7 +176,12 @@ class Notify_Store(gtk.TreeView): def func_selections(self, selection, model, path, is_selected, user_data): iter = self.get_model().get_iter(path) - self.emit("show_notify", self.get_model().get_value(iter, 3)) + texto = self.get_model().get_value(iter, 3) + nid = self.get_model().get_value(iter, 0) + lanzamiento = self.get_model().get_value(iter, 4) + fav = bool(int(self.get_model().get_value(iter, 7))) + info = "id: %s Lanzamiento: %s Favorito: %s" % (nid, lanzamiento, fav) + self.emit("show_notify", texto, info) return True def handle_click(self, widget, event): @@ -177,11 +205,19 @@ class Notify_Store(gtk.TreeView): eliminar = gtk.MenuItem("Eliminar Notificación.") menu.append(eliminar) eliminar.connect_object("activate", self.emit_delete_notify, path) + iter = self.get_model().get_iter(path) + fav = bool(int(self.get_model().get_value(iter, 7))) + marcar = gtk.MenuItem("Marcar Como Favorito.") + if fav: marcar = gtk.MenuItem("Desmarcar Como Favorito.") + menu.append(marcar) + marcar.connect_object("activate", self.emit_marcar_notify, path) menu.show_all() gtk.Menu.popup(menu, None, None, None, boton, tiempo) def emit_delete_notify(self, path): - self.emit("delete_notify", path) + self.emit("delete_notify", path) + def emit_marcar_notify(self, path): + self.emit("marcar_notify", path) if __name__ == "__main__": CeibalNotifica() Binary files differ@@ -89,7 +89,7 @@ class Db: def is_fav(self, id_msg): fav = self.run_query("select fav from notifications where id=%i" % id_msg) - return fav[0]['fav'] + return bool(int(fav[0]['fav'])) def run_query(self, query): """ |