00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "filtercriteriawidget.h"
00019 #include <kmimetype.h>
00020
00021 FilterCriteriaWidget::FilterCriteriaWidget( QWidget *parent )
00022 : QWidget( parent )
00023 {
00024
00025
00026 setObjectName( FILTER_CRITERIA_WIDGET_NAME );
00027
00028
00029 QVBoxLayout* layMain = new QVBoxLayout();
00030 this->setLayout( layMain );
00031
00032
00033 QHBoxLayout* layLine1 = new QHBoxLayout();
00034 QHBoxLayout* layLine2 = new QHBoxLayout();
00035 layMain->addLayout( layLine1 );
00036 layMain->addLayout( layLine2 );
00037
00038
00039 cmbSource = new KComboBox( this );
00040 cmbSource->insertItem( ID_COMBO_SOURCE_FROM, i18nc( "@item:inlistbox the sender of the mail", "From" ) );
00041 cmbSource->insertItem( ID_COMBO_SOURCE_TO, i18nc( "@item:inlistbox The addressee of the mail", "To" ) );
00042 cmbSource->insertItem( ID_COMBO_SOURCE_SIZE, i18nc( "@item:inlistbox the mail subject", "Size (Bytes)" ) );
00043 cmbSource->insertItem( ID_COMBO_SOURCE_SUBJECT, i18nc( "@item:inlistbox the mail subject", "Subject" ) );
00044 cmbSource->insertItem( ID_COMBO_SOURCE_HEADER, i18nc( "@item:inlistbox the mail header", "Header" ) );
00045 cmbSource->insertItem( ID_COMBO_SOURCE_ACCOUNT, i18nc( "@item:inlistbox the account which contains this mail", "Account" ) );
00046 layLine1->addWidget( cmbSource );
00047 connect( cmbSource, SIGNAL( activated( int ) ), this, SLOT( slotSetWidgets() ) );
00048
00049 switch( DEFAULT_FILTER_CRITERIA_SOURCE )
00050 {
00051 case CONFIG_VALUE_FILTER_CRITERIA_SOURCE_FROM : cmbSource->setCurrentIndex( ID_COMBO_SOURCE_FROM ); break;
00052 case CONFIG_VALUE_FILTER_CRITERIA_SOURCE_TO : cmbSource->setCurrentIndex( ID_COMBO_SOURCE_TO ); break;
00053 case CONFIG_VALUE_FILTER_CRITERIA_SOURCE_SIZE : cmbSource->setCurrentIndex( ID_COMBO_SOURCE_SIZE ); break;
00054 case CONFIG_VALUE_FILTER_CRITERIA_SOURCE_SUBJECT : cmbSource->setCurrentIndex( ID_COMBO_SOURCE_SUBJECT ); break;
00055 case CONFIG_VALUE_FILTER_CRITERIA_SOURCE_HEADER : cmbSource->setCurrentIndex( ID_COMBO_SOURCE_HEADER ); break;
00056 case CONFIG_VALUE_FILTER_CRITERIA_SOURCE_ACCOUNT : cmbSource->setCurrentIndex( ID_COMBO_SOURCE_ACCOUNT ); break;
00057 default : cmbSource->setCurrentIndex( ID_COMBO_SOURCE_FROM ); break;
00058 }
00059
00060
00061 cmbConditionText = new KComboBox( this );
00062 cmbConditionText->insertItem( ID_COMBO_COND_TEXT_CONTAINS, i18n( "contains" ) );
00063 cmbConditionText->insertItem( ID_COMBO_COND_TEXT_NOT_CONTAINS, i18n( "does not contain" ) );
00064 cmbConditionText->insertItem( ID_COMBO_COND_TEXT_EQUALS, i18n( "equals" ) );
00065 cmbConditionText->insertItem( ID_COMBO_COND_TEXT_NOT_EQUALS, i18n( "does not equal" ) );
00066 cmbConditionText->insertItem( ID_COMBO_COND_TEXT_REGEXPR, i18n( "matches regular expression" ) );
00067 cmbConditionText->insertItem( ID_COMBO_COND_TEXT_NOT_REGEXPR, i18n( "does not match reg. expr." ) );
00068 layLine1->addWidget( cmbConditionText );
00069 connect( cmbConditionText, SIGNAL( activated( int ) ), this, SLOT( slotSetWidgets() ) );
00070
00071 switch( DEFAULT_FILTER_CRITERIA_COND_TEXT )
00072 {
00073 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_CONTAINS : cmbConditionText->setCurrentIndex( ID_COMBO_COND_TEXT_CONTAINS );break;
00074 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_CONTAINS : cmbConditionText->setCurrentIndex( ID_COMBO_COND_TEXT_NOT_CONTAINS );break;
00075 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_EQUALS : cmbConditionText->setCurrentIndex( ID_COMBO_COND_TEXT_EQUALS );break;
00076 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_EQUALS : cmbConditionText->setCurrentIndex( ID_COMBO_COND_TEXT_NOT_EQUALS );break;
00077 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_REGEXPR : cmbConditionText->setCurrentIndex( ID_COMBO_COND_TEXT_REGEXPR );break;
00078 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_REGEXPR : cmbConditionText->setCurrentIndex( ID_COMBO_COND_TEXT_NOT_REGEXPR );break;
00079 default : cmbConditionText->setCurrentIndex( ID_COMBO_COND_TEXT_CONTAINS ); break;
00080 }
00081
00082
00083 cmbConditionTextList = new KComboBox( this );
00084 cmbConditionTextList->insertItem( ID_COMBO_COND_TEXT_CONTAINS, i18n( "some line contains" ) );
00085 cmbConditionTextList->insertItem( ID_COMBO_COND_TEXT_NOT_CONTAINS, i18n( "no line contains" ) );
00086 cmbConditionTextList->insertItem( ID_COMBO_COND_TEXT_EQUALS, i18n( "some line equals" ) );
00087 cmbConditionTextList->insertItem( ID_COMBO_COND_TEXT_NOT_EQUALS, i18n( "no line equals" ) );
00088 cmbConditionTextList->insertItem( ID_COMBO_COND_TEXT_REGEXPR, i18n( "some line matches reg. expr." ) );
00089 cmbConditionTextList->insertItem( ID_COMBO_COND_TEXT_NOT_REGEXPR, i18n( "no line matches reg. expr." ) );
00090 layLine1->addWidget( cmbConditionTextList );
00091 connect( cmbConditionTextList, SIGNAL( activated( int ) ), this, SLOT( slotSetWidgets() ) );
00092
00093 switch( DEFAULT_FILTER_CRITERIA_COND_TEXT )
00094 {
00095 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_CONTAINS : cmbConditionTextList->setCurrentIndex( ID_COMBO_COND_TEXT_CONTAINS );break;
00096 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_CONTAINS : cmbConditionTextList->setCurrentIndex( ID_COMBO_COND_TEXT_NOT_CONTAINS );break;
00097 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_EQUALS : cmbConditionTextList->setCurrentIndex( ID_COMBO_COND_TEXT_EQUALS );break;
00098 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_EQUALS : cmbConditionTextList->setCurrentIndex( ID_COMBO_COND_TEXT_NOT_EQUALS );break;
00099 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_REGEXPR : cmbConditionTextList->setCurrentIndex( ID_COMBO_COND_TEXT_REGEXPR );break;
00100 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_REGEXPR : cmbConditionTextList->setCurrentIndex( ID_COMBO_COND_TEXT_NOT_REGEXPR );break;
00101 default : cmbConditionTextList->setCurrentIndex( ID_COMBO_COND_TEXT_CONTAINS ); break;
00102 }
00103
00104 cmbConditionNum = new KComboBox( this );
00105 cmbConditionNum->insertItem( ID_COMBO_COND_NUM_EQUAL, i18n( "is equal to" ) );
00106 cmbConditionNum->insertItem( ID_COMBO_COND_NUM_NOT_EQUAL, i18n( "is not equal to" ) );
00107 cmbConditionNum->insertItem( ID_COMBO_COND_NUM_GREATER, i18n( "is greater than" ) );
00108 cmbConditionNum->insertItem( ID_COMBO_COND_NUM_GREATER_EQUAL, i18n( "is greater than or equal to" ) );
00109 cmbConditionNum->insertItem( ID_COMBO_COND_NUM_LESS, i18n( "is less than" ) );
00110 cmbConditionNum->insertItem( ID_COMBO_COND_NUM_LESS_EQUAL, i18n( "is less than or equal to" ) );
00111 layLine1->addWidget( cmbConditionNum );
00112
00113 switch( DEFAULT_FILTER_CRITERIA_COND_NUM )
00114 {
00115 case CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_EQUAL : cmbConditionNum->setCurrentIndex( ID_COMBO_COND_NUM_EQUAL ); break;
00116 case CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_NOT_EQUAL : cmbConditionNum->setCurrentIndex( ID_COMBO_COND_NUM_NOT_EQUAL ); break;
00117 case CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_GREATER : cmbConditionNum->setCurrentIndex( ID_COMBO_COND_NUM_GREATER ); break;
00118 case CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_GREATER_EQUAL : cmbConditionNum->setCurrentIndex( ID_COMBO_COND_NUM_GREATER_EQUAL ); break;
00119 case CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_LESS : cmbConditionNum->setCurrentIndex( ID_COMBO_COND_NUM_LESS ); break;
00120 case CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_LESS_EQUAL : cmbConditionNum->setCurrentIndex( ID_COMBO_COND_NUM_LESS_EQUAL ); break;
00121 default : cmbConditionNum->setCurrentIndex( ID_COMBO_COND_NUM_EQUAL ); break;
00122 }
00123
00124
00125 txtCompValueText = new KLineEdit( this );
00126 txtCompValueText->setMinimumWidth( WIDTH_FILTER_TEXT_VALUE_LINE );
00127 layLine1->addWidget( txtCompValueText );
00128
00129 spbCompValueNum = new KIntNumInput( DEFAULT_FILTER_CRITERIA_SIZE, this, 10 );
00130 spbCompValueNum->setMinimum( 0 );
00131 spbCompValueNum->setSuffix( " Bytes" );
00132 layLine1->addWidget( spbCompValueNum );
00133
00134
00135 btnOpenRegExpEditor = new KPushButton( KGuiItem( "", "tools-wizard", "Check Regular Expression" ), this );
00136 layLine1->addWidget( btnOpenRegExpEditor );
00137 connect( btnOpenRegExpEditor, SIGNAL( clicked() ), this, SLOT( slotOpenRegExpCheck() ) );
00138
00139
00140 chkCaseSensitive = new QCheckBox( i18n( "Case sensitive" ), this );
00141 chkCaseSensitive->setChecked( DEFAULT_FILTER_CRITERIA_CASE_SENSITIVE );
00142 layLine2->addWidget( chkCaseSensitive );
00143
00144
00145 layMain->addWidget( new KSeparator( this ) );
00146
00147
00148 slotSetWidgets();
00149 }
00150
00151
00152 FilterCriteriaWidget::~FilterCriteriaWidget()
00153 {
00154 }
00155
00156 void FilterCriteriaWidget::slotSetWidgets( )
00157 {
00158 switch( cmbSource->currentIndex() )
00159 {
00160 case ID_COMBO_SOURCE_FROM : cmbConditionNum->setHidden( true );
00161 spbCompValueNum->setHidden( true );
00162 cmbConditionText->setHidden( false );
00163 txtCompValueText->setHidden( false );
00164 chkCaseSensitive->setHidden( false );
00165 cmbConditionTextList->setHidden( true );
00166 break;
00167 case ID_COMBO_SOURCE_TO : cmbConditionNum->setHidden( true );
00168 spbCompValueNum->setHidden( true );
00169 cmbConditionText->setHidden( false );
00170 txtCompValueText->setHidden( false );
00171 chkCaseSensitive->setHidden( false );
00172 cmbConditionTextList->setHidden( true );
00173 break;
00174 case ID_COMBO_SOURCE_SIZE : cmbConditionNum->setHidden( false );
00175 spbCompValueNum->setHidden( false );
00176 cmbConditionText->setHidden( true );
00177 txtCompValueText->setHidden( true );
00178 chkCaseSensitive->setHidden( true );
00179 cmbConditionTextList->setHidden( true );
00180 break;
00181 case ID_COMBO_SOURCE_SUBJECT : cmbConditionNum->setHidden( true );
00182 spbCompValueNum->setHidden( true );
00183 cmbConditionText->setHidden( false );
00184 txtCompValueText->setHidden( false );
00185 chkCaseSensitive->setHidden( false );
00186 cmbConditionTextList->setHidden( true );
00187 break;
00188 case ID_COMBO_SOURCE_HEADER : cmbConditionNum->setHidden( true );
00189 spbCompValueNum->setHidden( true );
00190 cmbConditionText->setHidden( true );
00191 txtCompValueText->setHidden( false );
00192 chkCaseSensitive->setHidden( false );
00193 cmbConditionTextList->setHidden( false );
00194 break;
00195 case ID_COMBO_SOURCE_ACCOUNT : cmbConditionNum->setHidden( true );
00196 spbCompValueNum->setHidden( true );
00197 cmbConditionText->setHidden( false );
00198 txtCompValueText->setHidden( false );
00199 chkCaseSensitive->setHidden( false );
00200 cmbConditionTextList->setHidden( true );
00201 break;
00202 default: cmbConditionNum->setHidden( true );
00203 spbCompValueNum->setHidden( true );
00204 cmbConditionText->setHidden( false );
00205 txtCompValueText->setHidden( false );
00206 chkCaseSensitive->setHidden( false );
00207 cmbConditionTextList->setHidden( true );
00208 break;
00209 }
00210
00211
00212 if( ( !cmbConditionText->isHidden() && ( cmbConditionText->currentIndex() == ID_COMBO_COND_TEXT_REGEXPR || cmbConditionText->currentIndex() == ID_COMBO_COND_TEXT_NOT_REGEXPR ) ) ||
00213 ( !cmbConditionTextList->isHidden() && ( cmbConditionTextList->currentIndex() == ID_COMBO_COND_TEXT_REGEXPR || cmbConditionTextList->currentIndex() == ID_COMBO_COND_TEXT_NOT_REGEXPR ) ) )
00214 {
00215 btnOpenRegExpEditor->setHidden( false );
00216
00217
00218 chkCaseSensitive->setHidden( true );
00219 }
00220 else
00221 {
00222 btnOpenRegExpEditor->setHidden( true );
00223 }
00224 }
00225
00226 void FilterCriteriaWidget::slotOpenRegExpCheck( )
00227 {
00228
00229 QPointer<RegexCheckDialog> dlg = new RegexCheckDialog( this );
00230
00231
00232 dlg->setRegex( txtCompValueText->text() );
00233
00234
00235 int result = dlg->exec();
00236
00237
00238 if( result == RegexCheckDialog::Accepted ) {
00239 txtCompValueText->setText( dlg->getRegex() );
00240 }
00241
00242 delete dlg;
00243 }
00244
00245 void FilterCriteriaWidget::setNumCriteria( int source, int condition, uint value )
00246 {
00247
00248 switch( source )
00249 {
00250 case CONFIG_VALUE_FILTER_CRITERIA_SOURCE_SIZE : cmbSource->setCurrentIndex( ID_COMBO_SOURCE_SIZE ); break;
00251 default : kdError() << "FilterCriteriaWidget::setNumCriteria: invalid source parameter." << endl;
00252 return;
00253 }
00254
00255
00256 slotSetWidgets();
00257
00258
00259 switch( condition )
00260 {
00261 case CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_EQUAL : cmbConditionNum->setCurrentIndex( ID_COMBO_COND_NUM_EQUAL ); break;
00262 case CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_NOT_EQUAL : cmbConditionNum->setCurrentIndex( ID_COMBO_COND_NUM_NOT_EQUAL ); break;
00263 case CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_GREATER : cmbConditionNum->setCurrentIndex( ID_COMBO_COND_NUM_GREATER ); break;
00264 case CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_GREATER_EQUAL : cmbConditionNum->setCurrentIndex( ID_COMBO_COND_NUM_GREATER_EQUAL ); break;
00265 case CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_LESS : cmbConditionNum->setCurrentIndex( ID_COMBO_COND_NUM_LESS ); break;
00266 case CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_LESS_EQUAL : cmbConditionNum->setCurrentIndex( ID_COMBO_COND_NUM_LESS_EQUAL ); break;
00267 default : cmbConditionNum->setCurrentIndex( ID_COMBO_COND_NUM_EQUAL ); break;
00268 }
00269
00270
00271 spbCompValueNum->setValue( value );
00272
00273
00274 slotSetWidgets();
00275 }
00276
00277 void FilterCriteriaWidget::setTextCriteria( int source, int condition, QString value, bool cs )
00278 {
00279
00280 switch( source )
00281 {
00282 case CONFIG_VALUE_FILTER_CRITERIA_SOURCE_FROM : cmbSource->setCurrentIndex( ID_COMBO_SOURCE_FROM ); break;
00283 case CONFIG_VALUE_FILTER_CRITERIA_SOURCE_TO : cmbSource->setCurrentIndex( ID_COMBO_SOURCE_TO ); break;
00284 case CONFIG_VALUE_FILTER_CRITERIA_SOURCE_SUBJECT : cmbSource->setCurrentIndex( ID_COMBO_SOURCE_SUBJECT ); break;
00285 case CONFIG_VALUE_FILTER_CRITERIA_SOURCE_ACCOUNT : cmbSource->setCurrentIndex( ID_COMBO_SOURCE_ACCOUNT ); break;
00286 default : kdError() << "FilterCriteriaWidget::setTextCriteria: invalid source parameter." << endl;
00287 return;
00288 }
00289
00290
00291 switch( condition )
00292 {
00293 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_CONTAINS : cmbConditionText->setCurrentIndex( ID_COMBO_COND_TEXT_CONTAINS );break;
00294 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_CONTAINS : cmbConditionText->setCurrentIndex( ID_COMBO_COND_TEXT_NOT_CONTAINS );break;
00295 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_EQUALS : cmbConditionText->setCurrentIndex( ID_COMBO_COND_TEXT_EQUALS );break;
00296 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_EQUALS : cmbConditionText->setCurrentIndex( ID_COMBO_COND_TEXT_NOT_EQUALS );break;
00297 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_REGEXPR : cmbConditionText->setCurrentIndex( ID_COMBO_COND_TEXT_REGEXPR );break;
00298 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_REGEXPR : cmbConditionText->setCurrentIndex( ID_COMBO_COND_TEXT_NOT_REGEXPR );break;
00299 default : cmbConditionText->setCurrentIndex( ID_COMBO_COND_TEXT_CONTAINS ); break;
00300 }
00301
00302
00303 txtCompValueText->setText( value );
00304
00305
00306 chkCaseSensitive->setChecked( cs );
00307
00308
00309 slotSetWidgets();
00310
00311 }
00312
00313 void FilterCriteriaWidget::setTextListCriteria( int source, int condition, QString value, bool cs )
00314 {
00315
00316 switch( source )
00317 {
00318 case CONFIG_VALUE_FILTER_CRITERIA_SOURCE_HEADER : cmbSource->setCurrentIndex( ID_COMBO_SOURCE_HEADER ); break;
00319 default : kdError() << "FilterCriteriaWidget::setTextListCriteria: invalid source parameter." << endl;
00320 return;
00321 }
00322
00323
00324 switch( condition )
00325 {
00326 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_CONTAINS : cmbConditionTextList->setCurrentIndex( ID_COMBO_COND_TEXT_CONTAINS );break;
00327 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_CONTAINS : cmbConditionTextList->setCurrentIndex( ID_COMBO_COND_TEXT_NOT_CONTAINS );break;
00328 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_EQUALS : cmbConditionTextList->setCurrentIndex( ID_COMBO_COND_TEXT_EQUALS );break;
00329 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_EQUALS : cmbConditionTextList->setCurrentIndex( ID_COMBO_COND_TEXT_NOT_EQUALS );break;
00330 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_REGEXPR : cmbConditionTextList->setCurrentIndex( ID_COMBO_COND_TEXT_REGEXPR );break;
00331 case CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_REGEXPR : cmbConditionTextList->setCurrentIndex( ID_COMBO_COND_TEXT_NOT_REGEXPR );break;
00332 default : cmbConditionTextList->setCurrentIndex( ID_COMBO_COND_TEXT_CONTAINS ); break;
00333 }
00334
00335
00336 txtCompValueText->setText( value );
00337
00338
00339 chkCaseSensitive->setChecked( cs );
00340
00341
00342 slotSetWidgets();
00343
00344 }
00345
00346 FilterCriteria_Type FilterCriteriaWidget::getValues()
00347 {
00348 FilterCriteria_Type crit;
00349
00350 switch( cmbSource->currentIndex() )
00351 {
00352 case ID_COMBO_SOURCE_FROM : crit.source = CONFIG_VALUE_FILTER_CRITERIA_SOURCE_FROM; break;
00353 case ID_COMBO_SOURCE_TO : crit.source = CONFIG_VALUE_FILTER_CRITERIA_SOURCE_TO; break;
00354 case ID_COMBO_SOURCE_SIZE : crit.source = CONFIG_VALUE_FILTER_CRITERIA_SOURCE_SIZE; break;
00355 case ID_COMBO_SOURCE_SUBJECT : crit.source = CONFIG_VALUE_FILTER_CRITERIA_SOURCE_SUBJECT; break;
00356 case ID_COMBO_SOURCE_HEADER : crit.source = CONFIG_VALUE_FILTER_CRITERIA_SOURCE_HEADER; break;
00357 case ID_COMBO_SOURCE_ACCOUNT : crit.source = CONFIG_VALUE_FILTER_CRITERIA_SOURCE_ACCOUNT; break;
00358 default : crit.source = 99; break;
00359 }
00360
00361 if( crit.source == CONFIG_VALUE_FILTER_CRITERIA_SOURCE_FROM ||
00362 crit.source == CONFIG_VALUE_FILTER_CRITERIA_SOURCE_TO ||
00363 crit.source == CONFIG_VALUE_FILTER_CRITERIA_SOURCE_SUBJECT ||
00364 crit.source == CONFIG_VALUE_FILTER_CRITERIA_SOURCE_ACCOUNT )
00365 {
00366 switch( cmbConditionText->currentIndex() )
00367 {
00368 case ID_COMBO_COND_TEXT_CONTAINS : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_CONTAINS; break;
00369 case ID_COMBO_COND_TEXT_NOT_CONTAINS : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_CONTAINS; break;
00370 case ID_COMBO_COND_TEXT_EQUALS : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_EQUALS; break;
00371 case ID_COMBO_COND_TEXT_NOT_EQUALS : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_EQUALS; break;
00372 case ID_COMBO_COND_TEXT_REGEXPR : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_REGEXPR; break;
00373 case ID_COMBO_COND_TEXT_NOT_REGEXPR : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_REGEXPR; break;
00374 default : crit.condition = 99; break;
00375 }
00376 } else if( crit.source == CONFIG_VALUE_FILTER_CRITERIA_SOURCE_HEADER )
00377 {
00378 switch( cmbConditionTextList->currentIndex() )
00379 {
00380 case ID_COMBO_COND_TEXT_CONTAINS : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_CONTAINS; break;
00381 case ID_COMBO_COND_TEXT_NOT_CONTAINS : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_CONTAINS; break;
00382 case ID_COMBO_COND_TEXT_EQUALS : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_EQUALS; break;
00383 case ID_COMBO_COND_TEXT_NOT_EQUALS : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_EQUALS; break;
00384 case ID_COMBO_COND_TEXT_REGEXPR : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_REGEXPR; break;
00385 case ID_COMBO_COND_TEXT_NOT_REGEXPR : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_TEXT_NOT_REGEXPR; break;
00386 default : crit.condition = 99; break;
00387 }
00388 } else if ( crit.source == CONFIG_VALUE_FILTER_CRITERIA_SOURCE_SIZE )
00389 {
00390 switch( cmbConditionNum->currentIndex() )
00391 {
00392 case ID_COMBO_COND_NUM_EQUAL : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_EQUAL; break;
00393 case ID_COMBO_COND_NUM_NOT_EQUAL : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_NOT_EQUAL; break;
00394 case ID_COMBO_COND_NUM_GREATER : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_GREATER; break;
00395 case ID_COMBO_COND_NUM_GREATER_EQUAL : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_GREATER_EQUAL; break;
00396 case ID_COMBO_COND_NUM_LESS : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_LESS; break;
00397 case ID_COMBO_COND_NUM_LESS_EQUAL : crit.condition = CONFIG_VALUE_FILTER_CRITERIA_COND_NUM_LESS_EQUAL; break;
00398 default : crit.condition = 99;
00399 }
00400 } else
00401 crit.condition = 99;
00402
00403 crit.txtValue = txtCompValueText->text();
00404 crit.numValue = spbCompValueNum->value();
00405 crit.cs = chkCaseSensitive->isChecked();
00406
00407 return crit;
00408 }
00409
00410
00411 #include "filtercriteriawidget.moc"