You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdemultimedia/krec/krecconfig_fileswidget.cpp

148 lines
5.9 KiB

/***************************************************************************
copyright : (C) 2003 by Arnold Krille
email : arnold@arnoldarts.de
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; version 2 of the License. *
* *
***************************************************************************/
#include "krecconfig_fileswidget.h"
#include "krecconfig_fileswidget.moc"
#include "krecglobal.h"
#include <kdebug.h>
#include <tqbuttongroup.h>
#include <tqradiobutton.h>
#include <tqcheckbox.h>
#include <tqlineedit.h>
#include <tdeapplication.h>
#include <tdeconfig.h>
#include <tdelocale.h>
#include <tqlabel.h>
KRecConfigFilesWidget::KRecConfigFilesWidget( TQWidget* p, const char* n )
: TQVBox( p,n )
, _hbox( new TQHBox( this ) )
, _ratebox( 0 ), _channelsbox( 0 ), _bitsbox( 0 )
, _rate48( 0 ), _rate44( 0 ), _rate22( 0 ), _rate11( 0 ), _rateother( 0 )
, _rateotherbox( 0 ), _rateotherlabel( 0 ), _rateotherline( 0 )
, _channels2( 0 ), _channels1( 0 )
, _bits16( 0 ), _bits8( 0 )
, _samplingRate( 44100 ), _channels( 2 ), _bits( 16 )
{
_ratebox = new TQButtonGroup( 1, TQt::Horizontal, i18n( "Sampling Rate" ), _hbox );
connect( _ratebox, TQ_SIGNAL( clicked( int ) ), this, TQ_SLOT( ratechanged( int ) ) );
_rate48 = new TQRadioButton( i18n( "48000 Hz" ), _ratebox );
_rate44 = new TQRadioButton( i18n( "44100 Hz" ), _ratebox );
_rate22 = new TQRadioButton( i18n( "22050 Hz" ), _ratebox );
_rate11 = new TQRadioButton( i18n( "11025 Hz" ), _ratebox );
_rateother = new TQRadioButton( i18n( "Other" ), _ratebox );
_rateotherbox = new TQHBox( _ratebox );
_rateotherbox->setSpacing( 2 );
_rateotherlabel = new TQLabel( i18n( "Other:" ), _rateotherbox );
_rateotherline = new TQLineEdit( _rateotherbox );
_rateotherline->setMaxLength( 10 );
_rateotherline->setFrame( true );
_rateotherbox->setEnabled( false );
connect( _rateotherline, TQ_SIGNAL( textChanged( const TQString& ) ), this, TQ_SLOT( rateotherchanged( const TQString& ) ) );
_channelsbox = new TQButtonGroup( 1, TQt::Horizontal, i18n( "Channels" ), _hbox );
connect( _channelsbox, TQ_SIGNAL( clicked( int ) ), this, TQ_SLOT( channelschanged( int ) ) );
_channels2 = new TQRadioButton( i18n( "Stereo (2 channels)" ), _channelsbox );
_channels1 = new TQRadioButton( i18n( "Mono (1 channel)" ), _channelsbox );
_bitsbox = new TQButtonGroup( 1, TQt::Horizontal, i18n( "Bits" ), _hbox );
connect( _bitsbox, TQ_SIGNAL( clicked( int ) ), this, TQ_SLOT( bitschanged( int ) ) );
_bits16 = new TQRadioButton( i18n( "16 bit" ), _bitsbox );
_bits8 = new TQRadioButton( i18n( "8 bit" ), _bitsbox );
_usedefaults = new TQCheckBox( i18n( "Use defaults for creating new files" ), this );
connect( _usedefaults, TQ_SIGNAL( toggled( bool ) ), this, TQ_SLOT( usedefaultschanged( bool ) ) );
setSpacing( 5 );
load();
}
KRecConfigFilesWidget::~KRecConfigFilesWidget() {
}
void KRecConfigFilesWidget::load() {
kdDebug( 60005 ) << k_funcinfo << endl;
defaults();
kapp->config()->setGroup( "FileDefaults" );
_samplingRate = kapp->config()->readNumEntry( "SamplingRate", 44100 );
switch ( _samplingRate ) {
case 48000: _rate48->setChecked( true ); break;
case 44100: _rate44->setChecked( true ); break;
case 22050: _rate22->setChecked( true ); break;
case 11025: _rate11->setChecked( true ); break;
default:
_rateother->setChecked( true );
_rateotherbox->setEnabled( true );
_rateotherline->setText( TQString::number( _samplingRate ) );
break;
};
_channels = kapp->config()->readNumEntry( "Channels", 2 );
switch ( _channels ) {
default:
case 2: _channels2->setChecked( true ); break;
case 1: _channels1->setChecked( true ); break;
};
_bits = kapp->config()->readNumEntry( "Bits", 16 );
switch ( _bits ) {
default:
case 16: _bits16->setChecked( true ); break;
case 8: _bits8->setChecked( true ); break;
};
_usedefaults->setChecked( kapp->config()->readBoolEntry( "UseDefaults", false ) );
}
void KRecConfigFilesWidget::save() {
kapp->config()->setGroup( "FileDefaults" );
kapp->config()->writeEntry( "SamplingRate", _samplingRate );
kapp->config()->writeEntry( "Channels", _channels );
kapp->config()->writeEntry( "Bits", _bits );
kapp->config()->writeEntry( "UseDefaults", _usedefaults->isOn() );
kapp->config()->sync();
}
void KRecConfigFilesWidget::defaults() {
_rate44->setChecked( true );
_channels2->setChecked( true );
_bits16->setChecked( true );
}
void KRecConfigFilesWidget::ratechanged( int index ) {
if ( _ratebox->find( index ) == _rateother ) _rateotherbox->setEnabled( true );
else _rateotherbox->setEnabled( false );
if ( _ratebox->find( index ) == _rate48 ) _samplingRate = 48000;
if ( _ratebox->find( index ) == _rate44 ) _samplingRate = 44100;
if ( _ratebox->find( index ) == _rate22 ) _samplingRate = 22050;
if ( _ratebox->find( index ) == _rate11 ) _samplingRate = 11025;
emit sRateChanged( _samplingRate );
}
void KRecConfigFilesWidget::rateotherchanged( const TQString& text ) {
_samplingRate = text.toInt();
emit sRateChanged( _samplingRate );
}
void KRecConfigFilesWidget::channelschanged( int index ) {
if ( _channelsbox->find( index ) == _channels2 ) _channels = 2;
if ( _channelsbox->find( index ) == _channels1 ) _channels = 1;
emit sChannelsChanged( _channels );
}
void KRecConfigFilesWidget::bitschanged( int index ) {
if ( _bitsbox->find( index ) == _bits16 ) _bits = 16;
if ( _bitsbox->find( index ) == _bits8 ) _bits = 8;
emit sBitsChanged( _bits );
}
void KRecConfigFilesWidget::usedefaultschanged( bool n ) {
emit sUseDefaultsChanged( n );
}