/****************************************************************************
** ui.h extension file, included from the uic-generated form implementation.
**
** If you wish to add, delete or rename functions or slots use
** Qt Designer which will update this file, preserving your code. Create an
** init() function in place of a constructor, and a destroy() function in
** place of a destructor.
*****************************************************************************/

/*******************************************************************
 Cette fonction initialise la fenetre frmChoixModeTerrain.
  ******************************************************************/
void frmChoixModeTerrain::init()
{
    NomJoueur2->hide();
    NomJoueur3->hide();
    NomJoueur4->hide();
    
    Joueur2->hide();
    Joueur3->hide();
    Joueur4->hide();	    
    
    //initialisation de la liste de parcours
    MiseAJourParcours();
	adjustSize();
	setMaximumSize( minimumSize() );
	resize( minimumSize() );
}
/*******************************************************************
  Cette fonction gère l'affichage des boites pour écrire le nom des joueurs selon la 
  valeur qui est sélectionnée par la spinbox du nombre de joueurs.
  
  Valeur de retour: booléenne
  ******************************************************************/
bool frmChoixModeTerrain::SpinBoxChanged( int Value )
{
    switch(Value)
    {
	//selon la valeur de la spinbox du nombre du joueur, on affiche ou on «hide» 
	//les widgets se rapportant aux noms des joueurs
    case 1:
	NomJoueur2->hide();
	NomJoueur3->hide();
	NomJoueur4->hide();
	
	Joueur2->hide();
	Joueur3->hide();
	Joueur4->hide();	
	break;
    case 2:
	NomJoueur2->show();
	NomJoueur3->hide();
	NomJoueur4->hide();
	
	Joueur2->show();
	Joueur3->hide();
	Joueur4->hide();	
	break;
    case 3:
	NomJoueur2->show();
	NomJoueur3->show();	
	NomJoueur4->hide();
	
	Joueur2->show();
	Joueur3->show();	
	Joueur4->hide();
	break;
    case 4:
	NomJoueur2->show();
	NomJoueur3->show();
	NomJoueur4->show();
	
	Joueur2->show();
	Joueur3->show();
	Joueur4->show();
	break;
    }
	adjustSize();
    setMaximumSize( minimumSize() );
	resize( minimumSize() );
    //à changer
    return true;
}

/*******************************************************************
  Cette fonction charge les bons noms de parcours dans la liste selon que «9 trous»
  ou «18 trous» est sélectionné comme radio button.
  ******************************************************************/
void frmChoixModeTerrain::MiseAJourParcours()
{
    
    fstream Fic;
    char Typefic[9], NbTrous[3];
    QStringList FicExistants = QDir("./parcours").entryList();
    QString NbTerrains = "";
    
    ListeParcours->clear();
    //parcourir liste
    for (QStringList::Iterator it = FicExistants.begin(); it != FicExistants.end(); ++it)
    {
	if ((*it)[0] != '.' )
	{
	    //ouverture du fichier
	    if (Fic.fail()) Fic.clear();
	    Fic.open((QString("parcours/")+(*it)).latin1(), ios::in);
	    if(!Fic.fail())
	    {
		//lecture de l'en-tete et de 9 ou 18 trous
		Fic.getline(Typefic,9);
		Fic.getline(NbTrous,3);
		//si l'en-tete est bien carmonip 
		if (QString(Typefic)=="carmonip")
		{
		    //si 9 trous est sélectionné
		    if (NbTrous[0] == '9')
		    {
			NbTerrains = " <9 trous>";
			//ajouter les items de 9 trous a la liste
			ListeParcours->insertItem((*it) + NbTerrains);
		    }
		    //si «18 trous» est sélectionné
		    else if (NbTrous[0]=='1' && NbTrous[1]=='8')
		    {
			NbTerrains = " <18 trous>";
			//ajouter les items de 18 trous a la liste
			ListeParcours->insertItem((*it) + NbTerrains);
		    }
		}
		Fic.close();
	    }
	    NbTerrains = "";
	}
    }
    
    if (ListeParcours->count() == 0)
    {
	ListeParcours->setDisabled(TRUE);
	JouerPushButton->setDisabled(TRUE);
    }
    else
    {
	ListeParcours->setSelected(0, TRUE);
     }
}	
