diff --git a/kcontrol/knotify/knotify.cpp b/kcontrol/knotify/knotify.cpp index 0c1b34ee..7c23c904 100644 --- a/kcontrol/knotify/knotify.cpp +++ b/kcontrol/knotify/knotify.cpp @@ -222,9 +222,10 @@ PlayerSettingsDialog::PlayerSettingsDialog( QWidget *parent ) load(); connect( m_ui->cbExternal, SIGNAL( toggled( bool ) ), this, SLOT( externalToggled( bool ) ) ); - connect( m_ui->cbArts, SIGNAL(clicked(bool)), this, SLOT(slotChanged())); + connect( m_ui->cbSoundSystem, SIGNAL(clicked(bool)), this, SLOT(slotChanged())); connect( m_ui->cbExternal, SIGNAL(clicked(bool)), this, SLOT(slotChanged())); connect( m_ui->cbNone, SIGNAL(clicked(bool)), this, SLOT(slotChanged())); + connect( m_ui->cbVolume, SIGNAL(clicked(bool)), this, SLOT(slotChanged())); connect( m_ui->volumeSlider, SIGNAL( valueChanged ( int ) ), this, SLOT( slotChanged() ) ); connect( m_ui->reqExternal, SIGNAL( textChanged( const QString& ) ), this, SLOT( slotChanged() ) ); m_ui->reqExternal->setMode(KFile::File|KFile::ExistingOnly|KFile::LocalOnly); @@ -237,6 +238,7 @@ void PlayerSettingsDialog::load() bool useExternal = config.readEntry( "Use external player", false ); m_ui->cbExternal->setChecked( useExternal ); m_ui->reqExternal->setUrl( config.readPathEntry( "External player", QString() ) ); + m_ui->cbVolume->setChecked( config.readEntry( "ChangeVolume", false ) ); m_ui->volumeSlider->setValue( config.readEntry( "Volume", 100 ) ); if ( !m_ui->cbExternal->isChecked() ) @@ -259,6 +261,7 @@ void PlayerSettingsDialog::save() config.writePathEntry( "External player", m_ui->reqExternal->url().path() ); config.writeEntry( "Use external player", m_ui->cbExternal->isChecked() ); config.writeEntry( "Volume", m_ui->volumeSlider->value() ); + config.writeEntry( "ChangeVolume", m_ui->cbVolume->isChecked() ); config.writeEntry( "No sound", m_ui->cbNone->isChecked() ); config.sync(); @@ -277,7 +280,7 @@ void PlayerSettingsDialog::slotChanged() void PlayerSettingsDialog::defaults() { - m_ui->cbArts->setChecked(true); + m_ui->cbSoundSystem->setChecked(true); m_change=true; emit changed(true); } diff --git a/kcontrol/knotify/playersettings.ui b/kcontrol/knotify/playersettings.ui index 54bb627f..2a570786 100644 --- a/kcontrol/knotify/playersettings.ui +++ b/kcontrol/knotify/playersettings.ui @@ -12,7 +12,7 @@ - + Use the &KDE sound system @@ -22,83 +22,91 @@ - - - 0 - - - - - 100% - - - - - - - Qt::Horizontal - - - QSizePolicy::Expanding - - - - 261 - 16 - - - - - - - - 0% - - - - - - - &Volume: - - - volumeSlider - - - - - - - 100 - - - 10 - - - 100 - - - Qt::Horizontal - - - - - - - Qt::Horizontal - - - QSizePolicy::Fixed - - - - 20 - 41 - - - - - + + + + 1 + + + + + false + + + 100% + + + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 261 + 16 + + + + + + + + false + + + 0% + + + + + + + Force &Volume: + + + + + + + false + + + 100 + + + 10 + + + 100 + + + Qt::Horizontal + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 20 + 41 + + + + + + @@ -188,70 +196,6 @@ - - cbArts - toggled(bool) - volumeSlider - setEnabled(bool) - - - 84 - 31 - - - 126 - 60 - - - - - cbArts - toggled(bool) - textLabel3 - setEnabled(bool) - - - 234 - 34 - - - 308 - 83 - - - - - cbArts - toggled(bool) - textLabel4 - setEnabled(bool) - - - 49 - 32 - - - 62 - 61 - - - - - cbArts - toggled(bool) - textLabel2 - setEnabled(bool) - - - 161 - 27 - - - 108 - 85 - - - cbExternal toggled(bool) @@ -259,12 +203,12 @@ setEnabled(bool) - 87 - 114 + 91 + 98 - 86 - 143 + 67 + 128 @@ -275,12 +219,76 @@ setEnabled(bool) - 236 - 112 + 240 + 98 - 240 - 137 + 312 + 128 + + + + + cbSoundSystem + toggled(bool) + volumeHolder + setEnabled(bool) + + + 71 + 13 + + + 11 + 35 + + + + + cbVolume + toggled(bool) + textLabel2 + setEnabled(bool) + + + 72 + 40 + + + 149 + 60 + + + + + cbVolume + toggled(bool) + volumeSlider + setEnabled(bool) + + + 124 + 39 + + + 178 + 50 + + + + + cbVolume + toggled(bool) + textLabel3 + setEnabled(bool) + + + 38 + 39 + + + 380 + 64 diff --git a/knotify/notifybysound.cpp b/knotify/notifybysound.cpp index f6aa1004..82b08738 100644 --- a/knotify/notifybysound.cpp +++ b/knotify/notifybysound.cpp @@ -77,17 +77,19 @@ struct Player class PlayerPool { public: - PlayerPool() : m_idlePlayer(0), m_volume(1.0) {} + PlayerPool() : m_idlePlayer(0), m_changeVolume(false), m_volume(1.0) {} Player *getPlayer(); void returnPlayer(Player *); void clear(); + void setChangeVolume(bool b); void setVolume(float volume); private: Player *m_idlePlayer; QList m_playersInUse; + bool m_changeVolume; float m_volume; }; @@ -100,7 +102,9 @@ Player *PlayerPool::getPlayer() p = m_idlePlayer; m_idlePlayer = 0; } - p->setVolume(m_volume); + if (m_changeVolume) { + p->setVolume(m_volume); + } m_playersInUse << p; return p; } @@ -121,11 +125,23 @@ void PlayerPool::clear() m_idlePlayer = 0; } +void PlayerPool::setChangeVolume(bool b) +{ + m_changeVolume = b; + if (m_changeVolume) { + foreach (Player *p, m_playersInUse) { + p->setVolume(m_volume); + } + } +} + void PlayerPool::setVolume(float v) { m_volume = v; - foreach (Player *p, m_playersInUse) { - p->setVolume(v); + if (m_changeVolume) { + foreach (Player *p, m_playersInUse) { + p->setVolume(v); + } } } @@ -141,9 +157,6 @@ class NotifyBySound::Private PlayerPool playerPool; QBasicTimer poolTimer; QQueue closeQueue; - - int volume; - }; NotifyBySound::NotifyBySound(QObject *parent) : KNotifyPlugin(parent),d(new Private) @@ -188,6 +201,7 @@ void NotifyBySound::loadConfig() d->playerMode = Private::NoSound; } // load default volume + d->playerPool.setChangeVolume( cg.readEntry( "ChangeVolume", false ) ); setVolume( cg.readEntry( "Volume", 100 ) ); } @@ -263,8 +277,7 @@ void NotifyBySound::setVolume( int volume ) { if ( volume<0 ) volume=0; if ( volume>=100 ) volume=100; - d->volume = volume; - d->playerPool.setVolume(d->volume / 100.0); + d->playerPool.setVolume(volume / 100.0); }