summaryrefslogtreecommitdiffstats
path: root/krec/krecconfig_fileswidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'krec/krecconfig_fileswidget.cpp')
-rw-r--r--krec/krecconfig_fileswidget.cpp147
1 files changed, 147 insertions, 0 deletions
diff --git a/krec/krecconfig_fileswidget.cpp b/krec/krecconfig_fileswidget.cpp
new file mode 100644
index 00000000..5df6693d
--- /dev/null
+++ b/krec/krecconfig_fileswidget.cpp
@@ -0,0 +1,147 @@
+/***************************************************************************
+ 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 <qbuttongroup.h>
+#include <qradiobutton.h>
+#include <qcheckbox.h>
+#include <qlineedit.h>
+#include <kapplication.h>
+#include <kconfig.h>
+#include <klocale.h>
+#include <qlabel.h>
+
+KRecConfigFilesWidget::KRecConfigFilesWidget( QWidget* p, const char* n )
+ : QVBox( p,n )
+ , _hbox( new QHBox( 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 QButtonGroup( 1, Qt::Horizontal, i18n( "Sampling Rate" ), _hbox );
+ connect( _ratebox, SIGNAL( clicked( int ) ), this, SLOT( ratechanged( int ) ) );
+ _rate48 = new QRadioButton( i18n( "48000 Hz" ), _ratebox );
+ _rate44 = new QRadioButton( i18n( "44100 Hz" ), _ratebox );
+ _rate22 = new QRadioButton( i18n( "22050 Hz" ), _ratebox );
+ _rate11 = new QRadioButton( i18n( "11025 Hz" ), _ratebox );
+ _rateother = new QRadioButton( i18n( "Other" ), _ratebox );
+ _rateotherbox = new QHBox( _ratebox );
+ _rateotherbox->setSpacing( 2 );
+ _rateotherlabel = new QLabel( i18n( "Other:" ), _rateotherbox );
+ _rateotherline = new QLineEdit( _rateotherbox );
+ _rateotherline->setMaxLength( 10 );
+ _rateotherline->setFrame( true );
+ _rateotherbox->setEnabled( false );
+ connect( _rateotherline, SIGNAL( textChanged( const QString& ) ), this, SLOT( rateotherchanged( const QString& ) ) );
+ _channelsbox = new QButtonGroup( 1, Qt::Horizontal, i18n( "Channels" ), _hbox );
+ connect( _channelsbox, SIGNAL( clicked( int ) ), this, SLOT( channelschanged( int ) ) );
+ _channels2 = new QRadioButton( i18n( "Stereo (2 channels)" ), _channelsbox );
+ _channels1 = new QRadioButton( i18n( "Mono (1 channel)" ), _channelsbox );
+ _bitsbox = new QButtonGroup( 1, Qt::Horizontal, i18n( "Bits" ), _hbox );
+ connect( _bitsbox, SIGNAL( clicked( int ) ), this, SLOT( bitschanged( int ) ) );
+ _bits16 = new QRadioButton( i18n( "16 bit" ), _bitsbox );
+ _bits8 = new QRadioButton( i18n( "8 bit" ), _bitsbox );
+
+ _usedefaults = new QCheckBox( i18n( "Use defaults for creating new files" ), this );
+ connect( _usedefaults, SIGNAL( toggled( bool ) ), this, 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( QString::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 QString& 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 );
+}