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 IHMResultats

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

#include <ihmresultats.h>

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

Liste de tous les membres

Fonctions membres publiques

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

Connecteurs privés

void quitter ()
 Ferme l'application principale.
void rafraichir ()
 Rafraichit l'IHM.
void afficherResultats (QString idCourse)
 Affiche les résultats de la course.
void ajouterResultat (int ligne, QStringList unResultat)
 Ajoute les résultats d'une course dans un tableau.
void afficherManifestation ()
 Affiche les paramètres de la manifestation.
void afficherCourse ()
 Affiche les paramètres de la course.

Fonctions membres privées

void chargerListeManifestations ()
 Charge la liste des manifestations.
void chargerListeCourses (QString idManifestation)
 Charge la liste des courses pour une manifestation.
void configurerTableResultats ()
 Configure le tableau de résultats.
void effacerResultats ()
 Supprime les résultats d'une course dans un tableau.
void recupererCourse ()
 Recupère les données de la course.

Attributs privés

Ui::IHMResultats * ui
 relation vers la classe IHM
BaseDeDonneesbd
 association vers la classe BaseDeDonnees
QTimer * timerRafraichissement
 pour le rafraichissement de l'IHM
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
QVector< QStringList > listeCourses
 la liste des courses pour une manifestation
QStringList manifestation
 la manifestation pour l'affichage des résultats
QStringList course
 la course pour l'affichage des résultats

Description détaillée

Auteur:
BULIN Julien
Version:
1.1

Documentation des constructeurs et destructeur

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

Références afficherManifestation(), bd, configurerTableResultats(), BaseDeDonnees::connecter(), BaseDeDonnees::getInstance(), BaseDeDonnees::getNomBaseDonnees(), rafraichir(), timerRafraichissement, et ui.

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

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

    timerRafraichissement = new QTimer(this);
    connect(timerRafraichissement, SIGNAL(timeout()), this, SLOT(rafraichir()));

    configurerTableResultats();
    afficherManifestation();

    showFullScreen();

    timerRafraichissement->start(1000);
}

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

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

Documentation des fonctions membres

IHMResultats::afficherCourse ( ) [private, slot]
A faire:
afficher les paramètres de la course
{
}

Références bd, manifestation, MANIFESTATION_DATE, MANIFESTATION_NOM, BaseDeDonnees::recuperer(), recupererCourse(), et ui.

Référencé par IHMResultats(), et rafraichir().

{
    QString requete = "SELECT Manifestation.idManifestation, Manifestation.Nom, Manifestation.Date FROM Manifestation WHERE Manifestation.Date = date(now());";
    manifestation.clear();
    bool retour = bd->recuperer(requete, manifestation);
    //qDebug() << Q_FUNC_INFO << manifestation << retour;
    if(retour != false)
    {
            ui->labelDateHeure->setText(manifestation.at(MANIFESTATION_NOM) + " " + manifestation.at(MANIFESTATION_DATE));
            recupererCourse();
    }
    else
        ui->labelDateHeure->setText("Aucune manifestation !");
}
IHMResultats::afficherResultats ( QString  idCourse) [private, slot]
Paramètres:
idCourseQString l'identifiant de la course

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

Référencé par rafraichir().

