Commit a50bb327 authored by Francois Cartegnie's avatar Francois Cartegnie Committed by Jean-Baptiste Kempf

UI: Sprefs_audio fixes and enhancements

Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent 11e07b57
...@@ -1037,7 +1037,7 @@ BoolConfigControl::BoolConfigControl( vlc_object_t *_p_this, ...@@ -1037,7 +1037,7 @@ BoolConfigControl::BoolConfigControl( vlc_object_t *_p_this,
BoolConfigControl::BoolConfigControl( vlc_object_t *_p_this, BoolConfigControl::BoolConfigControl( vlc_object_t *_p_this,
module_config_t *_p_item, module_config_t *_p_item,
QLabel *_label, QLabel *_label,
QCheckBox *_checkbox, QAbstractButton *_checkbox,
bool bycat ) : bool bycat ) :
VIntConfigControl( _p_this, _p_item ) VIntConfigControl( _p_this, _p_item )
{ {
...@@ -1048,14 +1048,13 @@ BoolConfigControl::BoolConfigControl( vlc_object_t *_p_this, ...@@ -1048,14 +1048,13 @@ BoolConfigControl::BoolConfigControl( vlc_object_t *_p_this,
void BoolConfigControl::finish() void BoolConfigControl::finish()
{ {
checkbox->setCheckState( p_item->value.i == true ? Qt::Checked checkbox->setChecked( p_item->value.i == true );
: Qt::Unchecked );
checkbox->setToolTip( formatTooltip(qtr(p_item->psz_longtext)) ); checkbox->setToolTip( formatTooltip(qtr(p_item->psz_longtext)) );
} }
int BoolConfigControl::getValue() int BoolConfigControl::getValue()
{ {
return checkbox->checkState() == Qt::Checked ? true : false; return checkbox->isChecked();
} }
/************************************************************************** /**************************************************************************
......
...@@ -201,14 +201,14 @@ public: ...@@ -201,14 +201,14 @@ public:
BoolConfigControl( vlc_object_t *, module_config_t *, QWidget *, BoolConfigControl( vlc_object_t *, module_config_t *, QWidget *,
QGridLayout *, int& ); QGridLayout *, int& );
BoolConfigControl( vlc_object_t *, module_config_t *, BoolConfigControl( vlc_object_t *, module_config_t *,
QLabel *, QCheckBox*, bool ); QLabel *, QAbstractButton*, bool );
virtual ~BoolConfigControl() {}; virtual ~BoolConfigControl() {};
virtual int getValue(); virtual int getValue();
virtual void show() { checkbox->show(); } virtual void show() { checkbox->show(); }
virtual void hide() { checkbox->hide(); } virtual void hide() { checkbox->hide(); }
virtual int getType() { return CONFIG_ITEM_BOOL; } virtual int getType() { return CONFIG_ITEM_BOOL; }
private: private:
QCheckBox *checkbox; QAbstractButton *checkbox;
void finish(); void finish();
}; };
......
...@@ -223,6 +223,9 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, ...@@ -223,6 +223,9 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
START_SPREFS_CAT( Audio, qtr("Audio Settings") ); START_SPREFS_CAT( Audio, qtr("Audio Settings") );
CONFIG_GENERIC( "audio", Bool, NULL, enableAudio ); CONFIG_GENERIC( "audio", Bool, NULL, enableAudio );
ui.SPrefsAudio_zone->setEnabled( ui.enableAudio->isChecked() );
CONNECT( ui.enableAudio, toggled( bool ),
ui.SPrefsAudio_zone, setEnabled( bool ) );
#define audioCommon( name ) \ #define audioCommon( name ) \
QWidget * name ## Control = new QWidget( ui.outputAudioBox ); \ QWidget * name ## Control = new QWidget( ui.outputAudioBox ); \
...@@ -230,7 +233,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, ...@@ -230,7 +233,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
name ## Layout->setMargin( 0 ); \ name ## Layout->setMargin( 0 ); \
name ## Layout->setSpacing( 0 ); \ name ## Layout->setSpacing( 0 ); \
QLabel * name ## Label = new QLabel( qtr( "Device:" ), name ## Control ); \ QLabel * name ## Label = new QLabel( qtr( "Device:" ), name ## Control ); \
name ## Label->setMinimumSize(QSize(100, 0)); \ name ## Label->setMinimumSize(QSize(250, 0)); \
name ## Layout->addWidget( name ## Label ); \ name ## Layout->addWidget( name ## Label ); \
#define audioControl( name) \ #define audioControl( name) \
...@@ -249,12 +252,6 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, ...@@ -249,12 +252,6 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
name ## Layout->addWidget( name ## Browse ); \ name ## Layout->addWidget( name ## Browse ); \
outputAudioLayout->addWidget( name ## Control, outputAudioLayout->rowCount(), 0, 1, -1 ); outputAudioLayout->addWidget( name ## Control, outputAudioLayout->rowCount(), 0, 1, -1 );
/* hide if necessary */
ui.lastfm_user_edit->hide();
ui.lastfm_user_label->hide();
ui.lastfm_pass_edit->hide();
ui.lastfm_pass_label->hide();
/* Build if necessary */ /* Build if necessary */
QGridLayout * outputAudioLayout = qobject_cast<QGridLayout *>(ui.outputAudioBox->layout()); QGridLayout * outputAudioLayout = qobject_cast<QGridLayout *>(ui.outputAudioBox->layout());
#ifdef WIN32 #ifdef WIN32
...@@ -292,13 +289,17 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, ...@@ -292,13 +289,17 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
CONFIG_GENERIC_NO_BOOL( "volume" , IntegerRangeSlider, NULL, CONFIG_GENERIC_NO_BOOL( "volume" , IntegerRangeSlider, NULL,
defaultVolume ); defaultVolume );
CONNECT( ui.defaultVolume, valueChanged( int ), CONNECT( ui.defaultVolume, valueChanged( int ),
this, updateAudioVolume( int ) ); this, updateAudioVolume( int ) );
CONFIG_GENERIC( "qt-autosave-volume", Bool, NULL, keepVolumeRadio );
ui.defaultVolume_zone->setEnabled( ui.resetVolumeRadio->isChecked() );
CONNECT( ui.resetVolumeRadio, toggled( bool ),
ui.defaultVolume_zone, setEnabled( bool ) );
CONFIG_GENERIC( "audio-language" , String , ui.langLabel, CONFIG_GENERIC( "audio-language" , String , ui.langLabel,
preferredAudioLanguage ); preferredAudioLanguage );
CONFIG_GENERIC( "spdif", Bool, NULL, spdifBox ); CONFIG_GENERIC( "spdif", Bool, NULL, spdifBox );
CONFIG_GENERIC( "qt-autosave-volume", Bool, NULL, saveVolBox );
CONFIG_GENERIC( "force-dolby-surround", IntegerList, ui.dolbyLabel, CONFIG_GENERIC( "force-dolby-surround", IntegerList, ui.dolbyLabel,
detectionDolby ); detectionDolby );
...@@ -326,6 +327,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, ...@@ -326,6 +327,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
ui.volumeValue->setButtonSymbols(QAbstractSpinBox::NoButtons); ui.volumeValue->setButtonSymbols(QAbstractSpinBox::NoButtons);
optionWidgets.append( ui.volumeValue ); optionWidgets.append( ui.volumeValue );
optionWidgets.append( ui.headphoneEffect ); optionWidgets.append( ui.headphoneEffect );
optionWidgets.append( ui.spdifBox );
updateAudioOptions( ui.outputModule->currentIndex() ); updateAudioOptions( ui.outputModule->currentIndex() );
/* LastFM */ /* LastFM */
...@@ -340,11 +342,19 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, ...@@ -340,11 +342,19 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
ui.lastfm->setChecked( true ); ui.lastfm->setChecked( true );
else else
ui.lastfm->setChecked( false ); ui.lastfm->setChecked( false );
ui.lastfm_zone->setEnabled( ui.lastfm->isChecked() );
CONNECT( ui.lastfm, toggled( bool ),
ui.lastfm_zone, setEnabled( bool ) );
CONNECT( ui.lastfm, stateChanged( int ), CONNECT( ui.lastfm, stateChanged( int ),
this, lastfm_Changed( int ) ); this, lastfm_Changed( int ) );
} }
else else
{
ui.lastfm->hide(); ui.lastfm->hide();
ui.lastfm_zone->hide();
}
/* Normalizer */ /* Normalizer */
CONNECT( ui.volNormBox, toggled( bool ), ui.volNormSpin, CONNECT( ui.volNormBox, toggled( bool ), ui.volNormSpin,
...@@ -647,6 +657,8 @@ void SPrefsPanel::updateAudioOptions( int number) ...@@ -647,6 +657,8 @@ void SPrefsPanel::updateAudioOptions( int number)
optionWidgets[alsaW]->setVisible( ( value == "alsa" ) ); optionWidgets[alsaW]->setVisible( ( value == "alsa" ) );
#endif #endif
optionWidgets[fileW]->setVisible( ( value == "aout_file" ) ); optionWidgets[fileW]->setVisible( ( value == "aout_file" ) );
optionWidgets[spdifChB]->setVisible( ( value != "aout_file"
&& value != "dummy" ) );
} }
......
...@@ -75,6 +75,7 @@ enum { ...@@ -75,6 +75,7 @@ enum {
normalizerChB, normalizerChB,
volLW, volLW,
headphoneB, headphoneB,
spdifChB,
}; };
enum { inputLE, cachingCoB }; enum { inputLE, cachingCoB };
enum { skinRB, qtRB }; enum { skinRB, qtRB };
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment