/*====================ÉCOLE POLYTECHNIQUE DE MONTRÉAL============================

	NOM DU FICHIER :ChoixOptionTerrain.ui.h

	DESCRIPTION :	Fichier contenant l'implémentation des fonctions de 
					ChoixOptionTerrainForm, une form qui sert à choisir un 
					terrain existant

	AUTEUR : Martin Bisson, Anne-Marie Buki, Mylène Denis & Jean-François Pérusse

	DATE DE CRÉATION : 2004-3-17

	MISES À JOUR :

===============================================================================*/





/*------------------------------------------------------------------
  Fonction :	CompareFichiers

  Description :	Fonction qui compare deux fichiers

  Paramètres :
	 const QString& nom1 : nom du premier fichier
	 const QString& nom2 : nom du second fichier

  Valeur retournée :	bool : vrai si les fichiers sont identiques

  Par : 2004-3-17 Martin Bisson, Anne-Marie Buki, Mylène Denis & Jean-François Pérusse
  MAJ: 
------------------------------------------------------------------*/
static bool CompareFichiers(const QString& nom1, const QString& nom2)
{
    std::ifstream Fic1(QString("terrains/") + nom1, std::ios::binary);
    std::ifstream Fic2(QString("terrains/") + nom2, std::ios::binary);
    char c1, c2;
    
    Fic1.read(&c1, 1);
    Fic2.read(&c2, 1);
    
    while (!Fic1.eof() && !Fic2.eof() && c1 == c2)
    {
	Fic1.read(&c1, 1);
	Fic2.read(&c2, 1);
    }
    
    bool retour = Fic1.eof() && Fic2.eof();
    
    Fic1.close();
    Fic2.close();
    
    return retour;
}





/*------------------------------------------------------------------
  Fonction :	ChoixOptionTerrainForm::init

  Description :	Fonction qui agit comme le constructeur

  Paramètres :

  Valeur retournée :	void : 

  Par : 2004-3-17 Martin Bisson, Anne-Marie Buki, Mylène Denis & Jean-François Pérusse
  MAJ: 
------------------------------------------------------------------*/
void ChoixOptionTerrainForm::init()
{
    // Chargement de la table des previews
    int i, j;
    QDir lerep("terrains");
    lerep.setFilter(QDir::Files);
    lerep.setNameFilter("*.png");
    
    for (i = 0; i < lerep.count(); i++)
    {
	QString toadd = lerep[i];
	toadd.remove(toadd.length()-4,4);
	
	bool estla = false;
	
	for (j = 0; j < FichiersDedans.size() && !estla; j++)
	{
	    estla = CompareFichiers(toadd, FichiersDedans[j]);
	}
	if (!estla)
	    FichiersDedans.push_back(toadd);
    }
    
    for (i = 0; i < FichiersDedans.size(); i++)
    {
	QPixmap pix(128,128);
	pix.load(QString("terrains/") + FichiersDedans[i] + ".png");
	(void) new QIconViewItem( apercuIconView,
				  QString::number(i+1),
				  pix);
    }
    
    if (apercuIconView->count() == 0)
    {
	OKPushButton->setDisabled(true);
    }
    else
    {
	apercuIconView->setCurrentItem(apercuIconView->firstItem());
    }
    
    adjustSize();
}





/*------------------------------------------------------------------
  Fonction :	ChoixOptionTerrainForm::getFileSelected

  Description :	Fonction qui retourne le nom du fichier sélectionné

  Paramètres :

  Valeur retournée :	QString : Nom du fichier sélectionné

  Par : 2004-3-17 Martin Bisson, Anne-Marie Buki, Mylène Denis & Jean-François Pérusse
  MAJ: 
------------------------------------------------------------------*/
QString ChoixOptionTerrainForm::getFileSelected()
{
    return FichiersDedans[apercuIconView->currentItem()->text().toInt()-1];
}
