def getStringMax(self, catalog=Catalog()): size = catalog.getSize() idMax = 0 nameMax = 0 timeMax = 0 descriptionMax = 0 directorMax = 0 categoryMax = 0 self.cleanMax() for i in range(size): timeManager = TimeManager() movie = catalog.getMovieFromIndex(i) idMovie, name, time, description, director, category = self.getConten( movie) time = str(timeManager.convertTimeToSeconds(time)) if (len(name) > self.nameMax): self.nameMax = len(name) if (len(idMovie) > self.idMax): self.idMax = 4 if (len(time) > self.timeMax): self.timeMax = len(time) if (len(description) > self.descriptionMax): self.descriptionMax = 32 if (len(director) > self.directorMax): self.directorMax = len(director) if (len(category) > self.categoryMax): self.categoryMax = len(category) return True
def getDataString(self, catalog=Catalog()): timeManager = TimeManager() size = catalog.getSize() vector = [] for i in range(size): movie = catalog.getMovieFromIndex(i) idMovie, name, formate, description, director, category = self.getConten( movie) time = timeManager.convertTimeToSeconds(formate) if (len(description) > 29): description = description[0:29] description += "..." if (len(name) > 37): name = name[0:37] name += "..." time = "%s%s" % (time, " seg.") spaceId, spaceName, spaceTime, spaceDescription, spaceDirector, spaceCategory = self.getSpaces( movie) data = "%s%s\t| %s%s\t| %s%s|%s%s\t| %s%s\t| %s%s\t " % ( idMovie, " " * spaceId, name, " " * spaceName, time, " " * spaceTime, description, " " * spaceDescription, category, " " * spaceCategory, director, " " * spaceDirector) vector.append(data) if (i == 0): self.lenString = len(data) + 60 return vector
def __init__(self): self.files = [] self.timeManager = TimeManager() self.totaltime = 0 self.table = WindowTable() self.uiGraph = WindowGraph() self.typeWork = "" self.logJson = LogJSON()
def getSpaces(self, movie): if (isinstance(movie, Movie)): timeManager = TimeManager() idMovie, name, time, description, director, category = self.getConten( movie) time = str(timeManager.convertTimeToSeconds(time)) spaceId = self.idMax - len(idMovie) spaceName = 32 - len(name) spaceTime = self.timeMax - len(time) spaceDescription = 32 - len(description) spaceDirector = self.directorMax - len(director) spaceCategory = 20 - len(category) return spaceId, spaceName + 4, spaceTime + 4, spaceDescription, spaceDirector + 4, spaceCategory + 4
def __init__(self, parent=None): super(WindowAdd, self).__init__(parent) self.uiAdd = Ui_MainWindow() self.uiAdd.setupUi(self) self.centerWindow() # Instancia de los dialogos self.uiDialogConfirmationAdd = DialogConfirm() self.uiDialogConfirmationCancel = DialogConfirm() self.uiDialogError = DialogError() # Eventos de los botones de la pantalla Agregar. self.uiAdd.btnAgregar.clicked.connect(self.openDialogConfirmationAdd) self.uiAdd.btnCancelar.clicked.connect( self.openDialogConfirmationCancel) # Eventos de los botones de los dialogBox self.uiDialogConfirmationAdd.uiDialog.btnConfirm.clicked.connect( self.eventAddOrEdit) self.uiDialogConfirmationAdd.uiDialog.btnCancel.clicked.connect( self.closeDialogConfirmationAdd) self.uiDialogConfirmationCancel.uiDialog.btnConfirm.clicked.connect( self.closeDialogConfirmationCancel) self.uiDialogConfirmationCancel.uiDialog.btnCancel.clicked.connect( self.closeDialogConfirmationCancel) self.uiDialogError.uiDialogError.btnConfirmar.clicked.connect( self.closeDialogError) # Variables self.idEdit = -1 self.idRemove = -1 self.add = True self.edit = False self.remove = False #Otras instancias self.table = TableAsscii() self.timeManager = TimeManager() self.memory = MemoryManager() self.catalog = Catalog() self.memory.getFromMemory() self.catalog = self.memory.getCatalogFromMemory()
class LogGenerator: """ Nombre: LogGenerator Atributos: self.files= Lista que contiene el registro de los archivos procesados. self.timeManager = Instancia de la clase TimeManager para gestionar el tiempo. self.totaltime = 0 Tiempo total de ejecución. self.table = GUI que muestra la tabla de los archivos procesados. self.uiGraph = GUI que muestra la imagen del grafo. self.typeWork = Tipo de tarea realizada ("Encrypt/Decript) self.logJson = Instancia de la clase logJson la cual maneja el registro en un JSON. Descripción: Genera registros en tablas HTML, Tablas de QT5, Diccionarios/ JSON. """ def __init__(self): self.files = [] self.timeManager = TimeManager() self.totaltime = 0 self.table = WindowTable() self.uiGraph = WindowGraph() self.typeWork = "" self.logJson = LogJSON() def getDataFromJSON(self, route=""): """ Nombre: getDataFromJSON Parametros: route: Ruta del archivo JSON. Descripción: Obtiene la data de un archivo JSON con el contenido del grafo. Retorno: True o False. """ try: with open(route) as file: self.logJson.graph.graph = json.load(file) file.close() except: return False return True def addToFileList(self, ubicationFile, processingTime=0): """ Nombre: addToFileList Parametros: ubicationFile: Ubicación del archivo a agregar. processingTime: Tiempo que tarda el archivo en procesarce. Descripción: Agrega en una lista un registro con los datos de procesamiento del archivo. nombre, tamaño y tiempo que tardo en encriptar. Retorno: No retorna. """ nameFile = self.getNameFile(ubicationFile) sizeFile = os.path.getsize(ubicationFile) / 1000 dataFile = [nameFile, processingTime, sizeFile] self.files.append(dataFile) def resume(self): """ Nombre: resume Parametro: typeWork: Tipo de trabajo reaalizado, Encriptado/ Desencriptado. Descripción: Genera una tabla html con el registro de todos los archivos procesados en la lista. Genera una tabla QT5 con el registro de todos los archivos procesados. Retorno: No retorna. """ self.generateTableProcess() self.generateTableFilesProcess() self.generateLogHtml(self.typeWork) self.generateLogJSON() self.files.clear() self.logJson.graph.graph.clear() def generateTableProcess(self): """ Nombre: generateTableProcess Parametros: No recibe parametros. Descripción: Genera una tabla QT con la información general de todos los archivos procesasodos. Retorno: Retorna True. """ filesProcessed = "%s Archivos" % len(self.files) timeProcess = self.timeManager.timeToString(0, self.totaltime) sizeFilesProcessed = round(self.getFileSizeProcess(), 2) strSize = self.getStringFileSize(str(sizeFilesProcessed)) self.table.uiTable.lblProcess.setText("Proceso ejecutado: %s" % self.typeWork) self.table.generateTableProcess(filesProcessed, timeProcess, strSize) return True def generateTableFilesProcess(self): """ Nombre: generateTableFilesProcess Parametros: No recibe parametros. Descripción: Genera una tabla QT5 con todos los elementos de la lista. Retorno: No retorna. """ self.table.uiTable.lblFileProcess.setText("Archivos: %ss" % self.typeWork) self.table.uiTable.tblFileProcess.setRowCount(len(self.files) + 1) self.table.uiTable.tblFileProcess.setColumnCount(3) index = 1 for element in self.files: name = "%s" % element[0] time = "%s" % self.timeManager.getTimeProcessFile(0, element[1]) strSize = self.getStringFileSize(str(element[2])) size = "%s KB" % strSize self.table.generateTableFilesProcess(name, time, size, index) index += 1 def generateLogJSON(self): """ Nombre: generateLogJSON Parametros: No recibe parametros. Descripción: Genera un regisro de los archivos procesados en un archivo JSON. Retorno: Retoena True. """ nameFile = "%s.json" % self.getCurrentLogName() content = self.logJson.graph.graph f = open("Nucleo/LOGS/%s" % nameFile, 'w', encoding='utf8') json.dump(content, f, indent=4) f.close() self.logJson.createImgGraph() self.logJson.graphNx.g = nx.DiGraph() return True def generateLogHtml(self, TypeWork=""): """ Nombre: generateLogHtml Parametros: TypeWork: Tipo de trabajo a realizar ('Encriptado/Desencriptado') Descripción: Genera una tabla HTMl con todos los archivos procesados en la lista. Retorno: No retorna. """ nameFile = "%s.html" % self.getCurrentLogName() f = "Nucleo/LOGS/%s" % nameFile f = open(f, 'w') tableProcess = self.getTableProcessHtml() tableFilesProcess = self.getContentTableHtml() title1 = "<h2>Proceso ejecutado: %s</h2>" % TypeWork title2 = "<h2>Archivos %s</h>" % TypeWork content = "%s<br>%s<br>%s<br>%s" % (title1, tableProcess, title2, tableFilesProcess) f.write(content) f.close() def getContentProcessHtml(self): """ Nombre: getContentProcessHtml Parametros: No recibe parametros. Descripción: Obtiene el contenido de la lista para darle un formato de tabla HTML. Retorno: Retorna un String con el contenido de la tabla HTML. """ FilesProcess = "<td>%s </td>" % "Archivos procesados." numFiles = "<td>%s Archivos </td>" % len(self.files) time = "<td>%s </td>" % "Tiempo" timeProcess = "<td>%s </td>" % self.timeManager.timeToString( 0, self.totaltime) size = "<td>%s </td>" % "Tamaño total" strSize = self.getStringFileSize(str(self.getFileSizeProcess())) sizeProcess = "<td>%s KB </td>" % strSize header_1 = "<tr>%s%s</tr>" % (FilesProcess, numFiles) header_2 = "<tr>%s%s</tr>" % (time, timeProcess) header_3 = "<tr>%s%s</tr>" % (size, sizeProcess) txt = "%s%s%s" % (header_1, header_2, header_3) return txt def getTableProcessHtml(self): """ Nombre: getTableProcessHtml Parametros: No recibe parametros. Descripción: Se obtiene la tabla HTML en su formato final. Retorno: Retorna un String con la forma total de la tabla HTML. """ conten = self.getContentProcessHtml() txt = "<table border = '1'> %s </table>" % (conten) return txt def getContentTableHtml(self): """ Nombre: getContentTableHtml Parametros: No recibe parametros. Descripción: Obtiene el contenido de la tabla HTML Retorno: Retorna una tabla HTML con su forma final. """ header = self.getHeaderTableHtml() array = [] array.append(header) count = 1 for element in self.files: num = "<td>%s </td>" % count name = "<td>%s </td>" % element[0] time = "<td>%s </td>" % self.timeManager.getTimeProcessFile( 0, element[1]) size = "<td>%s KB</td>" % self.getStringFileSize( str(round(element[2], 2))) row = "<tr>%s%s%s%s</tr>" % (num, name, time, size) array.append(row) count += 1 txt = "<table border = '1'> %s </table>" % ("".join(array)) return txt def getHeaderTableHtml(self): """ Nombre: getHeaderTableHtml Parametros: No recibe parametros. Descripción: Obtiene el encabezado de la tabla HTML. Retorno: Retorna un String con el encabezado de la tabla. """ num = "<td>%s </td>" % "Num." name = "<td>%s </td>" % "Nombre" time = "<td>%s </td>" % "Tiempo de procesamiento" size = "<td>%s </td>" % "Tamaño" header = "<tr>%s%s%s%s</tr>" % (num, name, time, size) return header def getCurrentLogName(self): """ Nombre: getCurrentLogName Parametros: No recibe parametros. Descripción: Obtiene el nombre del archivo LOG. Retorno: Retorna un String con el nombre del archivo log. """ date = datetime.datetime.now() year = date.year month = date.month day = date.day hour = date.hour minutes = date.minute second = date.second nameFile = "LOG_%s_%s_%s_%s_%s_%s" % (year, month, day, hour, minutes, second) return nameFile def getFileSizeProcess(self): """ Nombre: getFileSizeProcess Parametros: No recibe parametros. Descripción: Obtiene el tamaño total de todos los archivos procesados. Retorno: Retorna un flotante del tamaño de los archivos procesados. """ sume = 0 for i in range(len(self.files)): sume += self.files[i][2] return round(sume, 3) def getTimeProcess(self): """ Nombre: getTimeProcess Parametros: No recibe parametros. Descripción: Obtiene el tiempo total que tardaron los archivos en procesar. Retorno: No retorna. """ sume = 0 for i in range(len(self.files)): sume += self.files[i][1] return sume def getNameFile(self, ruteFile): """ Nombre: getNameFile Parametros: ruteFile: Ruta del archivo. Descripción: Obtiene el nombre de un archivo segun su ruta. Retorno: Retorna un String con el nombre del archivo. """ return os.path.split(ruteFile)[1] def getStringFileSize(self, size=""): """ Nombre: getStringFileSize Parametros: size: Es una cadena de texto que contiene el tamaño del archivo. Descripción: Genera ina cadena de texto con la coma que se para la unidad de millar. Retorno: Retorna una cadena de texto. """ integerSize = size.split(".") strSize = "" if len(integerSize) == 2: a, b = integerSize if len(a) > 3: strSize = "%s,%s.%s" % (a[:-3], a[-3:], b) else: strSize = "%s.%s" % (a, b) if len(integerSize) == 1: a = integerSize[0] if (len(a) > 3): strSize = "%s,%s.%s" % (a[:-3], a[-3:], 00) else: strSize = "%s.%s" % (a, 00) return strSize return strSize def setImageToGraph(self): """ Nombre: setImageToGraph Parametros: No recibe parametros. Descripción: Agrega la imagen del grafo al textbox de la ventana 'Grafo' Retorno: Retorna True """ self.uiGraph.uiGraph.txtImage.setHtml( "<img src=\"Nucleo/LOGS/img.png\">") self.uiGraph.uiGraph.txtImage.setReadOnly(True) return True
def __init__(self): self.root = None self.g = nx.Graph() #self.g = nx.dodecahedral_graph() self.timeManager = TimeManager()
class BST: def __init__(self): self.root = None self.g = nx.Graph() #self.g = nx.dodecahedral_graph() self.timeManager = TimeManager() """ Nombre: BSTAdd Parametros: Value = valor que se quiere agregar al árbol. Descripcion: Llama a la funcion BSTAddInner. Retorna: Retorna un llamado a la funcion BSTAddInner """ def BSTAdd(self, value): return self.BSTAddInner(value, self.root) """ Nombre: BSTAddInner Parametros: Value: Valor que se quiere agregar al arbol. Current: La raiz actual donde se quiere agregar. Descripcion: Esta funcion agrega elementos al árbol binario. Retorno: Retorna un booleano. True: Si se agrego correctamente. False: si no se pudo agregar. """ def BSTAddInner(self, value, current): valueTime = self.timeManager.convertTimeToSeconds(value.timeMovie) if (not self.root): self.root = NodeBst(value) return True currentTime = self.timeManager.convertTimeToSeconds( current.value.timeMovie) if (currentTime > valueTime): if (not current.left): current.left = NodeBst(value) return True return self.BSTAddInner(value, current.left) elif (currentTime < valueTime): if (not current.right): current.right = NodeBst(value) return True return self.BSTAddInner(value, current.right) else: return False """ Nombre: getValue Parametros: value: objeto Movie al que se quiere extraer su contenido para visualizar en el árbol. Descripcion: Obtiene el contenido que se desea visualizar en el árbol. Retrorna: Retorna un String si se encontro el valor deseado, False en caso contrario. """ def getValue(self, value): if (isinstance(value, Movie)): if (len(value.nameMovie) > 20): conten = "%s |\n%s" % (value.timeMovie, value.nameMovie) else: conten = "%s | %s" % (value.timeMovie, value.nameMovie) return conten return False """ Nombre: BSTADToLinkedList Parametros: ll: LinkedList con todos los elementos del catalogo. Descripcion: Agrega los elementos de una lista enlazada a un arbol. Retorno: Retorna True """ def BSTAddFromLinkedList(self, ll=LinkedList()): if (isinstance(ll, LinkedList)): current = ll.first while (current): value = current.value self.BSTAdd(value) current = current.next return True """ Nombre: BSTConvert Parametros: ll: LinkedList con todos los elementos del catalogo. Descripcion: Convierte los elementos de una lista enlazada a un árbol. Retorno: Retorna Un TDA BST """ def BSTConvert(self, ll=LinkedList()): current = ll.first if (not current): return False tree = BST() rootNode = self.getValue(current.value) tree.g.add_node(rootNode) while (current): value = current.value tree.BSTAdd(value) current = current.next return tree """ Nombre: BSTSearch Parametros: value: Valor que se desea encontrar. Descripcion: Llama a la funcion BSTSearchInner para que busque desde la raiz. Retorno: Retorna el llamado a la funcion BSTSearchInner """ def BSTSearch(self, value): return self.BSTSearchInner(value, self.root) """ Nombre: BSTSearchInner Parametros: value: Valor que se desea encontrar. Current: La raiz actul donde se esta buscando. Descripcion: Realiza un recorrido en profundidad de manera recursiva hasta encontrar el valor que se desea obtener. Retorno: Retorna un Booleano. """ def BSTSearchInner(self, value, current): if (isinstance(current, NodeBst)): if (not self.root): return False if (current.value == value): return True if (current.value > value): if (not current.left): return False return self.BSTSearch(value, current.left) if (current.value < value): if (not current.right): return False return self.BSTSearch(value, current.right) return False return False """ Nombre: AddToG parametros: current: Nodo actual, por defecto comienza desde la raiz. Descripcion: Agrega Nodos y aristas al Grapho de networkX Retorno: No retorna Nada. """ def AddToG(self, current): if not current: return False else: currentValue = self.getValue(current.value) self.g.add_node(currentValue) if (current.left): leftCurrentValue = self.getValue(current.left.value) self.g.add_edge(currentValue, leftCurrentValue) if (current.right): rightCurrentValue = self.getValue(current.right.value) self.g.add_edge(currentValue, rightCurrentValue) self.AddToG(current.left) self.AddToG(current.right) """ Nombre: getGraph Parametros: No recibe parametros. Descripcion: Obtiene el grapho de networkx Retorno: Retorna el grapho de networkX """ def getGraph(self): return self.g """ Nombre:getRoot Parametros: No recibe parametros. Retorno: Retorna la raiz. """ def getRoot(self): return self.root
class WindowAdd(QMainWindow): def __init__(self, parent=None): super(WindowAdd, self).__init__(parent) self.uiAdd = Ui_MainWindow() self.uiAdd.setupUi(self) self.centerWindow() # Instancia de los dialogos self.uiDialogConfirmationAdd = DialogConfirm() self.uiDialogConfirmationCancel = DialogConfirm() self.uiDialogError = DialogError() # Eventos de los botones de la pantalla Agregar. self.uiAdd.btnAgregar.clicked.connect(self.openDialogConfirmationAdd) self.uiAdd.btnCancelar.clicked.connect( self.openDialogConfirmationCancel) # Eventos de los botones de los dialogBox self.uiDialogConfirmationAdd.uiDialog.btnConfirm.clicked.connect( self.eventAddOrEdit) self.uiDialogConfirmationAdd.uiDialog.btnCancel.clicked.connect( self.closeDialogConfirmationAdd) self.uiDialogConfirmationCancel.uiDialog.btnConfirm.clicked.connect( self.closeDialogConfirmationCancel) self.uiDialogConfirmationCancel.uiDialog.btnCancel.clicked.connect( self.closeDialogConfirmationCancel) self.uiDialogError.uiDialogError.btnConfirmar.clicked.connect( self.closeDialogError) # Variables self.idEdit = -1 self.idRemove = -1 self.add = True self.edit = False self.remove = False #Otras instancias self.table = TableAsscii() self.timeManager = TimeManager() self.memory = MemoryManager() self.catalog = Catalog() self.memory.getFromMemory() self.catalog = self.memory.getCatalogFromMemory() # Funciones para editar: """ Nombre: activateEdition Paramereos: No recibe parametros Descripcion: activa la variable booleana edit para asegurar que se esta editando en lugar de eliminar o agregar. Retorno: True """ def activateEdition(self, idEdit): self.edit = True self.add = False self.remove = False self.idEdit = idEdit return True """ Nombre: activateAdd Parametros: No recibe parametros. Descripcion: activa la variable booleana Add para asegurar que se esta agregando en lugar de editar o eliminar. Retorno: True """ def activateAdd(self): self.add = True self.edit = False self.remove = False return True """ Nombre: activateRemove Parametros: No recibe parametros. Descripcion: activa la variable booleana remove para asegurar que se esta eliminando en lugar de editar o eliminar. Retorno: True """ def activateRemove(self, idRemove): self.remove = True self.edit = False self.add = False self.idRemove = idRemove return True """ Nombre: setTextBox Parametros: No recibe parametros. Descripcion: Hace el set de los atributos del objeto que se esta editando hacia los textbox de la pantalla de agregar. Retorno: Retorna True. """ def setTextBox(self): movieEdit = self.catalog.getMovieFromList(self.idEdit) self.uiAdd.txtName.setText(movieEdit.nameMovie) self.uiAdd.txtTime.setText(movieEdit.timeMovie) self.uiAdd.txtDirector.setText(movieEdit.directorMovie) self.uiAdd.txtDescription.setText(movieEdit.descriptionMovie) return True # Funciones para agregar: """ Nombre: getTextBox Parametros: No recibe parametro. Descripcion: Obtiene los datos de los textbox de la pantalla, luego crea el objeto Movie y lo retorna. Retorno: Retorna un objeto Movie. """ def getTextBoxForAdd(self): time = self.uiAdd.txtTime.text() validate = self.timeManager.verificateformate(time) if (not validate): self.openDialogError() return False idMovie = self.catalog.asignateId() nameMovie = self.uiAdd.txtName.text() descriptionMovie = str(self.uiAdd.txtDescription.toPlainText()) directorMovie = self.uiAdd.txtDirector.text() category = self.uiAdd.cbxCategory.currentText() objMovie = Movie(nameMovie, time, descriptionMovie, directorMovie, category, idMovie) return objMovie #Funciones para editar. """ Nombre: getTextBoxForEdit Parametros: No recibe parametro. Descripcion: Obtiene los datos de los textbox de la pantalla, luego crea el objeto Movie y lo retorna. Retorno: Retorna un objeto Movie. """ def getTextBoxForEdit(self): time = self.uiAdd.txtTime.text() validate = self.timeManager.verificateformate(time) if (not validate): self.openDialogError() return False idMovie = self.idEdit nameMovie = self.uiAdd.txtName.text() descriptionMovie = str(self.uiAdd.txtDescription.toPlainText()) directorMovie = self.uiAdd.txtDirector.text() category = self.uiAdd.cbxCategory.currentText() objMovie = Movie(nameMovie, time, descriptionMovie, directorMovie, category, idMovie) return objMovie #Funciones de los DialogBox #1. Abrir y cerrar dialogos. """ Nombre: openDialogError Parametros: No recibe parametros. Descripcion: Abre un dialogo que muestra un texto de error. Retorno: Retorna True """ def openDialogError(self): self.uiDialogError.uiDialogError.txtError.setText( "Error, el tiempo de duracion\nde la pelicula no es valido.") self.uiDialogError.show() return True """ Nombre: closeDialogError Parametros: No recibe parametros. Descripcion: cierra el dialogo de error. Retorno: Retorna True. """ def closeDialogError(self): self.uiDialogError.close() return True """ Nombre: openDialogConfirmationAdd Parametros: No recibe parametrosconfirmación Descripcion: Abre un dialogo de confirmacion que muestra una pregunta para confirmar la accion de agregar. Retorno: Retorna True """ def openDialogConfirmationAdd(self): validateFields = self.validateFields() if (validateFields): self.uiDialogConfirmationAdd.setWindowTitle("¿Agregar?") self.uiDialogConfirmationAdd.show() return True self.uiDialogError.uiDialogError.txtError.setText( "Error, uno o mas campos están vacíos") self.uiDialogError.show() return False """ Nombre: validateFields Parametros: No recibe parametros. Descripcion: Comprueba que los campos de los textBox esten llenos. Retorno: Retorna True en caso de que esten llenos,False en caso contrario. """ def validateFields(self): name = self.uiAdd.txtName.text() time = self.uiAdd.txtTime.text() director = self.uiAdd.txtDirector.text() description = self.uiAdd.txtDescription.toPlainText() if (name == "" or time == "" or director == "" or description == ""): return False return True """ Nombre: closeDialogConfirmationAdd Parametros: No recibe parametros. Descripcion: Cierra el dialogo de confirmacion para agregar Retorno: Retorna True """ def closeDialogConfirmationAdd(self): self.uiDialogConfirmationAdd.close() return True """ Nombre: openDialogConfirmationCancel Parametros: No recibe parametrosconfirmación Descripción: Abre un dialogo de confirmación que muestra una pregunta para confirmar si quiere cancelar la acción. Retorno: Retorna True """ def openDialogConfirmationCancel(self): self.uiDialogConfirmationCancel.setWindowTitle("¿Cancelar?") self.uiDialogConfirmationCancel.show() return True """ Nombre: closeDialogConfirmationCancel Parametros: No recibe parametros. Descripcion: Cierra el dialogo de confirmacion de el boton cancelar. Retorno: Retorna True """ def closeDialogConfirmationCancel(self): self.uiDialogConfirmationCancel.close() return True #2. Evento de los dialogos """ Nombre: eventAdd Parametros: No recibe parametros. Descripcion: Al momento de hacer click en el boton aceptar del dialogo de confirmacion se agregara la pelicula al catalogo. Retorno: Retorna True """ def eventAddOrEdit(self): if (self.add): objMovie = self.getTextBoxForAdd() self.catalog.addMovie(objMovie) self.memory.saveCatalog(self.catalog) self.closeDialogConfirmationAdd() self.cleanTextBox() self.activateAdd() self.idEdit = -1 self.idRemove = -1 return True elif (self.edit): movieEdit = self.getTextBoxForEdit() self.catalog.editMovie(self.idEdit, movieEdit) self.memory.saveCatalog(self.catalog) self.closeDialogConfirmationAdd() self.close() self.activateAdd() self.idEdit = -1 self.idRemove = -1 return True return False # Otras funciones """ Nombre: cleanTextBox Parametros: No recibe parametros. Descripcion: Limpia los formularios de los textBox Retorno: Retorna True """ def cleanTextBox(self): formate = self.uiAdd.txtTime.text() validate = self.timeManager.verificateformate(formate) if (validate): self.uiAdd.txtDescription.setPlainText("") self.uiAdd.txtDirector.setText("") self.uiAdd.txtName.setText("") self.uiAdd.txtTime.setText("HH:MM.SS") self.uiAdd.cbxCategory.setCurrentIndex(0) return True """ Nombre: getIndexCbx Parametros: Recibe el String a buscar en el comboBox Descripcion: Genera la posicion de el comboBox. Retorno: Retorna la posicion del item en el comboBox """ def getIndexCbx(self, category): array = [] array.append("Acción") array.append("Artes marciales") array.append("Aventuras") array.append("Bélicas") array.append("Comedia") array.append("Comedias musicales") array.append("Ciencia ficción") array.append("Deportivas") array.append("Dibujos Animados") array.append("Documental") array.append("Dramáticas") array.append("Espada y hechicería") array.append("Espionaje") array.append("Fantásticas") array.append("Hechos reales") array.append("Horror") array.append("Infantiles") array.append("Misterio") array.append("Muertos vivientes") array.append("Musicales") array.append("Policíales") array.append("Propaganda") array.append("Psicológicas") array.append("Suspenso") array.append("Románticas") array.append("Sobre Animales") array.append("Sobre aviación") array.append("Sobre delincuencia") array.append("Sobre discapacitados") array.append("Sobre religión") array.append("Sobre política") for i in range(len(array)): if (array[i] == category): return i return 0 """ Nombre: centerWindow Parametros: No recibe parametros Descripcion: Inicializa la ventana al centro de la pantalla. Retorno: Retorna True """ def centerWindow(self): screen = self.frameGeometry() ubication = QtWidgets.QDesktopWidget().availableGeometry().center() screen.moveCenter(ubication) self.move(screen.topLeft()) return True