コード例 #1
0
ファイル: view_form_peli.py プロジェクト: sacowe/actores
class Form(QtGui.QDialog):
	isEdited = False
	
	def __init__(self, parent=None):
		QtGui.QDialog.__init__(self, parent)
		self.ui =  Ui_Actor()
		self.ui.setupUi(self)
		self.set_signals()
		self.build_combobox()
		
	def set_signals(self):
		"""
		Función que conecta señales a las acciones dentro de la interfaz
		del programa.
		"""
		self.ui.accept.clicked.connect(self.accept_action)
		self.ui.cancel.clicked.connect(self.cancel_action)
		self.ui.btn_plus.clicked.connect(self.add)
		self.ui.btn_minus.clicked.connect(self.delete)
	
	def add(self):
		"""
		Funcion que agrega un actor al reparto de la pelicula, se activa
		al pulsar el boton "+".
		"""
		self.ui.le_descripcion.addItem(self.ui.cb_actores.currentText())
		self.ui.cb_actores.removeItem(self.ui.cb_actores.currentIndex())

	def edit(self,nombre):
		"""
		Funcion que cambia algunas variables y le dice a la aplicacion
		que fue abierta por medio del boton "Editar", por lo que debe
		editar valores de una tabla en vez de agregar un nuevo elemento
		a la tabla.
		"""
		self.isEdited = True
		
		data = controller.search_data_pel(nombre)
		data = data[0]
		self.index = data[0]
		nombre = unicode(data[1])
		estreno = unicode(data[2])
		director = unicode(data[3])
		desc = unicode(data[4])

		self.ui.le_nombre.setText(nombre)
		self.ui.le_fecha.setText(estreno)
		self.ui.le_director.setText(director)
		self.ui.te_descripcion.insertPlainText(desc)
		
		actores = controller.actors_from_movie(nombre)
		for i in actores:
			self.ui.le_descripcion.addItem(i[1])
			self.ui.cb_actores.removeItem(self.ui.cb_actores.findText(i[1]))
		
	def delete(self):
		"""
		Quita un actor del reparto, y lo vuelve a agregar al QComboBox.
		Se activa cuando se apreta el boton "-".
		"""
		if(self.ui.le_descripcion.currentItem()):
			self.ui.cb_actores.addItem(self.ui.le_descripcion.currentItem().text())
			self.ui.le_descripcion.takeItem(self.ui.le_descripcion.currentIndex().row())
		else:
			errorMessageBox = QtGui.QMessageBox.warning(self,"Error","Debe seleccionar un elemento")
			return False
	
	def build_combobox(self):
		"""
		Construye el QComboBox con todos los actores.
		"""
		lista = controller.get_actor_table()		
		for row in lista:
			self.ui.cb_actores.addItem(row[1])
				
	def accept_action(self):
		"""
		Accion que toma la aplicación al precionar el boton "Aceptar".
		Obtiene los nombres en los QLineEdit y los actores en el
		QListWidget y los agrega o edita dependiendo el caso.
		"""
		actores = []
		
		if(self.isEdited):
			controller.clear_relation(self.index)	
			controller.edit_pelicula(self.index,
										unicode(self.ui.le_nombre.text()),
										unicode(self.ui.le_director.text()),
										unicode(self.ui.le_fecha.text()),
										unicode(self.ui.te_descripcion.toPlainText()))						
		else:
			self.index = controller.add_pelicula(unicode(self.ui.le_nombre.text()),
											unicode(self.ui.le_director.text()),
											unicode(self.ui.le_fecha.text()),
											unicode(self.ui.te_descripcion.toPlainText()))
			self.index = self.index[0]
			
		for i in xrange(self.ui.le_descripcion.count()):
			actores.append(self.ui.le_descripcion.item(i).text())
		controller.add_relation(self.index,actores)
		self.reject()
		
	def cancel_action(self):
		"""
		Cierra la aplicación sin hacer cambios.
		"""
		self.reject()
コード例 #2
0
ファイル: view_form_peli.py プロジェクト: sacowe/actores
	def __init__(self, parent=None):
		QtGui.QDialog.__init__(self, parent)
		self.ui =  Ui_Actor()
		self.ui.setupUi(self)
		self.set_signals()
		self.build_combobox()