From kde-commits Wed Aug 10 13:38:35 2011 From: Jan Gerrit Marker Date: Wed, 10 Aug 2011 13:38:35 +0000 To: kde-commits Subject: KDE/kdemultimedia/juk Message-Id: <20110810133835.5C144AC871 () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=131298354701255 SVN commit 1246207 by jangmarker: juk: Cleanup and make unmuting work Restore the old volume when unmuting JuK. The value before the mute is hold in a membervariable of the mute/unmute button (the PlayerManager does not seem to keep it). Cleans up some pointer declarations (->Class *variable) according to KDElibs. Furthermore a new string for the mute/unmute button is added ("Mute/Unmute" for the tooltip). M +12 -6 volumepopupbutton.cpp M +1 -0 volumepopupbutton.h --- trunk/KDE/kdemultimedia/juk/volumepopupbutton.cpp #1246206:1246207 @@ -35,6 +35,8 @@ VolumePopupButton::VolumePopupButton( QWidget * parent ) : QToolButton( parent ) { + m_volumeBeforeMute = 0.0; + //create the volume popup m_volumeMenu = new QMenu( this ); @@ -59,12 +61,13 @@ sliderActionWidget->setDefaultWidget( mainBox ); connect( m_volumeSlider, SIGNAL(volumeChanged(float)), player, SLOT(setVolume(float)) ); - connect( m_volumeSlider, SIGNAL(volumeChanged(float)), player, SLOT(setVolume(float)) ); QToolBar *muteBar = new QToolBar( QString(), mainBox ); muteBar->setContentsMargins( 0, 0, 0, 0 ); muteBar->setIconSize( QSize( 16, 16 ) ); + m_muteAction = new QAction( KIcon( "audio-volume-muted" ), QString(), muteBar ); + m_muteAction->setToolTip( i18n( "Mute/Unmute" ) ); m_muteAction->setCheckable ( true ); m_muteAction->setChecked( player->muted() ); @@ -77,8 +80,7 @@ // set correct icon and label initially volumeChanged( player->volume() ); - connect( m_volumeSlider, SIGNAL(volumeChanged(float)), - this, SLOT(volumeChanged(float)) ); + connect( m_volumeSlider, SIGNAL(volumeChanged(float)), this, SLOT(volumeChanged(float)) ); } void @@ -90,6 +92,11 @@ void VolumePopupButton::volumeChanged( float newVolume ) { + if (!JuK::JuKInstance()->playerManager()->muted()) + { + m_volumeBeforeMute = newVolume; + } + if ( newVolume <= 0.0001 ) setIcon( KIcon( "audio-volume-muted" ) ); else if ( newVolume < 0.34 ) @@ -115,16 +122,15 @@ void VolumePopupButton::muteStateChanged( bool muted ) { - const float volume = JuK::JuKInstance()->playerManager()->volume(); - if ( muted ) { + const float volume = JuK::JuKInstance()->playerManager()->volume(); setIcon( KIcon( "audio-volume-muted" ) ); setToolTip( i18n( "Volume: %1% %2", volume, ( muted ? i18n( "(muted)" ) : "" ) ) ); } else { - volumeChanged( volume ); + JuK::JuKInstance()->playerManager()->setVolume( m_volumeBeforeMute ); } m_muteAction->setChecked( muted ); --- trunk/KDE/kdemultimedia/juk/volumepopupbutton.h #1246206:1246207 @@ -51,6 +51,7 @@ QMenu * m_volumeMenu; VolumeSlider * m_volumeSlider; QAction * m_muteAction; + float m_volumeBeforeMute; }; #endif // VOLUMEPOPUPBUTTON_H