summaryrefslogtreecommitdiffstats
path: root/kmix/dialogselectmaster.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kmix/dialogselectmaster.cpp')
-rw-r--r--kmix/dialogselectmaster.cpp63
1 files changed, 41 insertions, 22 deletions
diff --git a/kmix/dialogselectmaster.cpp b/kmix/dialogselectmaster.cpp
index ec957d4b..06b8d22c 100644
--- a/kmix/dialogselectmaster.cpp
+++ b/kmix/dialogselectmaster.cpp
@@ -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_mainFrame, "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]);
}
}
}