def set_box(self):
    """
    Rellena el combobox con peliculas
    """
    self.i = Modelo_actor.num_peli()
    self.ui.filtro_box.setMaxCount(self.i)
    self.peli = Modelo_actor.llena_box()
    for itm in range(len(self.peli)):
	#print self.peli[itm][0]
	#print itm
	self.ui.filtro_box.addItem(self.peli[itm][0])
  def elimina(self):
    """
    elimina un actor de la base de datos
    """
    index =self.ui.tabla_actor.currentIndex()
    data = self.ui.tabla_actor.model()
    mov = data.item(index.row(),0).mov
    iD = str(mov['id'])
    resp = QtGui.QMessageBox.question(self, "Pregunta","Desea realmente eliminar el actor seleccionado?",QtGui.QMessageBox.Ok,QtGui.QMessageBox.No)
    if resp == QtGui.QMessageBox.Ok:
	Modelo_actor.borrar(iD);
	self.carga_actores();
    def crear_actor(self):
	"""
	crea un nuevo actor en la vase de datos a partir de datos ingresados en la ventana de creacion
	"""
    	self.obtener_datos()
    	if(self.listo==True and Modelo_actor.checkea_actor(self.nombre)==False):#si los campos obligatorios tienen datos, se crea el director
                print("Creando nuevo actor ...")
    		               
    		Modelo_actor.crear_actor(self.nombre,self.birthday,self.sexo,"Actores/img/"+self.nombre.replace(" ","_")+".jpg")
    		self.ui.imagen_label.pixmap().save("Actores/img/"+self.nombre.replace(" ","_")+".jpg","jpg")
                self.limpiar()
                self.close()
    	else:#si falta algun campo obligatorio, no se creara el nuevo director
    		QtGui.QMessageBox.critical(self, "No hay nombre","Error:\nNo ha ingresado ningun nombre ")
  def show_poster(self, index):
      """
      carga la imagen en la ventana
      """
      index = index if index is not None\
	  else self.ui.tabla_actor.currentIndex()
      if index.row() == -1:
	  QtGui.QMessageBox.information(
	      None,
	      u"Información",
	      u"Por favor seleccione una orden de trabajo.")
	  return
      data = self.ui.tabla_actor.model()
      mov = data.item(index.row(), 0).mov
      #print mov[0]	
      self.num_act=Modelo_actor.actuaciones(mov[0])
      #print self.num_act
      self.ui.numero_actuaciones.setText(str(self.num_act))
      if (self.num_act==1):
	      self.ui.label_2.setText("pelicula.")
      else:
	      self.ui.label_2.setText("peliculas.")
      
      # Ahora la imagen
      img = QtGui.QPixmap(str(mov['imagen']))
      #print str(mov['imagen'])
      self.ui.img_actor.setPixmap(img)
  def carga_actores(self):
      """
      carga actores en la tabla de datos
      """
      actores = Modelo_actor.obtener_actor()
      rows = len(actores)
      data = QtGui.QStandardItemModel(
	      rows, len(self.tabla_columnas))
      self.ui.tabla_actor.setModel(data)
      self.ui.tabla_actor.horizontalHeader().setResizeMode(
	  0, self.ui.tabla_actor.horizontalHeader().Stretch)

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

      for i, mov in enumerate(actores):
	  row = [
	      mov["nombre"], mov["birthday"], mov["genero"],
	      mov["imagen"]]
	  for j, field in enumerate(row):
	      index = data.index(i, j, QtCore.QModelIndex())
	      data.setData(index, field)
	  # Parametros ocultos
	  data.item(i).mov = mov
  def filtrando(self):
      """
      selecciona los actores que participaron en una determinada pelicula
      """
      self.peliculas = self.ui.filtro_box.currentText()
      self.actores = Modelo_actor.filtro_actor(self.peliculas)
      print(self.actores)
      
      rows = len(self.actores)
      
      if rows == 0:
	  QtGui.QMessageBox.information(None,u"Información",u"No se encontro nigun actor para esta pelicula.")
	  return
      
      data = QtGui.QStandardItemModel(rows, len(self.tabla_columnas))
      self.ui.tabla_actor.setModel(data)
      self.ui.tabla_actor.horizontalHeader().setResizeMode(0, self.ui.tabla_actor.horizontalHeader().Stretch)

      for col, h in enumerate(self.tabla_columnas):
	data.setHeaderData(col, QtCore.Qt.Horizontal, h[0])
	self.ui.tabla_actor.setColumnWidth(col, h[1])
      
      for i, mov in enumerate(self.actores):
	  row = [
	      mov["nombre"], mov["birthday"], mov["genero"],
	      mov["imagen"]]
	  for j, field in enumerate(row):
	      index = data.index(i, j, QtCore.QModelIndex())
	      data.setData(index, field)
	  # Parametros ocultos
	  data.item(i).mov = mov
  def guardar_actor(self):
    """
    guarda la informacion del actor editado en la base de datos
    """
    print("Guardando actor modificado...")
    #self.obtener_datos()
    if(len(self.ui.nombre_in.text())>0 and Modelo_actor.checkea_actor(self.nombre)==False):#si los campos obligatorios tienen datos, se crea el director
	self.ui.imagen_label.pixmap().save("Actores/img/"+self.nombre.replace(" ","_")+".jpg","jpg")#guarda la imagen que se selecciono a la carpeta "img"
	Modelo_actor.actualiza(self.id,self.ui.nombre_in.text(),self.ui.nacimiento_in.date().toPython().strftime("%Y-%m-%d"),self.ui.genero.currentText(),"Actores/img/"+self.nombre.replace(" ","_")+".jpg")
	
	self.limpiar()
	self.close()
    else:#si falta algun campo obligatorio, no se creara el nuevo director
	if(len(self.nombre)>0):
	    QtGui.QMessageBox.critical(self, "Actor Existente","Error:\nEL actor que intenta agregar ("+self.nombre+"), ya existe en la base de datos")
	else:
	    QtGui.QMessageBox.critical(self, 'Faltan campos obligatorios','Error:\nLos campos "nombre" y "fecha de nacimiento" son obligatorios')
 def obtener_datos(self):
   """
   obtiene la informacion de la ventana de edicion
   """
   print("obtener datos")
   self.nombre=""
   self.birthday=""
   self.genero=""
   self.imagen=""
   self.ui.actor_id.setText("ID:XXXXXXXXXX")
   print self.id
   #self.datos
   if(self.id>=1):
     self.datos=Modelo_actor.buscar_id(self.id)
     #print(self.datos)
     self.ui.actor_id.setText("ID:"+str(self.id))
     self.ui.nombre_in.setText(self.datos[0])
     y=int(self.datos[1][0:4])
     m=int(self.datos[1][5:7])
     d=int(self.datos[1][8:10])
     self.ui.nacimiento_in.setDate(QtCore.QDate(y,m,d))#Y,M,D
     self.ui.imagen_label.setPixmap(QtGui.QPixmap(self.datos[3]))
     self.listo=True