Chrono-Cross  1.1
BTS SN-IR La Salle Avignon 2018
Fonctions membres publiques | Connecteurs privés | Fonctions membres privées | Attributs privés
Référence de la classe IHMManifestation

La fenêtre principale de l'application. Plus de détails...

#include <ihmmanifestation.h>

Graphe de collaboration de IHMManifestation:
Collaboration graph
[légende]

Liste de tous les membres

Fonctions membres publiques

 IHMManifestation (QWidget *parent=0)
 Constructeur de la calsse IHMManifestation.
 ~IHMManifestation ()
 Destructeur de la classe IHMManifestation.

Connecteurs privés

void afficherConfigurationManifestation ()
 Affiche l'onglet pour configurer une manifestation.
void afficherInscriptionCoureurs ()
 Affiche l'onglet pour inscrire les coureurs.
void afficherPublicationResultats ()
 Affiche l'onglet pour publier les résultats.
void quitter ()
 Ferme l'application principale.
void selectionnerOnglet (int index)
 Initialise les données pour l'onglet affiché
void creerManifestation ()
 Crée la manifestation.
void modifierManifestation ()
 Modifie la manifestation.
void supprimerManifestation ()
 Supprime la manifestation.
void selectionnerManifestation ()
 Selectionne la manifestation.
void creerCourse ()
 Crée la course.
void modifierCourse ()
 Modifie la course.
void supprimerCourse ()
 Supprime la course.
void selectionnerCourse ()
 Sélectionne la course.
void choisirInscriptionCourse ()
 Amène directement à l'onglet Inscription.
void creerCoureur ()
 Créer un coureur.
void modifierCoureur ()
 Modifie un coureur.
void supprimerCoureur ()
 Supprime un coureur.
void selectionnerCoureur ()
 Sélectionne le coureur.
void chargerListeCoureurs ()
 Charge la liste des coureurs.
void selectionnerListeCoureursCourse ()
 Selectionne la liste des coureurs et des courses.
void afficherListeCoureurs ()
 Affiche la liste des coureurs.
void selectionnerCoureurListe (const QModelIndex &index)
 Selectionne la liste des coureurs.
void selectionnerDossardListe (const QModelIndex &index)
 Selectionne la liste des dossards.
void demarrerInscriptionCoureur ()
 Demarre l'inscription d'un coureur.
void inscrireCoureur ()
 Inscrit le coureur.
void chargerListeInscriptionCourses ()
 Charge la liste des coureurs inscrit.
void afficherResultats (QString idCourse)
 Affiche les résultats de la course.
void activerImpression ()
 Détecte le déclanchement du bouton imprimer.
void ajouterResultat (int ligne, QStringList unResultat)
 Ajoute les résultats d'une course dans un tableau.
void selectionnerManifestationResultats ()
 Sélectionne une manifestation dans l'onglet résultats.
void selectionnerCourseResultats ()
 Sélectionne une course dans l'onglet résultats.
void imprimerResultats ()
 Imprime les résultats.

Fonctions membres privées

void chargerListeManifestations ()
 Charge les manifestations dans le sélectionneur.
void chargerListeCourses (QString idManifestation)
 Charge les courses dans le sélectionneur.
void chargerListeClasses ()
 Charge la liste des classes.
QString getIdClasse ()
 Obtiens l'identifiant de la classe.
void chargerListeCategories ()
 Charge la liste des categories.
QString getIdCategorie ()
 Obtiens l'identifiant de la categorie.
bool verifierInformationsCoureur ()
 Verifie les informations du coureur.
QString getNumeroDossard (QString idCoureur, QString idCourse)
 Obtiens le numero de dossard.
QString getIdCoureur (QString nom)
 Obtiens l'identifiant du coureur.
bool verifierInformationsSuppressionCoureur ()
 Verifie les informations de suppression du coureur.
void configurerTableResultats ()
 Configure le tableau de résultats dans l'onglet résultats.
void effacerResultats ()
 Efface les résultats dans l'onglet résultats.

Attributs privés

Ui::IHMManifestation * ui
 relation vers la classe IHM
BaseDeDonneesbd
 association vers la classe BaseDeDonnees
QVector< QStringList > listeManifestations
 la liste des manifestations créée dans la base de donnees
QVector< QStringList > listeCourses
 la liste des courses pour une manifestation
QVector< QStringList > listeCoureurs
 la liste des coureurs
QVector< QStringList > listeClasses
 la liste des classes pour les coureurs
QVector< QStringList > listeCategories
 la liste des catégories pour les coureurs
QStringList listeNomsCoureurs
 la liste des noms des coureurs pour le QStringListModel
QStringList listeNumerosDossardCoureurs
 la liste des numéros de dossard des coureurs pour le QStringListModel
QStringList listeIdCoureurs
 la liste des idCoureur des coureurs pour l'inscription
QStringListModel * coureurs
 la liste des noms des coureurs pour le QListView
QStringListModel * dossards
 la liste des numéros de dossard des coureurs pour le QListView
QVector< QStringList > listeManifestationsResultats
 la liste des manifestations créée dans la base de donnees dans l'onglet résultats
QVector< QStringList > listeCoursesResultats
 la liste des courses pour une manifestation dans l'onglet résultats
QStringList manifestation
 la manifestation pour l'onglet résultats
bool editionDossard
 état de l'édition d'un dossard.
QString idCoureur
 Identifiant du coureur.

Description détaillée

Auteur:
BULIN Julien, PELLIZZONI Corentin
Version:
1.1

Documentation des constructeurs et destructeur

IHMManifestation::IHMManifestation ( QWidget *  parent = 0) [explicit]
Paramètres:
parent

Références afficherConfigurationManifestation(), afficherInscriptionCoureurs(), afficherPublicationResultats(), bd, chargerListeManifestations(), choisirInscriptionCourse(), configurerTableResultats(), BaseDeDonnees::connecter(), coureurs, creerCoureur(), demarrerInscriptionCoureur(), dossards, BaseDeDonnees::getInstance(), BaseDeDonnees::getNomBaseDonnees(), imprimerResultats(), inscrireCoureur(), modifierCoureur(), modifierCourse(), modifierManifestation(), quitter(), selectionnerCoureur(), selectionnerCoureurListe(), selectionnerDossardListe(), selectionnerListeCoureursCourse(), selectionnerOnglet(), supprimerCoureur(), supprimerCourse(), supprimerManifestation(), TEMPO_STATUS, et ui.

                                                  :
    QMainWindow(parent),
    ui(new Ui::IHMManifestation)
{
    ui->setupUi(this);

    // Connexion à la base de données
    bd = BaseDeDonnees::getInstance();
    bool connexion = bd->connecter();
    if(connexion)
    {
        ui->statusBar->showMessage(QString::fromUtf8("Connexion réussie à la base de données %1").arg(bd->getNomBaseDonnees()), TEMPO_STATUS);
    }
    else
    {
        ui->statusBar->showMessage(QString::fromUtf8("Impossible de se connecter à la base de données %1").arg(bd->getNomBaseDonnees()));
    }

    // Menu
    connect(ui->actionConfigurer_une_manifestation, SIGNAL(triggered()), this, SLOT(afficherConfigurationManifestation()));
    connect(ui->actionInscrire_les_coureurs, SIGNAL(triggered()), this, SLOT(afficherInscriptionCoureurs()));
    connect(ui->actionPublier_les_r_sultats, SIGNAL(triggered()), this, SLOT(afficherPublicationResultats()));
    connect(ui->actionQuitter, SIGNAL(triggered()), this, SLOT(quitter()));
    connect(ui->onglets, SIGNAL(currentChanged(int)), this, SLOT(selectionnerOnglet(int)));

    // Actions Manifestation : BULIN Julien
    connect(ui->boutonModificationManifestation, SIGNAL(clicked()), this, SLOT(modifierManifestation()));
    connect(ui->boutonSuppressionManifestation, SIGNAL(clicked()), this, SLOT(supprimerManifestation()));
    connect(ui->boutonInscrireCourse, SIGNAL(clicked()), this, SLOT(choisirInscriptionCourse()));
    connect(ui->boutonModificationCourse, SIGNAL(clicked()), this, SLOT(modifierCourse()));
    connect(ui->boutonSuppressionCourse, SIGNAL(clicked()), this, SLOT(supprimerCourse()));
    connect(ui->boutonImprimerResultats, SIGNAL(clicked()), this, SLOT(imprimerResultats()));

    // Actions Inscription : PELLIZZONI Corentin
    connect(ui->listeInscriptionCourses, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerListeCoureursCourse()));
    //connect(ui->lineEditNumeroDossard, SIGNAL(editingFinished()), this, SLOT(inscrireCoureur()));
    connect(ui->lineEditNumeroDossard, SIGNAL(textEdited(QString)), this, SLOT(demarrerInscriptionCoureur()));
    connect(ui->lineEditNumeroDossard, SIGNAL(editingFinished()), this, SLOT(inscrireCoureur()));
    connect(ui->listeCoureurs, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerCoureur()));
    connect(ui->listViewCoureurs, SIGNAL(clicked(const QModelIndex &)), this, SLOT(selectionnerCoureurListe(const QModelIndex &)));
    connect(ui->listViewCoureurs, SIGNAL(activated(const QModelIndex &)), this, SLOT(selectionnerCoureurListe(const QModelIndex &)));
    connect(ui->listViewDossards, SIGNAL(clicked(const QModelIndex &)), this, SLOT(selectionnerDossardListe(QModelIndex)));
    connect(ui->listViewDossards, SIGNAL(activated(const QModelIndex &)), this, SLOT(selectionnerDossardListe(QModelIndex)));
    connect(ui->boutonModificationCoureur, SIGNAL(clicked()), this, SLOT(modifierCoureur()));
    connect(ui->boutonSuppressionCoureur, SIGNAL(clicked()), this, SLOT(supprimerCoureur()));
    connect(ui->boutonCreationCoureur, SIGNAL(clicked()), this, SLOT(creerCoureur()));

    // Actions Résultats : BULIN Julien
    configurerTableResultats();

    chargerListeManifestations();
    coureurs = new QStringListModel(this);
    dossards = new QStringListModel(this);

    afficherConfigurationManifestation();
}

Références bd, BaseDeDonnees::detruireInstance(), et ui.

{
    bd->detruireInstance();
    delete ui;
}

Documentation des fonctions membres

Références ui.

Référencé par afficherResultats().

{
    ui->boutonImprimerResultats->setEnabled(true);
}

Références ONGLET_MANIFESTATION, et ui.

Référencé par IHMManifestation().

{
    ui->onglets->setCurrentIndex(ONGLET_MANIFESTATION);
}

Références ONGLET_INSCRIPTION, et ui.

Référencé par IHMManifestation().

{
    ui->onglets->setCurrentIndex(ONGLET_INSCRIPTION);
}
void IHMManifestation::afficherListeCoureurs ( ) [private, slot]

Références coureurs, dossards, listeNomsCoureurs, listeNumerosDossardCoureurs, et ui.

Référencé par selectionnerListeCoureursCourse(), et selectionnerOnglet().

{
    if(ui->onglets->currentIndex() != 1)
        return;

    if(!ui->listeInscriptionCourses->currentText().isEmpty())
    {
        coureurs->setStringList(listeNomsCoureurs);
        ui->listViewCoureurs->setModel(coureurs);
        dossards->setStringList(listeNumerosDossardCoureurs);
        ui->listViewDossards->setModel(dossards);
    }
}

Références ONGLET_RESULTATS, et ui.

Référencé par IHMManifestation().

{
    ui->onglets->setCurrentIndex(ONGLET_RESULTATS);
}
IHMManifestation::afficherResultats ( QString  idCourse) [private, slot]
Paramètres:
idCourseQString l'identifiant de la course

Références activerImpression(), ajouterResultat(), bd, effacerResultats(), et BaseDeDonnees::recuperer().

Référencé par selectionnerCourseResultats().

{
    // On commence par effacer le contenu précédent
    effacerResultats();

    // Récupérer les résultats d'une course (Requête SQL)
    QVector<QStringList> resultats;
    QString requete = "SELECT Inscrit.NumeroDossard, Coureur.Nom, Coureur.Prenom, Classe.Nom AS NomClasse, Classe.Numero, Arrivee.Temps FROM Course, Inscrit, Coureur, Classe, Arrivee WHERE Course.IdCourse = Inscrit.idCourse AND Inscrit.idCoureur = Coureur.idCoureur AND Coureur.idClasse = Classe.idClasse AND Inscrit.idInscrit = Arrivee.idInscrit AND Course.IdCourse = '" + idCourse + "'  ORDER BY Arrivee.Temps ASC;";
    qDebug() << Q_FUNC_INFO  <<requete;
    bool retour = bd->recuperer(requete, resultats);
    if(retour != false)
    {
        QStringList unResultat;                

        // Ajouter chaque élément dans le TableWidget
        for(int ligne = 0; ligne < resultats.size(); ligne++)
        {
            unResultat = resultats.at(ligne);

            ajouterResultat(ligne, unResultat);
        }

        activerImpression();
    }
}
IHMManifestation::ajouterResultat ( int  ligne,
QStringList  unResultat 
) [private, slot]

Références COLONNE_CLASSE, COLONNE_CLASSEMENT, COLONNE_NOM, COLONNE_NUMERODOSSARD, COLONNE_PRENOM, COLONNE_TEMPS, EMPLACEMENT_NOM, EMPLACEMENT_NOMCLASSE, EMPLACEMENT_NUMEROCLASSE, EMPLACEMENT_NUMERODOSSARD, EMPLACEMENT_PRENOM, EMPLACEMENT_TEMPS, et ui.

Référencé par afficherResultats().

{
    QTableWidgetItem *elementClassement, *elementNumeroDossard, *elementNom, *elementPrenom, *elementClasse, *elementTemps;

    //Colonne Classement
    ui->tableWidgetResultats->insertRow(ligne);
    elementClassement = new QTableWidgetItem(QString::number(ligne+1));
    elementClassement->setFlags(Qt::ItemIsEnabled);
    if(ligne < 1)
    {
        elementClassement->setBackgroundColor(QColor(239,216,7));
        QFont font("", 16, QFont::Normal);
        font.setBold(true);
        elementClassement->setFont(font);
    }
    else if(ligne < 2)
    {
        elementClassement->setBackgroundColor(QColor(206,206,206));
        QFont font("", 16, QFont::Normal);
        font.setBold(true);
        elementClassement->setFont(font);
    }
    else if(ligne < 3)
    {
        elementClassement->setBackgroundColor(QColor(205,127,50));
        elementClassement->setForeground(Qt::white);
        QFont font("", 16, QFont::Normal);
        font.setBold(true);
        elementClassement->setFont(font);
    }
    ui->tableWidgetResultats->setItem(ligne, COLONNE_CLASSEMENT, elementClassement); // l : ligne (row) et c : colonne

    //Colonne Numéro de Dossard
    elementNumeroDossard = new QTableWidgetItem(unResultat.at(EMPLACEMENT_NUMERODOSSARD));
    elementNumeroDossard->setFlags(Qt::ItemIsEnabled);
    if(ligne < 1)
    {
        elementNumeroDossard->setBackgroundColor(QColor(239,216,7));
    }
    else if(ligne < 2)
    {
        elementNumeroDossard->setBackgroundColor(QColor(206,206,206));
    }
    else if(ligne < 3)
    {
        elementNumeroDossard->setBackgroundColor(QColor(205,127,50));
        elementNumeroDossard->setForeground(Qt::white);
    }
    ui->tableWidgetResultats->setItem(ligne, COLONNE_NUMERODOSSARD, elementNumeroDossard); // l : ligne (row) et c : colonne

    //Colonne Nom
    elementNom = new QTableWidgetItem(unResultat.at(EMPLACEMENT_NOM));
    elementNom->setFlags(Qt::ItemIsEnabled);
    if(ligne < 1)
    {
        elementNom->setBackgroundColor(QColor(239,216,7));
    }
    else if(ligne < 2)
    {
        elementNom->setBackgroundColor(QColor(206,206,206));
    }
    else if(ligne < 3)
    {
        elementNom->setBackgroundColor(QColor(205,127,50));
        elementNom->setForeground(Qt::white);
    }
    ui->tableWidgetResultats->setItem(ligne, COLONNE_NOM, elementNom); // l : ligne (row) et c : colonne

    //Colonne Prénom
    elementPrenom = new QTableWidgetItem(unResultat.at(EMPLACEMENT_PRENOM));
    elementPrenom->setFlags(Qt::ItemIsEnabled);
    if(ligne < 1)
    {
        elementPrenom->setBackgroundColor(QColor(239,216,7));
    }
    else if(ligne < 2)
    {
        elementPrenom->setBackgroundColor(QColor(206,206,206));
    }
    else if(ligne < 3)
    {
        elementPrenom->setBackgroundColor(QColor(205,127,50));
        elementPrenom->setForeground(Qt::white);
    }
    ui->tableWidgetResultats->setItem(ligne, COLONNE_PRENOM, elementPrenom); // l : ligne (row) et c : colonne

    //Colonne Classe
    elementClasse = new QTableWidgetItem(unResultat.at(EMPLACEMENT_NOMCLASSE) + " " + unResultat.at(EMPLACEMENT_NUMEROCLASSE));
    elementClasse->setFlags(Qt::ItemIsEnabled);
    elementClasse->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
    if(ligne < 1)
    {
        elementClasse->setBackgroundColor(QColor(239,216,7));
    }
    else if(ligne < 2)
    {
        elementClasse->setBackgroundColor(QColor(206,206,206));
    }
    else if(ligne < 3)
    {
        elementClasse->setBackgroundColor(QColor(205,127,50));
        elementClasse->setForeground(Qt::white);
    }
    ui->tableWidgetResultats->setItem(ligne, COLONNE_CLASSE, elementClasse); // l : ligne (row) et c : colonne

    //Colonne Temps
    elementTemps = new QTableWidgetItem(unResultat.at(EMPLACEMENT_TEMPS));
    elementTemps->setFlags(Qt::ItemIsEnabled);
    elementTemps->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
    if(ligne < 1)
    {
        elementTemps->setBackgroundColor(QColor(239,216,7));
    }
    else if(ligne < 2)
    {
        elementTemps->setBackgroundColor(QColor(206,206,206));
    }
    else if(ligne < 3)
    {
        elementTemps->setBackgroundColor(QColor(205,127,50));
        elementTemps->setForeground(Qt::white);
    }
    ui->tableWidgetResultats->setItem(ligne, COLONNE_TEMPS, elementTemps); // l : ligne (row) et c : colonne
}

Charge la liste des catégories.

Références bd, listeCategories, BaseDeDonnees::recuperer(), et ui.

Référencé par selectionnerOnglet().

{
    qDebug() << Q_FUNC_INFO;
    QString requete;
    QStringList categories;
    bool retour;

    // Initialise la liste
    ui->listeInscriptionsCategories->clear();
    listeCategories.clear();

    // Récupère dans la liste des categories dans un QVector de QStringList
    requete = "SELECT * FROM Categorie ORDER BY Nom ASC;";
    qDebug() << Q_FUNC_INFO << requete;
    retour = bd->recuperer(requete, listeCategories);
    if(retour != false)
    {
        for(int i=0; i < listeCategories.size(); i++)
        {
            categories = listeCategories.at(i);
            qDebug() << Q_FUNC_INFO << QString::fromUtf8("Catégories : ") << categories;
            ui->listeInscriptionsCategories->addItem(categories.at(1) + " " + categories.at(2));
        }
    }
}

Références bd, listeClasses, BaseDeDonnees::recuperer(), et ui.

Référencé par selectionnerOnglet().

{
    QString requete;
    QStringList classe;
    bool retour;

    // Initialise la liste
    ui->listeInscriptionsClasses->clear();
    listeClasses.clear();

    // Récupère dans la liste des classes dans un QVector de QStringList
    requete = "SELECT * FROM Classe ORDER BY Nom ASC;";
    qDebug() << Q_FUNC_INFO << requete;
    retour = bd->recuperer(requete, listeClasses);
    if(retour != false)
    {
        for(int i=0; i < listeClasses.size(); i++)
        {
            classe = listeClasses.at(i);
            qDebug() << Q_FUNC_INFO << QString::fromUtf8("Classe : ") << classe;
            ui->listeInscriptionsClasses->addItem(classe.at(1) + " " + classe.at(2));
        }
    }
}

Charge la liste coureur.

Références bd, listeCoureurs, BaseDeDonnees::recuperer(), selectionnerCoureur(), selectionnerListeCoureursCourse(), et ui.

Référencé par creerCoureur(), modifierCoureur(), selectionnerOnglet(), et supprimerCoureur().

{
    QString requete;
    bool retour;

    qDebug() << Q_FUNC_INFO;

    // Réinitialise la liste
    disconnect(ui->listeCoureurs, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerCoureur()));
    listeCoureurs.clear();
    ui->listeCoureurs->clear();
    ui->listeCoureurs->addItem("");

    // Récupère dans la liste des coureurs dans un QVector de QStringList
    requete = "SELECT Coureur.*,Classe.Nom as NomClasse,Classe.Numero,Categorie.Nom as NomCategorie,Categorie.Sexe as SexeCategorie FROM Coureur,Classe,Categorie WHERE Coureur.idCategorie = Categorie.idCategorie AND Coureur.idClasse = Classe.idClasse ORDER BY Coureur.Nom ASC;";
    //qDebug() << Q_FUNC_INFO << requete;
    retour = bd->recuperer(requete, listeCoureurs);
    if(retour != false)
    {
        for(int i=0; i < listeCoureurs.size(); i++)
        {
            //qDebug() << Q_FUNC_INFO << QString::fromUtf8("Coureur : ") << listeCoureurs.at(i);
            ui->listeCoureurs->addItem(QString(listeCoureurs.at(i).at(4) + QString(" ") + listeCoureurs.at(i).at(5) + QString(" - ") + listeCoureurs.at(i).at(8) + QString(" ") + listeCoureurs.at(i).at(9) + QString(" - ") + listeCoureurs.at(i).at(10)));            
        }        
        selectionnerCoureur();
        selectionnerListeCoureursCourse();
    }
    connect(ui->listeCoureurs, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerCoureur()));
}
IHMManifestation::chargerListeCourses ( QString  idManifestation) [private]

Charge la liste des courses pour une manifestation.

Paramètres:
idManifestationQString l'identifiant de la manisfestation

Références bd, COURSE_DISTANCE, COURSE_HEUREDEPART, COURSE_NOM, listeCourses, ONGLET_MANIFESTATION, BaseDeDonnees::recuperer(), selectionnerCourse(), selectionnerCourseResultats(), et ui.

Référencé par creerCourse(), modifierCourse(), selectionnerManifestation(), selectionnerManifestationResultats(), et supprimerCourse().

