#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "classes.h"
#include "dialogajoutcours.h"
#include <QtGui>
#include "utils.h"
#include <fstream>

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),ui(new Ui::MainWindow)
{
    ui->setupUi(this);


    contenuL1.resize(20);
    contenuL2.resize(20);
    for(int i=0; i<20; i++)
    {
        contenuL1[i].resize(47);
        contenuL2[i].resize(47);
    }

    lecture_text_matiere();
    lecture_text_professeur();
    lecture_text_salle();
}


MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::colore_colonne(int numero)//A utiliser pour jour férié par exemple
{
    for(int i=0;i<47;i++)
    {
        QTableWidgetItem *newItem=new QTableWidgetItem;
        newItem->setBackgroundColor(QColor("red"));
        ui->tableWidget->setItem(i,numero,newItem);
    }
}

void MainWindow::initMainWindow(int rangUtilisateur)
{
    if(rangUtilisateur==1) //Si administrateur
    {
       ui->mainToolBar->addAction(ui->actionAjouter_un_nouveau_cours);
       ui->mainToolBar->addAction(ui->actionSupprimer_un_cours);
    }

    deroulementPrincipal(rangUtilisateur);
}

void MainWindow::deroulementPrincipal(int rangUtilisateur)
{

    if(rangUtilisateur==1)
    {
        connect(ui->actionAjouter_un_nouveau_cours, SIGNAL(triggered()), this , SLOT(ouvrirBoite_ajoutCours()));
        connect(ui->actionSupprimer_un_cours, SIGNAL(triggered()),this, SLOT(ouvrirBoite_supprimerCours()));
    }

    //    QObject::connect(ui->actionL1, SIGNAL(triggered()), this , SLOT(ouvrir_()));
    //    QObject::connect(ui->actionL1, SIGNAL(triggered()), , SLOT(connexion_ok()));

//    QTableWidgetItem *newItem = new QTableWidgetItem; //On crée un nouvel "item" permettant de remplir une case du tableau
//    QTableWidgetItem *Itemnew = new QTableWidgetItem;
//     //On met le texte qu'on souhaite pour cet "item"
//    ui->tableWidget->setItem(H1045,lundi2 , newItem);//On met l'item à la case (heure,jour) de tableWidget
//    Itemnew->setText("PROJET DE MEEEERDE");

//    ui->tableWidget->setItem(H1330,vendredi3,item);
//    Itemnew->setText("PROJET DE MEEEERDE");

//    colore_colonne(1);//Permet de colorer la nieme colonne
}

void MainWindow::ouvrirBoite_ajoutCours()
{

    fenetreAjoutCours.setDialog(tableauDeMatiere,tableauDeSalle, tableauDeProf);
}

void MainWindow::ouvrirBoite_supprimerCours()
{
    fenetreSupprimerCours.show();
}

void MainWindow::lecture_text_matiere()
{
    QFile file("matieres.txt");
        if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
            return;

        QTextStream in(&file);
        QString line = in.readLine();
        int nbMatieres = line.toInt();
        tableauDeMatiere.resize(nbMatieres);
        QString temp="";
        int cpt=1;
        for (int i=0; i<nbMatieres; i++ )
        {
            line = in.readLine();
            while (temp != "NULL")
            {
                temp = cut(line, cpt);
                switch (cpt)
                {
                    case 1 :
                        tableauDeMatiere[i].setPromo(temp.toInt());
                        break;
                    case 2 :
                        tableauDeMatiere[i].setModule(temp);
                        break;
                    case 3 :
                        tableauDeMatiere[i].setNbAmphi(temp.toInt());
                        break;
                    case 4 :
                        tableauDeMatiere[i].setNbTD(temp.toInt());
                        break;
                    case 5 :
                        tableauDeMatiere[i].setNbTP(temp.toInt());
                        break;
                    default:
                        break;
                }
                cpt++;
            }
            cpt=1;
            temp="";
        }
}

void MainWindow::lecture_text_professeur()
{
    QFile file("Professeurs.txt");
        if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
            return;

        QTextStream in(&file);
        QString line = in.readLine();
        int nbProf = line.toInt();
        tableauDeProf.resize(nbProf);
        QString temp="";
        int cpt=1;
        for (int i=0; i<nbProf; i++ )
        {
            line = in.readLine();
            while (temp != "NULL")
            {
                temp = cut(line, cpt);
                switch (cpt)
                {
                    case 1 :
                        tableauDeProf[i].setNom(temp);
                        break;
                    case 2 :
                        tableauDeProf[i].setModule(temp);
                        break;
                    case 3 :
                        tableauDeProf[i].setFaitPromoL1(temp.toInt());
                        break;
                    case 4 :
                        tableauDeProf[i].setFaitPromoL2(temp.toInt());
                        break;
                    case 5 :
                        tableauDeProf[i].setFaitAmphi(temp.toInt());
                        break;
                    case 6 :
                        tableauDeProf[i].setFaitTD(temp.toInt());
                        break;
                    case 7 :
                        tableauDeProf[i].setFaitTP(temp.toInt());
                        break;
                    default:
                        break;
                }
                cpt++;
            }
            cpt=1;
            temp="";
        }
}


void MainWindow::lecture_text_salle()
{

    QFile file("Salles.txt");
        if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
        {
            return;
        }
        QTextStream in(&file);
        QString line = in.readLine();
        int nbSalle = line.toInt();
        tableauDeSalle.resize(nbSalle);
        QString temp="";
        int cpt=1, i=0;

        for (i=0; i<nbSalle; i++ )
        {
            line = in.readLine();
            while (temp != "NULL")
            {

                temp = cut(line, cpt);
                switch (cpt)
                {
                    case 1 :
                        tableauDeSalle[i].setTypeSalle(temp);
                        break;
                    case 2 :
                        tableauDeSalle[i].setNomSalle(temp);
                        break;
                    default:
                        break;
                }
                cpt++;
            }
            cpt=1;
            temp="";
        }
}



int MainWindow::getTabCoursSizeL1() const
{
    return contenuL1.size();
}

int MainWindow::getTabCoursSizeL2() const
{
    return contenuL2.size();
}


//bool MainWindow::getContenu(const int promo, const int cell,const int cell2) const
//{
//    if(promo==1)
//        return getIsDejaPris(contenuL1,cell,cell2);
//    else if (promo==2)
//        return getIsDejaPris(contenuL2,cell,cell2);
//}

//bool MainWindow::getIsDejaPris(const QVector < QVector<Cours> > tab, const int cell, const int cell2) const
//{
//    if(tab[cell][cell2].getModule()=="")
//        return false;
//    else
//        return true;
//}







