Package: kmix
Version: 4:4.8.4-2
Severity: normal
Tags: patch
--- Please enter the report below this line. ---
On some settups where there are multiple soundcards with simillar name, the
master select dialog gets confused to which card to assign the master channel.
The patch is using Mixer-id() instead of readableName().
Already sended to kde for review, see https://git.reviewboard.kde.org/r/105496/.
--- System information. ---
Architecture: amd64
Kernel: Linux 3.4.4-amonsul+
Debian Release: wheezy/sid
500 unstableftp.cz.debian.org
500 unstabledebian.cihar.com
500 unstabledeb.opera.com
1 experimentalftp.cz.debian.org
--- Package information. ---
Depends(Version) | Installed
-+-=
kde-runtime | 4:4.8.4-1
libasound2 (= 1.0.16) | 1.0.25-3
libc6 (= 2.4) | 2.13-34
libkdecore5 (= 4:4.8) | 4:4.8.4-3
libkdeui5 (= 4:4.8) | 4:4.8.4-3
libphonon4 (= 4:4.6.0really4.3.80) | 4:4.6.0.0-2
libplasma3(= 4:4.8) | 4:4.8.4-3
libpulse-mainloop-glib0 (= 0.99.1) | 2.0-3
libpulse0(= 0.99.1) | 2.0-3
libqt4-dbus (= 4:4.6.1) | 4:4.8.2-1
libqt4-xml (= 4:4.5.3) | 4:4.8.2-1
libqtcore4 (= 4:4.8.0) | 4:4.8.2-1
libqtgui4 (= 4:4.6.1) | 4:4.8.2-1
libsolid4 (= 4:4.8) | 4:4.8.4-3
libstdc++6(= 4.4.0) | 4.7.1-4
phonon | 4:4.6.0.0-2
Package's Recommends field is empty.
Package's Suggests field is empty.diff --git a/gui/dialogselectmaster.cpp b/gui/dialogselectmaster.cpp
index a5e5f45..16bf619 100644
--- a/gui/dialogselectmaster.cpp
+++ b/gui/dialogselectmaster.cpp
@@ -88,7 +88,7 @@ void DialogSelectMaster::createWidgets(Mixer *ptr_mixer)
for( int i =0; iMixer::mixers().count(); i++ )
{
Mixer *mixer = (Mixer::mixers())[i];
-m_cMixer-addItem( mixer-readableName() );
+m_cMixer-addItem( mixer-readableName(), mixer-id() );
} // end for all_Mixers
// Make the current Mixer the current item in the ComboBox
int findIndex = m_cMixer-findText( ptr_mixer-readableName() );
@@ -120,16 +120,11 @@ void DialogSelectMaster::createWidgets(Mixer *ptr_mixer)
*/
void DialogSelectMaster::createPageByID(int mixerId)
{
- //kDebug(67100) DialogSelectMaster::createPage();
-QString selectedMixerName = m_cMixer-itemText(mixerId);
-for( int i =0; iMixer::mixers().count(); i++ )
-{
-Mixer *mixer = (Mixer::mixers())[i];
-if ( mixer-readableName() == selectedMixerName ) {
-createPage(mixer);
-break;
-}
-} // for
+QString mixer_id = m_cMixer-itemData(mixerId).toString();
+Mixer * mixer = Mixer::findMixer(mixer_id);
+
+if ( mixer != NULL )
+createPage(mixer);
}
/**
@@ -203,16 +198,9 @@ void DialogSelectMaster::apply()
}
else if ( Mixer::mixers().count() 1 ) {
// find mixer that is currently active in the ComboBox
-QString selectedMixerName = m_cMixer-itemText(m_cMixer-currentIndex());
-
-for( int i =0; iMixer::mixers().count(); i++ )
-{
-mixer = (Mixer::mixers())[i];
-if ( mixer-readableName() == selectedMixerName ) {
-mixer = (Mixer::mixers())[i];
-break;
-}
-} // for
+int idx = m_cMixer-currentIndex();
+QString mixer_id = m_cMixer-itemData(idx).toString();
+mixer = Mixer::findMixer(mixer_id);
}
QAbstractButton* button = m_buttonGroupForScrollView-checkedButton();