kaddressbook
viewconfigurefilterpage.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <qbuttongroup.h>
00025 #include <qlabel.h>
00026 #include <qlayout.h>
00027 #include <qradiobutton.h>
00028
00029 #include <kconfig.h>
00030 #include <kcombobox.h>
00031 #include <kdialog.h>
00032 #include <klocale.h>
00033
00034 #include "viewconfigurefilterpage.h"
00035 #include "filter.h"
00036
00037 ViewConfigureFilterPage::ViewConfigureFilterPage( QWidget *parent,
00038 const char *name )
00039 : QWidget( parent, name )
00040 {
00041 QBoxLayout *topLayout = new QVBoxLayout( this, 0, KDialog::spacingHint() );
00042
00043 mFilterGroup = new QButtonGroup();
00044 connect( mFilterGroup, SIGNAL( clicked( int ) ), SLOT( buttonClicked( int ) ) );
00045
00046 QLabel *label = new QLabel( i18n( "The default filter will be activated whenever"
00047 " this view is displayed. This feature allows you to configure views that only"
00048 " interact with certain types of information based on the filter. Once the view"
00049 " is activated, the filter can be changed at anytime." ), this );
00050 label->setAlignment( Qt::AlignLeft | Qt::AlignTop | Qt::WordBreak );
00051 topLayout->addWidget( label );
00052
00053 QWidget *spacer = new QWidget( this );
00054 spacer->setMinimumHeight( 5 );
00055 topLayout->addWidget( spacer );
00056
00057 QRadioButton *button = new QRadioButton( i18n( "No default filter" ), this );
00058 mFilterGroup->insert( button );
00059 topLayout->addWidget( button );
00060
00061 button = new QRadioButton( i18n( "Use last active filter" ), this );
00062 mFilterGroup->insert( button );
00063 topLayout->addWidget( button );
00064
00065 QBoxLayout *comboLayout = new QHBoxLayout();
00066 topLayout->addLayout( comboLayout );
00067 button = new QRadioButton( i18n( "Use filter:" ), this );
00068 mFilterGroup->insert( button );
00069 comboLayout->addWidget( button );
00070
00071 mFilterCombo = new KComboBox( this );
00072 comboLayout->addWidget( mFilterCombo );
00073
00074 topLayout->addStretch( 100 );
00075 }
00076
00077 ViewConfigureFilterPage::~ViewConfigureFilterPage()
00078 {
00079 delete mFilterGroup;
00080 }
00081
00082 void ViewConfigureFilterPage::restoreSettings( KConfig *config )
00083 {
00084 mFilterCombo->clear();
00085
00086
00087 const Filter::List list = Filter::restore( config, "Filter" );
00088 Filter::List::ConstIterator it;
00089 for ( it = list.begin(); it != list.end(); ++it )
00090 mFilterCombo->insertItem( (*it).name() );
00091
00092 int id = config->readNumEntry( "DefaultFilterType", 1 );
00093 mFilterGroup->setButton( id );
00094 buttonClicked( id );
00095
00096 if ( id == 2 )
00097 mFilterCombo->setCurrentText( config->readEntry( "DefaultFilterName" ) );
00098 }
00099
00100 void ViewConfigureFilterPage::saveSettings( KConfig *config )
00101 {
00102 config->writeEntry( "DefaultFilterName", mFilterCombo->currentText() );
00103 config->writeEntry( "DefaultFilterType", mFilterGroup->id( mFilterGroup->selected() ) );
00104 }
00105
00106 void ViewConfigureFilterPage::buttonClicked( int id )
00107 {
00108 mFilterCombo->setEnabled( id == 2 );
00109 }
00110
00111 #include "viewconfigurefilterpage.moc"
|