Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Widgets.py
diff options
context:
space:
mode:
Diffstat (limited to 'Widgets.py')
-rw-r--r--Widgets.py77
1 files changed, 77 insertions, 0 deletions
diff --git a/Widgets.py b/Widgets.py
index 9e5082c..190717a 100644
--- a/Widgets.py
+++ b/Widgets.py
@@ -811,3 +811,80 @@ class ToolbarArchivo(Gtk.Toolbar):
self.insert(self.detener, -1)
self.show_all()
+
+class BuscadorTreeViews(Gtk.Box):
+ """
+ Busca en los treeviews el texto
+ ingresado en un entry.
+ """
+
+ def __init__(self, introspeccion):
+
+ Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
+
+ self.treeview_intro = introspeccion
+ self.intro_model = self.treeview_intro.get_model()
+ self.iters_introspeccion = {}
+ self.posibles = []
+
+ self.actual = 0
+
+ self.anterior = get_boton(Gtk.STOCK_GO_BACK, "Buscar anterior")
+ #self.anterior.connect("clicked", self.__buscar, False)
+
+ self.buscador = Gtk.Entry()
+ self.buscador.connect("activate", self.seleccionar_iter)
+
+ self.siguiente = get_boton(Gtk.STOCK_GO_FORWARD, "Buscar siguiente")
+ #self.siguiente.connect("clicked", self.__buscar, True)
+
+ self.pack_start(self.anterior, False, False, 0)
+ self.pack_start(self.buscador, True, True, 0)
+ self.pack_start(self.siguiente, False, False, 0)
+
+ self.actualizar_iters()
+ self.show_all()
+
+ def actualizar_iters(self):
+
+ self.iters_introspeccion = {}
+ iter = self.intro_model.get_iter_first()
+ if not iter: return
+ first_text = self.intro_model.get_value(iter, 0)
+
+ self.iters_introspeccion[first_text] = iter
+
+ while iter:
+ iter = self.intro_model.iter_next(iter)
+ if not iter: return
+ valor_iter = self.intro_model.get_value(iter, 0)
+ self.iters_introspeccion[valor_iter] = iter
+
+ def seleccionar_iter(self, widget, event=None):
+
+ self.actual = 0
+ texto = widget.get_text()
+ self.actualizar_iters()
+ self.posibles = []
+
+ for posible in self.iters_introspeccion:
+ if texto in posible:
+ self.posibles.append(self.iters_introspeccion[posible])
+
+ if self.posibles != []:
+ self.treeview_intro.get_selection().select_iter(self.posibles[0])
+
+ def __buscar(self, widget, siguiente):
+ if siguiente:
+ self.actual += 1
+ try:
+ self.treeview_intro.get_selection().select_iter(self.posibles[self.actual])
+ except:
+ self.actual = 0
+ else:
+ self.actual -= 1
+ try:
+ self.treeview_intro.get_selection().select_iter(self.posibles[self.actual])
+ except:
+ self.actual = len(self.posibles) - 11
+ \ No newline at end of file