Projet

Général

Profil

Bug #3840

AbulEduControl audio setButtonEnable(bool)

Ajouté par Jean-Louis Frucot il y a plus de 10 ans. Mis à jour il y a presque 10 ans.

Statut:
Discussed - Réflexion en cours
Priorité:
Haute
Assigné à:
Catégorie:
AbulEduMultiMediaV1
Version cible:
-
Début:
15/08/2014
Echéance:
% réalisé:

90%


Description

Le test pour le bouton play (et record aussi) empêche de (dés)activer les boutons dans certains cas ce qui n'est pas l'effet attendu de la fonction. Je propose donc d'enlever ce test au plus vite.

void AbulEduControlAudioV1::abeControlAudioSetButtonEnabled(flagControlButtons buttons, bool enabled) {
AbulEduMultiMediaV1* multimediaParent = (AbulEduMultiMediaV1*) m_parent;
if(m_localDebug) qDebug() << FUNCTION<<buttons<<enabled;
if(buttons.testFlag(BtnPlay) && !multimediaParent->abeMultiMediaGetCurrentMediaMedia().abeMediaMediaGetSound().isEmpty()) {
ui->btnAbulEduControlAudioPlay->setEnabled(enabled);
}
if(buttons.testFlag(BtnPause)) {
ui->btnAbulEduControlAudioPause->setEnabled(enabled);
}
if(buttons.testFlag(BtnStop)) {
ui->btnAbulEduControlAudioStop->setEnabled(enabled);
}
...

Historique

#1 Mis à jour par Philippe Cadaugade il y a plus de 10 ans

  • Description mis à jour (diff)
  • Catégorie mis à AbulEduMultiMediaV1
  • Statut changé de New - Nouveau à Discussed - Réflexion en cours
  • Assigné à mis à Philippe Cadaugade
  • % réalisé changé de 0 à 90

Effectivement ...
le problème vient d'un mauvais algorithme, puisque Jean Louis se retrouve dans un cas pas pensé ...
Je propose donc de rétablir les

if(buttons.testFlag(BtnPlay)) {
    ui->btnAbulEduControlAudioPlay->setEnabled(enabled);
}
if(buttons.testFlag(BtnRecord)) {
    ui->btnAbulEduControlAudioRecord->setEnabled(enabled);
}

mais de faire derrière
if(multimediaParent->abeMultiMediaGetCurrentMediaMedia().abeMediaMediaGetSound().isEmpty())
{
    ui->btnAbulEduControlAudioPlay->setEnabled(false);
    ui->btnAbulEduControlAudioRecord->setEnabled(false);
}

de façon à empêcher de toutes les façons de faire un Play ou un Record si aucun chemin vers un fichier son n'a été passé
Je ne ferme pas, car la discussion semble n'être pas close sur le niveau d'ingérence des libs : dans ce cas, la lib doit-elle juste laisser faire un setEnabled(true) pour le bouton Play même si le développeur a oublié de passer un chemin, auquel cas rien ne se lira et il n'aura qu'à chercher pourquoi, ou doit-elle "protéger" le développeur contre des oublis de ce genre ?

#2 Mis à jour par Icham Sirat il y a presque 10 ans

Je pense que l'affichage du bouton "play" doit être contextualisé en fonction.
Petite question : dans quel cas doit-il être affiché alors qu'il n'y a rien à lire ??

Formats disponibles : Atom PDF

Redmine Appliance - Powered by TurnKey Linux