{
    qDebug() << Q_FUNC_INFO;
    QString requete;
    QStringList course;
    bool retour;

    // Réinitialise la liste
    disconnect(ui->listeCreationCourses, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerCourse()));
    disconnect(ui->listeCreationCoursesResultats, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerCourseResultats()));
    listeCourses.clear();
    ui->listeCreationCourses->clear();
    ui->listeCreationCourses->addItem(""); // index 0
    ui->listeCreationCoursesResultats->clear();
    ui->listeCreationCoursesResultats->addItem(""); // index 0

    // Récupère la liste des courses d'une manifestation dans un QVector de QStringList
    requete = "SELECT * FROM Course WHERE idManifestation = '" + idManifestation + "' ORDER BY HeureDepart ASC;";
    qDebug() << Q_FUNC_INFO << requete;
    retour = bd->recuperer(requete, listeCourses);
    if(retour != false)
    {
        for(int i=0; i < listeCourses.size(); i++)
        {
            course = listeCourses.at(i);
            qDebug() << Q_FUNC_INFO << QString::fromUtf8("Course : ") << course;
            QTime heureDepart = QTime::fromString(course.at(COURSE_HEUREDEPART), "hh:mm:ss");
            ui->listeCreationCourses->addItem(course.at(COURSE_NOM) + " - " + course.at(COURSE_DISTANCE) + "m - " + heureDepart.toString("hh'h'mm"));
            ui->listeCreationCoursesResultats->addItem(course.at(COURSE_NOM) + " - " + course.at(COURSE_DISTANCE) + "m - " + heureDepart.toString("hh'h'mm"));

        }
    }

    // Sélectionne par défaut
    if(ui->onglets->currentIndex() == ONGLET_MANIFESTATION)
        selectionnerCourse();
    connect(ui->listeCreationCourses, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerCourse()));
    connect(ui->listeCreationCoursesResultats, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerCourseResultats()));
}

Charge la liste des inscrits a une course.

Références bd, COURSE_NOM, listeCourses, BaseDeDonnees::recuperer(), et ui.

Référencé par selectionnerOnglet().

{
    qDebug() << Q_FUNC_INFO;
    QString requete;
    QStringList course;
    bool retour;

    // Réinitialise la liste
    //disconnect(ui->listeInscriptionCourses, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerCourse()));
    listeCourses.clear();
    ui->listeInscriptionCourses->clear();
    ui->listeInscriptionCourses->addItem(""); // index 0

    // Récupère la liste des courses d'une manifestation dans un QVector de QStringList
    requete = "SELECT * FROM Course";
    qDebug() << Q_FUNC_INFO << requete;
    retour = bd->recuperer(requete, listeCourses);
    if(retour != false)
    {
        for(int i=0; i < listeCourses.size(); i++)
        {
            course = listeCourses.at(i);
            qDebug() << Q_FUNC_INFO << QString::fromUtf8("Course : ") << course;
            ui->listeInscriptionCourses->addItem(course.at(COURSE_NOM));
        }
    }
}

Charge la liste des manifestations.

Références bd, listeManifestations, manifestation, ONGLET_MANIFESTATION, BaseDeDonnees::recuperer(), selectionnerManifestation(), selectionnerManifestationResultats(), et ui.

Référencé par creerManifestation(), IHMManifestation(), modifierManifestation(), et supprimerManifestation().

{
    QString requete;
    QStringList manifestation;
    bool retour;

    // Réinitialise la liste
    disconnect(ui->listeCreationManifestations, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerManifestation()));
    disconnect(ui->listeCreationManifestationsResultats, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerManifestationResultats()));
    listeManifestations.clear();
    ui->listeCreationManifestations->clear();
    ui->listeCreationManifestations->addItem(""); // index 0
    ui->listeCreationManifestationsResultats->clear();
    ui->listeCreationManifestationsResultats->addItem(""); // index 0

    // Récupère dans la liste des manifestations dans un QVector de QStringList
    requete = "SELECT * FROM Manifestation ORDER BY Date ASC;";
    qDebug() << Q_FUNC_INFO << requete;
    retour = bd->recuperer(requete, listeManifestations);
    if(retour != false)
    {
        for(int i=0; i < listeManifestations.size(); i++)
        {
            manifestation = listeManifestations.at(i);
            qDebug() << Q_FUNC_INFO << QString::fromUtf8("Manifestation : ") << manifestation;
            ui->listeCreationManifestations->addItem(manifestation.at(1));
            ui->listeCreationManifestationsResultats->addItem(manifestation.at(1));
        }
    }

    // Sélectionne par défaut
    if(ui->onglets->currentIndex() == ONGLET_MANIFESTATION)
        selectionnerManifestation();
    connect(ui->listeCreationManifestations, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerManifestation()));
    connect(ui->listeCreationManifestationsResultats, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerManifestationResultats()));
}

Référencé par IHMManifestation().

{
    QMessageBox::critical(0, QString::fromUtf8("Chrono-Cross"), QString::fromUtf8("TODO Sélectionner l'onglet Inscription !"));
    // Le bouton Inscrire amène directement à l'onglet Résultats en attendant la correction des erreurs de la page Insciption
    //ui->onglets->setCurrentIndex(ONGLET_INSCRIPTION);
    //ui->lineEditNomCoureur->setFocus();
}

Références ui.

Référencé par IHMManifestation().

{
    QStringList nomColonnes; // nom des colonnes
    nomColonnes << QString::fromUtf8("Classement") << QString::fromUtf8("Numéro de dossard") << QString::fromUtf8("Nom") << QString::fromUtf8("Prénom") << QString::fromUtf8("Classe") << QString::fromUtf8("Temps"); // ...

    // On fixe le nombre de colonnes
    ui->tableWidgetResultats->setColumnCount(nomColonnes.size());
    // On applique les noms des colonnes
    ui->tableWidgetResultats->setHorizontalHeaderLabels(nomColonnes);

    // on cache les numéros de ligne
    ui->tableWidgetResultats->verticalHeader()->setHidden(true);

    QHeaderView * headerView = ui->tableWidgetResultats->horizontalHeader();
    // on redimensionne automatiquement la colonne pour occuper l'espace disponible
    #if QT_VERSION >= 0x050000
    headerView->setSectionResizeMode(QHeaderView::Stretch);
    #else
    headerView->setResizeMode(QHeaderView::Stretch);
    #endif
}
IHMManifestation::creerCoureur ( ) [private, slot]

Crée un coureur.

Références bd, chargerListeCoureurs(), BaseDeDonnees::executer(), getIdCategorie(), getIdClasse(), et ui.

Référencé par IHMManifestation().

{
    qDebug() << Q_FUNC_INFO;
    bool retour = false;

    // Vérifications
    /*if(!verifierInformationsCoureur())
    {
       ui->statusBar->showMessage(QString::fromUtf8("Les informations sur le coureur sont invalides ou manquantes"), 2000);
       return;
    }*/

    QString requete = "INSERT INTO Coureur(idCategorie,idClasse,INE,Nom,Prenom,DateNaissance,Sexe) VALUES('" + getIdCategorie() + "','" + getIdClasse() + "','" + ui->lineEditNumeroINEEleve->text() +"','" + ui->lineEditNomCoureur->text() + "','" + ui->lineEditPrenomCoureur->text() + "','" + ui->dateEditDateNaissanceCoureur->date().toString("yyyy-MM-dd") + "','" + ui->listeInscriptionSexe->currentText() + "')";

    qDebug() << Q_FUNC_INFO << requete;
    retour = bd->executer(requete);

    if(retour)
    {
        ui->statusBar->showMessage(QString::fromUtf8("Création du coureur %1 réussie").arg(ui->lineEditNomCoureur->text()), 2000);
        chargerListeCoureurs();
    }
    else
    {
        ui->statusBar->showMessage(QString::fromUtf8("Impossible de créer le coureur %1 !").arg(ui->lineEditNomCoureur->text()), 2000);
    }
}
IHMManifestation::creerCourse ( ) [private, slot]
A faire:
vérifier si la validité de l'heure

