VolumeSlider’s tooltip misbehaviour

I was developing a Qt application that makes use of a Phonon::VolumeSlider object. But after clicking the mute button beside of the VolumeSlider and verifying its tooltip, I noticed it was showing the wrong volume. A video can explain this better than me:

httpv://www.youtube.com/watch?v=rJcqZ2SVTK0

If you want to reproduce this problem, you can download its source code as a Qt Creator project. Please keep in mind that it’s the source code with errors!  But there’s a workaround to this problem:

1. In the class where you create the Phonon::AudioOutput whose volume is handled by the VolumeSlider, put this:

[code language=”cpp”]
connect(audioOutput, SIGNAL(mutedChanged(bool)), this, SLOT(handleMute(bool)));
connect(audioOutput, SIGNAL(volumeChanged(qreal)), this, SLOT(handleVolume(qreal)));
[/code]

2. Create the slots you used above using the following code:

[code language=”cpp”]
void MainWindow::handleMute(bool mute) {
if (!mute) {
audioOutput->setVolume(outputVolume);
}
}
void MainWindow::handleVolume(qreal volume) {
outputVolume = volume;
}
[/code]

3. Declare the slots and the outputVolume variable in your header file:

[code language=”cpp”]
private:
qreal outputVolume;

private slots:
void handleMute(bool mute);
void handleVolume(qreal volume);
[/code]

You can download the fixed source code. I don’t know if this behaviour is the expected in Qt, but I filed a bug for it.

4 thoughts on “VolumeSlider’s tooltip misbehaviour”

  1. Misbehavior is not a good thing for all the people and communities because in this way the people can able to make their life great. These type misbehaviors can make the life sad and the people can able to know about these new things in their life.

  2. Any deliberate activity by individuals from association that resists and disregards shared hierarchical standards and desires, and center societal qualities, mores and benchmarks of appropriate lead.

    Regards: online assignment help UK

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.