-rw-r--r-- | core/applets/volumeapplet/volume.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/core/applets/volumeapplet/volume.cpp b/core/applets/volumeapplet/volume.cpp index 344f86f..e393f0f 100644 --- a/core/applets/volumeapplet/volume.cpp +++ b/core/applets/volumeapplet/volume.cpp @@ -140,193 +140,194 @@ void VolumeControl::keyPressEvent( QKeyEvent *e) { case Key_Up: slider->subtractStep(); break; case Key_Down: slider->addStep(); break; case Key_Space: muteBox->toggle(); break; case Key_Escape: close(); break; } } void VolumeControl::ButtonChanged() { if ( upButton->isDown() || downButton->isDown() ) { rateTimerDone(); // Call it one time manually, otherwise it wont get // called at all when a button is pressed for a time // shorter than RATE_TIMER_INTERVAL. rateTimer->start( RATE_TIMER_INTERVAL, false ); } else rateTimer->stop(); } void VolumeControl::rateTimerDone() { if ( upButton->isDown() ) slider->setValue( slider->value() - 2 ); else // downButton->isDown() slider->setValue( slider->value() + 2 ); } //=========================================================================== VolumeApplet::VolumeApplet( QWidget *parent, const char *name ) : QWidget( parent, name ) { Config cfg("Sound"); cfg.setGroup("System"); setFixedHeight( 18 ); setFixedWidth( 14 ); volumePixmap = Resource::loadPixmap( "volume" ); volumePercent = cfg.readNumEntry("Volume",50); micPercent = cfg.readNumEntry("Mic", 50); muted = FALSE; // ### read from pref micMuted = FALSE; // ### read from pref advancedTimer = new QTimer(this); connect( qApp, SIGNAL( volumeChanged(bool) ), this, SLOT( volumeChanged(bool) ) ); connect( qApp, SIGNAL( micChanged(bool) ), this, SLOT ( micChanged(bool) ) ); connect( advancedTimer, SIGNAL( timeout() ),this, SLOT( advVolControl()) ); writeSystemVolume(); writeSystemMic(); } VolumeApplet::~VolumeApplet() { } void VolumeApplet::keyPressEvent ( QKeyEvent * e ) { QString s; s.setNum(e->key()); qWarning(s); } void VolumeApplet::mousePressEvent( QMouseEvent * ) { advancedTimer->start( 750, TRUE ); } void VolumeApplet::mouseReleaseEvent( QMouseEvent * ) { showVolControl(FALSE); } void VolumeApplet::advVolControl() { showVolControl(TRUE); } void VolumeApplet::showVolControl(bool showMic) { Config cfg("Sound"); cfg.setGroup("System"); volumePercent = cfg.readNumEntry("Volume",50); micPercent = cfg.readNumEntry("Mic", 50); - + QString show = cfg.readEntry("ShowMic", "FALSE"); + if(show == "TRUE") showMic = TRUE; // Create a small volume control window to adjust the volume with VolumeControl *vc = new VolumeControl(showMic); vc->slider->setValue( 100 - volumePercent ); if (showMic) { vc->mic->setValue( 100 - micPercent ); connect( vc->mic, SIGNAL( valueChanged( int ) ), this, SLOT( micMoved( int ) ) ); } vc->muteBox->setChecked( muted ); connect( vc->slider, SIGNAL( valueChanged( int ) ), this, SLOT( sliderMoved( int ) ) ); connect( vc->muteBox, SIGNAL( toggled( bool ) ), this, SLOT( mute( bool ) ) ); QPoint curPos = mapToGlobal( rect().topLeft() ); vc->move( curPos.x()-(vc->sizeHint().width()-width())/2, curPos.y() - 120 ); vc->show(); advancedTimer->stop(); } void VolumeApplet::volumeChanged( bool nowMuted ) { int previousVolume = volumePercent; if ( !nowMuted ) readSystemVolume(); // Handle case where muting it toggled if ( muted != nowMuted ) { muted = nowMuted; repaint( TRUE ); return; } // Avoid over repainting if ( previousVolume != volumePercent ) repaint( 2, height() - 3, width() - 4, 2, FALSE ); } void VolumeApplet::micChanged( bool nowMuted ) { if (!nowMuted) readSystemMic(); micMuted = nowMuted; } void VolumeApplet::mute( bool toggled ) { muted = toggled; // clear if removing mute repaint( !toggled ); writeSystemVolume(); } void VolumeApplet::sliderMoved( int percent ) { setVolume( 100 - percent ); } void VolumeApplet::micMoved( int percent ) { setMic( 100 - percent ); } void VolumeApplet::readSystemVolume() { Config cfg("Sound"); cfg.setGroup("System"); volumePercent = cfg.readNumEntry("Volume"); } void VolumeApplet::readSystemMic() { Config cfg("Sound"); cfg.setGroup("System"); micPercent = cfg.readNumEntry("Mic"); } void VolumeApplet::setVolume( int percent ) { // clamp volume percent to be between 0 and 100 volumePercent = (percent < 0) ? 0 : ((percent > 100) ? 100 : percent); // repaint just the little volume rectangle repaint( 2, height() - 3, width() - 4, 2, FALSE ); writeSystemVolume(); } void VolumeApplet::setMic( int percent ) { // clamp volume percent to be between 0 and 100 micPercent = (percent < 0) ? 0 : ((percent > 100) ? 100 : percent); writeSystemMic(); } void VolumeApplet::writeSystemVolume() |