Projet

Général

Profil

Implémentation de l'aide

Dans la MainWindow

Le clic sur le bouton Aide de la télécommande provoque la création d'une AbulEduMessageBoxV1 (sans parent) dont le texte est

Appuie sur la barre d'espace, et les zones de lancement des exercices apparaîtront !!

Dans les exercices

J'ai créé dans AbulEduStateMachineV1, pour que tous les exercices en héritent, un attribut

QString m_helpText;

avec un setteur
void setHelpText(QString text);

Dans chaque exercice, j'initialise ma variable
setHelpText("");

puis je vais mettre l'attribut à jour pour contextualiser le texte de l'aide dans slotQuestionEntered(), dans slotAfficheCorrectionQuestionEntered, dans slotAfficheVerificationQuestionEntered
Dans le slotAide() d'AbulEduStateMachineV1, je crée un AbulEduMessageBoxV1 (avec l'Aire de jeu comme parent) avec l'option setWink() et le contenu de ma variable m_helpText

Je vais contextualiser davantage le texte de l'aide selon les types d'exercice :

Pour les exercices utilisant AbulEduCelluleV1

J'ai créé une variable

QList<abe::ABE_EVAL> m_receivedDropResults;

mise à jour par une fonction connectée au signal
dropResult(abe::ABE_EVAL)

que j'ai ajouté au AbulEduCelluleV1, qu'une cellule émet quand on lui pose une AbulEduPieceV1 avec abe::evalA si c'est la bonne et abe::evalD sinon.
La fonction connectée va mettre à jour le texte de l'aide, uniquement si la liste n'est pas vide (au moins une étiquette est déjà placée) et avec un message différent selon que la liste contient ou non abe::evalD (c'est à dire selon que toutes les étiquettes déjà placées sont au bon endroit ou pas).
De plus, la modification apportée au texte de l'aide dans slotAfficheVerificationQuestionEntered dépend du fait que l'option de coloriage des étiquettes bien et mal placées est activée ou non.

C'est le cas pour ExerciceClosure, ExerciceMotsMelanges, ExerciceOrdreAlpha1

Pour les exercices utilisant AbuleduLabelV1

Je me contente de connecter une fonction au signal émis par l'aireDeJeu (c'est une AbulEduLabelFrameV1) quand une étiquette a été bougée. La contextualisation dans l'état question dépend donc uniquement du fait qu'une étiquette ait déjà été bougée ou pas.

C'est le cas pour ExerciceParagraphesMelanges, ExercicePhrasesMelangees et ExerciceOrdreAlpha2

Redmine Appliance - Powered by TurnKey Linux