Références bd, chargerListeCourses(), BaseDeDonnees::executer(), listeManifestations, TEMPO_STATUS, et ui.

{
    qDebug() << Q_FUNC_INFO;
    bool retour = false;

    // Vérifications
    if(ui->lineEditNomCourse->text().isEmpty())
    {
        QMessageBox::critical(0, QString::fromUtf8("Chrono-Cross"), QString::fromUtf8("Il faut indiquer un nom et la longeur de la course !"));
        ui->statusBar->showMessage(QString::fromUtf8("Il faut indiquer un nom et la longeur de la course"), TEMPO_STATUS);
        return;
    }

    QString idManifestation = listeManifestations.at(ui->listeCreationManifestations->currentIndex()-1).at(0);
    QString requete = "INSERT INTO Course(idManifestation,Nom,HeureDepart,Distance) VALUES('" + idManifestation + "','" + ui->lineEditNomCourse->text() + "','" + ui->timeEditHeureDebutCourse->time().toString("hh:mm:ss") + "','" + ui->lineEditLongueurCourse->text() + "')";

    qDebug() << Q_FUNC_INFO << requete;
    retour = bd->executer(requete);

    if(retour)
    {
        ui->statusBar->showMessage(QString::fromUtf8("Création de la course %1 réussie").arg(ui->lineEditNomCourse->text()), TEMPO_STATUS);
        chargerListeCourses(idManifestation);
    }
}
A faire:
vérifier si la date n'est pas passée

Références bd, chargerListeManifestations(), BaseDeDonnees::executer(), et ui.

{
    qDebug() << Q_FUNC_INFO;
    bool retour = false;

    // Vérifications
    if(ui->lineEditNomManifestation->text().isEmpty())
    {
        QMessageBox::critical(0, QString::fromUtf8("Chrono-Cross"), QString::fromUtf8("Il faut indiquer un nom de manifestation !"));
        ui->statusBar->showMessage(QString::fromUtf8("Il faut indiquer un nom de manifestation"), 2000);
        return;
    }

    QString requete = "INSERT INTO Manifestation(Nom,Date) VALUES('" + ui->lineEditNomManifestation->text() + "','" + ui->dateEditEditionManifestation->date().toString("yyyy-MM-dd") + "')";

    qDebug() << Q_FUNC_INFO << requete;
    retour = bd->executer(requete);

    if(retour)
    {
        ui->statusBar->showMessage(QString::fromUtf8("Création de la manifestation %1 réussie").arg(ui->lineEditNomManifestation->text()), 2000);
        chargerListeManifestations();
    }
}

Démarre l'inscription d'un coureur.

Références editionDossard.

Référencé par IHMManifestation().

{
    // début de l'édition
    editionDossard = true;
}

Références ui.

Référencé par afficherResultats(), et selectionnerCourseResultats().

{
    int nb = ui->tableWidgetResultats->rowCount();
    // on efface les lignes du tableau une par une
    for(int i = 0; i < nb; i++)
    {
        ui->tableWidgetResultats->removeRow(0);
    }
    ui->boutonImprimerResultats->setEnabled(false);
}
QString IHMManifestation::getIdCategorie ( ) [private]

Références listeCategories, et ui.

Référencé par creerCoureur(), et modifierCoureur().

{
    qDebug() << Q_FUNC_INFO;
    return listeCategories.at(ui->listeInscriptionsCategories->currentIndex()).at(0);
}

Obtiens l'idClasses.

Références listeClasses, et ui.

Référencé par creerCoureur(), et modifierCoureur().

{
    return listeClasses.at(ui->listeInscriptionsClasses->currentIndex()).at(0);
}
IHMManifestation::getIdCoureur ( QString  nom) [private]

Obtiens l'idCoureur.

Références listeIdCoureurs, et listeNomsCoureurs.

Référencé par inscrireCoureur().

{
    for(int i = 0; i < listeNomsCoureurs.size(); i++)
    {
        if(listeNomsCoureurs.at(i) == nom)
            return listeIdCoureurs.at(i);
    }
    return QString("");
}
IHMManifestation::getNumeroDossard ( QString  idCoureur,
QString  idCourse 
) [private]

Obtiens les numéros de dossard.

Paramètres:
idCoureurQString l'identifiant du coureur
idCourseQString l'identifiant de la course

Références bd, et BaseDeDonnees::recuperer().

Référencé par selectionnerListeCoureursCourse().

{
    QString numeroDossard;
    QString requete;
    bool retour;

    if(idCoureur.isEmpty())
        return QString("");
    if(idCourse.isEmpty())
        return QString("");

    // Récupère le numéro de dossard dans un QString
    requete = "SELECT NumeroDossard FROM Inscrit WHERE idCoureur = '" + idCoureur + "' AND idCourse = '" + idCourse + "'";
    //qDebug() << Q_FUNC_INFO << requete;
    retour = bd->recuperer(requete, numeroDossard);
    if(retour != false)
    {
        return numeroDossard;
    }
    return QString("");
}
void IHMManifestation::imprimerResultats ( ) [private, slot]

Références manifestation, MANIFESTATION_DATE, MANIFESTATION_NOM, et ui.

Référencé par IHMManifestation().

{
    QPrinter printer;
    printer.setOrientation(QPrinter::Landscape);
    QPrintDialog *dialog = new QPrintDialog(&printer, this);
    dialog->setWindowTitle(tr("Imprimer"));
    if (dialog->exec() == QDialog::Accepted)
    {
        QPainter painter;
        painter.begin(&printer);

        painter.save();
        QString datestring = manifestation.at(MANIFESTATION_DATE);
        QDate date = QDate::fromString(datestring,"yyyy-MM-dd");

        // Les informations sur la manifestation et la course à imprimer
        painter.drawText(40, 80, QString::fromUtf8("Manifestation : ") + manifestation.at(MANIFESTATION_NOM).toUtf8() + " - " + QString::fromUtf8("Date : ") + date.toString("dd-MM-yyyy"));
        painter.drawText(40, 120, QString::fromUtf8("Course : ") + ui->label_ChargerNomCourseResultats->text().toUtf8() + " - " + QString::fromUtf8("Heure de départ : ") + ui->label_ChargerHeureDepartCourseResultats->text().toUtf8() + " - " + QString::fromUtf8("Longueur de la course : ") + ui->label_ChargerLongueurCourseResultats->text().toUtf8() + QString::fromUtf8(" m"));
        painter.restore();

        // Les résultats
        painter.translate(40, 160);
        ui->tableWidgetResultats->render(&painter);
    }
}
IHMManifestation::inscrireCoureur ( ) [private, slot]

Inscrit un coureur.

Références coureurs, editionDossard, getIdCoureur(), idCoureur, listeNomsCoureurs, selectionnerCoureurListe(), selectionnerListeCoureursCourse(), et ui.

Référencé par IHMManifestation().

{
    QString requete;
    // édition en cours ?
    if(editionDossard == true)
    {
        //qDebug() << Q_FUNC_INFO << ui->lineEditNomInscrit->text() << ui->lineEditNumeroDossard->text();
        //qDebug() << Q_FUNC_INFO << "DOSSARD nouveau : " << ui->lineEditNumeroDossard->text();
        //qDebug() << Q_FUNC_INFO << "DOSSARD ancien : ";
        //qDebug() << Q_FUNC_INFO << "Id Course : " << listeCourses.at(ui->listeInscriptionCourses->currentIndex()-1).at((0));
        QString idCoureur = getIdCoureur(ui->lineEditNomInscrit->text());
        QString idCourse;
        qDebug() << Q_FUNC_INFO << "Id Coureur : " << idCoureur;
        qDebug() << Q_FUNC_INFO << "Id Course : " << idCourse;

        //requete = "INSERT Inscrit.NumeroDossard FROM Coureur WHERE idCoureur = '" + idCoureur + "' AND idCourse = '" + idCourse + "'";

        selectionnerListeCoureursCourse();
    }
    // fin de l'édition
    editionDossard = false;

    // on passe au suivant (Amélioration Thierry Vaira)
    for(int i = 0; i < listeNomsCoureurs.size(); i++)
    {
        if(listeNomsCoureurs.at(i) == ui->lineEditNomInscrit->text())
        {
            QModelIndex index = coureurs->index(++i%coureurs->rowCount(), 0);
            ui->listViewDossards->setCurrentIndex(index);
            ui->listViewCoureurs->setCurrentIndex(index);
            selectionnerCoureurListe(index);
            break;
        }
    }
}
IHMManifestation::modifierCoureur ( ) [private, slot]