{
    // 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;

        for(int ligne = 0; ligne < resultats.size(); ligne++)
        {
            unResultat = resultats.at(ligne);

            ajouterResultat(ligne, unResultat);
        }
    }
}
IHMResultats::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;

    // Taille de la police en gras
    QFont font("", 20, QFont::Normal);
    font.setBold(true);

    //Colonne Classement
    ui->tableWidgetResultats->insertRow(ligne);
    elementClassement = new QTableWidgetItem(QString::number(ligne+1));
    elementClassement->setBackgroundColor(QColor(255,255,255));
    elementClassement->setForeground(Qt::black);
    elementClassement->setFont(font);
    elementClassement->setFlags(Qt::ItemIsEnabled);
    if(ligne < 1)
    {
        elementClassement->setBackgroundColor(QColor(255,236,139));
    }
    else if(ligne < 2)
    {
        elementClassement->setBackgroundColor(QColor(220,220,220));
    }
    else if(ligne < 3)
    {
        elementClassement->setBackgroundColor(QColor(222,184,135));
    }
    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->setBackgroundColor(QColor(255,255,255));
    elementNumeroDossard->setForeground(Qt::black);
    elementNumeroDossard->setFont(font);
    elementNumeroDossard->setFlags(Qt::ItemIsEnabled);
    if(ligne < 1)
    {
        elementNumeroDossard->setBackgroundColor(QColor(255,236,139));
    }
    else if(ligne < 2)
    {
        elementNumeroDossard->setBackgroundColor(QColor(220,220,220));
    }
    else if(ligne < 3)
    {
        elementNumeroDossard->setBackgroundColor(QColor(222,184,135));
    }
    ui->tableWidgetResultats->setItem(ligne, COLONNE_NUMERODOSSARD, elementNumeroDossard); // l : ligne (row) et c : colonne

    //Colonne Nom
    elementNom = new QTableWidgetItem(unResultat.at(EMPLACEMENT_NOM));
    elementNom->setBackgroundColor(QColor(255,255,255));
    elementNom->setForeground(Qt::black);
    elementNom->setFont(font);
    elementNom->setFlags(Qt::ItemIsEnabled);
    if(ligne < 1)
    {
        elementNom->setBackgroundColor(QColor(255,236,139));
    }
    else if(ligne < 2)
    {
        elementNom->setBackgroundColor(QColor(220,220,220));
    }
    else if(ligne < 3)
    {
        elementNom->setBackgroundColor(QColor(222,184,135));
    }
    ui->tableWidgetResultats->setItem(ligne, COLONNE_NOM, elementNom); // l : ligne (row) et c : colonne

    //Colonne Prénom
    elementPrenom = new QTableWidgetItem(unResultat.at(EMPLACEMENT_PRENOM));
    elementPrenom->setBackgroundColor(QColor(255,255,255));
    elementPrenom->setForeground(Qt::black);
    elementPrenom->setFont(font);
    elementPrenom->setFlags(Qt::ItemIsEnabled);
    if(ligne < 1)
    {
        elementPrenom->setBackgroundColor(QColor(255,236,139));
    }
    else if(ligne < 2)
    {
        elementPrenom->setBackgroundColor(QColor(220,220,220));
    }
    else if(ligne < 3)
    {
        elementPrenom->setBackgroundColor(QColor(222,184,135));
    }
    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->setBackgroundColor(QColor(255,255,255));
    elementClasse->setForeground(Qt::black);
    elementClasse->setFont(font);
    elementClasse->setFlags(Qt::ItemIsEnabled);
    elementClasse->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
    if(ligne < 1)
    {
        elementClasse->setBackgroundColor(QColor(255,236,139));
    }
    else if(ligne < 2)
    {
        elementClasse->setBackgroundColor(QColor(220,220,220));
    }
    else if(ligne < 3)
    {
        elementClasse->setBackgroundColor(QColor(222,184,135));
    }
    ui->tableWidgetResultats->setItem(ligne, COLONNE_CLASSE, elementClasse); // l : ligne (row) et c : colonne

    //Colonne Temps
    elementTemps = new QTableWidgetItem(unResultat.at(EMPLACEMENT_TEMPS));
    elementTemps->setBackgroundColor(QColor(255,255,255));
    elementTemps->setForeground(Qt::black);
    elementTemps->setFont(font);
    elementTemps->setFlags(Qt::ItemIsEnabled);
    elementTemps->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
    if(ligne < 1)
    {
        elementTemps->setBackgroundColor(QColor(255,236,139));
    }
    else if(ligne < 2)
    {
        elementTemps->setBackgroundColor(QColor(220,220,220));
    }
    else if(ligne < 3)
    {
        elementTemps->setBackgroundColor(QColor(222,184,135));
    }
    ui->tableWidgetResultats->setItem(ligne, COLONNE_TEMPS, elementTemps); // l : ligne (row) et c : colonne
}
IHMResultats::chargerListeCourses ( QString  idManifestation) [private]
Paramètres:
idManifestationQString l'identifiant de la manisfestation

Références ui.

Référencé par IHMResultats().

{
    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
    headerView->setResizeMode(QHeaderView::Stretch);
}

Références ui.

Référencé par afficherResultats().

{
    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);
    }
}
IHMResultats::quitter ( ) [private, slot]

Quitte l'application.

{
    // on ferme la fenêtre
    close();
}
IHMResultats::rafraichir ( ) [private, slot]

Références afficherManifestation(), afficherResultats(), course, et COURSE_ID_COURSE.

Référencé par IHMResultats().

{
    //qDebug() << Q_FUNC_INFO;
    afficherManifestation();

    // Récupérer et affiche les résultats d'une course (Requête SQL)
    if(!course.isEmpty())
    {
        QString idCourse = course.at(COURSE_ID_COURSE);
        afficherResultats(idCourse);
    }
}

Références bd, course, COURSE_DISTANCE, COURSE_HEUREDEPART, COURSE_NOM, manifestation, MANIFESTATION_ID, BaseDeDonnees::recuperer(), et ui.

Référencé par afficherManifestation().

{
    // Récupérer la course la plus proche
    QString requete = "SELECT Course.* FROM Manifestation, Course WHERE Manifestation.idManifestation = " + manifestation.at(MANIFESTATION_ID) + " AND Manifestation.idManifestation = Course.idManifestation AND Manifestation.Date = date(now()) ORDER BY ABS(time(now())-Course.HeureDepart) ASC LIMIT 1;";
    course.clear();
    bool retour = bd->recuperer(requete, course);
    qDebug() << Q_FUNC_INFO << course << retour;
    if(retour != false)
    {
        QTime heureDepart = QTime::fromString(course.at(COURSE_HEUREDEPART), "hh:mm:ss");
        ui->label_NomCourseResultats->setText(QString::fromUtf8("Course : ") + course.at(COURSE_NOM));
        ui->label_HeureDepartCourseResultats->setText(QString::fromUtf8("Heure de départ : ") + heureDepart.toString("hh'h'mm"));
        ui->label_LongueurCourseResultats->setText(QString::fromUtf8("Longueur : ") + course.at(COURSE_DISTANCE) + " m");
    }
    else
    {
        ui->label_NomCourseResultats->setText("Course : ");
        ui->label_HeureDepartCourseResultats->setText(QString::fromUtf8("Heure de départ : "));
        ui->label_LongueurCourseResultats->setText("Longueur : ");
    }
}

Documentation des données membres

QStringList IHMResultats::course [private]

Référencé par rafraichir(), et recupererCourse().

QVector<QStringList> IHMResultats::listeCourses [private]
QVector<QStringList> IHMResultats::listeCoursesResultats [private]
QVector<QStringList> IHMResultats::listeManifestationsResultats [private]
QStringList IHMResultats::manifestation [private]

Référencé par IHMResultats().

Ui::IHMResultats* IHMResultats::ui [private]

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