/***************************************************************************
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 "krecconfigure.h"
# include "krecconfigure.moc"
# include "krecglobal.h"
# include <kgenericfactory.h>
# include <kdebug.h>
# include <tqlayout.h>
# include <tqbuttongroup.h>
# include <tqradiobutton.h>
# include <tqcheckbox.h>
# include <tqlineedit.h>
# include <tqhbox.h>
# include <tqlabel.h>
# include <kapplication.h>
# include <kconfig.h>
# include <klocale.h>
# include <kmessagebox.h>
# include <kpushbutton.h>
typedef KGenericFactory < KRecConfigGeneral , TQWidget > KRecConfigGeneralFactory ;
K_EXPORT_COMPONENT_FACTORY ( kcm_krec , KRecConfigGeneralFactory ( " krec " ) )
KRecConfigGeneral : : KRecConfigGeneral ( TQWidget * p , const char * , const TQStringList & s )
: KCModule ( KRecConfigGeneralFactory : : instance ( ) , p , s )
, _layout ( 0 ) , _layout_display ( 0 )
, _display_title ( 0 )
, _displaybox ( 0 ) , _framebasebox ( 0 )
, _display0 ( 0 ) , _display1 ( 0 ) , _display2 ( 0 ) , _display3 ( 0 )
, _framebase30 ( 0 ) , _framebase25 ( 0 ) , _framebase75 ( 0 ) , _framebaseother ( 0 )
, _framebaseotherbox ( 0 ) , _framebaseotherlabel ( 0 ) , _framebaseotherline ( 0 )
, _displaymode ( 0 ) , _framebase ( 25 )
{
_layout = new TQBoxLayout ( this , TQBoxLayout : : TopToBottom ) ;
_layout - > addSpacing ( 10 ) ;
_display_title = new TQLabel ( i18n ( " <qt><b>Timedisplay Related Settings</b></qt> " ) , this ) ;
_layout - > addWidget ( _display_title , - 100 ) ;
_layout_display = new TQBoxLayout ( _layout , TQBoxLayout : : LeftToRight ) ;
_layout - > setStretchFactor ( _layout_display , - 100 ) ;
_displaybox = new TQButtonGroup ( 1 , Qt : : Horizontal , i18n ( " Timedisplay Style " ) , this ) ;
_layout_display - > addWidget ( _displaybox , 100 ) ;
connect ( _displaybox , TQT_SIGNAL ( clicked ( int ) ) , this , TQT_SLOT ( displaychanged ( int ) ) ) ;
_display0 = new TQRadioButton ( i18n ( " Plain samples " ) , _displaybox ) ;
_display1 = new TQRadioButton ( i18n ( " [hours:]mins:secs:samples " ) , _displaybox ) ;
_display2 = new TQRadioButton ( i18n ( " [hours:]mins:secs:frames " ) , _displaybox ) ;
_display3 = new TQRadioButton ( i18n ( " MByte.KByte " ) , _displaybox ) ;
_framebasebox = new TQButtonGroup ( 1 , Qt : : Horizontal , i18n ( " Framebase " ) , this ) ;
_layout_display - > addWidget ( _framebasebox , 100 ) ;
connect ( _framebasebox , TQT_SIGNAL ( clicked ( int ) ) , this , TQT_SLOT ( framebasechanged ( int ) ) ) ;
_framebase30 = new TQRadioButton ( i18n ( " 30 frames per second (American TV) " ) , _framebasebox ) ;
_framebase25 = new TQRadioButton ( i18n ( " 25 frames per second (European TV) " ) , _framebasebox ) ;
_framebase75 = new TQRadioButton ( i18n ( " 75 frames per second (CD) " ) , _framebasebox ) ;
_framebaseother = new TQRadioButton ( i18n ( " Other " ) , _framebasebox ) ;
_framebaseotherbox = new TQHBox ( _framebasebox ) ;
_framebaseotherbox - > setSpacing ( 2 ) ;
_framebaseotherlabel = new TQLabel ( i18n ( " Other " ) , _framebaseotherbox ) ;
_framebaseotherline = new TQLineEdit ( _framebaseotherbox ) ;
_framebaseotherline - > setMaxLength ( 10 ) ;
_framebaseotherbox - > setEnabled ( false ) ;
connect ( _framebaseotherline , TQT_SIGNAL ( textChanged ( const TQString & ) ) , this , TQT_SLOT ( framebaseotherchanged ( const TQString & ) ) ) ;
_layout - > addSpacing ( 5 ) ;
_verboseDisplayMode = new TQCheckBox ( i18n ( " Show verbose times ( XXmins:XXsecs:XXframes instead of XX:XX::XX ) " ) , this ) ;
connect ( _verboseDisplayMode , TQT_SIGNAL ( toggled ( bool ) ) , this , TQT_SLOT ( verboseDisplayChanged ( bool ) ) ) ;
_layout - > addWidget ( _verboseDisplayMode ) ;
_layout - > addSpacing ( 10 ) ;
_other_title = new TQLabel ( i18n ( " <qt><b>Miscellaneous Settings</b></qt> " ) , this ) ;
_layout - > addWidget ( _other_title ) ;
_tipofday = new TQCheckBox ( i18n ( " Show tip of the day at startup " ) , this ) ;
connect ( _tipofday , TQT_SIGNAL ( toggled ( bool ) ) , this , TQT_SLOT ( tipofdaychanged ( bool ) ) ) ;
_layout - > addWidget ( _tipofday ) ;
TQBoxLayout * _tmptqlayout = new TQBoxLayout ( this , TQBoxLayout : : LeftToRight ) ;
_enableAllMessages = new KPushButton ( i18n ( " Enable All Hidden Messages " ) , this ) ;
connect ( _enableAllMessages , TQT_SIGNAL ( clicked ( ) ) , this , TQT_SLOT ( enableallmessagesclicked ( ) ) ) ;
_tmptqlayout - > addWidget ( _enableAllMessages ) ;
TQLabel * _tmplbl = new TQLabel ( i18n ( " <qt><i>All messages with the \" Don't show this message again \" option are shown again after selecting this button.</i></qt> " ) , this ) ;
_tmptqlayout - > addWidget ( _tmplbl ) ;
_layout - > addLayout ( _tmptqlayout ) ;
_layout - > addStretch ( 100 ) ;
load ( ) ;
}
KRecConfigGeneral : : ~ KRecConfigGeneral ( ) {
}
void KRecConfigGeneral : : load ( ) {
kdDebug ( 60005 ) < < k_funcinfo < < endl ;
defaults ( ) ;
_displaymode = KRecGlobal : : the ( ) - > timeFormatMode ( ) ;
switch ( _displaymode % 100 ) {
default :
case 0 : _display0 - > setChecked ( true ) ; break ;
case 1 : _display1 - > setChecked ( true ) ; break ;
case 2 : _display2 - > setChecked ( true ) ; break ;
case 3 : _display3 - > setChecked ( true ) ; break ;
} ;
_verboseDisplayMode - > setChecked ( ( _displaymode / 100 = = 1 ) ) ;
_framebase = KRecGlobal : : the ( ) - > frameBase ( ) ;
switch ( _framebase ) {
case 30 : _framebase30 - > setChecked ( true ) ; break ;
case 25 : _framebase25 - > setChecked ( true ) ; break ;
case 75 : _framebase75 - > setChecked ( true ) ; break ;
default :
_framebaseother - > setChecked ( true ) ;
_framebaseotherbox - > setEnabled ( true ) ;
_framebaseotherline - > setText ( TQString : : number ( _framebase ) ) ;
break ;
} ;
kapp - > config ( ) - > setGroup ( " TipOfDay " ) ;
_tip = kapp - > config ( ) - > readBoolEntry ( " RunOnStart " , true ) ;
_tipofday - > setChecked ( _tip ) ;
}
void KRecConfigGeneral : : save ( ) {
KRecGlobal : : the ( ) - > setTimeFormatMode ( _displaymode ) ;
KRecGlobal : : the ( ) - > setFrameBase ( _framebase ) ;
kdDebug ( 60005 ) < < k_funcinfo < < " Framebase= " < < _framebase < < endl ;
kapp - > config ( ) - > setGroup ( " TipOfDay " ) ;
kapp - > config ( ) - > writeEntry ( " RunOnStart " , _tip ) ;
kapp - > config ( ) - > sync ( ) ;
emit changed ( false ) ;
}
void KRecConfigGeneral : : defaults ( ) {
_display0 - > setChecked ( true ) ;
_framebase25 - > setChecked ( true ) ;
}
void KRecConfigGeneral : : displaychanged ( int index ) {
int verbose = _displaymode / 100 ;
if ( _displaybox - > find ( index ) = = _display0 ) _displaymode = 0 + verbose * 100 ;
if ( _displaybox - > find ( index ) = = _display1 ) _displaymode = 1 + verbose * 100 ;
if ( _displaybox - > find ( index ) = = _display2 ) _displaymode = 2 + verbose * 100 ;
if ( _displaybox - > find ( index ) = = _display3 ) _displaymode = 3 + verbose * 100 ;
emit changed ( true ) ;
}
void KRecConfigGeneral : : framebasechanged ( int index ) {
if ( _framebasebox - > find ( index ) = = _framebase30 ) _framebase = 30 ;
if ( _framebasebox - > find ( index ) = = _framebase25 ) _framebase = 25 ;
if ( _framebasebox - > find ( index ) = = _framebase75 ) _framebase = 75 ;
if ( _framebasebox - > find ( index ) = = _framebaseother ) {
_framebaseotherbox - > setEnabled ( true ) ;
_framebase = _framebaseotherline - > text ( ) . toInt ( ) ;
kdDebug ( 60005 ) < < k_funcinfo < < " Framebase= " < < _framebase < < endl ;
} else
_framebaseotherbox - > setEnabled ( false ) ;
emit changed ( true ) ;
}
void KRecConfigGeneral : : framebaseotherchanged ( const TQString & text ) {
_framebase = text . toInt ( ) ;
kdDebug ( 60005 ) < < k_funcinfo < < " Framebase= " < < _framebase < < endl ;
emit changed ( true ) ;
}
void KRecConfigGeneral : : verboseDisplayChanged ( bool n ) {
if ( n & & _displaymode < 100 ) _displaymode + = 100 ;
if ( ! n & & _displaymode > = 100 ) _displaymode - = 100 ;
emit changed ( true ) ;
}
void KRecConfigGeneral : : tipofdaychanged ( bool n ) {
_tip = n ;
emit changed ( true ) ;
}
void KRecConfigGeneral : : enableallmessagesclicked ( ) {
kdDebug ( 60005 ) < < k_funcinfo < < endl ;
KMessageBox : : enableAllMessages ( ) ;
}