Références bd, chargerListeCoureurs(), COUREUR_ID, BaseDeDonnees::executer(), getIdCategorie(), getIdClasse(), listeCoureurs, TEMPO_STATUS, et ui.

Référencé par IHMManifestation().

{
    if(ui->listeCoureurs->currentIndex() == 0)
        return;
    qDebug() << Q_FUNC_INFO;
    bool retour = false;

    QString requete = "UPDATE Coureur SET INE = '" + ui->lineEditNumeroINEEleve->text() + "', Nom = '" + ui->lineEditNomCoureur->text() + "', Prenom = '" + ui->lineEditPrenomCoureur->text() + "', DateNaissance = '" + ui->dateEditDateNaissanceCoureur->date().toString("yyyy-MM-dd") + "', Sexe = '"+ ui->listeInscriptionSexe->currentText() + "', idCategorie = '" + getIdCategorie() + "', idClasse = '" + getIdClasse() + "' WHERE idCoureur = '" + listeCoureurs.at(ui->listeCoureurs->currentIndex()-1).at(COUREUR_ID) + "'";

    qDebug() << Q_FUNC_INFO << requete;
    retour = bd->executer(requete);
    if(retour)
    {
        ui->statusBar->showMessage(QString::fromUtf8("Modification du coureur %1 réussie").arg(ui->lineEditNomCoureur->text()), TEMPO_STATUS);
        chargerListeCoureurs();
    }
    else
    {
        ui->statusBar->showMessage(QString::fromUtf8("Impossible de modifier le coureur %1 !").arg(ui->lineEditNomCoureur->text()), TEMPO_STATUS);
    }

}
IHMManifestation::modifierCourse ( ) [private, slot]
A faire:
vérifier si la validité de l'heure

Références bd, chargerListeCourses(), BaseDeDonnees::executer(), listeCourses, listeManifestations, TEMPO_STATUS, et ui.

Référencé par IHMManifestation().

{
    qDebug() << Q_FUNC_INFO;
    bool retour = false;

    // Vérifications
    if(ui->lineEditNomCourse->text().isEmpty())
    {
        QMessageBox::critical(0, QString::fromUtf8("Chrono-Cross"), QString::fromUtf8("Il faut indiquer un nom de course !"));
        ui->statusBar->showMessage(QString::fromUtf8("Il faut indiquer un nom de course"), TEMPO_STATUS);
        return;
    }

    // Récupére l'identifiant de la course
    QString idCourse = listeCourses.at(ui->listeCreationCourses->currentIndex()-1).at(0);

    QString requete = "UPDATE Course SET Nom = '" + ui->lineEditNomCourse->text() + "', HeureDepart = '" + ui->timeEditHeureDebutCourse->time().toString("hh:mm:ss") + "', Distance = '" + ui->lineEditLongueurCourse->text() + "' WHERE idCourse = '" + idCourse + "'";

    qDebug() << Q_FUNC_INFO << requete;
    retour = bd->executer(requete);

    if(retour)
    {
        ui->statusBar->showMessage(QString::fromUtf8("Modification de la course %1 réussie").arg(ui->lineEditNomCourse->text()), TEMPO_STATUS);
        chargerListeCourses(listeManifestations.at(ui->listeCreationManifestations->currentIndex()-1).at(0));
    }
}
A faire:
vérifier si la date n'est pas passée

Références bd, chargerListeManifestations(), BaseDeDonnees::executer(), listeManifestations, et ui.

Référencé par IHMManifestation().

{
    qDebug() << Q_FUNC_INFO;
    bool retour = false;

    // Vérifications
    if(ui->lineEditNomManifestation->text().isEmpty())
    {
        ui->statusBar->showMessage(QString::fromUtf8("Il faut indiquer un nom de manifestation"), 2000);
        return;
    }

    // Récupére l'identifiant de la manifestation
    QString idManifestation = listeManifestations.at(ui->listeCreationManifestations->currentIndex()-1).at(0);

    QString requete = "UPDATE Manifestation SET Nom = '" + ui->lineEditNomManifestation->text() + "', Date = '" + ui->dateEditEditionManifestation->date().toString("yyyy-MM-dd") + "' WHERE idManifestation = '" + idManifestation + "'";

    qDebug() << Q_FUNC_INFO << requete;
    retour = bd->executer(requete);

    if(retour)
    {
        ui->statusBar->showMessage(QString::fromUtf8("Modification de la manifestation %1 réussie").arg(ui->lineEditNomManifestation->text()), 2000);
        chargerListeManifestations();
    }
}
IHMManifestation::quitter ( ) [private, slot]

Quitte l'application.

Référencé par IHMManifestation().

{
    // on ferme la fenêtre
    close();
}

Selectionne un coureur.

Références COUREUR_DATENAISSANCE, COUREUR_NOM, COUREUR_NOM_CATEGORIE, COUREUR_NOM_CLASSE, COUREUR_NUMERO_CLASSE, COUREUR_NUMERO_INE, COUREUR_PRENOM, COUREUR_SEXE, COUREUR_SEXE_CATEGORIE, listeCoureurs, et ui.

Référencé par chargerListeCoureurs(), et IHMManifestation().

{
        QDate DateNaissance;
        QStringList coureur;
        int position;

        int index = ui->listeCoureurs->currentIndex();

        qDebug() << Q_FUNC_INFO << index;
        switch(index)
        {
        case 0:
            ui->lineEditNomCoureur->setText("");
            ui->lineEditPrenomCoureur->setText("");
            DateNaissance = QDate::fromString("2000-01-01", "yyyy-MM-dd");
            ui->dateEditDateNaissanceCoureur->setDate(DateNaissance);
            ui->listeInscriptionSexe->setCurrentIndex(0);
            ui->lineEditNumeroINEEleve->setText("");
            ui->listeInscriptionsClasses->setCurrentIndex(0);
            ui->listeInscriptionsCategories->setCurrentIndex(0);
            ui->boutonCreationCoureur->setEnabled(true);
            ui->boutonModificationCoureur->setEnabled(false);
            ui->boutonSuppressionCoureur->setEnabled(false);
            break;
        default:
            if(index > 0)
            {
                coureur = listeCoureurs.at(index-1);
                qDebug() << Q_FUNC_INFO << coureur;
                ui->lineEditNomCoureur->setText(coureur.at(COUREUR_NOM));
                ui->lineEditPrenomCoureur->setText(coureur.at(COUREUR_PRENOM));
                DateNaissance = QDate::fromString(coureur.at(COUREUR_DATENAISSANCE), "yyyy-MM-dd");
                ui->dateEditDateNaissanceCoureur->setDate(DateNaissance);
                position = ui->listeInscriptionSexe->findText(coureur.at(COUREUR_SEXE));
                if(position != -1)
                    ui->listeInscriptionSexe->setCurrentIndex(position);
                ui->lineEditNumeroINEEleve->setText(coureur.at(COUREUR_NUMERO_INE));
                position = ui->listeInscriptionsClasses->findText(coureur.at(COUREUR_NOM_CLASSE) + " " + coureur.at(COUREUR_NUMERO_CLASSE));
                if(position != -1)
                    ui->listeInscriptionsClasses->setCurrentIndex(position);
                position = ui->listeInscriptionsCategories->findText(coureur.at(COUREUR_NOM_CATEGORIE) + " " + coureur.at(COUREUR_SEXE_CATEGORIE)+ " ");
                if(position != -1)
                    ui->listeInscriptionsCategories->setCurrentIndex(position);
                ui->boutonCreationCoureur->setEnabled(false);
                ui->boutonModificationCoureur->setEnabled(true);
                ui->boutonSuppressionCoureur->setEnabled(true);
            }
            break;
        }
}
IHMManifestation::selectionnerCoureurListe ( const QModelIndex &  index) [private, slot]

