From eda6ef48f7a1c5f93e09fd85fa54123569bb0a5f Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Wed, 17 Jun 2009 11:54:48 +0200 Subject: Phonon::VolumeSlider: Fixed the isMuteVisiblefunction The problem is that it was relying on button->isVisible whereas it should rely on isHidden. isVisible returns false initially when the whole widget is not yet shown. I also added an autotest for it. Task-number: 256331 --- src/3rdparty/phonon/phonon/volumeslider.cpp | 2 +- tests/auto/mediaobject/tst_mediaobject.cpp | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/3rdparty/phonon/phonon/volumeslider.cpp b/src/3rdparty/phonon/phonon/volumeslider.cpp index b59f689..1888cb6 100644 --- a/src/3rdparty/phonon/phonon/volumeslider.cpp +++ b/src/3rdparty/phonon/phonon/volumeslider.cpp @@ -85,7 +85,7 @@ VolumeSlider::~VolumeSlider() bool VolumeSlider::isMuteVisible() const { - return k_ptr->muteButton.isVisible(); + return !k_ptr->muteButton.isHidden(); } void VolumeSlider::setMuteVisible(bool visible) diff --git a/tests/auto/mediaobject/tst_mediaobject.cpp b/tests/auto/mediaobject/tst_mediaobject.cpp index c1a69f7..f04a4d7 100644 --- a/tests/auto/mediaobject/tst_mediaobject.cpp +++ b/tests/auto/mediaobject/tst_mediaobject.cpp @@ -148,6 +148,7 @@ class tst_MediaObject : public QObject void testPlayBeforeFinish(); void testPauseOnFinish(); void testReconnectBetweenTwoMediaObjects(); + void volumeSliderMuteVisibility(); void cleanupTestCase(); private: void _startPlayback(Phonon::State currentState = Phonon::StoppedState); @@ -937,6 +938,28 @@ void tst_MediaObject::_testOneSeek(qint64 seekTo) m_success = true; } +void tst_MediaObject::volumeSliderMuteVisibility() +{ + //this test doesn't really belong to mediaobject + // ### see if we should create a realy Phonon::VolumeSlider autotest + Phonon::VolumeSlider slider; + QVERIFY(slider.isMuteVisible()); // that is the default value + slider.setMuteVisible(true); + QVERIFY(slider.isMuteVisible()); + + //let's check that changing the visibility of the slider itself + //doesn't change what the slider reports + slider.setVisible(false); + QVERIFY(slider.isMuteVisible()); + slider.setVisible(true); + + slider.setMuteVisible(false); + QVERIFY(!slider.isMuteVisible()); + slider.setMuteVisible(true); + QVERIFY(slider.isMuteVisible()); +} + + #endif //QT_NO_PHONON -- cgit v0.12