summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-06-25 01:34:43 (UTC)
committer zautrix <zautrix>2005-06-25 01:34:43 (UTC)
commitab93fa0a7cd97beada9475f6099bf6083547f0d6 (patch) (unidiff)
treec983cb818528cac200a98585b3451c0371389e52
parentce9c31a057f12a8d6a126a7312e4ecaf3270da50 (diff)
downloadkdepimpi-ab93fa0a7cd97beada9475f6099bf6083547f0d6.zip
kdepimpi-ab93fa0a7cd97beada9475f6099bf6083547f0d6.tar.gz
kdepimpi-ab93fa0a7cd97beada9475f6099bf6083547f0d6.tar.bz2
fixxx
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/searchdialog.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/korganizer/searchdialog.cpp b/korganizer/searchdialog.cpp
index 0713980..2390520 100644
--- a/korganizer/searchdialog.cpp
+++ b/korganizer/searchdialog.cpp
@@ -240,355 +240,361 @@ void SearchDialog::raiseAndSelect()
240} 240}
241void SearchDialog::setFocusToList() 241void SearchDialog::setFocusToList()
242{ 242{
243 listView->resetFocus(); 243 listView->resetFocus();
244} 244}
245void SearchDialog::accept() 245void SearchDialog::accept()
246{ 246{
247 doSearch(); 247 doSearch();
248} 248}
249void SearchDialog::updateList() 249void SearchDialog::updateList()
250{ 250{
251 //listView->updateList(); 251 //listView->updateList();
252 if ( isVisible() ) { 252 if ( isVisible() ) {
253 updateView(); 253 updateView();
254 //qDebug("SearchDialog::updated "); 254 //qDebug("SearchDialog::updated ");
255 } 255 }
256 else { 256 else {
257 listView->clear(); 257 listView->clear();
258 //qDebug("SearchDialog::cleared "); 258 //qDebug("SearchDialog::cleared ");
259 259
260 } 260 }
261} 261}
262void SearchDialog::searchTextChanged( const QString &_text ) 262void SearchDialog::searchTextChanged( const QString &_text )
263{ 263{
264#if 0 264#if 0
265 enableButton( KDialogBase::User1, !_text.isEmpty() ); 265 enableButton( KDialogBase::User1, !_text.isEmpty() );
266#endif 266#endif
267} 267}
268 268
269void SearchDialog::doSearch() 269void SearchDialog::doSearch()
270{ 270{
271 QRegExp re; 271 QRegExp re;
272 272
273 re.setWildcard(true); // most people understand these better. 273 re.setWildcard(true); // most people understand these better.
274 re.setCaseSensitive(false); 274 re.setCaseSensitive(false);
275 QString st = searchEdit->text(); 275 QString st = searchEdit->text();
276 if ( st.right(1) != "*") 276 if ( st.right(1) != "*")
277 st += "*"; 277 st += "*";
278 re.setPattern(st); 278 re.setPattern(st);
279 if (!mSearchEvent->isChecked() && !mSearchTodo->isChecked() && !mSearchJournal->isChecked() ) { 279 if (!mSearchEvent->isChecked() && !mSearchTodo->isChecked() && !mSearchJournal->isChecked() ) {
280 KMessageBox::sorry(this, 280 KMessageBox::sorry(this,
281 i18n("Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals")); 281 i18n("Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals"));
282 return; 282 return;
283 } 283 }
284 if (!re.isValid() ) { 284 if (!re.isValid() ) {
285 KMessageBox::sorry(this, 285 KMessageBox::sorry(this,
286 i18n("Invalid search expression,\ncannot perform " 286 i18n("Invalid search expression,\ncannot perform "
287 "the search.\nPlease enter a search expression\n" 287 "the search.\nPlease enter a search expression\n"
288 "using the wildcard characters\n '*' and '?'" 288 "using the wildcard characters\n '*' and '?'"
289 "where needed.")); 289 "where needed."));
290 return; 290 return;
291 } 291 }
292 search(re); 292 search(re);
293 listView->setStartDate( mStartDate->date() ); 293 listView->setStartDate( mStartDate->date() );
294 listView->showEvents(mMatchedEvents); 294 listView->showEvents(mMatchedEvents);
295 listView->addTodos(mMatchedTodos); 295 listView->addTodos(mMatchedTodos);
296 listView->addJournals(mMatchedJournals); 296 listView->addJournals(mMatchedJournals);
297 if (mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() == 0) { 297 if (mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() == 0) {
298 setCaption(i18n("No items found. Use '*' and '?' where needed.")); 298 setCaption(i18n("No items found. Use '*' and '?' where needed."));
299 } else { 299 } else {
300 QString mess; 300 QString mess;
301 mess = mess.sprintf( i18n("%d item(s) found."), mMatchedEvents.count()+ mMatchedJournals.count() + mMatchedTodos.count() ); 301 mess = mess.sprintf( i18n("%d item(s) found."), mMatchedEvents.count()+ mMatchedJournals.count() + mMatchedTodos.count() );
302 setCaption( i18n("KO/Pi Find: ") + mess); 302 setCaption( i18n("KO/Pi Find: ") + mess);
303 303
304 } 304 }
305 searchEdit->setFocus(); 305 searchEdit->setFocus();
306} 306}
307void SearchDialog::updateConfig() 307void SearchDialog::updateConfig()
308{ 308{
309 listView->updateConfig(); 309 listView->updateConfig();
310} 310}
311void SearchDialog::updateView() 311void SearchDialog::updateView()
312{ 312{
313 //qDebug("SearchDialog::updateView() %d ", isVisible()); 313 //qDebug("SearchDialog::updateView() %d ", isVisible());
314 QRegExp re; 314 QRegExp re;
315 re.setWildcard(true); // most people understand these better. 315 re.setWildcard(true); // most people understand these better.
316 re.setCaseSensitive(false); 316 re.setCaseSensitive(false);
317 QString st = searchEdit->text(); 317 QString st = searchEdit->text();
318 if ( st.right(1) != "*") 318 if ( st.right(1) != "*")
319 st += "*"; 319 st += "*";
320 re.setPattern(st); 320 re.setPattern(st);
321 if (re.isValid()) { 321 if (re.isValid()) {
322 search(re); 322 search(re);
323 } else { 323 } else {
324 mMatchedEvents.clear(); 324 mMatchedEvents.clear();
325 mMatchedTodos.clear(); 325 mMatchedTodos.clear();
326 mMatchedJournals.clear(); 326 mMatchedJournals.clear();
327 } 327 }
328 listView->setStartDate( mStartDate->date() ); 328 listView->setStartDate( mStartDate->date() );
329 listView->showEvents(mMatchedEvents); 329 listView->showEvents(mMatchedEvents);
330 listView->addTodos(mMatchedTodos); 330 listView->addTodos(mMatchedTodos);
331 listView->addJournals(mMatchedJournals); 331 listView->addJournals(mMatchedJournals);
332} 332}
333 333
334void SearchDialog::search(const QRegExp &re) 334void SearchDialog::search(const QRegExp &re)
335{ 335{
336 QPtrList<Event> events = mCalendar->events( mStartDate->date(), 336 QPtrList<Event> events;
337 mEndDate->date(),
338 false /*mInclusiveCheck->isChecked()*/ );
339 if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) { 337 if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) {
340 if ( mRefineItems->isChecked() ) events = mMatchedEvents; 338 if ( mRefineItems->isChecked() ) events = mMatchedEvents;
341 mMatchedEvents.clear(); 339 mMatchedEvents.clear();
342 } 340 }
343 if ( mSearchEvent->isChecked() ) { 341 if ( mSearchEvent->isChecked() ) {
342 if ( !mRefineItems->isChecked() )
343 events = mCalendar->events( mStartDate->date(),
344 mEndDate->date(),
345 false /*mInclusiveCheck->isChecked()*/ );
346
347
344 Event *ev; 348 Event *ev;
345 for(ev=events.first();ev;ev=events.next()) { 349 for(ev=events.first();ev;ev=events.next()) {
346 if (mSummaryCheck->isChecked()) { 350 if (mSummaryCheck->isChecked()) {
347#if QT_VERSION >= 0x030000 351#if QT_VERSION >= 0x030000
348 if (re.search(ev->summary()) != -1) 352 if (re.search(ev->summary()) != -1)
349#else 353#else
350 if (re.match(ev->summary()) != -1) 354 if (re.match(ev->summary()) != -1)
351#endif 355#endif
352 { 356 {
353 if ( mSubItems->isChecked() ) 357 if ( mSubItems->isChecked() )
354 mMatchedEvents.remove(ev); 358 mMatchedEvents.remove(ev);
355 else { 359 else {
356 if ( !mMatchedEvents.contains( ev ) ) 360 if ( !mMatchedEvents.contains( ev ) )
357 mMatchedEvents.append(ev); 361 mMatchedEvents.append(ev);
358 } 362 }
359 continue; 363 continue;
360 } 364 }
361#if QT_VERSION >= 0x030000 365#if QT_VERSION >= 0x030000
362 if (re.search(ev->location()) != -1) 366 if (re.search(ev->location()) != -1)
363#else 367#else
364 if (re.match(ev->location()) != -1) 368 if (re.match(ev->location()) != -1)
365#endif 369#endif
366 { 370 {
367 if ( mSubItems->isChecked() ) 371 if ( mSubItems->isChecked() )
368 mMatchedEvents.remove(ev); 372 mMatchedEvents.remove(ev);
369 else{ 373 else{
370 if ( !mMatchedEvents.contains( ev ) ) 374 if ( !mMatchedEvents.contains( ev ) )
371 mMatchedEvents.append(ev); 375 mMatchedEvents.append(ev);
372 } 376 }
373 continue; 377 continue;
374 } 378 }
375 } 379 }
376 if (mDescriptionCheck->isChecked()) { 380 if (mDescriptionCheck->isChecked()) {
377#if QT_VERSION >= 0x030000 381#if QT_VERSION >= 0x030000
378 if (re.search(ev->description()) != -1) 382 if (re.search(ev->description()) != -1)
379#else 383#else
380 if (re.match(ev->description()) != -1) 384 if (re.match(ev->description()) != -1)
381#endif 385#endif
382 { 386 {
383 if ( mSubItems->isChecked() ) 387 if ( mSubItems->isChecked() )
384 mMatchedEvents.remove(ev); 388 mMatchedEvents.remove(ev);
385 else{ 389 else{
386 if ( !mMatchedEvents.contains( ev ) ) 390 if ( !mMatchedEvents.contains( ev ) )
387 mMatchedEvents.append(ev); 391 mMatchedEvents.append(ev);
388 } 392 }
389 continue; 393 continue;
390 } 394 }
391 } 395 }
392 if (mCategoryCheck->isChecked()) { 396 if (mCategoryCheck->isChecked()) {
393#if QT_VERSION >= 0x030000 397#if QT_VERSION >= 0x030000
394 if (re.search(ev->categoriesStr()) != -1) 398 if (re.search(ev->categoriesStr()) != -1)
395#else 399#else
396 if (re.match(ev->categoriesStr()) != -1) 400 if (re.match(ev->categoriesStr()) != -1)
397#endif 401#endif
398 { 402 {
399 403
400 if ( mSubItems->isChecked() ) 404 if ( mSubItems->isChecked() )
401 mMatchedEvents.remove(ev); 405 mMatchedEvents.remove(ev);
402 else{ 406 else{
403 if ( !mMatchedEvents.contains( ev ) ) 407 if ( !mMatchedEvents.contains( ev ) )
404 mMatchedEvents.append(ev); 408 mMatchedEvents.append(ev);
405 } 409 }
406 continue; 410 continue;
407 } 411 }
408 } 412 }
409 if ( mSearchAName->isChecked() || mSearchAEmail->isChecked() ) { 413 if ( mSearchAName->isChecked() || mSearchAEmail->isChecked() ) {
410 QPtrList<Attendee> tmpAList = ev->attendees(); 414 QPtrList<Attendee> tmpAList = ev->attendees();
411 Attendee *a; 415 Attendee *a;
412 for (a = tmpAList.first(); a; a = tmpAList.next()) { 416 for (a = tmpAList.first(); a; a = tmpAList.next()) {
413 if (mSearchAName->isChecked()) { 417 if (mSearchAName->isChecked()) {
414#if QT_VERSION >= 0x030000 418#if QT_VERSION >= 0x030000
415 if (re.search(a->name()) != -1) 419 if (re.search(a->name()) != -1)
416#else 420#else
417 if (re.match(a->name()) != -1) 421 if (re.match(a->name()) != -1)
418#endif 422#endif
419 { 423 {
420 if ( mSubItems->isChecked() ) 424 if ( mSubItems->isChecked() )
421 mMatchedEvents.remove(ev); 425 mMatchedEvents.remove(ev);
422 else{ 426 else{
423 if ( !mMatchedEvents.contains( ev ) ) 427 if ( !mMatchedEvents.contains( ev ) )
424 mMatchedEvents.append(ev); 428 mMatchedEvents.append(ev);
425 } 429 }
426 break; 430 break;
427 } 431 }
428 } 432 }
429 if (mSearchAEmail->isChecked()) { 433 if (mSearchAEmail->isChecked()) {
430#if QT_VERSION >= 0x030000 434#if QT_VERSION >= 0x030000
431 if (re.search(a->email()) != -1) 435 if (re.search(a->email()) != -1)
432#else 436#else
433 if (re.match(a->email()) != -1) 437 if (re.match(a->email()) != -1)
434#endif 438#endif
435 { 439 {
436 if ( mSubItems->isChecked() ) 440 if ( mSubItems->isChecked() )
437 mMatchedEvents.remove(ev); 441 mMatchedEvents.remove(ev);
438 else{ 442 else{
439 if ( !mMatchedEvents.contains( ev ) ) 443 if ( !mMatchedEvents.contains( ev ) )
440 mMatchedEvents.append(ev); 444 mMatchedEvents.append(ev);
441 } 445 }
442 break; 446 break;
443 } 447 }
444 } 448 }
445 } 449 }
446 } 450 }
447 } 451 }
448 } 452 }
449 QPtrList<Todo> todos = mCalendar->todos( ); 453 QPtrList<Todo> todos;
450 454
451 if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) { 455 if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) {
452 if ( mRefineItems->isChecked() ) todos = mMatchedTodos ; 456 if ( mRefineItems->isChecked() ) todos = mMatchedTodos ;
453 mMatchedTodos.clear(); 457 mMatchedTodos.clear();
454 } 458 }
455 459
456 if ( mSearchTodo->isChecked() ) { 460 if ( mSearchTodo->isChecked() ) {
461 if ( !mRefineItems->isChecked() ) todos = mCalendar->todos( );
457 Todo *tod; 462 Todo *tod;
458 for(tod=todos.first();tod;tod=todos.next()) { 463 for(tod=todos.first();tod;tod=todos.next()) {
459 if (mSummaryCheck->isChecked()) { 464 if (mSummaryCheck->isChecked()) {
460#if QT_VERSION >= 0x030000 465#if QT_VERSION >= 0x030000
461 if (re.search(tod->summary()) != -1) 466 if (re.search(tod->summary()) != -1)
462#else 467#else
463 if (re.match(tod->summary()) != -1) 468 if (re.match(tod->summary()) != -1)
464#endif 469#endif
465 { 470 {
466 if ( mSubItems->isChecked() ) 471 if ( mSubItems->isChecked() )
467 mMatchedTodos.remove(tod); 472 mMatchedTodos.remove(tod);
468 else if (!mMatchedTodos.contains( tod )) 473 else if (!mMatchedTodos.contains( tod ))
469 mMatchedTodos.append(tod); 474 mMatchedTodos.append(tod);
470 continue; 475 continue;
471 } 476 }
472 } 477 }
473 if (mDescriptionCheck->isChecked()) { 478 if (mDescriptionCheck->isChecked()) {
474#if QT_VERSION >= 0x030000 479#if QT_VERSION >= 0x030000
475 if (re.search(tod->description()) != -1) 480 if (re.search(tod->description()) != -1)
476#else 481#else
477 if (re.match(tod->description()) != -1) 482 if (re.match(tod->description()) != -1)
478#endif 483#endif
479 { 484 {
480 if ( mSubItems->isChecked() ) 485 if ( mSubItems->isChecked() )
481 mMatchedTodos.remove(tod); 486 mMatchedTodos.remove(tod);
482 else if (!mMatchedTodos.contains( tod )) 487 else if (!mMatchedTodos.contains( tod ))
483 mMatchedTodos.append(tod); 488 mMatchedTodos.append(tod);
484 continue; 489 continue;
485 } 490 }
486 } 491 }
487 if (mCategoryCheck->isChecked()) { 492 if (mCategoryCheck->isChecked()) {
488#if QT_VERSION >= 0x030000 493#if QT_VERSION >= 0x030000
489 if (re.search(tod->categoriesStr()) != -1) 494 if (re.search(tod->categoriesStr()) != -1)
490#else 495#else
491 if (re.match(tod->categoriesStr()) != -1) 496 if (re.match(tod->categoriesStr()) != -1)
492#endif 497#endif
493 { 498 {
494 if ( mSubItems->isChecked() ) 499 if ( mSubItems->isChecked() )
495 mMatchedTodos.remove(tod); 500 mMatchedTodos.remove(tod);
496 else if (!mMatchedTodos.contains( tod )) 501 else if (!mMatchedTodos.contains( tod ))
497 mMatchedTodos.append(tod); 502 mMatchedTodos.append(tod);
498 continue; 503 continue;
499 } 504 }
500 } 505 }
501 if ( mSearchAName->isChecked() || mSearchAEmail->isChecked() ) { 506 if ( mSearchAName->isChecked() || mSearchAEmail->isChecked() ) {
502 QPtrList<Attendee> tmpAList = tod->attendees(); 507 QPtrList<Attendee> tmpAList = tod->attendees();
503 Attendee *a; 508 Attendee *a;
504 for (a = tmpAList.first(); a; a = tmpAList.next()) { 509 for (a = tmpAList.first(); a; a = tmpAList.next()) {
505 if (mSearchAName->isChecked()) { 510 if (mSearchAName->isChecked()) {
506#if QT_VERSION >= 0x030000 511#if QT_VERSION >= 0x030000
507 if (re.search(a->name()) != -1) 512 if (re.search(a->name()) != -1)
508#else 513#else
509 if (re.match(a->name()) != -1) 514 if (re.match(a->name()) != -1)
510#endif 515#endif
511 { 516 {
512 if ( mSubItems->isChecked() ) 517 if ( mSubItems->isChecked() )
513 mMatchedTodos.remove(tod); 518 mMatchedTodos.remove(tod);
514 else if (!mMatchedTodos.contains( tod )) 519 else if (!mMatchedTodos.contains( tod ))
515 mMatchedTodos.append(tod); 520 mMatchedTodos.append(tod);
516 break; 521 break;
517 } 522 }
518 } 523 }
519 if (mSearchAEmail->isChecked()) { 524 if (mSearchAEmail->isChecked()) {
520#if QT_VERSION >= 0x030000 525#if QT_VERSION >= 0x030000
521 if (re.search(a->email()) != -1) 526 if (re.search(a->email()) != -1)
522#else 527#else
523 if (re.match(a->email()) != -1) 528 if (re.match(a->email()) != -1)
524#endif 529#endif
525 { 530 {
526 if ( mSubItems->isChecked() ) 531 if ( mSubItems->isChecked() )
527 mMatchedTodos.remove(tod); 532 mMatchedTodos.remove(tod);
528 else if (!mMatchedTodos.contains( tod )) 533 else if (!mMatchedTodos.contains( tod ))
529 mMatchedTodos.append(tod); 534 mMatchedTodos.append(tod);
530 break; 535 break;
531 } 536 }
532 } 537 }
533 } 538 }
534 } 539 }
535 } 540 }
536 } 541 }
537 542
538 QPtrList<Journal> journals = mCalendar->journals( ); 543 QPtrList<Journal> journals;
539 if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) { 544 if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) {
540 if ( mRefineItems->isChecked() ) journals = mMatchedJournals ; 545 if ( mRefineItems->isChecked() ) journals = mMatchedJournals ;
541 mMatchedJournals.clear(); 546 mMatchedJournals.clear();
542 } 547 }
543 if (mSearchJournal->isChecked() ) { 548 if (mSearchJournal->isChecked() ) {
549 if ( ! mRefineItems->isChecked() ) journals = mCalendar->journals();
544 Journal* journ; 550 Journal* journ;
545 551
546 for(journ=journals.first();journ;journ=journals.next()) { 552 for(journ=journals.first();journ;journ=journals.next()) {
547 if ( journ->dtStart().date() <= mEndDate->date() 553 if ( journ->dtStart().date() <= mEndDate->date()
548 &&journ->dtStart().date() >= mStartDate->date()) { 554 &&journ->dtStart().date() >= mStartDate->date()) {
549#if QT_VERSION >= 0x030000 555#if QT_VERSION >= 0x030000
550 if (re.search(journ->description()) != -1) 556 if (re.search(journ->description()) != -1)
551#else 557#else
552 if (re.match(journ->description()) != -1) 558 if (re.match(journ->description()) != -1)
553#endif 559#endif
554 { 560 {
555 if ( mSubItems->isChecked() ) 561 if ( mSubItems->isChecked() )
556 mMatchedJournals.remove(journ); 562 mMatchedJournals.remove(journ);
557 else if (!mMatchedJournals.contains( journ )) 563 else if (!mMatchedJournals.contains( journ ))
558 mMatchedJournals.append(journ); 564 mMatchedJournals.append(journ);
559 continue; 565 continue;
560 } 566 }
561 } 567 }
562 } 568 }
563 } 569 }
564 if ( mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() < 1 ) { 570 if ( mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() < 1 ) {
565 qDebug("count %d ", mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() ); 571 qDebug("count %d ", mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() );
566 if ( mRefineItems->isChecked() ) 572 if ( mRefineItems->isChecked() )
567 mRefineItems->setChecked( false ); 573 mRefineItems->setChecked( false );
568 else if ( mSubItems->isChecked() ) 574 else if ( mSubItems->isChecked() )
569 mSubItems->setChecked( false ); 575 mSubItems->setChecked( false );
570 } 576 }
571} 577}
572 578
573void SearchDialog::keyPressEvent ( QKeyEvent *e) 579void SearchDialog::keyPressEvent ( QKeyEvent *e)
574{ 580{
575 switch ( e->key() ) { 581 switch ( e->key() ) {
576 case Qt::Key_Escape: 582 case Qt::Key_Escape:
577 close(); 583 close();
578 break; 584 break;
579 case Qt::Key_F: 585 case Qt::Key_F:
580 if ( e->state() == Qt::ControlButton ) { 586 if ( e->state() == Qt::ControlButton ) {
581 587
582 } 588 }
583 break; 589 break;
584 case Qt::Key_Return: 590 case Qt::Key_Return:
585 case Qt::Key_Enter: 591 case Qt::Key_Enter:
586 doSearch(); 592 doSearch();
587 break; 593 break;
588 594
589 default: 595 default:
590 e->ignore(); 596 e->ignore();
591 } 597 }
592} 598}
593 599
594//mMatchedJournals; 600//mMatchedJournals;