Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorflavio <fdanesse@gmail.com>2012-04-25 16:08:24 (GMT)
committer flavio <fdanesse@gmail.com>2012-04-25 16:08:24 (GMT)
commit8b3669916ca63b9b4237eaddd369d0dd80dbd767 (patch)
treeb76568ff1fb1a2e166e0df7bdc6ef3fd1f74bbce
parent40c72c67b36bd80a4dd936a8bc889526dd62b2af (diff)
Agrego Marcar Favorito
-rw-r--r--CeibalNotifica.py54
-rw-r--r--prueba.dbbin2048 -> 2048 bytes
-rw-r--r--store.py2
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()
diff --git a/prueba.db b/prueba.db
index 720ed41..d15411b 100644
--- a/prueba.db
+++ b/prueba.db
Binary files differ
diff --git a/store.py b/store.py
index 6075c4e..7b99290 100644
--- a/store.py
+++ b/store.py
@@ -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):
"""