summaryrefslogtreecommitdiffabout
path: root/korganizer
authorzautrix <zautrix>2005-06-16 19:28:39 (UTC)
committer zautrix <zautrix>2005-06-16 19:28:39 (UTC)
commitb297e71bd6276ee9370917cb6765d73db7b61de9 (patch) (unidiff)
tree74240a9792ad8807b8838b43f89d0303db585538 /korganizer
parentbe2913be979c0d7c41e8a8721b552d14cb7ecd39 (diff)
downloadkdepimpi-b297e71bd6276ee9370917cb6765d73db7b61de9.zip
kdepimpi-b297e71bd6276ee9370917cb6765d73db7b61de9.tar.gz
kdepimpi-b297e71bd6276ee9370917cb6765d73db7b61de9.tar.bz2
search fixes
Diffstat (limited to 'korganizer') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/searchdialog.cpp111
-rw-r--r--korganizer/searchdialog.h7
2 files changed, 110 insertions, 8 deletions
diff --git a/korganizer/searchdialog.cpp b/korganizer/searchdialog.cpp
index 7b3b543..bba49f0 100644
--- a/korganizer/searchdialog.cpp
+++ b/korganizer/searchdialog.cpp
@@ -32,3 +32,3 @@
32#include <qpushbutton.h> 32#include <qpushbutton.h>
33 33#include <qhbuttongroup.h>
34#include <klocale.h> 34#include <klocale.h>
@@ -69,4 +69,17 @@ SearchDialog::SearchDialog(Calendar *calendar,CalendarView *parent)
69 69
70 mAddItems = new QCheckBox(i18n("Add items"),topFrame); 70 mAddItems = new QRadioButton( "+ ", topFrame );
71 mSubItems = new QRadioButton( "- ", topFrame );
72 mRefineItems = new QRadioButton( "< ", topFrame );
71 subLayout->addWidget(mAddItems); 73 subLayout->addWidget(mAddItems);
74 subLayout->addWidget( mSubItems );
75 subLayout->addWidget( mRefineItems );
76 QFont fo ( mAddItems->font() );
77 fo.setBold( true );
78 fo.setPointSize( fo.pointSize() + 2 );
79 mAddItems->setFont( fo );
80 mSubItems->setFont( fo );
81 mRefineItems->setFont( fo );
82 connect( mAddItems , SIGNAL( toggled ( bool ) ),this,SLOT(slot_add( bool )));
83 connect( mSubItems , SIGNAL( toggled ( bool ) ),this,SLOT(slot_sub( bool )));
84 connect( mRefineItems , SIGNAL( toggled ( bool ) ),this,SLOT(slot_refine( bool )));
72 85
@@ -77,2 +90,3 @@ SearchDialog::SearchDialog(Calendar *calendar,CalendarView *parent)
77 togButton->setMinimumWidth( togButton->sizeHint().height() ); 90 togButton->setMinimumWidth( togButton->sizeHint().height() );
91
78 searchEdit->setText("*"); // Find all events by default 92 searchEdit->setText("*"); // Find all events by default
@@ -143,2 +157,29 @@ SearchDialog::~SearchDialog()
143} 157}
158void SearchDialog::slot_add( bool b )
159{
160 if ( b ) {
161 if ( mSubItems->isOn() ) mSubItems->toggle();
162 if ( mRefineItems->isOn() ) mRefineItems->toggle();
163 setCaption( i18n("Matching items will be added to list"));
164 } else
165 setCaption( i18n("List will be cleared before search"));
166}
167void SearchDialog::slot_sub( bool b)
168{
169 if ( b ) {
170 if ( mRefineItems->isOn() ) mRefineItems->toggle();
171 if ( mAddItems->isOn() ) mAddItems->toggle();
172 setCaption( i18n("Matching items will be removed from list"));
173 } else
174 setCaption( i18n("List will be cleared before search"));
175}
176void SearchDialog::slot_refine( bool b)
177{
178 if ( b ) {
179 if ( mSubItems->isOn() ) mSubItems->toggle();
180 if ( mAddItems->isOn() ) mAddItems->toggle();
181 setCaption( i18n("Search on displayed list only"));
182 } else
183 setCaption( i18n("List will be cleared before search"));
184}
144void SearchDialog::toggleCheckboxes() 185void SearchDialog::toggleCheckboxes()
@@ -296,4 +337,6 @@ void SearchDialog::search(const QRegExp &re)
296 false /*mInclusiveCheck->isChecked()*/ ); 337 false /*mInclusiveCheck->isChecked()*/ );
297 if ( !mAddItems->isChecked() ) 338 if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) {
339 if ( mRefineItems->isChecked() ) events = mMatchedEvents;
298 mMatchedEvents.clear(); 340 mMatchedEvents.clear();
341 }
299 if ( mSearchEvent->isChecked() ) { 342 if ( mSearchEvent->isChecked() ) {
@@ -308,3 +351,8 @@ void SearchDialog::search(const QRegExp &re)
308 { 351 {
352 if ( mSubItems->isChecked() )
353 mMatchedEvents.remove(ev);
354 else {
355 if ( !mMatchedEvents.contains( ev ) )
309 mMatchedEvents.append(ev); 356 mMatchedEvents.append(ev);
357 }
310 continue; 358 continue;
@@ -317,3 +365,8 @@ void SearchDialog::search(const QRegExp &re)
317 { 365 {
366 if ( mSubItems->isChecked() )
367 mMatchedEvents.remove(ev);
368 else{
369 if ( !mMatchedEvents.contains( ev ) )
318 mMatchedEvents.append(ev); 370 mMatchedEvents.append(ev);
371 }
319 continue; 372 continue;
@@ -328,3 +381,8 @@ void SearchDialog::search(const QRegExp &re)
328 { 381 {
382 if ( mSubItems->isChecked() )
383 mMatchedEvents.remove(ev);
384 else{
385 if ( !mMatchedEvents.contains( ev ) )
329 mMatchedEvents.append(ev); 386 mMatchedEvents.append(ev);
387 }
330 continue; 388 continue;
@@ -339,3 +397,9 @@ void SearchDialog::search(const QRegExp &re)
339 { 397 {
398
399 if ( mSubItems->isChecked() )
400 mMatchedEvents.remove(ev);
401 else{
402 if ( !mMatchedEvents.contains( ev ) )
340 mMatchedEvents.append(ev); 403 mMatchedEvents.append(ev);
404 }
341 continue; 405 continue;
@@ -354,3 +418,8 @@ void SearchDialog::search(const QRegExp &re)
354 { 418 {
419 if ( mSubItems->isChecked() )
420 mMatchedEvents.remove(ev);
421 else{
422 if ( !mMatchedEvents.contains( ev ) )
355 mMatchedEvents.append(ev); 423 mMatchedEvents.append(ev);
424 }
356 break; 425 break;
@@ -365,3 +434,8 @@ void SearchDialog::search(const QRegExp &re)
365 { 434 {
435 if ( mSubItems->isChecked() )
436 mMatchedEvents.remove(ev);
437 else{
438 if ( !mMatchedEvents.contains( ev ) )
366 mMatchedEvents.append(ev); 439 mMatchedEvents.append(ev);
440 }
367 break; 441 break;
@@ -374,4 +448,8 @@ void SearchDialog::search(const QRegExp &re)
374 QPtrList<Todo> todos = mCalendar->todos( ); 448 QPtrList<Todo> todos = mCalendar->todos( );
375 if ( !mAddItems->isChecked() ) 449
450 if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) {
451 if ( mRefineItems->isChecked() ) todos = mMatchedTodos ;
376 mMatchedTodos.clear(); 452 mMatchedTodos.clear();
453 }
454
377 if ( mSearchTodo->isChecked() ) { 455 if ( mSearchTodo->isChecked() ) {
@@ -386,2 +464,5 @@ void SearchDialog::search(const QRegExp &re)
386 { 464 {
465 if ( mSubItems->isChecked() )
466 mMatchedTodos.remove(tod);
467 else if (!mMatchedTodos.contains( tod ))
387 mMatchedTodos.append(tod); 468 mMatchedTodos.append(tod);
@@ -397,2 +478,5 @@ void SearchDialog::search(const QRegExp &re)
397 { 478 {
479 if ( mSubItems->isChecked() )
480 mMatchedTodos.remove(tod);
481 else if (!mMatchedTodos.contains( tod ))
398 mMatchedTodos.append(tod); 482 mMatchedTodos.append(tod);
@@ -408,2 +492,5 @@ void SearchDialog::search(const QRegExp &re)
408 { 492 {
493 if ( mSubItems->isChecked() )
494 mMatchedTodos.remove(tod);
495 else if (!mMatchedTodos.contains( tod ))
409 mMatchedTodos.append(tod); 496 mMatchedTodos.append(tod);
@@ -423,2 +510,5 @@ void SearchDialog::search(const QRegExp &re)
423 { 510 {
511 if ( mSubItems->isChecked() )
512 mMatchedTodos.remove(tod);
513 else if (!mMatchedTodos.contains( tod ))
424 mMatchedTodos.append(tod); 514 mMatchedTodos.append(tod);
@@ -434,2 +524,5 @@ void SearchDialog::search(const QRegExp &re)
434 { 524 {
525 if ( mSubItems->isChecked() )
526 mMatchedTodos.remove(tod);
527 else if (!mMatchedTodos.contains( tod ))
435 mMatchedTodos.append(tod); 528 mMatchedTodos.append(tod);
@@ -442,6 +535,9 @@ void SearchDialog::search(const QRegExp &re)
442 } 535 }
443 if ( !mAddItems->isChecked() ) 536
537 QPtrList<Journal> journals = mCalendar->journals( );
538 if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) {
539 if ( mRefineItems->isChecked() ) journals = mMatchedJournals ;
444 mMatchedJournals.clear(); 540 mMatchedJournals.clear();
541 }
445 if (mSearchJournal->isChecked() ) { 542 if (mSearchJournal->isChecked() ) {
446 QPtrList<Journal> journals = mCalendar->journals( );
447 Journal* journ; 543 Journal* journ;
@@ -457,2 +553,5 @@ void SearchDialog::search(const QRegExp &re)
457 { 553 {
554 if ( mSubItems->isChecked() )
555 mMatchedJournals.remove(journ);
556 else if (!mMatchedJournals.contains( journ ))
458 mMatchedJournals.append(journ); 557 mMatchedJournals.append(journ);
diff --git a/korganizer/searchdialog.h b/korganizer/searchdialog.h
index b345b98..945ff65 100644
--- a/korganizer/searchdialog.h
+++ b/korganizer/searchdialog.h
@@ -27,3 +27,3 @@
27#include <qregexp.h> 27#include <qregexp.h>
28 28#include <qradiobutton.h>
29#include <kdialogbase.h> 29#include <kdialogbase.h>
@@ -63,2 +63,5 @@ class SearchDialog : public QVBox
63 void toggleCheckboxes(); 63 void toggleCheckboxes();
64 void slot_add( bool );
65 void slot_sub( bool );
66 void slot_refine( bool );
64 67
@@ -94,3 +97,3 @@ class SearchDialog : public QVBox
94 QCheckBox *mSearchAEmail; 97 QCheckBox *mSearchAEmail;
95 QCheckBox *mAddItems; 98 QRadioButton *mAddItems, *mSubItems, *mRefineItems;
96 void keyPressEvent ( QKeyEvent *e) ; 99 void keyPressEvent ( QKeyEvent *e) ;