Références dossards, listeCoureurs, listeNumerosDossardCoureurs, et ui.

Référencé par IHMManifestation(), et inscrireCoureur().

{
    qDebug() << Q_FUNC_INFO << index.data() << index.row();
    if(listeCoureurs.count() > 0)
    {        
        QModelIndex indexDossard = dossards->index(index.row(), 0);
        ui->listViewDossards->scrollTo(indexDossard);
        ui->lineEditNomInscrit->setText(index.data().toString());
        ui->lineEditNumeroDossard->setText(listeNumerosDossardCoureurs.at(index.row()));
        ui->lineEditNumeroDossard->setFocus();
    }
}

Sélectionne une course à éditer.

Références COURSE_DISTANCE, COURSE_HEUREDEPART, COURSE_NOM, listeCourses, et ui.

Référencé par chargerListeCourses(), et selectionnerManifestation().

{
    QTime heureDebutCourse(8, 0);
    QStringList course;

    int index = ui->listeCreationCourses->currentIndex();

    switch(index)
    {
    case 0:
        ui->timeEditHeureDebutCourse->setTime(heureDebutCourse);
        ui->lineEditNomCourse->setText("");
        ui->lineEditLongueurCourse->setText("");
        if(ui->listeCreationManifestations->currentIndex() > 0)
        {
            ui->boutonCreationCourse->setEnabled(true);
        }
        else
        {
            disconnect(ui->listeCreationCourses, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerCourse()));
            listeCourses.clear();
            ui->listeCreationCourses->clear();
            ui->listeCreationCourses->addItem(""); // index 0
            ui->listeInscriptionCourses->clear();
            ui->boutonCreationCourse->setEnabled(false);
            connect(ui->listeCreationCourses, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerCourse()));
        }
        ui->boutonModificationCourse->setEnabled(false);
        ui->boutonSuppressionCourse->setEnabled(false);
        ui->boutonInscrireCourse->setEnabled(false);
        break;
    default:
        if(index > 0)
        {
            course = listeCourses.at(index-1);
            QTime heureCourse = QTime::fromString(course.at(COURSE_HEUREDEPART), "hh:mm:ss");
            ui->timeEditHeureDebutCourse->setTime(heureCourse);
            ui->lineEditNomCourse->setText(course.at(COURSE_NOM));
            ui->lineEditLongueurCourse->setText(course.at(COURSE_DISTANCE));

            ui->boutonCreationCourse->setEnabled(false);
            ui->boutonModificationCourse->setEnabled(true);
            ui->boutonSuppressionCourse->setEnabled(true);
            ui->listeInscriptionCourses->setCurrentIndex(index-1);
            ui->boutonInscrireCourse->setEnabled(true);
        }
        break;
    }
}

Références afficherResultats(), COURSE_DISTANCE, COURSE_HEUREDEPART, COURSE_NOM, effacerResultats(), listeCourses, et ui.

Référencé par chargerListeCourses(), et selectionnerManifestationResultats().

{
    QStringList course;

    int index = ui->listeCreationCoursesResultats->currentIndex();
    ui->label_ChargerNomCourseResultats->clear();
    ui->label_ChargerHeureDepartCourseResultats->clear();
    ui->label_ChargerLongueurCourseResultats->clear();

    switch(index)
    {
    case 0:
        effacerResultats();
        break;
    default:
        if(index > 0)
        {
            course = listeCourses.at(index-1);
            QTime heureCourse = QTime::fromString(course.at(COURSE_HEUREDEPART), "hh:mm:ss");
            ui->label_ChargerNomCourseResultats->setText(course.at(COURSE_NOM));
            ui->label_ChargerHeureDepartCourseResultats->setText(heureCourse.toString("hh'h'mm"));
            ui->label_ChargerLongueurCourseResultats->setText(course.at(COURSE_DISTANCE));
            afficherResultats(course.at(0));
        }
        break;
    }
}
IHMManifestation::selectionnerDossardListe ( const QModelIndex &  index) [private, slot]

Références coureurs, listeCoureurs, listeNumerosDossardCoureurs, et ui.

Référencé par IHMManifestation().

{
    qDebug() << Q_FUNC_INFO << index.data() << index.row();
    if(listeCoureurs.count() > 0)
    {
        qDebug() << Q_FUNC_INFO;
        QModelIndex indexCoureur = coureurs->index(index.row(), 0);
        ui->listViewCoureurs->scrollTo(indexCoureur);
        ui->lineEditNomInscrit->setText(indexCoureur.data().toString());
        ui->lineEditNumeroDossard->setText(listeNumerosDossardCoureurs.at(index.row()));
        ui->lineEditNumeroDossard->setFocus();
    }
}

Selectionne la liste des coureurs dans une course.

Références afficherListeCoureurs(), coureurs, dossards, getNumeroDossard(), listeCoureurs, listeCourses, listeIdCoureurs, listeNomsCoureurs, listeNumerosDossardCoureurs, et ui.

Référencé par chargerListeCoureurs(), IHMManifestation(), et inscrireCoureur().

{
    // aucune course sélectionnée ?
    if(ui->listeInscriptionCourses->currentIndex() == 0)
    {
        // Efface les QListView
        listeNomsCoureurs.clear();
        listeNumerosDossardCoureurs.clear();
        coureurs->setStringList(listeNomsCoureurs);
        ui->listViewCoureurs->setModel(coureurs);
        dossards->setStringList(listeNumerosDossardCoureurs);
        ui->listViewDossards->setModel(dossards);
        return;
    }

    // aucune course ?
    if(listeCourses.size() == 0)
        return;

    // Récupére la course sélectionnée
    QStringList course = listeCourses.at(ui->listeInscriptionCourses->currentIndex()-1);
    qDebug() << Q_FUNC_INFO << course;

    // Réinitialise la liste
    disconnect(ui->listeInscriptionCourses, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerListeCoureursCourse()));
    listeNomsCoureurs.clear();
    listeNumerosDossardCoureurs.clear();
    listeIdCoureurs.clear();

    for(int i=0; i < listeCoureurs.size(); i++)
    {
        listeNomsCoureurs.push_back(QString(listeCoureurs.at(i).at(4) + QString(" ") + listeCoureurs.at(i).at(5)));
        listeIdCoureurs.push_back(listeCoureurs.at(i).at(0));
        if(listeCoureurs.count() > 0 && listeCourses.count() > 0)
        {
            if(ui->listeInscriptionCourses->currentIndex() > 0)
            {
                QString numeroDossard = getNumeroDossard(listeCoureurs.at(i).at(0), listeCourses.at(ui->listeInscriptionCourses->currentIndex()-1).at(0));
                //qDebug() << Q_FUNC_INFO << QString::fromUtf8("Coureur : ") << listeCoureurs.at(i) << numeroDossard;
                listeNumerosDossardCoureurs.push_back(numeroDossard);
            }
        }
    }
    connect(ui->listeInscriptionCourses, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerListeCoureursCourse()));
    afficherListeCoureurs();
}

Sélectionne une manifestation à éditer.

