// -*- coding: utf-8 -*-
#ifndef __CLIENTENUEVO_H__
#define __CLIENTENUEVO_H__

#include <QDialog>
#include <QLineEdit>
#include "Cliente.hpp"

class QLineEdit;

/** \brief Dialogo para crear un cliente nuevo.
 *
 * Esta clase crear un dialogo para recolectar los datos de un cliente que
 * ser&aacute; agregado a nuestra base de datos */
class ClienteNuevo: public QDialog{
Q_OBJECT;
public:
	/** Constructor por defecto */
	ClienteNuevo();
	/** Destructor por defecto */
	~ClienteNuevo();

public slots:
	/** Cierra el dialogo sin insertar el cliente */
	void cancelar();

signals:
	/** Esta se&ntilde;al es emitida en la función obtenerDatos cuando el
	 * usuario presiona el bot&oacute;n Aceptar del dialogo.
	 * @param c Contiene los datos del cliente que ser&aacute; insertado en la
	 * base de datos */
	void agregarCliente(Cliente const & c);

private slots:
	/** Obtiene los datos del dialogo despu&eacute;s de que el bot&oacute;n
	 * Aceptar es presionado y crea un Cliente con estos datos, despu&eacute;s
	 * emite la se&ntilde;al agregarCliente. */
	void obtenerDatos();

private:
	/// Almacena el valor del nombre.
	QLineEdit m_nombre;
	/// Alamacena el valor del apellido paterno.
	QLineEdit m_apellidop;
	/// Alamacena el valor del apellido materno.
	QLineEdit m_apellidom;
	/// Alamacena el valor de la calle.
	QLineEdit m_calle;
	/// Alamacena el valor de la colonia.
	QLineEdit m_colonia;
	/// Alamacena el valor de la ciudad.
	QLineEdit m_ciudad;
	/// Alamacena el valor del estado.
	QLineEdit m_estado;
	/// Alamacena el valor del c&oacute;digo postal.
	QLineEdit m_cp;
	/// Alamacena el valor del pa&iacute;s.
	QLineEdit m_pais;
	/// Alamacena el valor del tel&eacute;fono.
	QLineEdit m_tel;
	/// Alamacena el valor del correo.
	QLineEdit m_correo;

	/** Crea la interfaz del dialogo. Esta funcion es llamada desde el
	 * constructor */
	void crearIU();
};

#endif
