#include <QtGui>
#include <QtCore>
#include <QtSql>


#include "parametredialog.h"
extern QString g_pathabsolu;
parametredialog::parametredialog()
{
setupUi(this);
QStringList liste;
QFile file(""+g_pathabsolu+"/comptabilite.ini");
if(!file.open(QIODevice::ReadWrite | QIODevice::Text)){
QMessageBox::warning(0,tr("erreur"),trUtf8("le fichier comptabilite.ini ne peut pas être ouvert."),QMessageBox::Ok);}
QTextStream stream(&file);
while(!stream.atEnd()){
QString line = stream.readLine();
liste << ""+line+"";}

motdepassechoix = liste[21];
utilpref = liste[24];
actepref = liste[27];

QStringList motdepasslist = motdepassechoix.split("=");
QStringList actepreflist = actepref.split("=");
motdepassechoix = motdepasslist[1];
actepref = actepreflist[1];

lineEdit->setText(""+motdepassechoix+"");
lineEdit_3->setText(""+actepref+"");
CreateConnexion2(motdepassechoix);
QStringList listecombo;
listecombo << ""+utilpref+"";
comboBox->setEditable(1);
comboBox->setInsertPolicy(QComboBox::NoInsert);
QSqlQuery query;
query.exec("SELECT login,id_drtux_usr FROM utilisateurs");
while(query.next()){
QString ligne1 = query.value(0).toString();
QString ligne2 = query.value(1).toString();
QString ligne1_2 = ligne1+"="+ligne2;
listecombo << ""+ligne1_2+"";}
comboBox->addItems(listecombo);

connect(pushButton,SIGNAL(pressed()),this,SLOT(fonctionparametre()));
}

void parametredialog::fonctionparametre(){
QString lineedit = lineEdit->text();
QString combotext = comboBox->lineEdit()->text();
QString lineedit_3 = lineEdit_3->text();
QStringList listefonct;
QFile fichier(""+g_pathabsolu+"/comptabilite.ini");
if(!fichier.open(QIODevice::ReadWrite | QIODevice::Text)){
QMessageBox::warning(0,tr("erreur"),trUtf8("le fichier comptabilite.ini ne peut pas être ouvert."),QMessageBox::Ok);}
QTextStream fleuve(&fichier);
while(!fleuve.atEnd()){
QString line = fleuve.readLine();
listefonct << ""+line+"";}
listefonct.replaceInStrings(""+motdepassechoix+"",""+lineedit+"");
listefonct.replaceInStrings(""+utilpref+"",""+combotext+"");
listefonct.replaceInStrings(""+actepref+"",""+lineedit_3+"");
fichier.remove();
QFile fichier2(""+g_pathabsolu+"/comptabilite.ini");
if(!fichier2.open(QIODevice::ReadWrite | QIODevice::Text)){
QMessageBox::warning(0,tr("erreur"),trUtf8("le fichier comptabilite.ini ne peut pas être ouvert."),QMessageBox::Ok);}
QTextStream fleuve2(&fichier2);
for(int i=0;i<listefonct.size();i++){
fleuve2 << ""+listefonct[i]+"""\n";}
}

bool parametredialog::CreateConnexion2(QString)
{

QStringList liste;
QStringList hostuser;
QFile fichier(""+g_pathabsolu+"/comptabilite.ini");
if(fichier.open(QIODevice::ReadOnly | QIODevice::Text) == false){
QMessageBox::warning(0,"erreur",QObject::trUtf8("le fichier comptabilite.ini n'est pas accessible"),QMessageBox::Ok);}
QTextStream loire(&fichier);
while(!loire.atEnd()){
QString ligne = loire.readLine();
//QStringList listint = ligne.split("=");
hostuser << ""+ligne+"";
}
QString host = hostuser[6];
QStringList listehost = host.split("=");
host = listehost[1];
host.replace(" ","");
QString utilisateur = hostuser[4];
QStringList listeutil = utilisateur.split("=");
utilisateur = listeutil[1];
utilisateur.replace(" ","");

QString mapoule = motdepassechoix;


if(mapoule == ""){

QSqlDatabase db2 = QSqlDatabase :: addDatabase("QMYSQL");
db2.setHostName(""+host+"");
db2.setDatabaseName("comptabilite");
db2.setUserName(""+utilisateur+"");
db2.setPassword("");

if (!db2.open()) {
	QMessageBox::critical(0,"Erreur ouverture de base", db2.lastError().text());
	return false;
}

return true;}
else{
QStringList list;
QString lettre;
QString hellothatsme;
int chiffremot;
int chiffre;
QString mot;

chiffremot = mapoule.mid(4,1).toInt();
chiffre = mapoule.mid(3,1).toInt();
list << ""+mapoule.mid(10+chiffre,1)+"";
mot = list[0];

int j= 1;
for(int i=0; i< chiffremot-1 ;i++){
lettre = mapoule.mid(j*3+10+chiffre,1);
list  << ""+lettre+"";
j++;
}
QString motus;
int k = 1;
for(int i=0; i< chiffremot-1 ;i++){
motus += list[k];
k++;
}
hellothatsme = mot+motus;

QString motdepasse = hellothatsme;
motdepasse = motdepasse.replace(QRegExp("\\n"),"");
QSqlDatabase db2 = QSqlDatabase :: addDatabase("QMYSQL");
db2.setHostName(""+host+"");
db2.setDatabaseName("comptabilite");
db2.setUserName(""+utilisateur+"");
db2.setPassword(""+motdepasse+"");

if (!db2.open()) {
	QMessageBox::critical(0,"Erreur ouverture de base", db2.lastError().text());
	return false;
}

return true;
}
}

