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

	NOM DU FICHIER :frmmenuprincipal.ui.h

	DESCRIPTION :	Fichier contenant l'implémentation de la classe frmMenuPrincipal,
				le menu principal.

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

	DATE DE CRÉATION : 2004-3-17

	MISES À JOUR :

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

//Fermeture de la fenêtre
void frmMenuPrincipal::closeEvent(QCloseEvent* e)
{
    alutExit(); //On a terminé d'utiliser OpenAL
    QWidget::closeEvent(e);
}

void frmMenuPrincipal::btnJeuClick()
{
    int i;
    QString NomParcours = "";
    frmChoixModeTerrain * ptrOptionsJeu = new frmChoixModeTerrain(this, "Choix terrain", TRUE);
  
    
    if (ptrOptionsJeu->exec())
    {	
	frmJeu * ptrJeu = new frmJeu(this, "Le Jeu", TRUE);
	
	//NomParcours = nom de l'item selectionne dans la listbox
	NomParcours = ptrOptionsJeu->ListeParcours->currentText();
	// Si on a choisi un parcours de 9 trous	
	if (NomParcours[NomParcours.find('<')+1] == '9')
	{
	    NomParcours.remove (NomParcours.find('<') - 1, 10);
	    ptrJeu->ChargerParcours( NomParcours, 9);
	}
	// Si on a choisi un parcours de 9 trous	
	else
	{
	    NomParcours.remove (NomParcours.find('<') - 1, 11); 
	    ptrJeu->ChargerParcours( NomParcours, 18);
	}
	
	CJoueur tmpJoueur[4];
	std::vector< CJoueur > Joueurs;
	tmpJoueur[0].setNom(ptrOptionsJeu->NomJoueur1->text());
	tmpJoueur[1].setNom(ptrOptionsJeu->NomJoueur2->text());
	tmpJoueur[2].setNom(ptrOptionsJeu->NomJoueur3->text());
	tmpJoueur[3].setNom(ptrOptionsJeu->NomJoueur4->text());
	for (i = 0; i < ptrOptionsJeu->spinBoxNbJoueurs->value(); ++i)
		Joueurs.push_back(tmpJoueur[i]);
	ptrJeu->SetJoueurs(Joueurs);

	//temporaire
	ptrJeu->exec();
	
	delete ptrJeu;
	delete ptrOptionsJeu;
	
    }
    else // Si exec retourne faux
    {
	delete ptrOptionsJeu;
    }
}

void frmMenuPrincipal::btnEditeurClick()
{
    DemandeParcoursForm * ptrDemandeForm = new DemandeParcoursForm(this, "Demande Parcours", TRUE);
    NouveauParcoursForm * ptrNewParcoursForm;
    ChoixTerrainForm * ptrChoisisseur;
    std::vector<QString> nouvTrous;
    QString NomParcours = "";
    int i = 0;
    
    if (ptrDemandeForm->exec())
    {	
	// Si on fait un nouveau parcours
	if (ptrDemandeForm->nouveauRadioButton->isChecked())
	{
	    delete ptrDemandeForm;
	    ptrNewParcoursForm = new NouveauParcoursForm(this, "Nouveau Parcours", TRUE);
	    
	    if (ptrNewParcoursForm->exec())
	    {
		ptrChoisisseur = new ChoixTerrainForm(this, "Choix Terrain", TRUE);
		ptrChoisisseur->setFichierouvert(ptrNewParcoursForm->fichierLineEdit->text());
		
		if (ptrNewParcoursForm->nb09RadioButton->isChecked())
		{
		    for (i = 0; i < 9; i++)
		    {
			nouvTrous.push_back(QString(""));
		    }
		    ptrChoisisseur->ChangePushButton->hide();
		}
		else
		{
		    for (i = 0; i < 18; i++)
		    {
			nouvTrous.push_back(QString(""));
		    }
		}
		
		delete ptrNewParcoursForm;
		ptrChoisisseur->setTrous(nouvTrous);
		ptrChoisisseur->construitpreview();
		ptrChoisisseur->exec();
	    }
	    else
	    {
		delete ptrNewParcoursForm;
	    }
	}
	else 	// Si on choisit un parcours existant
	{
	 
	ptrChoisisseur = new ChoixTerrainForm(this, "Choix Terrain", TRUE);
	NomParcours = ptrDemandeForm->existantComboBox->currentText();
	// Si on a choisi un parcours de 9 trous	
	if (NomParcours[NomParcours.find('<')+1] == '9')
	{
	    NomParcours.remove(NomParcours.find('<') - 1, 10);
	}
	// Si on a choisi un parcours de 9 trous	
	else
	{
	    NomParcours.remove(NomParcours.find('<') - 1, 11);    
	}
	    ptrChoisisseur->setFichierouvert(NomParcours);
	    ptrChoisisseur->ChargeTrous();
	    ptrChoisisseur->construitpreview();
	    
	    delete ptrDemandeForm;
	    ptrChoisisseur->exec();
	    delete ptrChoisisseur;
	}
    }
    else // Si exec retourne faux
    {
	delete ptrDemandeForm;
    }
}
