summaryrefslogtreecommitdiffstats
path: root/kmix/kmixdockwidget.cpp
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2020-05-17 01:22:02 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2020-05-25 13:24:32 +0900
commit244f76de8db33b6d659c91ca9424d8556f2f20eb (patch)
treec4931d8d863c5a1ddad1244e238f641640c8ad0e /kmix/kmixdockwidget.cpp
parent2251b3395ac880f0b24db47615bf21ed97ec69f3 (diff)
downloadtdemultimedia-244f76de8db33b6d659c91ca9424d8556f2f20eb.tar.gz
tdemultimedia-244f76de8db33b6d659c91ca9424d8556f2f20eb.zip
KMix: fixed update of tray volume icon when muting/unmuting the selected
channel. Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'kmix/kmixdockwidget.cpp')
-rw-r--r--kmix/kmixdockwidget.cpp28
1 files changed, 23 insertions, 5 deletions
diff --git a/kmix/kmixdockwidget.cpp b/kmix/kmixdockwidget.cpp
index 42ccccaa..1900f184 100644
--- a/kmix/kmixdockwidget.cpp
+++ b/kmix/kmixdockwidget.cpp
@@ -107,8 +107,7 @@ void KMixDockWidget::createActions()
}
-void
-KMixDockWidget::createMasterVolWidget()
+void KMixDockWidget::createMasterVolWidget()
{
// Reset flags, so that the dock icon will be reconstructed
_oldToolTipValue = -1;
@@ -122,6 +121,11 @@ KMixDockWidget::createMasterVolWidget()
return;
}
// create devices
+ if (_dockAreaPopup)
+ {
+ // Delete the old popup widget if we are changing the channel
+ deleteMasterVolWidget();
+ }
_dockAreaPopup = new ViewDockAreaPopup(0, "dockArea", m_mixer, 0, this);
_dockAreaPopup->createDeviceWidgets();
@@ -139,9 +143,22 @@ KMixDockWidget::createMasterVolWidget()
* Refreshing the Icon
*
*/
- // connect( m_mixer, TQT_SIGNAL(newVolumeLevels()), _dockAreaPopup, TQT_SLOT(refreshVolumeLevels()) );
- connect( m_mixer, TQT_SIGNAL(newVolumeLevels()), TQT_TQOBJECT(this), TQT_SLOT(setVolumeTip() ) );
- connect( m_mixer, TQT_SIGNAL(newVolumeLevels()), TQT_TQOBJECT(this), TQT_SLOT(slotUpdatePixmap() ) );
+ connect(m_mixer, TQT_SIGNAL(newVolumeLevels()), TQT_TQOBJECT(this), TQT_SLOT(setVolumeTip()));
+ connect(m_mixer, TQT_SIGNAL(newVolumeLevels()), TQT_TQOBJECT(this), TQT_SLOT(slotUpdatePixmap()));
+}
+
+void KMixDockWidget::deleteMasterVolWidget()
+{
+ if (_dockAreaPopup)
+ {
+ delete _dockAreaPopup;
+ _dockAreaPopup = NULL;
+ }
+ if (m_mixer)
+ {
+ disconnect(m_mixer, TQT_SIGNAL(newVolumeLevels()), TQT_TQOBJECT(this), TQT_SLOT(setVolumeTip()));
+ disconnect(m_mixer, TQT_SIGNAL(newVolumeLevels()), TQT_TQOBJECT(this), TQT_SLOT(slotUpdatePixmap()));
+ }
}
void KMixDockWidget::slotUpdatePixmap()
@@ -194,6 +211,7 @@ void KMixDockWidget::handleNewMaster(bool defaultMaster, int soundcard_id, const
<< soundcard_id << ", channel_id=" << channel_id << ")" << endl;
return; // can not happen
}
+ deleteMasterVolWidget();
m_mixer = mixer;
Mixer::setMasterCard(mixer->id()); // We must save this information "somewhere".
Mixer::setMasterCardDevice(channel);