#include "utilisateurdialog.h"

#include <common/icore.h>
#include <common/settings.h>
#include <common/commandlineparser.h>
#include <common/constants.h>
#include <QtGui>
#include <QtCore>
#include <QtSql>

using namespace Common;
using namespace Constants;

static inline QString absolutePath() {return Common::ICore::instance()->settings()->applicationBundlePath();}

utilisateurpref::utilisateurpref()
{

  setupUi(this);
  
  setWindowFlags(Qt::WindowStaysOnTopHint);
  setAttribute(Qt::WA_DeleteOnClose);
  QSqlDatabase database = QSqlDatabase::database(Constants::DB_ACCOUNTANCY);
//---------------------------remplit lineEdit------------------------------------
  QString utilisateurPref = Common::ICore::instance()->settings()->value(Constants::S_UTILISATEUR_CHOISI).toString();
  lineEdit->setText(utilisateurPref);
  
//---------------------------------------------------------------------------------
//---------------------------remplir comboBox--------------------------------------
  comboBox->setEditable(true);
  comboBox->setInsertPolicy(QComboBox::NoInsert);
	
  QString requete = "SELECT nom_usr ,login ,password ,id_drtux_usr FROM utilisateurs ";
		 
  QSqlQuery queryutilisateur(database);
	queryutilisateur.exec(requete);
	
	while(queryutilisateur.next()){
	    QString login      = queryutilisateur.value(1).toString();
	    QString iddrtuxusr = queryutilisateur.value(3).toString();
	    QString total      = login+"="+iddrtuxusr;
	    m_listeutilisateurs << total;
	    qDebug() << "in utilpref total ="+total;
	}
	
	if(m_listeutilisateurs.size() == 0){
	   m_listeutilisateurs << utilisateurPref;
	}
	qDebug() << "utilpref= "+utilisateurPref;
	comboBox-> addItems(m_listeutilisateurs);
	
  connect(pushButton,  SIGNAL(pressed()),this,SLOT(close()));
  connect(pushButton_2,SIGNAL(pressed()),this,SLOT(enregistreutilisateur()));
}

utilisateurpref::~utilisateurpref(){}

void utilisateurpref::enregistreutilisateur(){
     if(m_listeutilisateurs.size() == 0 ){
        QMessageBox::warning(0,tr("erreur"),trUtf8("Il faut d'abord paramétrer les utilisateurs."),QMessageBox::Ok);
        emit close();
        return;      
     }
  QString utilisateurchoisi = comboBox->currentText();
  QStringList list = utilisateurchoisi.split("=");
  Common::ICore::instance()->settings()->setValue(S_UTILISATEUR_CHOISI,list[0]);
  Common::ICore::instance()->settings()->setValue(S_ID_UTILISATEUR_CHOISI,list[1]);
  
  fermer();
}
void utilisateurpref::fermer(){
  QMessageBox *message = new QMessageBox(QMessageBox::Information,trUtf8("Information"),trUtf8("Le nouvel utilisateur a été "
                                                                         "enregistré\ndans "
                                                                         "config.ini,\nla fenêtre va fermer"),
                                                                         QMessageBox::Ok,this,Qt::WindowStaysOnTopHint);
  message->show();
  emit QApplication::closeAllWindows();
}
