diff options
author | Rodrigo Pérez Fulloni <rodripf@gmail.com> | 2011-07-22 13:21:41 (GMT) |
---|---|---|
committer | Rodrigo Pérez Fulloni <rodripf@gmail.com> | 2011-07-22 13:21:41 (GMT) |
commit | 890de5b89fe7fdec9de837499b5640db38e79f40 (patch) | |
tree | c92ecfe223475312a5ad24753d7b5de340127a8b | |
parent | ef3742472f0746611365ba8de968427612845b9a (diff) |
Finished Open and Save for PCPC-Win
-rw-r--r-- | Control.py | 43 | ||||
-rw-r--r-- | data/ListaArchivos.py | 16 | ||||
-rw-r--r-- | data/Manager.py | 1 | ||||
-rw-r--r-- | objects/ListDialog.py | 33 |
4 files changed, 70 insertions, 23 deletions
@@ -22,6 +22,9 @@ from Suceso import Suceso from Manager import Manager from EstadoOperacion import EstadoOperacion from InputDialog import InputDialog +from ListDialog import ListDialog +from ListaArchivos import ListaArchivos + class Control: def deleteEvent(self, widget, event, data=None): @@ -35,6 +38,7 @@ class Control: self.hist = Historia() self.cuenta = None self.zoom = 2 + self.lis = ListaArchivos() #Contiene todo self.todo = gtk.HBox(False, 0) @@ -59,6 +63,8 @@ class Control: self.menu = Menu() self.menus.add(self.menu.agregar) + + #registro listeners self.menu.setDeshacerListeners((self.__deshacer,)) self.menu.setHistListeners((self.__moverHistoria,)) self.menu.setSumaListeners((self.__suma,)) @@ -68,16 +74,17 @@ class Control: self.menu.setZoomListeners((self.__moverZoom, self.cuenta.actualizarLineHor)) self.menu.setBorrarListeners((self.__agregarAHistCV, self.__numClic, self.__actualizarAdj)) - self.menu.setGuardarListeners((self.__mostrarGuardar,)) + - - #registro listeners self.num.setListener((self.__agregarAHistCV, self.__numClic, self.__actualizarAdj)) self.mngr = Manager((self.__digClic,)) - self.menu.setGuardarListeners((self.mantener,)) - self.menu.setAbrirListeners((self.cargar,)) + #self.menu.setGuardarListeners((self.mantener,)) #comment for PC + self.menu.setGuardarListeners((self.__mostrarGuardar,)) #uncomment for PC + #self.menu.setAbrirListeners((self.cargar,)) #comment for PC + self.menu.setAbrirListeners((self.__mostrarAbrir,)) + # Create a new window @@ -213,18 +220,22 @@ class Control: pass self.cuenta.setZoom(self.zoom) - + #<uncomment for PC> def __mostrarGuardar(self, obj, data): - #<uncomment for PC> + d = InputDialog() d.setListener((self.__guardarCB,)) d.show("Elije el nombre con el que deseas guardar esta operación:", "", "Nombre:") - #</uncomment for PC> + pass def __guardarCB(self, texto): - self.mantener(nombre=texto) #uncomment for PC - pass + self.lis.addToList(texto) + self.lis.guardar() + self.mantener(nombre=texto) + + #</uncomment for PC> + def mantener(self, obj=None, data=None, nombre=""): if (nombre != ""): @@ -238,6 +249,18 @@ class Control: self.mngr.setEstadoOperacion(estado) self.mngr.guardar() + #<uncomment for PC> + def __mostrarAbrir(self, obj, data): + self.lis.abrir() + dialog = ListDialog(self.lis.getList()) + dialog.setListener((self.__abrirCB,)) + dialog.show("Selecciona la operación para abrir", "", "Nombre", self.lis.getList()) + + def __abrirCB(self, nombre): + self.cargar(nombre=nombre) + #</uncomment for PC> + + def cargar(self, obj=None, data=None, nombre=""): if (nombre != ""): self.mngr.setArchivo(nombre) diff --git a/data/ListaArchivos.py b/data/ListaArchivos.py index 8df9f3a..256574d 100644 --- a/data/ListaArchivos.py +++ b/data/ListaArchivos.py @@ -3,9 +3,12 @@ __author__="rodripf" __date__ ="$20/07/2011 09:50:02 AM$" +import pickle + class ListaArchivos: def __init__(self): - self.lista = ["hola", "prueba1"] + self.lista = [] + self.abrir() def guardar(self): file1 = open("./data/saves/filelist.lst", "wb") @@ -17,9 +20,16 @@ class ListaArchivos: pikH = pickle.Unpickler(file1) self.lista = pikH.load() - def mostrar(self): + def addToList(self, element): + self.lista.append(element) + def getList(self): + return self.lista if __name__ == "__main__": - print "Hello World" + l = ListaArchivos() + l.guardar() + l.lista = "" + l.abrir() + print l.getList() diff --git a/data/Manager.py b/data/Manager.py index 4a6d9a1..4c88886 100644 --- a/data/Manager.py +++ b/data/Manager.py @@ -27,6 +27,7 @@ class Manager: pikO = pickle.Pickler(file2) pikO.dump(self.operacion) + def abrir(self): file1 = open("./data/saves/" + self.archivo + ".hst", "rb") pikH = pickle.Unpickler(file1) diff --git a/objects/ListDialog.py b/objects/ListDialog.py index 0d448e7..2c4abab 100644 --- a/objects/ListDialog.py +++ b/objects/ListDialog.py @@ -2,11 +2,16 @@ import gtk -class InputDialog: - def responseToDialog(self, list, dialog, response): - dialog.response(response) - for f in self.__listeners: - f(entry.get_text()) +class ListDialog: + def __init__(self, lista): + self.__listeners = [] + self.lista = lista + self.selected = "" + + def responseToChange(self, otra, treesel): + (model, iter) = treesel.get_selected() + self.selected = model.get_value(iter, 0) + def show(self, texto, texto2, columna, lista): #base this on a message dialog @@ -21,7 +26,7 @@ class InputDialog: self.treestore = gtk.TreeStore(str) # we'll add some data now - 4 rows with 3 child rows each - for el in lista: + for el in self.lista: p = self.treestore.append(None, [el]) # create the TreeView using treestore @@ -60,15 +65,23 @@ class InputDialog: #add it and show it dialog.vbox.pack_end(hbox, True, True, 0) dialog.show_all() - #go go go - + #go go go + treeselection = self.treeview.get_selection() + treeselection.set_mode(gtk.SELECTION_SINGLE) + + self.treeview.connect("cursor-changed", self.responseToChange, treeselection) + dialog.connect("response", self.responseToClose) dialog.run() dialog.destroy() + def responseToClose(self, par1, par2): + for f in self.__listeners: + f(self.selected) + def setListener(self, functions): - self.__listeners = functions + self.__listeners.extend(functions) def m (text): @@ -78,5 +91,5 @@ def m (text): if __name__ == '__main__': d = InputDialog() d.setListener((m,)) - print d.show("Esta es una prueba", "prueba2", "cosas", ["nombre", "nombre2"]) + d.show("Esta es una prueba", "prueba2", "cosas", ["nombre", "nombre2"]) gtk.main()
\ No newline at end of file |