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 unstable ftp.cz.debian.org
500 unstable debian.cihar.com
500 unstable deb.opera.com
1 experimental ftp.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; i<Mixer::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; i<Mixer::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; i<Mixer::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();