summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/searchdialog.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/korganizer/searchdialog.cpp b/korganizer/searchdialog.cpp
index 2390520..0e9f64c 100644
--- a/korganizer/searchdialog.cpp
+++ b/korganizer/searchdialog.cpp
@@ -176,247 +176,245 @@ void SearchDialog::slot_sub( bool b)
176} 176}
177void SearchDialog::slot_refine( bool b) 177void SearchDialog::slot_refine( bool b)
178{ 178{
179 if ( b ) { 179 if ( b ) {
180 if ( mSubItems->isOn() ) mSubItems->toggle(); 180 if ( mSubItems->isOn() ) mSubItems->toggle();
181 if ( mAddItems->isOn() ) mAddItems->toggle(); 181 if ( mAddItems->isOn() ) mAddItems->toggle();
182 setCaption( i18n("Search on displayed list only")); 182 setCaption( i18n("Search on displayed list only"));
183 } else 183 } else
184 setCaption( i18n("List will be cleared before search")); 184 setCaption( i18n("List will be cleared before search"));
185} 185}
186void SearchDialog::toggleCheckboxes() 186void SearchDialog::toggleCheckboxes()
187{ 187{
188 if ( incidenceGroup->isVisible() ) { 188 if ( incidenceGroup->isVisible() ) {
189 incidenceGroup->hide() ; 189 incidenceGroup->hide() ;
190 subjectGroup->hide() ; 190 subjectGroup->hide() ;
191 attendeeGroup->hide() ; 191 attendeeGroup->hide() ;
192 } else { 192 } else {
193 incidenceGroup->show() ; 193 incidenceGroup->show() ;
194 subjectGroup->show() ; 194 subjectGroup->show() ;
195 attendeeGroup->show() ; 195 attendeeGroup->show() ;
196 } 196 }
197} 197}
198void SearchDialog::raiseAndSelect() 198void SearchDialog::raiseAndSelect()
199{ 199{
200 200
201 static int currentState = 0; 201 static int currentState = 0;
202 202
203 if ( !mSearchJournal->isChecked() && !mSearchTodo->isChecked() && !mSearchEvent->isChecked() ) 203 if ( !mSearchJournal->isChecked() && !mSearchTodo->isChecked() && !mSearchEvent->isChecked() )
204 currentState = 0; 204 currentState = 0;
205 int newState = 0; 205 int newState = 0;
206 if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) { 206 if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) {
207 newState = VIEW_J_VIEW; 207 newState = VIEW_J_VIEW;
208 } 208 }
209 else if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) { 209 else if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) {
210 newState = VIEW_T_VIEW; 210 newState = VIEW_T_VIEW;
211 } 211 }
212 else { 212 else {
213 newState = VIEW_A_VIEW; 213 newState = VIEW_A_VIEW;
214 } 214 }
215 if ( newState != currentState ) { 215 if ( newState != currentState ) {
216 if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) { 216 if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) {
217 if ( ! mSearchJournal->isChecked() ) { 217 if ( ! mSearchJournal->isChecked() ) {
218 mSearchJournal->setChecked( true ); 218 mSearchJournal->setChecked( true );
219 mSearchTodo->setChecked( false ); 219 mSearchTodo->setChecked( false );
220 mSearchEvent->setChecked( false ); 220 mSearchEvent->setChecked( false );
221 } 221 }
222 } 222 }
223 else if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) { 223 else if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) {
224 if ( ! mSearchTodo->isChecked() ) { 224 if ( ! mSearchTodo->isChecked() ) {
225 mSearchTodo->setChecked( true ); 225 mSearchTodo->setChecked( true );
226 mSearchJournal->setChecked( false ); 226 mSearchJournal->setChecked( false );
227 mSearchEvent->setChecked( false ); 227 mSearchEvent->setChecked( false );
228 } 228 }
229 } 229 }
230 else { 230 else {
231 if ( ! mSearchEvent->isChecked() ) { 231 if ( ! mSearchEvent->isChecked() ) {
232 mSearchEvent->setChecked( true ); 232 mSearchEvent->setChecked( true );
233 mSearchJournal->setChecked( false ); 233 mSearchJournal->setChecked( false );
234 mSearchTodo->setChecked( false ); 234 mSearchTodo->setChecked( false );
235 } 235 }
236 } 236 }
237 } 237 }
238 currentState = newState; 238 currentState = newState;
239 raise(); 239 raise();
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
273 re.setWildcard(true); // most people understand these better. 272 re.setWildcard(true); // most people understand these better.
274 re.setCaseSensitive(false); 273 re.setCaseSensitive(false);
275 QString st = searchEdit->text(); 274 QString st = searchEdit->text();
276 if ( st.right(1) != "*") 275 if ( st.right(1) != "*")
277 st += "*"; 276 st += "*";
278 re.setPattern(st); 277 re.setPattern(st);
279 if (!mSearchEvent->isChecked() && !mSearchTodo->isChecked() && !mSearchJournal->isChecked() ) { 278 if (!mSearchEvent->isChecked() && !mSearchTodo->isChecked() && !mSearchJournal->isChecked() ) {
280 KMessageBox::sorry(this, 279 KMessageBox::sorry(this,
281 i18n("Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals")); 280 i18n("Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals"));
282 return; 281 return;
283 } 282 }
284 if (!re.isValid() ) { 283 if (!re.isValid() ) {
285 KMessageBox::sorry(this, 284 KMessageBox::sorry(this,
286 i18n("Invalid search expression,\ncannot perform " 285 i18n("Invalid search expression,\ncannot perform "
287 "the search.\nPlease enter a search expression\n" 286 "the search.\nPlease enter a search expression\n"
288 "using the wildcard characters\n '*' and '?'" 287 "using the wildcard characters\n '*' and '?'"
289 "where needed.")); 288 "where needed."));
290 return; 289 return;
291 } 290 }
292 search(re); 291 search(re);
293 listView->setStartDate( mStartDate->date() ); 292 listView->setStartDate( mStartDate->date() );
294 listView->showEvents(mMatchedEvents); 293 listView->showEvents(mMatchedEvents);
295 listView->addTodos(mMatchedTodos); 294 listView->addTodos(mMatchedTodos);
296 listView->addJournals(mMatchedJournals); 295 listView->addJournals(mMatchedJournals);
297 if (mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() == 0) { 296 if (mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() == 0) {
298 setCaption(i18n("No items found. Use '*' and '?' where needed.")); 297 setCaption(i18n("No items found. Use '*' and '?' where needed."));
299 } else { 298 } else {
300 QString mess; 299 QString mess;
301 mess = mess.sprintf( i18n("%d item(s) found."), mMatchedEvents.count()+ mMatchedJournals.count() + mMatchedTodos.count() ); 300 mess = mess.sprintf( i18n("%d item(s) found."), mMatchedEvents.count()+ mMatchedJournals.count() + mMatchedTodos.count() );
302 setCaption( i18n("KO/Pi Find: ") + mess); 301 setCaption( i18n("KO/Pi Find: ") + mess);
303 302
304 } 303 }
305 searchEdit->setFocus(); 304 searchEdit->setFocus();
306} 305}
307void SearchDialog::updateConfig() 306void SearchDialog::updateConfig()
308{ 307{
309 listView->updateConfig(); 308 listView->updateConfig();
310} 309}
311void SearchDialog::updateView() 310void SearchDialog::updateView()
312{ 311{
313 //qDebug("SearchDialog::updateView() %d ", isVisible()); 312 //qDebug("SearchDialog::updateView() %d ", isVisible());
314 QRegExp re; 313 QRegExp re;
315 re.setWildcard(true); // most people understand these better. 314 re.setWildcard(true); // most people understand these better.
316 re.setCaseSensitive(false); 315 re.setCaseSensitive(false);
317 QString st = searchEdit->text(); 316 QString st = searchEdit->text();
318 if ( st.right(1) != "*") 317 if ( st.right(1) != "*")
319 st += "*"; 318 st += "*";
320 re.setPattern(st); 319 re.setPattern(st);
320 mMatchedEvents.clear();
321 mMatchedTodos.clear();
322 mMatchedJournals.clear();
321 if (re.isValid()) { 323 if (re.isValid()) {
322 search(re); 324 search(re);
323 } else {
324 mMatchedEvents.clear();
325 mMatchedTodos.clear();
326 mMatchedJournals.clear();
327 } 325 }
328 listView->setStartDate( mStartDate->date() ); 326 listView->setStartDate( mStartDate->date() );
329 listView->showEvents(mMatchedEvents); 327 listView->showEvents(mMatchedEvents);
330 listView->addTodos(mMatchedTodos); 328 listView->addTodos(mMatchedTodos);
331 listView->addJournals(mMatchedJournals); 329 listView->addJournals(mMatchedJournals);
332} 330}
333 331
334void SearchDialog::search(const QRegExp &re) 332void SearchDialog::search(const QRegExp &re)
335{ 333{
336 QPtrList<Event> events; 334 QPtrList<Event> events;
337 if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) { 335 if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) {
338 if ( mRefineItems->isChecked() ) events = mMatchedEvents; 336 if ( mRefineItems->isChecked() ) events = mMatchedEvents;
339 mMatchedEvents.clear(); 337 mMatchedEvents.clear();
340 } 338 }
341 if ( mSearchEvent->isChecked() ) { 339 if ( mSearchEvent->isChecked() ) {
342 if ( !mRefineItems->isChecked() ) 340 if ( !mRefineItems->isChecked() )
343 events = mCalendar->events( mStartDate->date(), 341 events = mCalendar->events( mStartDate->date(),
344 mEndDate->date(), 342 mEndDate->date(),
345 false /*mInclusiveCheck->isChecked()*/ ); 343 false /*mInclusiveCheck->isChecked()*/ );
346 344
347 345
348 Event *ev; 346 Event *ev;
349 for(ev=events.first();ev;ev=events.next()) { 347 for(ev=events.first();ev;ev=events.next()) {
350 if (mSummaryCheck->isChecked()) { 348 if (mSummaryCheck->isChecked()) {
351#if QT_VERSION >= 0x030000 349#if QT_VERSION >= 0x030000
352 if (re.search(ev->summary()) != -1) 350 if (re.search(ev->summary()) != -1)
353#else 351#else
354 if (re.match(ev->summary()) != -1) 352 if (re.match(ev->summary()) != -1)
355#endif 353#endif
356 { 354 {
357 if ( mSubItems->isChecked() ) 355 if ( mSubItems->isChecked() )
358 mMatchedEvents.remove(ev); 356 mMatchedEvents.remove(ev);
359 else { 357 else {
360 if ( !mMatchedEvents.contains( ev ) ) 358 if ( !mMatchedEvents.contains( ev ) )
361 mMatchedEvents.append(ev); 359 mMatchedEvents.append(ev);
362 } 360 }
363 continue; 361 continue;
364 } 362 }
365#if QT_VERSION >= 0x030000 363#if QT_VERSION >= 0x030000
366 if (re.search(ev->location()) != -1) 364 if (re.search(ev->location()) != -1)
367#else 365#else
368 if (re.match(ev->location()) != -1) 366 if (re.match(ev->location()) != -1)
369#endif 367#endif
370 { 368 {
371 if ( mSubItems->isChecked() ) 369 if ( mSubItems->isChecked() )
372 mMatchedEvents.remove(ev); 370 mMatchedEvents.remove(ev);
373 else{ 371 else{
374 if ( !mMatchedEvents.contains( ev ) ) 372 if ( !mMatchedEvents.contains( ev ) )
375 mMatchedEvents.append(ev); 373 mMatchedEvents.append(ev);
376 } 374 }
377 continue; 375 continue;
378 } 376 }
379 } 377 }
380 if (mDescriptionCheck->isChecked()) { 378 if (mDescriptionCheck->isChecked()) {
381#if QT_VERSION >= 0x030000 379#if QT_VERSION >= 0x030000
382 if (re.search(ev->description()) != -1) 380 if (re.search(ev->description()) != -1)
383#else 381#else
384 if (re.match(ev->description()) != -1) 382 if (re.match(ev->description()) != -1)
385#endif 383#endif
386 { 384 {
387 if ( mSubItems->isChecked() ) 385 if ( mSubItems->isChecked() )
388 mMatchedEvents.remove(ev); 386 mMatchedEvents.remove(ev);
389 else{ 387 else{
390 if ( !mMatchedEvents.contains( ev ) ) 388 if ( !mMatchedEvents.contains( ev ) )
391 mMatchedEvents.append(ev); 389 mMatchedEvents.append(ev);
392 } 390 }
393 continue; 391 continue;
394 } 392 }
395 } 393 }
396 if (mCategoryCheck->isChecked()) { 394 if (mCategoryCheck->isChecked()) {
397#if QT_VERSION >= 0x030000 395#if QT_VERSION >= 0x030000
398 if (re.search(ev->categoriesStr()) != -1) 396 if (re.search(ev->categoriesStr()) != -1)
399#else 397#else
400 if (re.match(ev->categoriesStr()) != -1) 398 if (re.match(ev->categoriesStr()) != -1)
401#endif 399#endif
402 { 400 {
403 401
404 if ( mSubItems->isChecked() ) 402 if ( mSubItems->isChecked() )
405 mMatchedEvents.remove(ev); 403 mMatchedEvents.remove(ev);
406 else{ 404 else{
407 if ( !mMatchedEvents.contains( ev ) ) 405 if ( !mMatchedEvents.contains( ev ) )
408 mMatchedEvents.append(ev); 406 mMatchedEvents.append(ev);
409 } 407 }
410 continue; 408 continue;
411 } 409 }
412 } 410 }
413 if ( mSearchAName->isChecked() || mSearchAEmail->isChecked() ) { 411 if ( mSearchAName->isChecked() || mSearchAEmail->isChecked() ) {
414 QPtrList<Attendee> tmpAList = ev->attendees(); 412 QPtrList<Attendee> tmpAList = ev->attendees();
415 Attendee *a; 413 Attendee *a;
416 for (a = tmpAList.first(); a; a = tmpAList.next()) { 414 for (a = tmpAList.first(); a; a = tmpAList.next()) {
417 if (mSearchAName->isChecked()) { 415 if (mSearchAName->isChecked()) {
418#if QT_VERSION >= 0x030000 416#if QT_VERSION >= 0x030000
419 if (re.search(a->name()) != -1) 417 if (re.search(a->name()) != -1)
420#else 418#else
421 if (re.match(a->name()) != -1) 419 if (re.match(a->name()) != -1)
422#endif 420#endif