mirror of
https://bitbucket.org/smil3y/kde-workspace.git
synced 2025-02-24 02:42:50 +00:00
knotify: make changing the volume on notifications optional and disabled by default
I don't see why we should change the volume at all, let the user decide their volume, but since we have the feature i didn't want to remove it completely and instead left if disabled by default. Acked by davidedmundson and sitter REVIEW: 121278 FIXED-IN: 15.04 BUGS: 324975
This commit is contained in:
parent
317e99b6c8
commit
8d295daf24
3 changed files with 185 additions and 161 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="cbArts">
|
||||
<widget class="QRadioButton" name="cbSoundSystem">
|
||||
<property name="text">
|
||||
<string>Use the &KDE sound system</string>
|
||||
</property>
|
||||
|
@ -22,83 +22,91 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QGridLayout">
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="1" column="4">
|
||||
<widget class="QLabel" name="textLabel3">
|
||||
<property name="text">
|
||||
<string>100%</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<spacer>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>261</width>
|
||||
<height>16</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QLabel" name="textLabel2">
|
||||
<property name="text">
|
||||
<string>0%</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="textLabel4">
|
||||
<property name="text">
|
||||
<string>&Volume:</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>volumeSlider</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2" colspan="3">
|
||||
<widget class="QSlider" name="volumeSlider">
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" rowspan="2">
|
||||
<spacer>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>41</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
<widget class="QWidget" name="volumeHolder" native="true">
|
||||
<layout class="QGridLayout">
|
||||
<property name="margin">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<item row="1" column="4">
|
||||
<widget class="QLabel" name="textLabel3">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>100%</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<spacer>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>261</width>
|
||||
<height>16</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QLabel" name="textLabel2">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0%</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QCheckBox" name="cbVolume">
|
||||
<property name="text">
|
||||
<string>Force &Volume:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2" colspan="3">
|
||||
<widget class="QSlider" name="volumeSlider">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" rowspan="2">
|
||||
<spacer>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>41</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="cbExternal">
|
||||
|
@ -188,70 +196,6 @@
|
|||
</customwidgets>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>cbArts</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>volumeSlider</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>84</x>
|
||||
<y>31</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>126</x>
|
||||
<y>60</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>cbArts</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>textLabel3</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>234</x>
|
||||
<y>34</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>308</x>
|
||||
<y>83</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>cbArts</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>textLabel4</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>49</x>
|
||||
<y>32</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>62</x>
|
||||
<y>61</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>cbArts</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>textLabel2</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>161</x>
|
||||
<y>27</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>108</x>
|
||||
<y>85</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>cbExternal</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
|
@ -259,12 +203,12 @@
|
|||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>87</x>
|
||||
<y>114</y>
|
||||
<x>91</x>
|
||||
<y>98</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>86</x>
|
||||
<y>143</y>
|
||||
<x>67</x>
|
||||
<y>128</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
|
@ -275,12 +219,76 @@
|
|||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>236</x>
|
||||
<y>112</y>
|
||||
<x>240</x>
|
||||
<y>98</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>240</x>
|
||||
<y>137</y>
|
||||
<x>312</x>
|
||||
<y>128</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>cbSoundSystem</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>volumeHolder</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>71</x>
|
||||
<y>13</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>11</x>
|
||||
<y>35</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>cbVolume</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>textLabel2</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>72</x>
|
||||
<y>40</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>149</x>
|
||||
<y>60</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>cbVolume</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>volumeSlider</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>124</x>
|
||||
<y>39</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>178</x>
|
||||
<y>50</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>cbVolume</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>textLabel3</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>38</x>
|
||||
<y>39</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>380</x>
|
||||
<y>64</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
|
|
|
@ -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<Player *> 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<int> 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);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue