summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--korganizer/calendarview.cpp14
-rw-r--r--korganizer/kolistview.cpp4
-rw-r--r--korganizer/koprefs.cpp1
-rw-r--r--korganizer/koprefs.h1
-rw-r--r--korganizer/searchdialog.cpp4
5 files changed, 23 insertions, 1 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 4b3f806..558fc55 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -2574,192 +2574,201 @@ void CalendarView::updateConfig()
2574 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 2574 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
2575 // To make the "fill window" configurations work 2575 // To make the "fill window" configurations work
2576 //mViewManager->raiseCurrentView(); 2576 //mViewManager->raiseCurrentView();
2577} 2577}
2578 2578
2579 2579
2580void CalendarView::eventChanged(Event *event) 2580void CalendarView::eventChanged(Event *event)
2581{ 2581{
2582 changeEventDisplay(event,KOGlobals::EVENTEDITED); 2582 changeEventDisplay(event,KOGlobals::EVENTEDITED);
2583 //updateUnmanagedViews(); 2583 //updateUnmanagedViews();
2584} 2584}
2585 2585
2586void CalendarView::eventAdded(Event *event) 2586void CalendarView::eventAdded(Event *event)
2587{ 2587{
2588 changeEventDisplay(event,KOGlobals::EVENTADDED); 2588 changeEventDisplay(event,KOGlobals::EVENTADDED);
2589} 2589}
2590 2590
2591void CalendarView::eventToBeDeleted(Event *) 2591void CalendarView::eventToBeDeleted(Event *)
2592{ 2592{
2593 kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl; 2593 kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl;
2594} 2594}
2595 2595
2596void CalendarView::eventDeleted() 2596void CalendarView::eventDeleted()
2597{ 2597{
2598 changeEventDisplay(0,KOGlobals::EVENTDELETED); 2598 changeEventDisplay(0,KOGlobals::EVENTDELETED);
2599} 2599}
2600void CalendarView::changeTodoDisplay(Todo *which, int action) 2600void CalendarView::changeTodoDisplay(Todo *which, int action)
2601{ 2601{
2602 changeIncidenceDisplay((Incidence *)which, action); 2602 changeIncidenceDisplay((Incidence *)which, action);
2603 mDateNavigator->updateView(); //LR 2603 mDateNavigator->updateView(); //LR
2604 //mDialogManager->updateSearchDialog(); 2604 //mDialogManager->updateSearchDialog();
2605 2605
2606 if (which) { 2606 if (which) {
2607 mViewManager->updateWNview(); 2607 mViewManager->updateWNview();
2608 //mTodoList->updateView(); 2608 //mTodoList->updateView();
2609 } 2609 }
2610 2610
2611} 2611}
2612 2612
2613void CalendarView::changeIncidenceDisplay(Incidence *which, int action) 2613void CalendarView::changeIncidenceDisplay(Incidence *which, int action)
2614{ 2614{
2615 updateUnmanagedViews(); 2615 updateUnmanagedViews();
2616 //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action ); 2616 //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action );
2617 if ( action == KOGlobals::EVENTDELETED ) { //delete 2617 if ( action == KOGlobals::EVENTDELETED ) { //delete
2618 mCalendar->checkAlarmForIncidence( 0, true ); 2618 mCalendar->checkAlarmForIncidence( 0, true );
2619 if ( mEventViewerDialog ) 2619 if ( mEventViewerDialog )
2620 mEventViewerDialog->hide(); 2620 mEventViewerDialog->hide();
2621 } 2621 }
2622 else 2622 else
2623 mCalendar->checkAlarmForIncidence( which , false ); 2623 mCalendar->checkAlarmForIncidence( which , false );
2624} 2624}
2625 2625
2626// most of the changeEventDisplays() right now just call the view's 2626// most of the changeEventDisplays() right now just call the view's
2627// total update mode, but they SHOULD be recoded to be more refresh-efficient. 2627// total update mode, but they SHOULD be recoded to be more refresh-efficient.
2628void CalendarView::changeEventDisplay(Event *which, int action) 2628void CalendarView::changeEventDisplay(Event *which, int action)
2629{ 2629{
2630 // kdDebug() << "CalendarView::changeEventDisplay" << endl; 2630 // kdDebug() << "CalendarView::changeEventDisplay" << endl;
2631 changeIncidenceDisplay((Incidence *)which, action); 2631 changeIncidenceDisplay((Incidence *)which, action);
2632 mDateNavigator->updateView(); 2632 mDateNavigator->updateView();
2633 //mDialogManager->updateSearchDialog(); 2633 //mDialogManager->updateSearchDialog();
2634 2634
2635 if (which) { 2635 if (which) {
2636 // If there is an event view visible update the display 2636 // If there is an event view visible update the display
2637 mViewManager->currentView()->changeEventDisplay(which,action); 2637 mViewManager->currentView()->changeEventDisplay(which,action);
2638 // TODO: check, if update needed 2638 // TODO: check, if update needed
2639 // if (which->getTodoStatus()) { 2639 // if (which->getTodoStatus()) {
2640 mTodoList->updateView(); 2640 mTodoList->updateView();
2641 // } 2641 // }
2642 } else { 2642 } else {
2643 mViewManager->currentView()->updateView(); 2643 mViewManager->currentView()->updateView();
2644 } 2644 }
2645} 2645}
2646 2646
2647 2647
2648void CalendarView::updateTodoViews() 2648void CalendarView::updateTodoViews()
2649{ 2649{
2650 mTodoList->updateView(); 2650 mTodoList->updateView();
2651 mViewManager->currentView()->updateView(); 2651 mViewManager->currentView()->updateView();
2652 2652
2653} 2653}
2654 2654
2655 2655
2656 2656
2657void CalendarView::clearAllViews() 2657void CalendarView::clearAllViews()
2658{ 2658{
2659 mTodoList->clearList(); 2659 mTodoList->clearList();
2660 mViewManager->clearAllViews(); 2660 mViewManager->clearAllViews();
2661 SearchDialog * sd = mDialogManager->getSearchDialog(); 2661 SearchDialog * sd = mDialogManager->getSearchDialog();
2662 if ( sd ) { 2662 if ( sd ) {
2663 KOListView* kol = sd->listview(); 2663 KOListView* kol = sd->listview();
2664 if ( kol ) 2664 if ( kol )
2665 kol->clearList(); 2665 kol->clearList();
2666 } 2666 }
2667} 2667}
2668void CalendarView::updateView() 2668void CalendarView::updateView()
2669{ 2669{
2670 static bool clearallviews = false;
2671 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) {
2672 if ( clearallviews ) {
2673 clearAllViews();
2674 clearallviews = false;
2675 }
2676 return;
2677 }
2678 clearallviews = true;
2670 DateList tmpList = mNavigator->selectedDates(); 2679 DateList tmpList = mNavigator->selectedDates();
2671 2680
2672 if ( KOPrefs::instance()->mHideNonStartedTodos ) 2681 if ( KOPrefs::instance()->mHideNonStartedTodos )
2673 mTodoList->updateView(); 2682 mTodoList->updateView();
2674 // We assume that the navigator only selects consecutive days. 2683 // We assume that the navigator only selects consecutive days.
2675 updateView( tmpList.first(), tmpList.last() ); 2684 updateView( tmpList.first(), tmpList.last() );
2676} 2685}
2677 2686
2678void CalendarView::updateUnmanagedViews() 2687void CalendarView::updateUnmanagedViews()
2679{ 2688{
2680 mDateNavigator->updateDayMatrix(); 2689 mDateNavigator->updateDayMatrix();
2681} 2690}
2682 2691
2683int CalendarView::msgItemDelete(const QString name) 2692int CalendarView::msgItemDelete(const QString name)
2684{ 2693{
2685 return KMessageBox::warningContinueCancel(this,name +"\n\n"+ 2694 return KMessageBox::warningContinueCancel(this,name +"\n\n"+
2686 i18n("This item will be\npermanently deleted."), 2695 i18n("This item will be\npermanently deleted."),
2687 i18n("KO/Pi Confirmation"),i18n("Delete")); 2696 i18n("KO/Pi Confirmation"),i18n("Delete"));
2688} 2697}
2689 2698
2690 2699
2691void CalendarView::edit_cut() 2700void CalendarView::edit_cut()
2692{ 2701{
2693 Event *anEvent=0; 2702 Event *anEvent=0;
2694 2703
2695 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2704 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2696 2705
2697 if (mViewManager->currentView()->isEventView()) { 2706 if (mViewManager->currentView()->isEventView()) {
2698 if ( incidence && incidence->typeID() == eventID ) { 2707 if ( incidence && incidence->typeID() == eventID ) {
2699 anEvent = static_cast<Event *>(incidence); 2708 anEvent = static_cast<Event *>(incidence);
2700 } 2709 }
2701 } 2710 }
2702 2711
2703 if (!anEvent) { 2712 if (!anEvent) {
2704 KNotifyClient::beep(); 2713 KNotifyClient::beep();
2705 return; 2714 return;
2706 } 2715 }
2707 DndFactory factory( mCalendar ); 2716 DndFactory factory( mCalendar );
2708 factory.cutIncidence(anEvent); 2717 factory.cutIncidence(anEvent);
2709 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); 2718 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED);
2710} 2719}
2711 2720
2712void CalendarView::edit_copy() 2721void CalendarView::edit_copy()
2713{ 2722{
2714 Event *anEvent=0; 2723 Event *anEvent=0;
2715 2724
2716 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2725 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2717 2726
2718 if (mViewManager->currentView()->isEventView()) { 2727 if (mViewManager->currentView()->isEventView()) {
2719 if ( incidence && incidence->typeID() == eventID ) { 2728 if ( incidence && incidence->typeID() == eventID ) {
2720 anEvent = static_cast<Event *>(incidence); 2729 anEvent = static_cast<Event *>(incidence);
2721 } 2730 }
2722 } 2731 }
2723 2732
2724 if (!anEvent) { 2733 if (!anEvent) {
2725 KNotifyClient::beep(); 2734 KNotifyClient::beep();
2726 return; 2735 return;
2727 } 2736 }
2728 DndFactory factory( mCalendar ); 2737 DndFactory factory( mCalendar );
2729 factory.copyIncidence(anEvent); 2738 factory.copyIncidence(anEvent);
2730} 2739}
2731 2740
2732void CalendarView::edit_paste() 2741void CalendarView::edit_paste()
2733{ 2742{
2734 QDate date = mNavigator->selectedDates().first(); 2743 QDate date = mNavigator->selectedDates().first();
2735 2744
2736 DndFactory factory( mCalendar ); 2745 DndFactory factory( mCalendar );
2737 Event *pastedEvent = (Event *)factory.pasteIncidence( date ); 2746 Event *pastedEvent = (Event *)factory.pasteIncidence( date );
2738 2747
2739 changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED ); 2748 changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED );
2740} 2749}
2741void CalendarView::edit_global_options() 2750void CalendarView::edit_global_options()
2742{ 2751{
2743 QString tz = KPimGlobalPrefs::instance()->mTimeZoneId; 2752 QString tz = KPimGlobalPrefs::instance()->mTimeZoneId;
2744 emit save(); 2753 emit save();
2745 emit saveStopTimer(); 2754 emit saveStopTimer();
2746 mDialogManager->showGlobalOptionsDialog(); 2755 mDialogManager->showGlobalOptionsDialog();
2747 if ( tz != KPimGlobalPrefs::instance()->mTimeZoneId) { 2756 if ( tz != KPimGlobalPrefs::instance()->mTimeZoneId) {
2748 emit saveStopTimer(); 2757 emit saveStopTimer();
2749 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, i18n("The timezone has changed!\nShould the calendar be reloaded\nto shift the time of the events?\nPlease read Menu: Help->FAQ:\n\"How do I change the timezone?\"\nas well!"), 2758 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, i18n("The timezone has changed!\nShould the calendar be reloaded\nto shift the time of the events?\nPlease read Menu: Help->FAQ:\n\"How do I change the timezone?\"\nas well!"),
2750 i18n("Timezone settings"),i18n("Reload"))) { 2759 i18n("Timezone settings"),i18n("Reload"))) {
2751 qDebug("KO: TZ reload cancelled "); 2760 qDebug("KO: TZ reload cancelled ");
2752 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 2761 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
2753 return; 2762 return;
2754 } 2763 }
2755 qDebug("KO: Timezone change "); 2764 qDebug("KO: Timezone change ");
2756 loadCalendars(); 2765 loadCalendars();
2757 setModified(true); 2766 setModified(true);
2758 } 2767 }
2759 else 2768 else
2760 qDebug("KO: No tz change "); 2769 qDebug("KO: No tz change ");
2761} 2770}
2762void CalendarView::edit_options() 2771void CalendarView::edit_options()
2763{ 2772{
2764 mDialogManager->showOptionsDialog(); 2773 mDialogManager->showOptionsDialog();
2765} 2774}
@@ -4318,192 +4327,197 @@ void CalendarView::toggleExpand()
4318 globalFlagBlockAgenda = 1; 4327 globalFlagBlockAgenda = 1;
4319 emit calendarViewExpanded( !mLeftFrame->isHidden() ); 4328 emit calendarViewExpanded( !mLeftFrame->isHidden() );
4320 globalFlagBlockAgenda = 5; 4329 globalFlagBlockAgenda = 5;
4321 mViewManager->raiseCurrentView( !mLeftFrame->isHidden() ); 4330 mViewManager->raiseCurrentView( !mLeftFrame->isHidden() );
4322 //mViewManager->showView( 0, true ); 4331 //mViewManager->showView( 0, true );
4323} 4332}
4324 4333
4325void CalendarView::calendarModified( bool modified, Calendar * ) 4334void CalendarView::calendarModified( bool modified, Calendar * )
4326{ 4335{
4327 setModified( modified ); 4336 setModified( modified );
4328} 4337}
4329 4338
4330Todo *CalendarView::selectedTodo() 4339Todo *CalendarView::selectedTodo()
4331{ 4340{
4332 Incidence *incidence = currentSelection(); 4341 Incidence *incidence = currentSelection();
4333 if ( incidence && incidence->typeID() == todoID ) { 4342 if ( incidence && incidence->typeID() == todoID ) {
4334 return static_cast<Todo *>( incidence ); 4343 return static_cast<Todo *>( incidence );
4335 } 4344 }
4336 4345
4337 incidence = mTodoList->selectedIncidences().first(); 4346 incidence = mTodoList->selectedIncidences().first();
4338 if ( incidence && incidence->typeID() == todoID ) { 4347 if ( incidence && incidence->typeID() == todoID ) {
4339 return static_cast<Todo *>( incidence ); 4348 return static_cast<Todo *>( incidence );
4340 } 4349 }
4341 4350
4342 return 0; 4351 return 0;
4343} 4352}
4344 4353
4345void CalendarView::showIncidence() 4354void CalendarView::showIncidence()
4346{ 4355{
4347 mViewerCallerIsSearchDialog = false; 4356 mViewerCallerIsSearchDialog = false;
4348 Incidence *incidence = currentSelection(); 4357 Incidence *incidence = currentSelection();
4349 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 4358 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
4350 if ( incidence ) { 4359 if ( incidence ) {
4351 ShowIncidenceVisitor v; 4360 ShowIncidenceVisitor v;
4352 v.act( incidence, this ); 4361 v.act( incidence, this );
4353 } 4362 }
4354} 4363}
4355void CalendarView::editIncidenceDescription() 4364void CalendarView::editIncidenceDescription()
4356{ 4365{
4357 mFlagEditDescription = true; 4366 mFlagEditDescription = true;
4358 editIncidence(); 4367 editIncidence();
4359 mFlagEditDescription = false; 4368 mFlagEditDescription = false;
4360} 4369}
4361void CalendarView::editIncidence() 4370void CalendarView::editIncidence()
4362{ 4371{
4363 // qDebug("editIncidence() "); 4372 // qDebug("editIncidence() ");
4364 Incidence *incidence = currentSelection(); 4373 Incidence *incidence = currentSelection();
4365 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 4374 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
4366 if ( incidence ) { 4375 if ( incidence ) {
4367 EditIncidenceVisitor v; 4376 EditIncidenceVisitor v;
4368 v.act( incidence, this ); 4377 v.act( incidence, this );
4369 } 4378 }
4370} 4379}
4371 4380
4372void CalendarView::deleteIncidence() 4381void CalendarView::deleteIncidence()
4373{ 4382{
4374 Incidence *incidence = currentSelection(); 4383 Incidence *incidence = currentSelection();
4375 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 4384 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
4376 if ( incidence ) { 4385 if ( incidence ) {
4377 deleteIncidence(incidence); 4386 deleteIncidence(incidence);
4378 } 4387 }
4379} 4388}
4380void CalendarView::showIncidence(QString uid) 4389void CalendarView::showIncidence(QString uid)
4381{ 4390{
4382 Incidence *inc = mCalendar->incidence( uid ); 4391 Incidence *inc = mCalendar->incidence( uid );
4383 if ( inc ) 4392 if ( inc )
4384 showIncidence( inc ); 4393 showIncidence( inc );
4385} 4394}
4386void CalendarView::showIncidence(Incidence *incidence) 4395void CalendarView::showIncidence(Incidence *incidence)
4387{ 4396{
4388 mViewerCallerIsSearchDialog = false; 4397 mViewerCallerIsSearchDialog = false;
4389 //qDebug("%x %x ",sender (), mDialogManager->getSearchDialog() ); 4398 //qDebug("%x %x ",sender (), mDialogManager->getSearchDialog() );
4390 if ( sender() && mDialogManager->getSearchDialog() ) { 4399 if ( sender() && mDialogManager->getSearchDialog() ) {
4391 if ( sender () == mDialogManager->getSearchDialog()->listview() ) { 4400 if ( sender () == mDialogManager->getSearchDialog()->listview() ) {
4392 mViewerCallerIsSearchDialog = true; 4401 mViewerCallerIsSearchDialog = true;
4393 } 4402 }
4394 } 4403 }
4395 if ( incidence ) { 4404 if ( incidence ) {
4396 ShowIncidenceVisitor v; 4405 ShowIncidenceVisitor v;
4397 v.act( incidence, this ); 4406 v.act( incidence, this );
4398 } 4407 }
4399} 4408}
4400 4409
4401void CalendarView::editIncidence(Incidence *incidence) 4410void CalendarView::editIncidence(Incidence *incidence)
4402{ 4411{
4403 if ( incidence ) { 4412 if ( incidence ) {
4404 4413
4405 EditIncidenceVisitor v; 4414 EditIncidenceVisitor v;
4406 v.act( incidence, this ); 4415 v.act( incidence, this );
4407 4416
4408 } 4417 }
4409} 4418}
4410 4419
4411void CalendarView::deleteIncidence(Incidence *incidence) 4420void CalendarView::deleteIncidence(Incidence *incidence)
4412{ 4421{
4413 //qDebug(" CalendarView::deleteIncidence "); 4422 //qDebug(" CalendarView::deleteIncidence ");
4423 if ( incidence == 0 ) {
4424 updateView();
4425 emit updateSearchDialog();
4426 return;
4427 }
4414 if ( incidence ) { 4428 if ( incidence ) {
4415 DeleteIncidenceVisitor v; 4429 DeleteIncidenceVisitor v;
4416 v.act( incidence, this ); 4430 v.act( incidence, this );
4417 } 4431 }
4418} 4432}
4419 4433
4420 4434
4421void CalendarView::lookForOutgoingMessages() 4435void CalendarView::lookForOutgoingMessages()
4422{ 4436{
4423 OutgoingDialog *ogd = mDialogManager->outgoingDialog(); 4437 OutgoingDialog *ogd = mDialogManager->outgoingDialog();
4424 ogd->loadMessages(); 4438 ogd->loadMessages();
4425} 4439}
4426 4440
4427void CalendarView::lookForIncomingMessages() 4441void CalendarView::lookForIncomingMessages()
4428{ 4442{
4429 IncomingDialog *icd = mDialogManager->incomingDialog(); 4443 IncomingDialog *icd = mDialogManager->incomingDialog();
4430 icd->retrieve(); 4444 icd->retrieve();
4431} 4445}
4432 4446
4433bool CalendarView::removeCompletedSubTodos( Todo* t ) 4447bool CalendarView::removeCompletedSubTodos( Todo* t )
4434{ 4448{
4435 bool deleteTodo = true; 4449 bool deleteTodo = true;
4436 QPtrList<Incidence> subTodos; 4450 QPtrList<Incidence> subTodos;
4437 Incidence *aTodo; 4451 Incidence *aTodo;
4438 subTodos = t->relations(); 4452 subTodos = t->relations();
4439 for (aTodo = subTodos.first(); aTodo; aTodo = subTodos.next()) { 4453 for (aTodo = subTodos.first(); aTodo; aTodo = subTodos.next()) {
4440 if (! removeCompletedSubTodos( (Todo*) aTodo )) 4454 if (! removeCompletedSubTodos( (Todo*) aTodo ))
4441 deleteTodo = false; 4455 deleteTodo = false;
4442 } 4456 }
4443 if ( deleteTodo ) { 4457 if ( deleteTodo ) {
4444 if ( t->isCompleted() && !t->doesRecur()) { 4458 if ( t->isCompleted() && !t->doesRecur()) {
4445 checkExternalId( t ); 4459 checkExternalId( t );
4446 mCalendar->deleteTodo( t ); 4460 mCalendar->deleteTodo( t );
4447 changeTodoDisplay( t,KOGlobals::EVENTDELETED ); 4461 changeTodoDisplay( t,KOGlobals::EVENTDELETED );
4448 } 4462 }
4449 else 4463 else
4450 deleteTodo = false; 4464 deleteTodo = false;
4451 } 4465 }
4452 return deleteTodo; 4466 return deleteTodo;
4453 4467
4454} 4468}
4455void CalendarView::purgeCompleted() 4469void CalendarView::purgeCompleted()
4456{ 4470{
4457 int result = KMessageBox::warningContinueCancel(this, 4471 int result = KMessageBox::warningContinueCancel(this,
4458 i18n("Delete all completed todos?\n(Completed recurring todos\nwill not be deleted!)"),i18n("Purge Todos"),i18n("Purge")); 4472 i18n("Delete all completed todos?\n(Completed recurring todos\nwill not be deleted!)"),i18n("Purge Todos"),i18n("Purge"));
4459 4473
4460 if (result == KMessageBox::Continue) { 4474 if (result == KMessageBox::Continue) {
4461 4475
4462 QPtrList<Todo> todoCal; 4476 QPtrList<Todo> todoCal;
4463 QPtrList<Todo> rootTodos; 4477 QPtrList<Todo> rootTodos;
4464 //QPtrList<Incidence> rel; 4478 //QPtrList<Incidence> rel;
4465 Todo *aTodo; 4479 Todo *aTodo;
4466 todoCal = calendar()->todos(); 4480 todoCal = calendar()->todos();
4467 for (aTodo = todoCal.first(); aTodo; aTodo = todoCal.next()) { 4481 for (aTodo = todoCal.first(); aTodo; aTodo = todoCal.next()) {
4468 if ( !aTodo->relatedTo() ) 4482 if ( !aTodo->relatedTo() )
4469 rootTodos.append( aTodo ); 4483 rootTodos.append( aTodo );
4470 } 4484 }
4471 for (aTodo = rootTodos.first(); aTodo; aTodo = rootTodos.next()) { 4485 for (aTodo = rootTodos.first(); aTodo; aTodo = rootTodos.next()) {
4472 removeCompletedSubTodos( aTodo ); 4486 removeCompletedSubTodos( aTodo );
4473 } 4487 }
4474 4488
4475 updateView(); 4489 updateView();
4476 } 4490 }
4477} 4491}
4478 4492
4479void CalendarView::slotCalendarChanged() 4493void CalendarView::slotCalendarChanged()
4480{ 4494{
4481 ; 4495 ;
4482} 4496}
4483 4497
4484void CalendarView::keyPressEvent ( QKeyEvent *e) 4498void CalendarView::keyPressEvent ( QKeyEvent *e)
4485{ 4499{
4486 //qDebug(" alendarView::keyPressEvent "); 4500 //qDebug(" alendarView::keyPressEvent ");
4487 e->ignore(); 4501 e->ignore();
4488} 4502}
4489 4503
4490 4504
4491bool CalendarView::sync(KSyncManager* manager, QString filename, int mode) 4505bool CalendarView::sync(KSyncManager* manager, QString filename, int mode)
4492{ 4506{
4493 4507
4494 if ( manager != mSyncManager) 4508 if ( manager != mSyncManager)
4495 qDebug("KO: Internal error-1. SyncManager mismatch "); 4509 qDebug("KO: Internal error-1. SyncManager mismatch ");
4496 if ( filename == QDir::homeDirPath ()+"/.kdecalendardump.ics" ) { 4510 if ( filename == QDir::homeDirPath ()+"/.kdecalendardump.ics" ) {
4497 qDebug("KO: SyncKDE request detected!"); 4511 qDebug("KO: SyncKDE request detected!");
4498 } 4512 }
4499 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); 4513 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice();
4500 mCurrentSyncName = mSyncManager->getCurrentSyncName(); 4514 mCurrentSyncName = mSyncManager->getCurrentSyncName();
4501 return syncCalendar( filename, mode ); 4515 return syncCalendar( filename, mode );
4502} 4516}
4503bool CalendarView::syncExternal(KSyncManager* manager, QString resource) 4517bool CalendarView::syncExternal(KSyncManager* manager, QString resource)
4504{ 4518{
4505 //mSyncManager = manager; 4519 //mSyncManager = manager;
4506 if ( manager != mSyncManager) 4520 if ( manager != mSyncManager)
4507 qDebug("KO: Internal error-2. SyncManager mismatch "); 4521 qDebug("KO: Internal error-2. SyncManager mismatch ");
4508 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); 4522 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice();
4509 mCurrentSyncName = mSyncManager->getCurrentSyncName(); 4523 mCurrentSyncName = mSyncManager->getCurrentSyncName();
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp
index 25e599d..5690bdb 100644
--- a/korganizer/kolistview.cpp
+++ b/korganizer/kolistview.cpp
@@ -772,205 +772,207 @@ void KOListView::writeToFile( bool iCal )
772 } 772 }
773 } else { 773 } else {
774 if ( fn.right( 4 ).lower() == ".ics" ) { 774 if ( fn.right( 4 ).lower() == ".ics" ) {
775 fn = fn.left( fn.length() -3) + "vcs"; 775 fn = fn.left( fn.length() -3) + "vcs";
776 } 776 }
777 } 777 }
778 fn = KFileDialog::getSaveFileName( fn, i18n("Save filename"), this ); 778 fn = KFileDialog::getSaveFileName( fn, i18n("Save filename"), this );
779 779
780 if ( fn == "" ) 780 if ( fn == "" )
781 return; 781 return;
782 QFileInfo info; 782 QFileInfo info;
783 info.setFile( fn ); 783 info.setFile( fn );
784 QString mes; 784 QString mes;
785 bool createbup = true; 785 bool createbup = true;
786 if ( info. exists() ) { 786 if ( info. exists() ) {
787 mes = i18n("File already exists!\nOld file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); 787 mes = i18n("File already exists!\nOld file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) );
788 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 788 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
789 i18n("Overwrite!"), i18n("Cancel"), 0, 789 i18n("Overwrite!"), i18n("Cancel"), 0,
790 0, 1 ); 790 0, 1 );
791 if ( result != 0 ) { 791 if ( result != 0 ) {
792 createbup = false; 792 createbup = false;
793 } 793 }
794 } 794 }
795 if ( createbup ) { 795 if ( createbup ) {
796 CalendarLocal cal; 796 CalendarLocal cal;
797 cal.setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 797 cal.setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
798 Incidence *incidence = delSel.first(); 798 Incidence *incidence = delSel.first();
799 while ( incidence ) { 799 while ( incidence ) {
800 cal.addIncidence( incidence->clone() ); 800 cal.addIncidence( incidence->clone() );
801 incidence = delSel.next(); 801 incidence = delSel.next();
802 } 802 }
803 if ( iCal ) { 803 if ( iCal ) {
804 ICalFormat format; 804 ICalFormat format;
805 format.save( &cal, fn ); 805 format.save( &cal, fn );
806 } else { 806 } else {
807 807
808 VCalFormat format; 808 VCalFormat format;
809 format.save( &cal, fn ); 809 format.save( &cal, fn );
810 } 810 }
811 mes = i18n("KO/Pi:Saved %1").arg(fn ); 811 mes = i18n("KO/Pi:Saved %1").arg(fn );
812 KOPrefs::instance()->mLastSaveFile = fn; 812 KOPrefs::instance()->mLastSaveFile = fn;
813 topLevelWidget()->setCaption(mes); 813 topLevelWidget()->setCaption(mes);
814 } 814 }
815 } 815 }
816 QTimer::singleShot( 1, this, SLOT ( resetFocus() ) ); 816 QTimer::singleShot( 1, this, SLOT ( resetFocus() ) );
817} 817}
818void KOListView::hideAll() 818void KOListView::hideAll()
819{ 819{
820 QPtrList<QListViewItem> delSel ; 820 QPtrList<QListViewItem> delSel ;
821 QListViewItem *item = mListView->firstChild (); 821 QListViewItem *item = mListView->firstChild ();
822 while ( item ) { 822 while ( item ) {
823 if ( item->isSelected() ) { 823 if ( item->isSelected() ) {
824 delSel.append(item); 824 delSel.append(item);
825 } 825 }
826 item = item->nextSibling(); 826 item = item->nextSibling();
827 } 827 }
828 item = delSel.first() ; 828 item = delSel.first() ;
829 while ( item ) { 829 while ( item ) {
830 QListViewItem * del = item; 830 QListViewItem * del = item;
831 item = delSel.next(); 831 item = delSel.next();
832 delete del; 832 delete del;
833 } 833 }
834} 834}
835void KOListView::printList() 835void KOListView::printList()
836{ 836{
837 mListView->printList(); 837 mListView->printList();
838} 838}
839void KOListView::deleteAll() 839void KOListView::deleteAll()
840{ 840{
841 QPtrList<Incidence> delSel = getSelectedIncidences(); // all inc allowed;; 841 QPtrList<Incidence> delSel = getSelectedIncidences(); // all inc allowed;;
842 if ( delSel.count() ) { 842 if ( delSel.count() ) {
843 int icount = delSel.count(); 843 int icount = delSel.count();
844 Incidence *incidence = delSel.first(); 844 Incidence *incidence = delSel.first();
845 Incidence *toDelete; 845 Incidence *toDelete;
846 KOPrefs *p = KOPrefs::instance(); 846 KOPrefs *p = KOPrefs::instance();
847 bool confirm = p->mConfirm; 847 bool confirm = p->mConfirm;
848 QString mess; 848 QString mess;
849 mess = mess.sprintf( i18n("You have %d item(s) selected.\n"), icount ); 849 mess = mess.sprintf( i18n("You have %d item(s) selected.\n"), icount );
850 if ( KMessageBox::Continue == KMessageBox::warningContinueCancel(this, mess + i18n("All selected items will be\npermanently deleted.\n(Deleting items will take\nsome time on a PDA)\n"), i18n("KO/Pi Confirmation"),i18n("Delete")) ) { 850 if ( KMessageBox::Continue == KMessageBox::warningContinueCancel(this, mess + i18n("All selected items will be\npermanently deleted.\n(Deleting items will take\nsome time on a PDA)\n"), i18n("KO/Pi Confirmation"),i18n("Delete")) ) {
851 p->mConfirm = false; 851 p->mConfirm = false;
852 int delCounter = 0; 852 int delCounter = 0;
853 QDialog dia ( this, "p-dialog", true ); 853 QDialog dia ( this, "p-dialog", true );
854 QLabel lab (i18n("Close dialog to abort deletion!"), &dia ); 854 QLabel lab (i18n("Close dialog to abort deletion!"), &dia );
855 QVBoxLayout lay( &dia ); 855 QVBoxLayout lay( &dia );
856 lay.setMargin(7); 856 lay.setMargin(7);
857 lay.setSpacing(7); 857 lay.setSpacing(7);
858 lay.addWidget( &lab); 858 lay.addWidget( &lab);
859 QProgressBar bar( icount, &dia ); 859 QProgressBar bar( icount, &dia );
860 lay.addWidget( &bar); 860 lay.addWidget( &bar);
861 int w = 220; 861 int w = 220;
862 int h = 50; 862 int h = 50;
863 int dw = QApplication::desktop()->width(); 863 int dw = QApplication::desktop()->width();
864 int dh = QApplication::desktop()->height(); 864 int dh = QApplication::desktop()->height();
865 dia.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 865 dia.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
866 //dia.resize( 240,50 ); 866 //dia.resize( 240,50 );
867 dia.show(); 867 dia.show();
868 868 KOPrefs::instance()->mGlobalUpdateDisabled = true;
869 while ( incidence ) { 869 while ( incidence ) {
870 bar.setProgress( delCounter ); 870 bar.setProgress( delCounter );
871 mess = mess.sprintf( i18n("Deleting item %d ..."), ++delCounter ); 871 mess = mess.sprintf( i18n("Deleting item %d ..."), ++delCounter );
872 dia.setCaption( mess ); 872 dia.setCaption( mess );
873 qApp->processEvents(); 873 qApp->processEvents();
874 toDelete = (incidence); 874 toDelete = (incidence);
875 incidence = delSel.next(); 875 incidence = delSel.next();
876 emit deleteIncidenceSignal(toDelete ); 876 emit deleteIncidenceSignal(toDelete );
877 if ( dia.result() != 0 ) 877 if ( dia.result() != 0 )
878 break; 878 break;
879 879
880 } 880 }
881 KOPrefs::instance()->mGlobalUpdateDisabled = false;
882 emit deleteIncidenceSignal( 0 );
881 mess = mess.sprintf( i18n("%d items remaining in list."), count() ); 883 mess = mess.sprintf( i18n("%d items remaining in list."), count() );
882 topLevelWidget ()->setCaption( mess ); 884 topLevelWidget ()->setCaption( mess );
883 p->mConfirm = confirm; 885 p->mConfirm = confirm;
884 } 886 }
885 } 887 }
886 888
887 889
888} 890}
889int KOListView::maxDatesHint() 891int KOListView::maxDatesHint()
890{ 892{
891 return 0; 893 return 0;
892} 894}
893 895
894int KOListView::currentDateCount() 896int KOListView::currentDateCount()
895{ 897{
896 return 0; 898 return 0;
897} 899}
898 900
899QPtrList<Incidence> KOListView::selectedIncidences() 901QPtrList<Incidence> KOListView::selectedIncidences()
900{ 902{
901 QPtrList<Incidence> eventList; 903 QPtrList<Incidence> eventList;
902 QListViewItem *item = mListView->firstChild (); 904 QListViewItem *item = mListView->firstChild ();
903 while ( item ) { 905 while ( item ) {
904 if ( item->isSelected() ) { 906 if ( item->isSelected() ) {
905 eventList.append(((KOListViewItem *)item)->data()); 907 eventList.append(((KOListViewItem *)item)->data());
906 } 908 }
907 909
908 item = item->nextSibling(); 910 item = item->nextSibling();
909 } 911 }
910 912
911 // // QListViewItem *item = mListView->selectedItem(); 913 // // QListViewItem *item = mListView->selectedItem();
912 //if (item) eventList.append(((KOListViewItem *)item)->data()); 914 //if (item) eventList.append(((KOListViewItem *)item)->data());
913 915
914 return eventList; 916 return eventList;
915} 917}
916 918
917DateList KOListView::selectedDates() 919DateList KOListView::selectedDates()
918{ 920{
919 DateList eventList; 921 DateList eventList;
920 return eventList; 922 return eventList;
921} 923}
922 924
923void KOListView::showDates(bool show) 925void KOListView::showDates(bool show)
924{ 926{
925 // Shouldn't we set it to a value greater 0? When showDates is called with 927 // Shouldn't we set it to a value greater 0? When showDates is called with
926 // show == true at first, then the columnwidths are set to zero. 928 // show == true at first, then the columnwidths are set to zero.
927 static int oldColWidth1 = 0; 929 static int oldColWidth1 = 0;
928 static int oldColWidth3 = 0; 930 static int oldColWidth3 = 0;
929 931
930 if (!show) { 932 if (!show) {
931 oldColWidth1 = mListView->columnWidth(1); 933 oldColWidth1 = mListView->columnWidth(1);
932 oldColWidth3 = mListView->columnWidth(3); 934 oldColWidth3 = mListView->columnWidth(3);
933 mListView->setColumnWidth(1, 0); 935 mListView->setColumnWidth(1, 0);
934 mListView->setColumnWidth(3, 0); 936 mListView->setColumnWidth(3, 0);
935 } else { 937 } else {
936 mListView->setColumnWidth(1, oldColWidth1); 938 mListView->setColumnWidth(1, oldColWidth1);
937 mListView->setColumnWidth(3, oldColWidth3); 939 mListView->setColumnWidth(3, oldColWidth3);
938 } 940 }
939 mListView->repaint(); 941 mListView->repaint();
940} 942}
941 943
942void KOListView::printPreview(CalPrinter *calPrinter, const QDate &fd, 944void KOListView::printPreview(CalPrinter *calPrinter, const QDate &fd,
943 const QDate &td) 945 const QDate &td)
944{ 946{
945#ifndef KORG_NOPRINTER 947#ifndef KORG_NOPRINTER
946 calPrinter->preview(CalPrinter::Day, fd, td); 948 calPrinter->preview(CalPrinter::Day, fd, td);
947#endif 949#endif
948} 950}
949 951
950void KOListView::showDates() 952void KOListView::showDates()
951{ 953{
952 showDates(true); 954 showDates(true);
953} 955}
954 956
955void KOListView::hideDates() 957void KOListView::hideDates()
956{ 958{
957 showDates(false); 959 showDates(false);
958} 960}
959 961
960void KOListView::resetFocus() 962void KOListView::resetFocus()
961{ 963{
962 topLevelWidget()->setActiveWindow(); 964 topLevelWidget()->setActiveWindow();
963 topLevelWidget()->raise(); 965 topLevelWidget()->raise();
964 mListView->setFocus(); 966 mListView->setFocus();
965} 967}
966void KOListView::updateView() 968void KOListView::updateView()
967{ 969{
968 mListView->setFocus(); 970 mListView->setFocus();
969 if ( mListView->firstChild () ) 971 if ( mListView->firstChild () )
970 mListView->setCurrentItem( mListView->firstChild () ); 972 mListView->setCurrentItem( mListView->firstChild () );
971} 973}
972void KOListView::updateConfig() 974void KOListView::updateConfig()
973{ 975{
974 976
975 mListView->setFont ( KOPrefs::instance()->mListViewFont ); 977 mListView->setFont ( KOPrefs::instance()->mListViewFont );
976 updateView(); 978 updateView();
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp
index 138028d..a63297e 100644
--- a/korganizer/koprefs.cpp
+++ b/korganizer/koprefs.cpp
@@ -1,151 +1,152 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include <time.h> 24#include <time.h>
25#ifndef _WIN32_ 25#ifndef _WIN32_
26#include <unistd.h> 26#include <unistd.h>
27#endif 27#endif
28#include <qdir.h> 28#include <qdir.h>
29#include <qtextstream.h> 29#include <qtextstream.h>
30#include <qtextcodec.h> 30#include <qtextcodec.h>
31#include <qstring.h> 31#include <qstring.h>
32#include <qregexp.h> 32#include <qregexp.h>
33#include <qfont.h> 33#include <qfont.h>
34#include <qcolor.h> 34#include <qcolor.h>
35#include <qstringlist.h> 35#include <qstringlist.h>
36#include <stdlib.h> 36#include <stdlib.h>
37 37
38#include <kglobal.h> 38#include <kglobal.h>
39#include <kglobalsettings.h> 39#include <kglobalsettings.h>
40#include <kconfig.h> 40#include <kconfig.h>
41#include <klocale.h> 41#include <klocale.h>
42#include <kdebug.h> 42#include <kdebug.h>
43#include <kemailsettings.h> 43#include <kemailsettings.h>
44#include <kstaticdeleter.h> 44#include <kstaticdeleter.h>
45#include <libkdepim/kpimglobalprefs.h> 45#include <libkdepim/kpimglobalprefs.h>
46 46
47#include "koprefs.h" 47#include "koprefs.h"
48#include "mainwindow.h" 48#include "mainwindow.h"
49 49
50KOPrefs *KOPrefs::mInstance = 0; 50KOPrefs *KOPrefs::mInstance = 0;
51static KStaticDeleter<KOPrefs> insd; 51static KStaticDeleter<KOPrefs> insd;
52 52
53KOPrefs::KOPrefs() : 53KOPrefs::KOPrefs() :
54 KPimPrefs("korganizerrc") 54 KPimPrefs("korganizerrc")
55{ 55{
56 mGlobalUpdateDisabled = false;
56 mCategoryColors.setAutoDelete(true); 57 mCategoryColors.setAutoDelete(true);
57 fillMailDefaults(); 58 fillMailDefaults();
58 mDefaultCategoryColor = QColor(175,210,255);//196,196,196); 59 mDefaultCategoryColor = QColor(175,210,255);//196,196,196);
59 QColor defaultHolidayColor = QColor(255,0,0); 60 QColor defaultHolidayColor = QColor(255,0,0);
60 QColor defaultHighlightColor = QColor(129,112,255);//64,64,255); 61 QColor defaultHighlightColor = QColor(129,112,255);//64,64,255);
61 QColor defaultAgendaBgColor = QColor(239,241,169);//128,128,128); 62 QColor defaultAgendaBgColor = QColor(239,241,169);//128,128,128);
62 QColor defaultWorkingHoursColor = QColor(170,223,150);//160,160,160); 63 QColor defaultWorkingHoursColor = QColor(170,223,150);//160,160,160);
63 QColor defaultTodoDueTodayColor = QColor(255,220,100); 64 QColor defaultTodoDueTodayColor = QColor(255,220,100);
64 QColor defaultTodoOverdueColor = QColor(255,153,125); 65 QColor defaultTodoOverdueColor = QColor(255,153,125);
65 QColor defaultTodoRunColor = QColor(99,194,30); 66 QColor defaultTodoRunColor = QColor(99,194,30);
66 KPrefs::setCurrentGroup("General"); 67 KPrefs::setCurrentGroup("General");
67 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); 68 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false);
68 addItemBool("ShowIconNewTodo",&mShowIconNewTodo,true); 69 addItemBool("ShowIconNewTodo",&mShowIconNewTodo,true);
69 addItemBool("ShowIconNewEvent",&mShowIconNewEvent,true); 70 addItemBool("ShowIconNewEvent",&mShowIconNewEvent,true);
70 addItemBool("ShowIconSearch",&mShowIconSearch,true); 71 addItemBool("ShowIconSearch",&mShowIconSearch,true);
71 addItemBool("ShowIconList",&mShowIconList,true); 72 addItemBool("ShowIconList",&mShowIconList,true);
72 addItemBool("ShowIconDay1",&mShowIconDay1,true); 73 addItemBool("ShowIconDay1",&mShowIconDay1,true);
73 addItemBool("ShowIconDay5",&mShowIconDay5,true); 74 addItemBool("ShowIconDay5",&mShowIconDay5,true);
74 addItemBool("ShowIconDay6",&mShowIconDay6,true); 75 addItemBool("ShowIconDay6",&mShowIconDay6,true);
75 addItemBool("ShowIconDay7",&mShowIconDay7,true); 76 addItemBool("ShowIconDay7",&mShowIconDay7,true);
76 addItemBool("ShowIconMonth",&mShowIconMonth,true); 77 addItemBool("ShowIconMonth",&mShowIconMonth,true);
77 addItemBool("ShowIconTodoview",&mShowIconTodoview,true); 78 addItemBool("ShowIconTodoview",&mShowIconTodoview,true);
78 addItemBool("ShowIconBackFast",&mShowIconBackFast,true); 79 addItemBool("ShowIconBackFast",&mShowIconBackFast,true);
79 addItemBool("ShowIconBack",&mShowIconBack,true); 80 addItemBool("ShowIconBack",&mShowIconBack,true);
80 addItemBool("ShowIconToday",&mShowIconToday,true); 81 addItemBool("ShowIconToday",&mShowIconToday,true);
81 addItemBool("ShowIconForward",&mShowIconForward,true); 82 addItemBool("ShowIconForward",&mShowIconForward,true);
82 addItemBool("ShowIconForwardFast",&mShowIconForwardFast,true); 83 addItemBool("ShowIconForwardFast",&mShowIconForwardFast,true);
83 addItemBool("ShowIconWhatsThis",&mShowIconWhatsThis,true); 84 addItemBool("ShowIconWhatsThis",&mShowIconWhatsThis,true);
84 addItemBool("ShowIconWeekNum",&mShowIconWeekNum,true); 85 addItemBool("ShowIconWeekNum",&mShowIconWeekNum,true);
85 addItemBool("ShowIconNextDays",&mShowIconNextDays,true); 86 addItemBool("ShowIconNextDays",&mShowIconNextDays,true);
86 addItemBool("ShowIconNext",&mShowIconNext,true); 87 addItemBool("ShowIconNext",&mShowIconNext,true);
87 addItemBool("ShowIconJournal",&mShowIconJournal,true); 88 addItemBool("ShowIconJournal",&mShowIconJournal,true);
88 addItemBool("ShowIconStretch",&mShowIconStretch,true); 89 addItemBool("ShowIconStretch",&mShowIconStretch,true);
89 addItemBool("ShowIconFilter",&mShowIconFilter,false); 90 addItemBool("ShowIconFilter",&mShowIconFilter,false);
90 addItemBool("ShowIconOnetoolbar",&mShowIconOnetoolbar,true); 91 addItemBool("ShowIconOnetoolbar",&mShowIconOnetoolbar,true);
91 92
92 bool addIcons = false; 93 bool addIcons = false;
93#ifdef DESKTOP_VERSION 94#ifdef DESKTOP_VERSION
94 addIcons = true; 95 addIcons = true;
95#endif 96#endif
96 addItemBool("ShowIconNavigator",&mShowIconNavigator,addIcons); 97 addItemBool("ShowIconNavigator",&mShowIconNavigator,addIcons);
97 addItemBool("ShowIconAllday",&mShowIconAllday,addIcons); 98 addItemBool("ShowIconAllday",&mShowIconAllday,addIcons);
98 addItemBool("ShowIconFilterview",&mShowIconFilterview,addIcons); 99 addItemBool("ShowIconFilterview",&mShowIconFilterview,addIcons);
99 addItemBool("ShowIconToggleFull",&mShowIconToggleFull,addIcons); 100 addItemBool("ShowIconToggleFull",&mShowIconToggleFull,addIcons);
100 101
101 addItemInt("LastLoadedLanguage",&mOldLanguage,0); 102 addItemInt("LastLoadedLanguage",&mOldLanguage,0);
102 103
103 addItemBool("AskForQuit",&mAskForQuit,false); 104 addItemBool("AskForQuit",&mAskForQuit,false);
104 105
105#ifndef DESKTOP_VERSION 106#ifndef DESKTOP_VERSION
106 addItemBool("ShowFullMenu",&mShowFullMenu,false); 107 addItemBool("ShowFullMenu",&mShowFullMenu,false);
107#else 108#else
108 addItemBool("ShowFullMenu",&mShowFullMenu,true); 109 addItemBool("ShowFullMenu",&mShowFullMenu,true);
109#endif 110#endif
110 addItemBool("ToolBarHor",&mToolBarHor, true ); 111 addItemBool("ToolBarHor",&mToolBarHor, true );
111 addItemBool("ToolBarUp",&mToolBarUp, false ); 112 addItemBool("ToolBarUp",&mToolBarUp, false );
112 addItemBool("ToolBarHorV",&mToolBarHorV, true ); 113 addItemBool("ToolBarHorV",&mToolBarHorV, true );
113 addItemBool("ToolBarUpV",&mToolBarUpV, false ); 114 addItemBool("ToolBarUpV",&mToolBarUpV, false );
114 addItemBool("ToolBarHorN",&mToolBarHorN, true ); 115 addItemBool("ToolBarHorN",&mToolBarHorN, true );
115 addItemBool("ToolBarUpN",&mToolBarUpN, false ); 116 addItemBool("ToolBarUpN",&mToolBarUpN, false );
116 addItemBool("ToolBarHorF",&mToolBarHorF, true ); 117 addItemBool("ToolBarHorF",&mToolBarHorF, true );
117 addItemBool("ToolBarUpF",&mToolBarUpF, false ); 118 addItemBool("ToolBarUpF",&mToolBarUpF, false );
118 addItemBool("ToolBarMiniIcons",&mToolBarMiniIcons, false ); 119 addItemBool("ToolBarMiniIcons",&mToolBarMiniIcons, false );
119 addItemInt("Whats Next Days",&mWhatsNextDays,3); 120 addItemInt("Whats Next Days",&mWhatsNextDays,3);
120 addItemInt("Whats Next Prios",&mWhatsNextPrios,1); 121 addItemInt("Whats Next Prios",&mWhatsNextPrios,1);
121 122
122 addItemBool("ShowTodoInAgenda",&mShowTodoInAgenda,true); 123 addItemBool("ShowTodoInAgenda",&mShowTodoInAgenda,true);
123 addItemBool("ShowCompletedTodoInAgenda",&mShowCompletedTodoInAgenda,true); 124 addItemBool("ShowCompletedTodoInAgenda",&mShowCompletedTodoInAgenda,true);
124 addItemBool("ShowTimeInAgenda",&mShowTimeInAgenda,true); 125 addItemBool("ShowTimeInAgenda",&mShowTimeInAgenda,true);
125 addItemBool("HideNonStartedTodos",&mHideNonStartedTodos,false); 126 addItemBool("HideNonStartedTodos",&mHideNonStartedTodos,false);
126 addItemBool("ShowCompletedTodo",&mShowCompletedTodo,true); 127 addItemBool("ShowCompletedTodo",&mShowCompletedTodo,true);
127 addItemInt("AllDay Size",&mAllDaySize,28); 128 addItemInt("AllDay Size",&mAllDaySize,28);
128 QString defAlarm = KGlobal::iconLoader()->iconPath()+"koalarm.wav"; 129 QString defAlarm = KGlobal::iconLoader()->iconPath()+"koalarm.wav";
129 addItemString("DefaultAlarmFile",&mDefaultAlarmFile,defAlarm ); 130 addItemString("DefaultAlarmFile",&mDefaultAlarmFile,defAlarm );
130 131
131 addItemStringList("LocationDefaults",&mLocationDefaults ); 132 addItemStringList("LocationDefaults",&mLocationDefaults );
132 addItemStringList("EventSummary User",&mEventSummaryUser); 133 addItemStringList("EventSummary User",&mEventSummaryUser);
133 addItemStringList("TodoSummary User",&mTodoSummaryUser); 134 addItemStringList("TodoSummary User",&mTodoSummaryUser);
134 addItemStringList("JournalSummary User",&mJournalSummaryUser); 135 addItemStringList("JournalSummary User",&mJournalSummaryUser);
135 136
136 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); 137 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false);
137 addItemBool("Enable Project View",&mEnableProjectView,false); 138 addItemBool("Enable Project View",&mEnableProjectView,false);
138 addItemBool("Auto Save",&mAutoSave,false); 139 addItemBool("Auto Save",&mAutoSave,false);
139 addItemInt("Auto Save Interval",&mAutoSaveInterval,3); 140 addItemInt("Auto Save Interval",&mAutoSaveInterval,3);
140 addItemBool("Confirm Deletes",&mConfirm,true); 141 addItemBool("Confirm Deletes",&mConfirm,true);
141 addItemString("Archive File",&mArchiveFile); 142 addItemString("Archive File",&mArchiveFile);
142 addItemString("Html Export File",&mHtmlExportFile, 143 addItemString("Html Export File",&mHtmlExportFile,
143 QDir::homeDirPath() + "/" + i18n("Default export file", "calendar.html")); 144 QDir::homeDirPath() + "/" + i18n("Default export file", "calendar.html"));
144 addItemBool("Html With Save",&mHtmlWithSave,false); 145 addItemBool("Html With Save",&mHtmlWithSave,false);
145 146
146 KPrefs::setCurrentGroup("Personal Settings"); 147 KPrefs::setCurrentGroup("Personal Settings");
147 148
148 addItemInt("Mail Client",&mMailClient,MailClientKMail); 149 addItemInt("Mail Client",&mMailClient,MailClientKMail);
149 addItemBool("Use Control Center Email",&mEmailControlCenter,false); 150 addItemBool("Use Control Center Email",&mEmailControlCenter,false);
150 addItemBool("Bcc",&mBcc,false); 151 addItemBool("Bcc",&mBcc,false);
151 152
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index 0779e27..392360d 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -252,111 +252,112 @@ class KOPrefs : public KPimPrefs
252 bool mToolBarUpF; 252 bool mToolBarUpF;
253 bool mToolBarMiniIcons; 253 bool mToolBarMiniIcons;
254 254
255 bool mAskForQuit; 255 bool mAskForQuit;
256 bool mUsePassWd; 256 bool mUsePassWd;
257 bool mShowSyncEvents; 257 bool mShowSyncEvents;
258 bool mShowTodoInAgenda; 258 bool mShowTodoInAgenda;
259 bool mShowCompletedTodoInAgenda; 259 bool mShowCompletedTodoInAgenda;
260 bool mShowTimeInAgenda; 260 bool mShowTimeInAgenda;
261 bool mHideNonStartedTodos; 261 bool mHideNonStartedTodos;
262 262
263 bool mBlockPopupMenu; 263 bool mBlockPopupMenu;
264 264
265 int mLastSyncTime; 265 int mLastSyncTime;
266 void setCategoryColor(QString cat,const QColor & color); 266 void setCategoryColor(QString cat,const QColor & color);
267 QColor *categoryColor(QString cat); 267 QColor *categoryColor(QString cat);
268 268
269 QString mArchiveFile; 269 QString mArchiveFile;
270 QString mHtmlExportFile; 270 QString mHtmlExportFile;
271 bool mHtmlWithSave; 271 bool mHtmlWithSave;
272 272
273 QStringList mSelectedPlugins; 273 QStringList mSelectedPlugins;
274 274
275 QString mLastImportFile; 275 QString mLastImportFile;
276 QString mLastVcalFile; 276 QString mLastVcalFile;
277 QString mLastSaveFile; 277 QString mLastSaveFile;
278 QString mLastLoadFile; 278 QString mLastLoadFile;
279 279
280 280
281 QString mDefaultAlarmFile; 281 QString mDefaultAlarmFile;
282 int mIMIPScheduler; 282 int mIMIPScheduler;
283 int mIMIPSend; 283 int mIMIPSend;
284 QStringList mAdditionalMails; 284 QStringList mAdditionalMails;
285 int mIMIPAutoRefresh; 285 int mIMIPAutoRefresh;
286 int mIMIPAutoInsertReply; 286 int mIMIPAutoInsertReply;
287 int mIMIPAutoInsertRequest; 287 int mIMIPAutoInsertRequest;
288 int mIMIPAutoFreeBusy; 288 int mIMIPAutoFreeBusy;
289 int mIMIPAutoFreeBusyReply; 289 int mIMIPAutoFreeBusyReply;
290 290
291 QStringList mTodoTemplates; 291 QStringList mTodoTemplates;
292 QStringList mEventTemplates; 292 QStringList mEventTemplates;
293 293
294 int mDestination; 294 int mDestination;
295 295
296 296
297 bool mEditOnDoubleClick; 297 bool mEditOnDoubleClick;
298 bool mViewChangeHoldFullscreen; 298 bool mViewChangeHoldFullscreen;
299 bool mViewChangeHoldNonFullscreen; 299 bool mViewChangeHoldNonFullscreen;
300 bool mCenterOnCurrentTime; 300 bool mCenterOnCurrentTime;
301 bool mSetTimeToDayStartAt; 301 bool mSetTimeToDayStartAt;
302 bool mHighlightCurrentDay; 302 bool mHighlightCurrentDay;
303 bool mUseHighlightLightColor; 303 bool mUseHighlightLightColor;
304 bool mListViewMonthTimespan; 304 bool mListViewMonthTimespan;
305 bool mWNViewShowsParents; 305 bool mWNViewShowsParents;
306 bool mWNViewShowsPast; 306 bool mWNViewShowsPast;
307 bool mWNViewShowLocation; 307 bool mWNViewShowLocation;
308 bool mTodoViewShowsPercentage; 308 bool mTodoViewShowsPercentage;
309 bool mTodoViewUsesCatColors; 309 bool mTodoViewUsesCatColors;
310 bool mMonthViewUsesBigFont; 310 bool mMonthViewUsesBigFont;
311 bool mTodoViewUsesSmallFont; 311 bool mTodoViewUsesSmallFont;
312 bool mTodoViewUsesForegroundColor; 312 bool mTodoViewUsesForegroundColor;
313 bool mMonthViewUsesForegroundColor; 313 bool mMonthViewUsesForegroundColor;
314 314
315 bool mHightlightDateTimeEdit; 315 bool mHightlightDateTimeEdit;
316 bool mShortDateInViewer; 316 bool mShortDateInViewer;
317 317
318 bool mShowDateNavigator; 318 bool mShowDateNavigator;
319 319
320 QStringList mLocationDefaults; 320 QStringList mLocationDefaults;
321 QStringList mEventSummaryUser; 321 QStringList mEventSummaryUser;
322 QStringList mTodoSummaryUser; 322 QStringList mTodoSummaryUser;
323 QStringList mJournalSummaryUser; 323 QStringList mJournalSummaryUser;
324 324
325 bool mUseInternalAlarmNotification; 325 bool mUseInternalAlarmNotification;
326 int mAlarmPlayBeeps; 326 int mAlarmPlayBeeps;
327 int mAlarmSuspendTime; 327 int mAlarmSuspendTime;
328 int mAlarmSuspendCount; 328 int mAlarmSuspendCount;
329 int mAlarmBeepInterval; 329 int mAlarmBeepInterval;
330 int mOldLanguage; 330 int mOldLanguage;
331 int mOldLoadedLanguage; 331 int mOldLoadedLanguage;
332 332
333 333
334 QString mActiveSyncPort; 334 QString mActiveSyncPort;
335 QString mActiveSyncIP; 335 QString mActiveSyncIP;
336 336
337 // settings for eventviewer 337 // settings for eventviewer
338 bool mEVshowDetails; 338 bool mEVshowDetails;
339 bool mEVshowCreated; 339 bool mEVshowCreated;
340 bool mEVshowChanged; 340 bool mEVshowChanged;
341 bool mWTshowDetails; 341 bool mWTshowDetails;
342 bool mWTshowCreated; 342 bool mWTshowCreated;
343 bool mWTshowChanged; 343 bool mWTshowChanged;
344 344
345 int mCurrentDisplayedView; 345 int mCurrentDisplayedView;
346 QPtrList<KopiCalendarFile> mCalendars; 346 QPtrList<KopiCalendarFile> mCalendars;
347 int mNextAvailableCalendar; 347 int mNextAvailableCalendar;
348 bool mGlobalUpdateDisabled;
348 349
349 private: 350 private:
350 QDict<QColor> mCategoryColors; 351 QDict<QColor> mCategoryColors;
351 QArray<KopiCalendarFile*> mDefCalColors; 352 QArray<KopiCalendarFile*> mDefCalColors;
352 QColor mDefaultCategoryColor; 353 QColor mDefaultCategoryColor;
353 354
354 QFont mDefaultTimeBarFont; 355 QFont mDefaultTimeBarFont;
355 QFont mDefaultViewFont; 356 QFont mDefaultViewFont;
356 QFont mDefaultMonthViewFont; 357 QFont mDefaultMonthViewFont;
357 358
358 QString mName; 359 QString mName;
359 QString mEmail; 360 QString mEmail;
360}; 361};
361 362
362#endif 363#endif
diff --git a/korganizer/searchdialog.cpp b/korganizer/searchdialog.cpp
index 2e32ac2..9cfdc35 100644
--- a/korganizer/searchdialog.cpp
+++ b/korganizer/searchdialog.cpp
@@ -161,192 +161,196 @@ SearchDialog::~SearchDialog()
161} 161}
162void SearchDialog::slot_add( bool b ) 162void SearchDialog::slot_add( bool b )
163{ 163{
164 if ( b ) { 164 if ( b ) {
165 if ( mSubItems->isOn() ) mSubItems->toggle(); 165 if ( mSubItems->isOn() ) mSubItems->toggle();
166 if ( mRefineItems->isOn() ) mRefineItems->toggle(); 166 if ( mRefineItems->isOn() ) mRefineItems->toggle();
167 setCaption( i18n("Matching items will be added to list")); 167 setCaption( i18n("Matching items will be added to list"));
168 } else 168 } else
169 setCaption( i18n("List will be cleared before search")); 169 setCaption( i18n("List will be cleared before search"));
170} 170}
171void SearchDialog::slot_sub( bool b) 171void SearchDialog::slot_sub( bool b)
172{ 172{
173 if ( b ) { 173 if ( b ) {
174 if ( mRefineItems->isOn() ) mRefineItems->toggle(); 174 if ( mRefineItems->isOn() ) mRefineItems->toggle();
175 if ( mAddItems->isOn() ) mAddItems->toggle(); 175 if ( mAddItems->isOn() ) mAddItems->toggle();
176 setCaption( i18n("Matching items will be removed from list")); 176 setCaption( i18n("Matching items will be removed from list"));
177 } else 177 } else
178 setCaption( i18n("List will be cleared before search")); 178 setCaption( i18n("List will be cleared before search"));
179} 179}
180void SearchDialog::slot_refine( bool b) 180void SearchDialog::slot_refine( bool b)
181{ 181{
182 if ( b ) { 182 if ( b ) {
183 if ( mSubItems->isOn() ) mSubItems->toggle(); 183 if ( mSubItems->isOn() ) mSubItems->toggle();
184 if ( mAddItems->isOn() ) mAddItems->toggle(); 184 if ( mAddItems->isOn() ) mAddItems->toggle();
185 setCaption( i18n("Search on displayed list only")); 185 setCaption( i18n("Search on displayed list only"));
186 } else 186 } else
187 setCaption( i18n("List will be cleared before search")); 187 setCaption( i18n("List will be cleared before search"));
188} 188}
189void SearchDialog::toggleCheckboxes() 189void SearchDialog::toggleCheckboxes()
190{ 190{
191 if ( incidenceGroup->isVisible() ) { 191 if ( incidenceGroup->isVisible() ) {
192 incidenceGroup->hide() ; 192 incidenceGroup->hide() ;
193 subjectGroup->hide() ; 193 subjectGroup->hide() ;
194 attendeeGroup->hide() ; 194 attendeeGroup->hide() ;
195 } else { 195 } else {
196 incidenceGroup->show() ; 196 incidenceGroup->show() ;
197 subjectGroup->show() ; 197 subjectGroup->show() ;
198 attendeeGroup->show() ; 198 attendeeGroup->show() ;
199 } 199 }
200} 200}
201void SearchDialog::raiseAndSelect() 201void SearchDialog::raiseAndSelect()
202{ 202{
203 203
204 static int currentState = 0; 204 static int currentState = 0;
205 205
206 if ( !mSearchJournal->isChecked() && !mSearchTodo->isChecked() && !mSearchEvent->isChecked() ) 206 if ( !mSearchJournal->isChecked() && !mSearchTodo->isChecked() && !mSearchEvent->isChecked() )
207 currentState = 0; 207 currentState = 0;
208 int newState = 0; 208 int newState = 0;
209 if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) { 209 if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) {
210 newState = VIEW_J_VIEW; 210 newState = VIEW_J_VIEW;
211 } 211 }
212 else if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) { 212 else if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) {
213 newState = VIEW_T_VIEW; 213 newState = VIEW_T_VIEW;
214 } 214 }
215 else { 215 else {
216 newState = VIEW_A_VIEW; 216 newState = VIEW_A_VIEW;
217 } 217 }
218 if ( newState != currentState ) { 218 if ( newState != currentState ) {
219 if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) { 219 if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) {
220 if ( ! mSearchJournal->isChecked() ) { 220 if ( ! mSearchJournal->isChecked() ) {
221 mSearchJournal->setChecked( true ); 221 mSearchJournal->setChecked( true );
222 mSearchTodo->setChecked( false ); 222 mSearchTodo->setChecked( false );
223 mSearchEvent->setChecked( false ); 223 mSearchEvent->setChecked( false );
224 mSummaryCheck->setChecked( true ); 224 mSummaryCheck->setChecked( true );
225 mDescriptionCheck->setChecked( true ); 225 mDescriptionCheck->setChecked( true );
226 226
227 } 227 }
228 } 228 }
229 else if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) { 229 else if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) {
230 if ( ! mSearchTodo->isChecked() ) { 230 if ( ! mSearchTodo->isChecked() ) {
231 mSearchTodo->setChecked( true ); 231 mSearchTodo->setChecked( true );
232 mSearchJournal->setChecked( false ); 232 mSearchJournal->setChecked( false );
233 mSearchEvent->setChecked( false ); 233 mSearchEvent->setChecked( false );
234 } 234 }
235 } 235 }
236 else { 236 else {
237 if ( ! mSearchEvent->isChecked() ) { 237 if ( ! mSearchEvent->isChecked() ) {
238 mSearchEvent->setChecked( true ); 238 mSearchEvent->setChecked( true );
239 mSearchJournal->setChecked( false ); 239 mSearchJournal->setChecked( false );
240 mSearchTodo->setChecked( false ); 240 mSearchTodo->setChecked( false );
241 } 241 }
242 } 242 }
243 } 243 }
244 currentState = newState; 244 currentState = newState;
245 raise(); 245 raise();
246} 246}
247void SearchDialog::setFocusToList() 247void SearchDialog::setFocusToList()
248{ 248{
249 listView->resetFocus(); 249 listView->resetFocus();
250} 250}
251void SearchDialog::accept() 251void SearchDialog::accept()
252{ 252{
253 doSearch(); 253 doSearch();
254} 254}
255void SearchDialog::updateList() 255void SearchDialog::updateList()
256{ 256{
257 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) {
258 listView->clear();
259 return;
260 }
257 //listView->updateList(); 261 //listView->updateList();
258 if ( isVisible() ) { 262 if ( isVisible() ) {
259 updateView(); 263 updateView();
260 //qDebug("SearchDialog::updated "); 264 //qDebug("SearchDialog::updated ");
261 } 265 }
262 else { 266 else {
263 listView->clear(); 267 listView->clear();
264 //qDebug("SearchDialog::cleared "); 268 //qDebug("SearchDialog::cleared ");
265 269
266 } 270 }
267} 271}
268void SearchDialog::searchTextChanged( const QString &_text ) 272void SearchDialog::searchTextChanged( const QString &_text )
269{ 273{
270#if 0 274#if 0
271 enableButton( KDialogBase::User1, !_text.isEmpty() ); 275 enableButton( KDialogBase::User1, !_text.isEmpty() );
272#endif 276#endif
273} 277}
274 278
275void SearchDialog::doSearch() 279void SearchDialog::doSearch()
276{ 280{
277 QRegExp re; 281 QRegExp re;
278 re.setWildcard(true); // most people understand these better. 282 re.setWildcard(true); // most people understand these better.
279 re.setCaseSensitive(false); 283 re.setCaseSensitive(false);
280 QString st = searchEdit->text(); 284 QString st = searchEdit->text();
281 if ( st.right(1) != "*") 285 if ( st.right(1) != "*")
282 st += "*"; 286 st += "*";
283 re.setPattern(st); 287 re.setPattern(st);
284 if (!mSearchEvent->isChecked() && !mSearchTodo->isChecked() && !mSearchJournal->isChecked() ) { 288 if (!mSearchEvent->isChecked() && !mSearchTodo->isChecked() && !mSearchJournal->isChecked() ) {
285 KMessageBox::sorry(this, 289 KMessageBox::sorry(this,
286 i18n("Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals")); 290 i18n("Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals"));
287 return; 291 return;
288 } 292 }
289 if (!re.isValid() ) { 293 if (!re.isValid() ) {
290 KMessageBox::sorry(this, 294 KMessageBox::sorry(this,
291 i18n("Invalid search expression,\ncannot perform " 295 i18n("Invalid search expression,\ncannot perform "
292 "the search.\nPlease enter a search expression\n" 296 "the search.\nPlease enter a search expression\n"
293 "using the wildcard characters\n '*' and '?'" 297 "using the wildcard characters\n '*' and '?'"
294 "where needed.")); 298 "where needed."));
295 return; 299 return;
296 } 300 }
297 search(re); 301 search(re);
298 listView->setStartDate( mStartDate->date() ); 302 listView->setStartDate( mStartDate->date() );
299 listView->showEvents(mMatchedEvents); 303 listView->showEvents(mMatchedEvents);
300 listView->addTodos(mMatchedTodos); 304 listView->addTodos(mMatchedTodos);
301 listView->addJournals(mMatchedJournals); 305 listView->addJournals(mMatchedJournals);
302 if (mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() == 0) { 306 if (mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() == 0) {
303 setCaption(i18n("No items found. Use '*' and '?' where needed.")); 307 setCaption(i18n("No items found. Use '*' and '?' where needed."));
304 } else { 308 } else {
305 QString mess; 309 QString mess;
306 mess = mess.sprintf( i18n("%d item(s) found."), mMatchedEvents.count()+ mMatchedJournals.count() + mMatchedTodos.count() ); 310 mess = mess.sprintf( i18n("%d item(s) found."), mMatchedEvents.count()+ mMatchedJournals.count() + mMatchedTodos.count() );
307 setCaption( i18n("KO/Pi Find: ") + mess); 311 setCaption( i18n("KO/Pi Find: ") + mess);
308 312
309 } 313 }
310 searchEdit->setFocus(); 314 searchEdit->setFocus();
311} 315}
312void SearchDialog::updateConfig() 316void SearchDialog::updateConfig()
313{ 317{
314 listView->updateConfig(); 318 listView->updateConfig();
315} 319}
316void SearchDialog::updateView() 320void SearchDialog::updateView()
317{ 321{
318 //qDebug("SearchDialog::updateView() %d ", isVisible()); 322 //qDebug("SearchDialog::updateView() %d ", isVisible());
319 QRegExp re; 323 QRegExp re;
320 re.setWildcard(true); // most people understand these better. 324 re.setWildcard(true); // most people understand these better.
321 re.setCaseSensitive(false); 325 re.setCaseSensitive(false);
322 QString st = searchEdit->text(); 326 QString st = searchEdit->text();
323 if ( st.right(1) != "*") 327 if ( st.right(1) != "*")
324 st += "*"; 328 st += "*";
325 re.setPattern(st); 329 re.setPattern(st);
326 mMatchedEvents.clear(); 330 mMatchedEvents.clear();
327 mMatchedTodos.clear(); 331 mMatchedTodos.clear();
328 mMatchedJournals.clear(); 332 mMatchedJournals.clear();
329 if (re.isValid()) { 333 if (re.isValid()) {
330 search(re); 334 search(re);
331 } 335 }
332 listView->setStartDate( mStartDate->date() ); 336 listView->setStartDate( mStartDate->date() );
333 listView->showEvents(mMatchedEvents); 337 listView->showEvents(mMatchedEvents);
334 listView->addTodos(mMatchedTodos); 338 listView->addTodos(mMatchedTodos);
335 listView->addJournals(mMatchedJournals); 339 listView->addJournals(mMatchedJournals);
336} 340}
337 341
338void SearchDialog::search(const QRegExp &re) 342void SearchDialog::search(const QRegExp &re)
339{ 343{
340 QPtrList<Event> events; 344 QPtrList<Event> events;
341 if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) { 345 if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) {
342 if ( mRefineItems->isChecked() ) events = mMatchedEvents; 346 if ( mRefineItems->isChecked() ) events = mMatchedEvents;
343 mMatchedEvents.clear(); 347 mMatchedEvents.clear();
344 } 348 }
345 if ( mSearchEvent->isChecked() ) { 349 if ( mSearchEvent->isChecked() ) {
346 if ( !mRefineItems->isChecked() ) 350 if ( !mRefineItems->isChecked() )
347 events = mCalendar->events( mStartDate->date(), 351 events = mCalendar->events( mStartDate->date(),
348 mEndDate->date(), 352 mEndDate->date(),
349 false /*mInclusiveCheck->isChecked()*/ ); 353 false /*mInclusiveCheck->isChecked()*/ );
350 354
351 355
352 Event *ev; 356 Event *ev;