def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)
	self.ui = Ui_Ventana_peliculas()
	self.ui.setupUi(self)
	self.cargar_peliculas()
        self.ui.label_reparto.setText("")
        self.ui.label_imagen.setText("")
        self.ui.label_descripcion.setText("")
	#self.show()
	self.crear=Controlador_form_crear_pelicula()
	self.ui.reparto.setText("Cantidad de actores: ")
	self.editar=Editar.Editar()
	self.signals()
class Pelicula (QtGui.QMainWindow):
    table_columns = (
	
	(u"Nombre", 150),
	(u"Estreno", 150),
	(u"Pais", 150),
	)

    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)
	self.ui = Ui_Ventana_peliculas()
	self.ui.setupUi(self)
	self.cargar_peliculas()
        self.ui.label_reparto.setText("")
        self.ui.label_imagen.setText("")
        self.ui.label_descripcion.setText("")
	#self.show()
	self.crear=Controlador_form_crear_pelicula()
	self.ui.reparto.setText("Cantidad de actores: ")
	self.editar=Editar.Editar()
	self.signals()
	
    def signals(self):
        """
        Conecta la base de datos con el codigo
        """
        self.editar.ui.editar_boton.clicked.connect(self.cargar_peliculas)
        self.ui.boton_editar_pelicula_.clicked.connect(self.editar_pelicula)
        self.ui.boton_crear_pelicula.clicked.connect(self.mostrar_ventana_agregar)
        self.ui.grilla.clicked.connect(self.mostrar_imagen)
        self.ui.boton_eliminar_pelicula.clicked.connect(self.elimina)
        self.crear.ui.crear_boton.clicked.connect(self.cargar_peliculas)
        self.ui.boton_filtro_actor.clicked.connect(self.filtro_actor)

    def cargar_peliculas(self):
        """
        Muestra las peliculas en la grilla
        """
        peliculas=Modelo_pelicula.obtener_peliculas()
	filas=len(peliculas)
	data = QtGui.QStandardItemModel(filas, len(self.table_columns))
	self.ui.grilla.setModel(data)
	self.ui.grilla.horizontalHeader().setResizeMode(0, self.ui.grilla.horizontalHeader().Stretch)

	for col, h in enumerate(self.table_columns):
	    data.setHeaderData(col, QtCore.Qt.Horizontal, h[0])
	    self.ui.grilla.setColumnWidth(col, h[1])
	    
	for i, peli in enumerate(peliculas):
	    filas = [
	        peli["nombre"], peli["estreno"],
	        peli["pais"],peli["descripcion"],peli["director_id"]]
	    for j, field in enumerate(filas):
	        index = data.index(i, j, QtCore.QModelIndex())
	        data.setData(index, field)
	        
	    # Parametros ocultos
	    data.item(i).peli = peli
    
    def mostrar_imagen(self,index):
        """
        Muestra la imagen correspondiente a esa pelicula
        """
        index = index if index is not None\
            else self.ui.grilla.currentIndex()
        if index.row() == -1:
            QtGui.QMessageBox.information(
                None,
                u"Información",
                u"Por favor seleccione una orden de trabajo.")
            return
      
        data = self.ui.grilla.model()
        peli = data.item(index.row(), 0).peli
        actores=self.sum_actores(peli["id"])
        actores=str(actores)
        self.ui.label_reparto.setText(actores)
        self.ui.label_descripcion.setText(peli["descripcion"])  #recordar cambiar el label.setWordWrap True para reparto :D
        # Ahora la imagen
        img = QtGui.QPixmap(peli['imagen'])  #str[mov[poster]] da el nombre del archivo para luego usarlo como una imagen
        self.ui.label_imagen.setPixmap(img)
    
    def sum_actores(self,id_p):
        """
        recorre la query como diccionario para luego contar los actores
        """
        c=0
        peliculas = Modelo_pelicula.contar_actor(id_p) 
        for i, peli in enumerate(peliculas):
            c=c+1
        return(c)

    def elimina(self):
        """
        Elimina una pelicula de la base de datos
        """
	index =self.ui.grilla.currentIndex()
	data = self.ui.grilla.model()
	peli = data.item(index.row(),0).peli
	iD = str(peli['id'])
	resp = QtGui.QMessageBox.question(self, "Pregunta","Desea realmente eliminar la pelicula seleccionada?",QtGui.QMessageBox.Ok,QtGui.QMessageBox.No)
        if resp == QtGui.QMessageBox.Ok:
            Modelo_pelicula.borrar(iD);
            self.cargar_peliculas();
      

    def mostrar_ventana_agregar(self):
        self.crear.show()
    
    def filtro_actor(self):
        """
        Filtra para poner la cantidad de actores de esa pelicula
        """
        actor=self.ui.filtro_actor.text()
        peliculas = Modelo_pelicula.filtro_pelicula(actor)
        rows = len(peliculas)
        if rows == 0:
            QtGui.QMessageBox.information(
                None,
                u"Información",
                u"No se encontro nigun actor en las peliculas.")
            return
        data = QtGui.QStandardItemModel(
            rows, len(self.table_columns))
        self.ui.grilla.setModel(data)
        self.ui.grilla.horizontalHeader().setResizeMode(
            0, self.ui.grilla.horizontalHeader().Stretch)

        for col, h in enumerate(self.table_columns):
            data.setHeaderData(col, QtCore.Qt.Horizontal, h[0])
            self.ui.grilla.setColumnWidth(col, h[1])

        for i, peli in enumerate(peliculas):
            row = [
                peli["nombre"], peli["estreno"], peli["pais"],  # cambiar lo que esta dentro del parentesis dependiendo de la tabla
                peli["descripcion"], peli["director_id"]]
            for j, field in enumerate(row):
                index = data.index(i, j, QtCore.QModelIndex())
                data.setData(index, field)
            # Parametros ocultos
            data.item(i).peli = peli
        
    
    def editar_pelicula(self):
        """
        Obtiene la id de pelicula seleccionada y se la pasa a la ventana de editar
        """
      	index = self.ui.grilla.currentIndex()
	data = self.ui.grilla.model()
	peli = data.item(index.row(),0).peli
	id=peli['id']
	print(id)
	self.editar.setID(id)
	self.editar.show()