summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/volumeapplet/volume.cpp7
-rw-r--r--core/applets/volumeapplet/volumeappletimpl.cpp12
2 files changed, 17 insertions, 2 deletions
diff --git a/core/applets/volumeapplet/volume.cpp b/core/applets/volumeapplet/volume.cpp
index 069f8ab..19e71c5 100644
--- a/core/applets/volumeapplet/volume.cpp
+++ b/core/applets/volumeapplet/volume.cpp
@@ -205,241 +205,248 @@ void VolumeControl::rateTimerDone()
else // downButton->isDown()
slider->setValue( slider->value() + 2 );
}
//===========================================================================
VolumeApplet::VolumeApplet( QWidget *parent, const char *name )
: QWidget( parent, name )
{
Config cfg("qpe");
cfg.setGroup("Volume");
setFixedHeight( 18 );
setFixedWidth( 14 );
volumePixmap = Resource::loadPixmap( "volume" );
volumePercent = cfg.readNumEntry("VolumePercent",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("qpe");
cfg.setGroup("Volume");
volumePercent = cfg.readNumEntry("VolumePercent",50);
micPercent = cfg.readNumEntry("Mic", 50);
// 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 ) ) );
Config config("qpe");
config.setGroup("Volume");
vc->keyclicks->setChecked( config.readBoolEntry("KeySound",0));
vc->screentaps->setChecked( config.readBoolEntry("TouchSound",0));
vc->alarmSound->setChecked( config.readBoolEntry("AlarmSound",1));
connect( vc->alarmSound, SIGNAL(toggled(bool)), this, SLOT( alarmSoundCheckToggled(bool)));
connect( vc->keyclicks, SIGNAL(toggled(bool)), this, SLOT( keyclicksCheckToggled(bool)));
connect( vc->screentaps, SIGNAL(toggled(bool)), this, SLOT( screentapsCheckToggled(bool)));
QPoint curPos = mapToGlobal( rect().topLeft() );
vc->move( curPos.x()-(vc->sizeHint().width()/2+50), 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();
+ Config cfg("qpe");
+ cfg.setGroup("Volume");
+ if(muted)
+ cfg.writeEntry("Mute", "TRUE");
+ else
+ cfg.writeEntry("Mute", "FALSE");
+ cfg.write();
}
void VolumeApplet::sliderMoved( int percent )
{
setVolume( 100 - percent );
}
void VolumeApplet::micMoved( int percent )
{
setMic( 100 - percent );
}
void VolumeApplet::readSystemVolume()
{
Config cfg("qpe");
cfg.setGroup("Volume");
volumePercent = cfg.readNumEntry("VolumePercent");
}
void VolumeApplet::readSystemMic()
{
Config cfg("qpe");
cfg.setGroup("Volume");
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("qpe");
cfg.setGroup("Volume");
cfg.writeEntry("VolumePercent",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("qpe");
cfg.setGroup("Volume");
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 );
p.setPen( darkGray );
p.drawRect( 1, height() - 4, width() - 2, 4 );
int pixelsWide = volumePercent * (width() - 4) / 100;
p.fillRect( 2, height() - 3, pixelsWide, 2, red );
p.fillRect( pixelsWide + 2, height() - 3, width() - 4 - pixelsWide, 2, lightGray );
if ( muted ) {
p.setPen( red );
p.drawLine( 1, 2, width() - 2, height() - 5 );
p.drawLine( 1, 3, width() - 2, height() - 4 );
p.drawLine( width() - 2, 2, 1, height() - 5 );
p.drawLine( width() - 2, 3, 1, height() - 4 );
}
}
void VolumeApplet::screentapsCheckToggled(bool b) {
Config cfg("qpe");
cfg.setGroup("Volume");
cfg.writeEntry("TouchSound",b );
cfg.write();
}
void VolumeApplet::keyclicksCheckToggled(bool b) {
Config cfg("qpe");
cfg.setGroup("Volume");
cfg.writeEntry("KeySound",b);
cfg.write();
}
void VolumeApplet::alarmSoundCheckToggled(bool b) {
Config cfg("qpe");
cfg.setGroup("Volume");
cfg.writeEntry("AlarmSound",b);
cfg.write();
}
diff --git a/core/applets/volumeapplet/volumeappletimpl.cpp b/core/applets/volumeapplet/volumeappletimpl.cpp
index fb2b79f..943e71a 100644
--- a/core/applets/volumeapplet/volumeappletimpl.cpp
+++ b/core/applets/volumeapplet/volumeappletimpl.cpp
@@ -1,66 +1,74 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include "volume.h"
#include "volumeappletimpl.h"
#include <qpe/qcopenvelope_qws.h>
-
+#include <qpe/config.h>
VolumeAppletImpl::VolumeAppletImpl()
: volume(0), ref(0)
{
}
VolumeAppletImpl::~VolumeAppletImpl()
{
delete volume;
}
QWidget *VolumeAppletImpl::applet( QWidget *parent )
{
if ( !volume )
volume = new VolumeApplet( parent );
- QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << TRUE; //mute
+
+ Config cfg("qpe");
+ cfg.setGroup("Volume");
+ QString foo = cfg.readEntry("Mute","TRUE");
+ bool muted;
+ if(foo.find("TRUE",0,TRUE) != -1)
+ muted = TRUE;
+ else muted = FALSE;
+ QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << muted; //mute
return volume;
}
int VolumeAppletImpl::position() const
{
return 6;
}
QRESULT VolumeAppletImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
{
*iface = 0;
if ( uuid == IID_QUnknown )
*iface = this;
else if ( uuid == IID_TaskbarApplet )
*iface = this;
if ( *iface )
(*iface)->addRef();
return QS_OK;
}
Q_EXPORT_INTERFACE()
{
Q_CREATE_INSTANCE( VolumeAppletImpl )
}