@ -31,6 +31,7 @@
# include <kcombobox.h>
# include <kdebug.h>
# include <kdialogbase.h>
# include <tdeapplication.h>
# include <tdelocale.h>
# include "dialogselectmaster.h"
@ -43,7 +44,6 @@ DialogSelectMaster::DialogSelectMaster( Mixer *mixer )
_layout = 0 ;
m_vboxForScrollView = 0 ;
createWidgets ( mixer ) ; // Open with Mixer Hardware #0
}
DialogSelectMaster : : ~ DialogSelectMaster ( )
@ -60,23 +60,29 @@ void DialogSelectMaster::createWidgets(Mixer *ptr_mixer)
TQFrame * m_mainFrame = plainPage ( ) ;
_layout = new TQVBoxLayout ( m_mainFrame , 0 , - 1 , " _layout " ) ;
// Default or user selected
TQButtonGroup * bgMasterSelection = new TQButtonGroup ( 1 , Qt : : Vertical , i18n ( " KMix master channel selection " ) , m_mainFrame ) ;
connect ( bgMasterSelection , TQT_SIGNAL ( clicked ( int ) ) , this , TQT_SLOT ( masterSelectionChanged ( int ) ) ) ;
_layout - > add ( bgMasterSelection ) ;
m_defaultMaster = new TQRadioButton ( i18n ( " Default " ) , bgMasterSelection ) ;
m_userMaster = new TQRadioButton ( i18n ( " Custom " ) , bgMasterSelection ) ;
m_vboxChannels = new TQVBox ( m_mainFrame ) ;
_layout - > add ( m_vboxChannels ) ;
if ( Mixer : : mixers ( ) . count ( ) > 1 ) {
//kdDebug(67100) << "DialogSelectMaster::createPage count()>1" << "\n";
// More than one Mixer => show Combo-Box to select Mixer
// Mixer widget line
TQHBoxLayout * mixerNameLayout = new TQHBoxLayout ( _layout ) ;
//widgetsLayout->setStretchFactor( mixerNameLayout, 0 );
//TQSizePolicy qsp( TQSizePolicy::Ignored, TQSizePolicy::Maximum);
//mixerNameLayout->setSizePolicy(qsp);
mixerNameLayout - > setSpacing ( KDialog : : spacingHint ( ) ) ;
TQLabel * qlbl = new TQLabel ( i18n ( " Current Mixer " ) , m_mainFrame ) ;
mixerNameLayout - > addWidget ( qlbl ) ;
TQHBox * hboxMixerName = new TQHBox ( m_vboxChannels ) ;
hboxMixerName - > setSpacing ( KDialog : : spacingHint ( ) ) ;
TQLabel * qlbl = new TQLabel ( i18n ( " Current Mixer " ) , hboxMixerName ) ;
qlbl - > setFixedHeight ( qlbl - > sizeHint ( ) . height ( ) ) ;
m_cMixer = new KComboBox ( FALSE , m_mainFr ame, " mixerCombo " ) ;
m_cMixer = new KComboBox ( FALSE , hboxMixerName , " mixerCombo " ) ;
m_cMixer - > setFixedHeight ( m_cMixer - > sizeHint ( ) . height ( ) ) ;
connect ( m_cMixer , TQT_SIGNAL ( activated ( int ) ) , this , TQT_SLOT ( createPageByID ( int ) ) ) ;
TQToolTip : : add ( m_cMixer , i18n ( " Current mixer " ) ) ;
connect ( m_cMixer , TQT_SIGNAL ( activated ( int ) ) , this , TQT_SLOT ( createPageByID ( int ) ) ) ;
//int id=1;
for ( Mixer * mixer = Mixer : : mixers ( ) . first ( ) ; mixer ! = 0 ; mixer = Mixer : : mixers ( ) . next ( ) ) {
@ -87,24 +93,37 @@ void DialogSelectMaster::createWidgets(Mixer *ptr_mixer)
}
//id++;
} // end for all_Mixers
TQToolTip : : add ( m_cMixer , i18n ( " Current mixer " ) ) ;
mixerNameLayout - > addWidget ( m_cMixer ) ;
} // end if (more_than_1_Mixer)
TQLabel * qlbl = new TQLabel ( i18n ( " Select the channel representing the master volume: " ) , m_ mainFrame ) ;
TQLabel * qlbl = new TQLabel ( i18n ( " Select the channel representing the master volume: " ) , m_vboxChannels ) ;
_layout - > addWidget ( qlbl ) ;
m_scrollableChannelSelector = new TQScrollView ( m_ mainFrame , " scrollableChannelSelector " ) ;
m_scrollableChannelSelector = new TQScrollView ( m_ vboxChannels , " scrollableChannelSelector " ) ;
m_scrollableChannelSelector - > viewport ( ) - > setBackgroundMode ( TQt : : PaletteBackground ) ;
_layout - > add ( m_scrollableChannelSelector ) ;
m_buttonGroupForScrollView = new TQButtonGroup ( this ) ; // invisible TQButtonGroup
m_buttonGroupForScrollView - > hide ( ) ;
createPage ( ptr_mixer ) ;
connect ( this , TQT_SIGNAL ( okClicked ( ) ) , this , TQT_SLOT ( apply ( ) ) ) ;
kapp - > config ( ) - > setGroup ( 0 ) ;
bool useDefaultMaster = kapp - > config ( ) - > readBoolEntry ( " UseDefaultMaster " , true ) ;
if ( useDefaultMaster )
{
m_defaultMaster - > setChecked ( true ) ;
}
else
{
m_userMaster - > setChecked ( true ) ;
}
masterSelectionChanged ( 0 ) ;
connect ( this , TQT_SIGNAL ( okClicked ( ) ) , this , TQT_SLOT ( apply ( ) ) ) ;
}
void DialogSelectMaster : : masterSelectionChanged ( int _unused )
{
m_vboxChannels - > setEnabled ( m_userMaster - > isChecked ( ) ) ;
}
/**
@ -180,15 +199,15 @@ void DialogSelectMaster::apply()
int channel_id = m_buttonGroupForScrollView - > selectedId ( ) ;
if ( channel_id ! = - 1 ) {
// A channel was selected by the user => emit the "newMasterSelected()" signal
//kdDebug(67100) << "DialogSelectMaster::apply(): card=" << soundcard_id << ", channel=" << channel_id << endl;
//kdDebug(67100) << "DialogSelectMaster::apply(): default master=" << m_defaultMaster->isChecked() << ", card=" << soundcard_id << ", channel=" << channel_id << endl;
Mixer * mixer = Mixer : : mixers ( ) . at ( soundcard_id ) ;
if ( mixer = = 0 ) {
kdError ( 67100 ) < < " DialogSelectMaster::createPage(): Invalid Mixer (mixerID= " < < soundcard_id < < " ) " < < endl ;
return ; // can not happen
}
else {
mixer - > setMasterDevice ( m_mixerPKs [ channel_id ] ) ;
emit newMasterSelected ( soundcard_id, m_mixerPKs [ channel_id ] ) ;
mixer - > setMasterDevice ( m_mixerPKs [ channel_id ] ) ;
emit newMasterSelected ( m_defaultMaster- > isChecked ( ) , soundcard_id, m_mixerPKs [ channel_id ] ) ;
}
}
}