Références chargerListeCourses(), listeManifestations, manifestation, ONGLET_MANIFESTATION, selectionnerCourse(), et ui.

Référencé par chargerListeManifestations().

{
    QDate maintenant = QDate::currentDate();
    QStringList manifestation;

    int index = ui->listeCreationManifestations->currentIndex();
    switch(index)
    {
    case 0:
        ui->dateEditEditionManifestation->setDate(maintenant);
        ui->lineEditNomManifestation->setText("");
        ui->boutonCreationManifestation->setEnabled(true);
        ui->boutonModificationManifestation->setEnabled(false);
        ui->boutonSuppressionManifestation->setEnabled(false);
        ui->boutonCreationCourse->setEnabled(false);
        ui->listeCreationCourses->setCurrentIndex(0);
        if(ui->onglets->currentIndex() == ONGLET_MANIFESTATION)
            selectionnerCourse();
        break;
    default:
        if(index > 0)
        {
            manifestation = listeManifestations.at(index-1);
            QDate dateManifestation = QDate::fromString(manifestation.at(2), "yyyy-MM-dd");
            ui->dateEditEditionManifestation->setDate(dateManifestation);
            ui->lineEditNomManifestation->setText(manifestation.at(1));
            ui->boutonCreationManifestation->setEnabled(false);
            ui->boutonModificationManifestation->setEnabled(true);
            ui->boutonSuppressionManifestation->setEnabled(true);
            ui->boutonCreationCourse->setEnabled(true);
            chargerListeCourses(manifestation.at(0));
        }
        break;
    }
}

Références chargerListeCourses(), listeManifestations, manifestation, selectionnerCourseResultats(), et ui.

Référencé par chargerListeManifestations().

{    
    int index = ui->listeCreationManifestationsResultats->currentIndex();

    switch(index)
    {
    case 0:
        ui->listeCreationCoursesResultats->setCurrentIndex(0);
        selectionnerCourseResultats();
        break;
    default:
        if(index > 0)
        {
            manifestation = listeManifestations.at(index-1);
            chargerListeCourses(manifestation.at(0));
        }
        break;
    }
}
IHMManifestation::selectionnerOnglet ( int  index) [private, slot]
Paramètres:
indexint l'onglet sélectionné

Références afficherListeCoureurs(), chargerListeCategories(), chargerListeClasses(), chargerListeCoureurs(), chargerListeInscriptionCourses(), et editionDossard.

Référencé par IHMManifestation().

{
    switch(index)
    {
    case 0 : // Manifestation
        //chargerListeManifestations();
        break;
    case 1 : // Inscription
        editionDossard = false;
        chargerListeClasses();
        chargerListeCategories();
        chargerListeCoureurs();        
        chargerListeInscriptionCourses();
        afficherListeCoureurs();
        break;
    case 2 : // Résultats
        break;
    }
}

Références bd, chargerListeCoureurs(), BaseDeDonnees::executer(), ui, et verifierInformationsSuppressionCoureur().

Référencé par IHMManifestation().

{
    if(ui->listeCoureurs->currentIndex() == 0)
        return;

    qDebug() << Q_FUNC_INFO ;
    bool retour = false;

    // Vérifications
    if(!verifierInformationsSuppressionCoureur())
    {
        ui->statusBar->showMessage(QString::fromUtf8("Les informations sur le coureur sont invalides ou manquantes"), 2000);
        return;
    }

    // Récupére le nom et le prenom du Coureur
    QString  Nom = ui->lineEditNomCoureur->text();
    QString  Prenom = ui->lineEditPrenomCoureur->text();
    QString requete = "DELETE FROM Coureur WHERE Nom = '" + Nom + "' AND Prenom = '" + Prenom + "'";

    qDebug() << Q_FUNC_INFO << requete;
    retour = bd->executer(requete);

    if(retour)
    {
        ui->statusBar->showMessage(QString::fromUtf8("Suppression du coureur %1 réussie").arg(ui->lineEditNomCoureur->text()), 2000);
        chargerListeCoureurs();
    }
}
IHMManifestation::supprimerCourse ( ) [private, slot]

Références bd, chargerListeCourses(), BaseDeDonnees::executer(), listeCourses, listeManifestations, TEMPO_STATUS, et ui.

Référencé par IHMManifestation().

{
    qDebug() << Q_FUNC_INFO;
    bool retour = false;

    // Récupére l'identifiant de la course
    QString idCourse = listeCourses.at(ui->listeCreationCourses->currentIndex()-1).at(0);

    QString requete = "DELETE FROM Course WHERE idCourse = '" + idCourse + "'";

    qDebug() << Q_FUNC_INFO << requete;
    retour = bd->executer(requete);

    if(retour)
    {
        ui->statusBar->showMessage(QString::fromUtf8("Suppression de la course %1 réussie").arg(ui->lineEditNomCourse->text()), TEMPO_STATUS);
        chargerListeCourses(listeManifestations.at(ui->listeCreationManifestations->currentIndex()-1).at(0));
    }
}

Références bd, chargerListeManifestations(), BaseDeDonnees::executer(), listeManifestations, et ui.

Référencé par IHMManifestation().

{
    qDebug() << Q_FUNC_INFO;
    bool retour = false;

    // Récupére l'identifiant de la manifestation
    QString idManifestation = listeManifestations.at(ui->listeCreationManifestations->currentIndex()-1).at(0);

    QString requete = "DELETE FROM Manifestation WHERE idManifestation = '" + idManifestation + "'";

    qDebug() << Q_FUNC_INFO << requete;
    retour = bd->executer(requete);

    if(retour)
    {
        ui->statusBar->showMessage(QString::fromUtf8("Suppression de la manifestation %1 réussie").arg(ui->lineEditNomManifestation->text()), 2000);
        chargerListeManifestations();
    }
}

Vérifie les informations du coureur.

A faire:
vérifier si la date de naissance n'est pas dans le futur

Références ui.

{
    if(ui->lineEditNomCoureur->text().isEmpty())
    {
        return false;
    }

    if(ui->lineEditPrenomCoureur->text().isEmpty())
    {
        return false;
    }

    //Verifier numéro INE
    /*if(ui->lineEditNumeroINEEleve->text().isEmpty() || ui->lineEditNumeroINEEleve->text().length() != 11)*/

        if(ui->lineEditNumeroINEEleve->text().contains(QRegExp("[0-9]{9}[A-Z]{2}")))
        {
            return true;
        }


    return false;
}

Vérifie que les informations du coureur sont supprimées.

Références ui.

Référencé par supprimerCoureur().

{
    if(ui->lineEditNomCoureur->text().isEmpty())
    {
        return false;
    }

    if(ui->lineEditPrenomCoureur->text().isEmpty())
    {
        return false;
    }
    return true;
}

Documentation des données membres

QStringListModel* IHMManifestation::coureurs [private]
QStringListModel* IHMManifestation::dossards [private]

Référencé par inscrireCoureur().

QVector<QStringList> IHMManifestation::listeCategories [private]
QVector<QStringList> IHMManifestation::listeClasses [private]

Référencé par chargerListeClasses(), et getIdClasse().

QVector<QStringList> IHMManifestation::listeCoureurs [private]
QVector<QStringList> IHMManifestation::listeCourses [private]
QVector<QStringList> IHMManifestation::listeCoursesResultats [private]
QStringList IHMManifestation::listeIdCoureurs [private]
QVector<QStringList> IHMManifestation::listeManifestations [private]
QVector<QStringList> IHMManifestation::listeManifestationsResultats [private]
QStringList IHMManifestation::listeNomsCoureurs [private]
QStringList IHMManifestation::manifestation [private]
Ui::IHMManifestation* IHMManifestation::ui [private]

La documentation de cette classe a été générée à partir des fichiers suivants :
 Tout Classes Fichiers Fonctions Variables Macros