summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/volumeapplet/volume.cpp3
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
@@ -108,257 +108,258 @@ void VolumeControl::createView(bool showMic)
hbox->addLayout( mbox, 1);
}
muteBox = new QCheckBox( tr("Mute"), this );
muteBox->setFocusPolicy( QWidget::NoFocus );
vbox->setMargin( 3 );
vbox->setSpacing( 0 );
if (showMic == TRUE)
vbox->addLayout( hbox, 1 );
else
vbox->addLayout( sbox, 1);
vbox->addWidget( muteBox, 0, Qt::AlignVCenter | Qt::AlignHCenter );
hboxLayout->addLayout( vboxButtons );
hboxLayout->addLayout(vbox);
setFixedHeight( 120 );
setFixedWidth( sizeHint().width() );
setFocusPolicy(QWidget::NoFocus);
connect( upButton, SIGNAL( pressed() ), this, SLOT( ButtonChanged() ) );
connect( upButton, SIGNAL( released() ), this, SLOT( ButtonChanged() ) );
connect( downButton, SIGNAL( pressed() ), this, SLOT( ButtonChanged() ) );
connect( downButton, SIGNAL( released() ), this, SLOT( ButtonChanged() ) );
rateTimer = new QTimer(this);
connect( rateTimer, SIGNAL( timeout() ), this, SLOT( rateTimerDone() ) );
}
void VolumeControl::keyPressEvent( QKeyEvent *e)
{
switch(e->key())
{
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()
{
{
Config cfg("Sound");
cfg.setGroup("System");
cfg.writeEntry("Volume",volumePercent);
}
#if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP)
// Send notification that the volume has changed
QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << muted;
#endif
}
void VolumeApplet::writeSystemMic()
{
{
Config cfg("Sound");
cfg.setGroup("System");
cfg.writeEntry("Mic",micPercent);
}
#if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP)
// Send notification that the volume has changed
QCopEnvelope( "QPE/System", "micChange(bool)" ) << micMuted;
#endif
}
void VolumeApplet::paintEvent( QPaintEvent* )
{
QPainter p(this);
if (volumePixmap.isNull())
volumePixmap = Resource::loadPixmap( "volume" );
p.drawPixmap( 0, 1, volumePixmap );