summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 427d71b..9674921 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -2395,769 +2395,773 @@ void CalendarView::readSettings()
2395 w = list[2].toInt(); 2395 w = list[2].toInt();
2396 h = list[3].toInt(); 2396 h = list[3].toInt();
2397 KApplication::testCoords( &x,&y,&w,&h ); 2397 KApplication::testCoords( &x,&y,&w,&h );
2398 mEventEditor->setGeometry(x,y,w,h); 2398 mEventEditor->setGeometry(x,y,w,h);
2399 2399
2400 } 2400 }
2401 list = config->readListEntry("EditTodoLayout"); 2401 list = config->readListEntry("EditTodoLayout");
2402 if ( ! list.isEmpty() ) { 2402 if ( ! list.isEmpty() ) {
2403 x = list[0].toInt(); 2403 x = list[0].toInt();
2404 y = list[1].toInt(); 2404 y = list[1].toInt();
2405 w = list[2].toInt(); 2405 w = list[2].toInt();
2406 h = list[3].toInt(); 2406 h = list[3].toInt();
2407 KApplication::testCoords( &x,&y,&w,&h ); 2407 KApplication::testCoords( &x,&y,&w,&h );
2408 mTodoEditor->setGeometry(x,y,w,h); 2408 mTodoEditor->setGeometry(x,y,w,h);
2409 2409
2410 } 2410 }
2411 list = config->readListEntry("ViewerLayout"); 2411 list = config->readListEntry("ViewerLayout");
2412 if ( ! list.isEmpty() ) { 2412 if ( ! list.isEmpty() ) {
2413 x = list[0].toInt(); 2413 x = list[0].toInt();
2414 y = list[1].toInt(); 2414 y = list[1].toInt();
2415 w = list[2].toInt(); 2415 w = list[2].toInt();
2416 h = list[3].toInt(); 2416 h = list[3].toInt();
2417 KApplication::testCoords( &x,&y,&w,&h ); 2417 KApplication::testCoords( &x,&y,&w,&h );
2418 getEventViewerDialog()->setGeometry(x,y,w,h); 2418 getEventViewerDialog()->setGeometry(x,y,w,h);
2419 } 2419 }
2420#endif 2420#endif
2421 config->setGroup( "Views" ); 2421 config->setGroup( "Views" );
2422 int dateCount = config->readNumEntry( "ShownDatesCount", 7 ); 2422 int dateCount = config->readNumEntry( "ShownDatesCount", 7 );
2423 2423
2424 QValueList<int> sizes = config->readIntListEntry("Left Splitter Frame"); 2424 QValueList<int> sizes = config->readIntListEntry("Left Splitter Frame");
2425 2425
2426 int resetval = 0; 2426 int resetval = 0;
2427 int maxVal = 0; 2427 int maxVal = 0;
2428 if (sizes.count() != 3) { 2428 if (sizes.count() != 3) {
2429 if ( KOPrefs::instance()->mVerticalScreen ) { 2429 if ( KOPrefs::instance()->mVerticalScreen ) {
2430 resetval = mDateNavigator->sizeHint().width()+2; 2430 resetval = mDateNavigator->sizeHint().width()+2;
2431 } else { 2431 } else {
2432 resetval = mDateNavigator->sizeHint().height()+2; 2432 resetval = mDateNavigator->sizeHint().height()+2;
2433 } 2433 }
2434 } 2434 }
2435 if ( resetval ) { 2435 if ( resetval ) {
2436 sizes.clear(); 2436 sizes.clear();
2437 if ( KOPrefs::instance()->mVerticalScreen ) { 2437 if ( KOPrefs::instance()->mVerticalScreen ) {
2438 maxVal = QApplication::desktop()->width() -10; 2438 maxVal = QApplication::desktop()->width() -10;
2439 } else { 2439 } else {
2440 maxVal = QApplication::desktop()->height()-10; 2440 maxVal = QApplication::desktop()->height()-10;
2441 } 2441 }
2442 sizes << resetval; 2442 sizes << resetval;
2443 if ( maxVal < resetval + resetval) 2443 if ( maxVal < resetval + resetval)
2444 resetval = maxVal - resetval; 2444 resetval = maxVal - resetval;
2445 sizes << resetval; 2445 sizes << resetval;
2446 sizes << 100; 2446 sizes << 100;
2447 } 2447 }
2448 mLeftFrame->setSizes(sizes); 2448 mLeftFrame->setSizes(sizes);
2449 sizes = config->readIntListEntry("Main Splitter Frame"); 2449 sizes = config->readIntListEntry("Main Splitter Frame");
2450 resetval = 0; 2450 resetval = 0;
2451 maxVal = 0; 2451 maxVal = 0;
2452 if (sizes.count() != 2) { 2452 if (sizes.count() != 2) {
2453 if ( !KOPrefs::instance()->mVerticalScreen ) { 2453 if ( !KOPrefs::instance()->mVerticalScreen ) {
2454 resetval = mDateNavigator->sizeHint().width()+2; 2454 resetval = mDateNavigator->sizeHint().width()+2;
2455 } else { 2455 } else {
2456 resetval = mDateNavigator->sizeHint().height()+2; 2456 resetval = mDateNavigator->sizeHint().height()+2;
2457 } 2457 }
2458 } 2458 }
2459 if ( resetval ) { 2459 if ( resetval ) {
2460 sizes.clear(); 2460 sizes.clear();
2461 if ( !KOPrefs::instance()->mVerticalScreen ) { 2461 if ( !KOPrefs::instance()->mVerticalScreen ) {
2462 maxVal = QApplication::desktop()->width() -10; 2462 maxVal = QApplication::desktop()->width() -10;
2463 } else { 2463 } else {
2464 maxVal = QApplication::desktop()->height()-10; 2464 maxVal = QApplication::desktop()->height()-10;
2465 } 2465 }
2466 sizes << resetval; 2466 sizes << resetval;
2467 if ( maxVal < resetval + resetval) 2467 if ( maxVal < resetval + resetval)
2468 resetval = maxVal - resetval; 2468 resetval = maxVal - resetval;
2469 sizes << resetval; 2469 sizes << resetval;
2470 } 2470 }
2471 mMainFrame->setSizes(sizes); 2471 mMainFrame->setSizes(sizes);
2472 if ( dateCount == 5 ) mNavigator->selectWorkWeek(); 2472 if ( dateCount == 5 ) mNavigator->selectWorkWeek();
2473 else if ( dateCount == 7 ) mNavigator->selectWeek(); 2473 else if ( dateCount == 7 ) mNavigator->selectWeek();
2474 else mNavigator->selectDates( dateCount ); 2474 else mNavigator->selectDates( dateCount );
2475 // mViewManager->readSettings( config ); 2475 // mViewManager->readSettings( config );
2476 updateConfig(); 2476 updateConfig();
2477 globalFlagBlockAgenda = 2; 2477 globalFlagBlockAgenda = 2;
2478 mViewManager->readSettings( config ); 2478 mViewManager->readSettings( config );
2479 QTimer::singleShot( 1, mDateNavigator, SLOT ( setResizeEnabled() ) ); 2479 QTimer::singleShot( 1, mDateNavigator, SLOT ( setResizeEnabled() ) );
2480} 2480}
2481 2481
2482void CalendarView::checkSuspendAlarm() 2482void CalendarView::checkSuspendAlarm()
2483{ 2483{
2484 if ( mSuspendTimer->isActive() ) { 2484 if ( mSuspendTimer->isActive() ) {
2485 KMessageBox::information( this, i18n("<b>WARNING:</b> There is a pending suspended alarm!"), i18n("Pending Suspend Alarm")); 2485 KMessageBox::information( this, i18n("<b>WARNING:</b> There is a pending suspended alarm!"), i18n("Pending Suspend Alarm"));
2486 } 2486 }
2487} 2487}
2488void CalendarView::writeSettings() 2488void CalendarView::writeSettings()
2489{ 2489{
2490 // kdDebug() << "CalendarView::writeSettings" << endl; 2490 // kdDebug() << "CalendarView::writeSettings" << endl;
2491 2491
2492 KConfig *config = KOGlobals::config(); 2492 KConfig *config = KOGlobals::config();
2493 2493
2494 mViewManager->writeSettings( config ); 2494 mViewManager->writeSettings( config );
2495 mTodoList->saveLayout(config,QString("Todo Layout")); 2495 mTodoList->saveLayout(config,QString("Todo Layout"));
2496 mDialogManager->writeSettings( config ); 2496 mDialogManager->writeSettings( config );
2497 //KOPrefs::instance()->usrWriteConfig(); 2497 //KOPrefs::instance()->usrWriteConfig();
2498 KOPrefs::instance()->writeConfig(); 2498 KOPrefs::instance()->writeConfig();
2499 2499
2500 writeFilterSettings(config); 2500 writeFilterSettings(config);
2501 config->setGroup( "AppRun" ); 2501 config->setGroup( "AppRun" );
2502 QDateTime dt ( QDate (2005,1,1), QTime( 0,0,0 ) ); 2502 QDateTime dt ( QDate (2005,1,1), QTime( 0,0,0 ) );
2503 int days = dt.daysTo( QDate::currentDate() ); 2503 int days = dt.daysTo( QDate::currentDate() );
2504 dt = dt.addDays( days ); 2504 dt = dt.addDays( days );
2505 int secs = dt.secsTo( QDateTime::currentDateTime() ); 2505 int secs = dt.secsTo( QDateTime::currentDateTime() );
2506 config->writeEntry( "LatestProgramStopDays", days ); 2506 config->writeEntry( "LatestProgramStopDays", days );
2507 config->writeEntry( "LatestProgramStopSecs", secs ); 2507 config->writeEntry( "LatestProgramStopSecs", secs );
2508 //qDebug("KO: Writing stop time: %d ", secs); 2508 //qDebug("KO: Writing stop time: %d ", secs);
2509 //qDebug("KO: Current Time %s ",QDateTime::currentDateTime().toString().latin1() ); 2509 //qDebug("KO: Current Time %s ",QDateTime::currentDateTime().toString().latin1() );
2510 //QDateTime latest = dt.addSecs ( secs ); 2510 //QDateTime latest = dt.addSecs ( secs );
2511 //qDebug("KO: Termination on %s ", latest.toString().latin1()); 2511 //qDebug("KO: Termination on %s ", latest.toString().latin1());
2512 config->setGroup( "Views" ); 2512 config->setGroup( "Views" );
2513 config->writeEntry( "ShownDatesCount", mNavigator->selectedDates().count() ); 2513 config->writeEntry( "ShownDatesCount", mNavigator->selectedDates().count() );
2514 2514
2515#if 0 2515#if 0
2516 qDebug("********************* "); 2516 qDebug("********************* ");
2517 qDebug("Testcode secsto "); 2517 qDebug("Testcode secsto ");
2518 QDateTime dt_nodaylight ( QDate (2005,3,26), QTime( 0,0,0 ) ); 2518 QDateTime dt_nodaylight ( QDate (2005,3,26), QTime( 0,0,0 ) );
2519 QDateTime dt_daylight ( QDate (2005,3,29), QTime( 0,0,0 ) ); 2519 QDateTime dt_daylight ( QDate (2005,3,29), QTime( 0,0,0 ) );
2520 int secsto = dt_nodaylight.secsTo( dt_daylight ); 2520 int secsto = dt_nodaylight.secsTo( dt_daylight );
2521 QDateTime dt_daylight_wrong = dt_nodaylight.addSecs( secsto ); 2521 QDateTime dt_daylight_wrong = dt_nodaylight.addSecs( secsto );
2522 qDebug("dt nodaylight %s ",dt_nodaylight.toString().latin1() ); 2522 qDebug("dt nodaylight %s ",dt_nodaylight.toString().latin1() );
2523 qDebug("dt daylight %s ",dt_daylight.toString().latin1() ); 2523 qDebug("dt daylight %s ",dt_daylight.toString().latin1() );
2524 qDebug("dt daylight_wrong %s ",dt_daylight_wrong.toString().latin1() ); 2524 qDebug("dt daylight_wrong %s ",dt_daylight_wrong.toString().latin1() );
2525 qDebug("Computed secsTo %d . in minutes: %d . in hours: %d ", secsto, secsto/60, secsto/3600); 2525 qDebug("Computed secsTo %d . in minutes: %d . in hours: %d ", secsto, secsto/60, secsto/3600);
2526 qDebug("********************* testcode end"); 2526 qDebug("********************* testcode end");
2527 2527
2528#endif 2528#endif
2529 2529
2530 QValueList<int> listINT = mLeftFrame->sizes(); 2530 QValueList<int> listINT = mLeftFrame->sizes();
2531 config->writeEntry("Left Splitter Frame",listINT); 2531 config->writeEntry("Left Splitter Frame",listINT);
2532 QValueList<int> listINT2 = mMainFrame->sizes(); 2532 QValueList<int> listINT2 = mMainFrame->sizes();
2533 config->writeEntry("Main Splitter Frame",listINT2); 2533 config->writeEntry("Main Splitter Frame",listINT2);
2534#ifdef DESKTOP_VERSION 2534#ifdef DESKTOP_VERSION
2535 config->setGroup("WidgetLayout"); 2535 config->setGroup("WidgetLayout");
2536 QStringList list ;//= config->readListEntry("MainLayout"); 2536 QStringList list ;//= config->readListEntry("MainLayout");
2537 int x,y,w,h; 2537 int x,y,w,h;
2538 QWidget* wid; 2538 QWidget* wid;
2539 wid = topLevelWidget(); 2539 wid = topLevelWidget();
2540 x = wid->geometry().x(); 2540 x = wid->geometry().x();
2541 y = wid->geometry().y(); 2541 y = wid->geometry().y();
2542 w = wid->width(); 2542 w = wid->width();
2543 h = wid->height(); 2543 h = wid->height();
2544 list.clear(); 2544 list.clear();
2545 list << QString::number( x ); 2545 list << QString::number( x );
2546 list << QString::number( y ); 2546 list << QString::number( y );
2547 list << QString::number( w ); 2547 list << QString::number( w );
2548 list << QString::number( h ); 2548 list << QString::number( h );
2549 config->writeEntry("MainLayout",list ); 2549 config->writeEntry("MainLayout",list );
2550 2550
2551 wid = mEventEditor; 2551 wid = mEventEditor;
2552 x = wid->geometry().x(); 2552 x = wid->geometry().x();
2553 y = wid->geometry().y(); 2553 y = wid->geometry().y();
2554 w = wid->width(); 2554 w = wid->width();
2555 h = wid->height(); 2555 h = wid->height();
2556 list.clear(); 2556 list.clear();
2557 list << QString::number( x ); 2557 list << QString::number( x );
2558 list << QString::number( y ); 2558 list << QString::number( y );
2559 list << QString::number( w ); 2559 list << QString::number( w );
2560 list << QString::number( h ); 2560 list << QString::number( h );
2561 config->writeEntry("EditEventLayout",list ); 2561 config->writeEntry("EditEventLayout",list );
2562 2562
2563 wid = mTodoEditor; 2563 wid = mTodoEditor;
2564 x = wid->geometry().x(); 2564 x = wid->geometry().x();
2565 y = wid->geometry().y(); 2565 y = wid->geometry().y();
2566 w = wid->width(); 2566 w = wid->width();
2567 h = wid->height(); 2567 h = wid->height();
2568 list.clear(); 2568 list.clear();
2569 list << QString::number( x ); 2569 list << QString::number( x );
2570 list << QString::number( y ); 2570 list << QString::number( y );
2571 list << QString::number( w ); 2571 list << QString::number( w );
2572 list << QString::number( h ); 2572 list << QString::number( h );
2573 config->writeEntry("EditTodoLayout",list ); 2573 config->writeEntry("EditTodoLayout",list );
2574 wid = getEventViewerDialog(); 2574 wid = getEventViewerDialog();
2575 x = wid->geometry().x(); 2575 x = wid->geometry().x();
2576 y = wid->geometry().y(); 2576 y = wid->geometry().y();
2577 w = wid->width(); 2577 w = wid->width();
2578 h = wid->height(); 2578 h = wid->height();
2579 list.clear(); 2579 list.clear();
2580 list << QString::number( x ); 2580 list << QString::number( x );
2581 list << QString::number( y ); 2581 list << QString::number( y );
2582 list << QString::number( w ); 2582 list << QString::number( w );
2583 list << QString::number( h ); 2583 list << QString::number( h );
2584 config->writeEntry("ViewerLayout",list ); 2584 config->writeEntry("ViewerLayout",list );
2585 wid = mDialogManager->getSearchDialog(); 2585 wid = mDialogManager->getSearchDialog();
2586 if ( wid ) { 2586 if ( wid ) {
2587 x = wid->geometry().x(); 2587 x = wid->geometry().x();
2588 y = wid->geometry().y(); 2588 y = wid->geometry().y();
2589 w = wid->width(); 2589 w = wid->width();
2590 h = wid->height(); 2590 h = wid->height();
2591 list.clear(); 2591 list.clear();
2592 list << QString::number( x ); 2592 list << QString::number( x );
2593 list << QString::number( y ); 2593 list << QString::number( y );
2594 list << QString::number( w ); 2594 list << QString::number( w );
2595 list << QString::number( h ); 2595 list << QString::number( h );
2596 config->writeEntry("SearchLayout",list ); 2596 config->writeEntry("SearchLayout",list );
2597 } 2597 }
2598#endif 2598#endif
2599 2599
2600 2600
2601 config->sync(); 2601 config->sync();
2602} 2602}
2603 2603
2604void CalendarView::readFilterSettings(KConfig *config) 2604void CalendarView::readFilterSettings(KConfig *config)
2605{ 2605{
2606 // kdDebug() << "CalendarView::readFilterSettings()" << endl; 2606 // kdDebug() << "CalendarView::readFilterSettings()" << endl;
2607 2607
2608 mFilters.clear(); 2608 mFilters.clear();
2609 2609
2610 config->setGroup("General"); 2610 config->setGroup("General");
2611 QStringList filterList = config->readListEntry("CalendarFilters"); 2611 QStringList filterList = config->readListEntry("CalendarFilters");
2612 2612
2613 QStringList::ConstIterator it = filterList.begin(); 2613 QStringList::ConstIterator it = filterList.begin();
2614 QStringList::ConstIterator end = filterList.end(); 2614 QStringList::ConstIterator end = filterList.end();
2615 while(it != end) { 2615 while(it != end) {
2616 // kdDebug() << " filter: " << (*it) << endl; 2616 // kdDebug() << " filter: " << (*it) << endl;
2617 2617
2618 CalFilter *filter; 2618 CalFilter *filter;
2619 filter = new CalFilter(*it); 2619 filter = new CalFilter(*it);
2620 config->setGroup("Filter_" + (*it).utf8()); 2620 config->setGroup("Filter_" + (*it).utf8());
2621 //qDebug("readFilterSettings %d ",config->readNumEntry("Criteria",0) ); 2621 //qDebug("readFilterSettings %d ",config->readNumEntry("Criteria",0) );
2622 filter->setCriteria(config->readNumEntry("Criteria",0)); 2622 filter->setCriteria(config->readNumEntry("Criteria",0));
2623 filter->setCategoryList(config->readListEntry("CategoryList")); 2623 filter->setCategoryList(config->readListEntry("CategoryList"));
2624 mFilters.append(filter); 2624 mFilters.append(filter);
2625 2625
2626 ++it; 2626 ++it;
2627 } 2627 }
2628 2628
2629 if (mFilters.count() == 0) { 2629 if (mFilters.count() == 0) {
2630 CalFilter *filter = new CalFilter(i18n("Default")); 2630 CalFilter *filter = new CalFilter(i18n("Default"));
2631 mFilters.append(filter); 2631 mFilters.append(filter);
2632 } 2632 }
2633 mFilterView->updateFilters(); 2633 mFilterView->updateFilters();
2634 config->setGroup("FilterView"); 2634 config->setGroup("FilterView");
2635 2635
2636 mFilterView->blockSignals(true); 2636 mFilterView->blockSignals(true);
2637 mFilterView->setFiltersEnabled(config->readBoolEntry("FilterEnabled")); 2637 mFilterView->setFiltersEnabled(config->readBoolEntry("FilterEnabled"));
2638 mFilterView->setSelectedFilter(config->readEntry("Current Filter")); 2638 mFilterView->setSelectedFilter(config->readEntry("Current Filter"));
2639 mFilterView->blockSignals(false); 2639 mFilterView->blockSignals(false);
2640 // We do it manually to avoid it being done twice by the above calls 2640 // We do it manually to avoid it being done twice by the above calls
2641 updateFilter(); 2641 updateFilter();
2642} 2642}
2643 2643
2644void CalendarView::writeFilterSettings(KConfig *config) 2644void CalendarView::writeFilterSettings(KConfig *config)
2645{ 2645{
2646 // kdDebug() << "CalendarView::writeFilterSettings()" << endl; 2646 // kdDebug() << "CalendarView::writeFilterSettings()" << endl;
2647 2647
2648 QStringList filterList; 2648 QStringList filterList;
2649 2649
2650 CalFilter *filter = mFilters.first(); 2650 CalFilter *filter = mFilters.first();
2651 while(filter) { 2651 while(filter) {
2652 // kdDebug() << " fn: " << filter->name() << endl; 2652 // kdDebug() << " fn: " << filter->name() << endl;
2653 filterList << filter->name(); 2653 filterList << filter->name();
2654 config->setGroup("Filter_" + filter->name().utf8()); 2654 config->setGroup("Filter_" + filter->name().utf8());
2655 config->writeEntry("Criteria",filter->criteria()); 2655 config->writeEntry("Criteria",filter->criteria());
2656 config->writeEntry("CategoryList",filter->categoryList()); 2656 config->writeEntry("CategoryList",filter->categoryList());
2657 filter = mFilters.next(); 2657 filter = mFilters.next();
2658 } 2658 }
2659 config->setGroup("General"); 2659 config->setGroup("General");
2660 config->writeEntry("CalendarFilters",filterList); 2660 config->writeEntry("CalendarFilters",filterList);
2661 2661
2662 config->setGroup("FilterView"); 2662 config->setGroup("FilterView");
2663 config->writeEntry("FilterEnabled",mFilterView->filtersEnabled()); 2663 config->writeEntry("FilterEnabled",mFilterView->filtersEnabled());
2664 config->writeEntry("Current Filter",mFilterView->selectedFilter()->name()); 2664 config->writeEntry("Current Filter",mFilterView->selectedFilter()->name());
2665} 2665}
2666 2666
2667 2667
2668void CalendarView::goToday() 2668void CalendarView::goToday()
2669{ 2669{
2670 if ( mViewManager->currentView()->isMonthView() ) 2670 if ( mViewManager->currentView()->isMonthView() )
2671 mNavigator->selectTodayMonth(); 2671 mNavigator->selectTodayMonth();
2672 else 2672 else
2673 mNavigator->selectToday(); 2673 mNavigator->selectToday();
2674} 2674}
2675 2675
2676void CalendarView::goNext() 2676void CalendarView::goNext()
2677{ 2677{
2678 mNavigator->selectNext(); 2678 mNavigator->selectNext();
2679} 2679}
2680 2680
2681void CalendarView::goPrevious() 2681void CalendarView::goPrevious()
2682{ 2682{
2683 mNavigator->selectPrevious(); 2683 mNavigator->selectPrevious();
2684} 2684}
2685void CalendarView::goNextMonth() 2685void CalendarView::goNextMonth()
2686{ 2686{
2687 mNavigator->selectNextMonth(); 2687 mNavigator->selectNextMonth();
2688} 2688}
2689 2689
2690void CalendarView::goPreviousMonth() 2690void CalendarView::goPreviousMonth()
2691{ 2691{
2692 mNavigator->selectPreviousMonth(); 2692 mNavigator->selectPreviousMonth();
2693} 2693}
2694 2694
2695void CalendarView::updateConfig() 2695void CalendarView::updateConfig()
2696{ 2696{
2697 if ( KOPrefs::instance()->mUseAppColors ) 2697 if ( KOPrefs::instance()->mUseAppColors )
2698 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 2698 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
2699 emit configChanged(); 2699 emit configChanged();
2700 mTodoList->updateConfig(); 2700 mTodoList->updateConfig();
2701 // mDateNavigator->setFont ( KOPrefs::instance()->mDateNavigatorFont); 2701 // mDateNavigator->setFont ( KOPrefs::instance()->mDateNavigatorFont);
2702 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 2702 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
2703 // To make the "fill window" configurations work 2703 // To make the "fill window" configurations work
2704 //mViewManager->raiseCurrentView(); 2704 //mViewManager->raiseCurrentView();
2705} 2705}
2706 2706
2707 2707
2708void CalendarView::eventChanged(Event *event) 2708void CalendarView::eventChanged(Event *event)
2709{ 2709{
2710 changeEventDisplay(event,KOGlobals::EVENTEDITED); 2710 changeEventDisplay(event,KOGlobals::EVENTEDITED);
2711 //updateUnmanagedViews(); 2711 //updateUnmanagedViews();
2712} 2712}
2713 2713
2714void CalendarView::eventAdded(Event *event) 2714void CalendarView::eventAdded(Event *event)
2715{ 2715{
2716 changeEventDisplay(event,KOGlobals::EVENTADDED); 2716 changeEventDisplay(event,KOGlobals::EVENTADDED);
2717} 2717}
2718 2718
2719void CalendarView::eventToBeDeleted(Event *) 2719void CalendarView::eventToBeDeleted(Event *)
2720{ 2720{
2721 kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl; 2721 kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl;
2722} 2722}
2723 2723
2724void CalendarView::eventDeleted() 2724void CalendarView::eventDeleted()
2725{ 2725{
2726 changeEventDisplay(0,KOGlobals::EVENTDELETED); 2726 changeEventDisplay(0,KOGlobals::EVENTDELETED);
2727} 2727}
2728void CalendarView::changeTodoDisplay(Todo *which, int action) 2728void CalendarView::changeTodoDisplay(Todo *which, int action)
2729{ 2729{
2730 changeIncidenceDisplay((Incidence *)which, action); 2730 changeIncidenceDisplay((Incidence *)which, action);
2731 mDateNavigator->updateView(); //LR 2731 mDateNavigator->updateView(); //LR
2732 //mDialogManager->updateSearchDialog(); 2732 //mDialogManager->updateSearchDialog();
2733 2733
2734 if (which) { 2734 if (which) {
2735 mViewManager->updateWNview(); 2735 mViewManager->updateWNview();
2736 //mTodoList->updateView(); 2736 //mTodoList->updateView();
2737 } 2737 }
2738 2738
2739} 2739}
2740 2740
2741void CalendarView::changeIncidenceDisplay(Incidence *which, int action) 2741void CalendarView::changeIncidenceDisplay(Incidence *which, int action)
2742{ 2742{
2743 updateUnmanagedViews(); 2743 updateUnmanagedViews();
2744 //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action ); 2744 //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action );
2745 if ( action == KOGlobals::EVENTDELETED ) { //delete 2745 if ( action == KOGlobals::EVENTDELETED ) { //delete
2746 mCalendar->checkAlarmForIncidence( 0, true ); 2746 mCalendar->checkAlarmForIncidence( 0, true );
2747 if ( mEventViewerDialog ) 2747 if ( mEventViewerDialog )
2748 mEventViewerDialog->hide(); 2748 mEventViewerDialog->hide();
2749 } 2749 }
2750 else 2750 else
2751 mCalendar->checkAlarmForIncidence( which , false ); 2751 mCalendar->checkAlarmForIncidence( which , false );
2752} 2752}
2753 2753
2754// most of the changeEventDisplays() right now just call the view's 2754// most of the changeEventDisplays() right now just call the view's
2755// total update mode, but they SHOULD be recoded to be more refresh-efficient. 2755// total update mode, but they SHOULD be recoded to be more refresh-efficient.
2756void CalendarView::changeEventDisplay(Event *which, int action) 2756void CalendarView::changeEventDisplay(Event *which, int action)
2757{ 2757{
2758 // kdDebug() << "CalendarView::changeEventDisplay" << endl; 2758 // kdDebug() << "CalendarView::changeEventDisplay" << endl;
2759 changeIncidenceDisplay((Incidence *)which, action); 2759 changeIncidenceDisplay((Incidence *)which, action);
2760 static bool clearallviews = false; 2760 static bool clearallviews = false;
2761 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) { 2761 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) {
2762 if ( clearallviews ) { 2762 if ( clearallviews ) {
2763 clearAllViews(); 2763 clearAllViews();
2764 clearallviews = false; 2764 clearallviews = false;
2765 } 2765 }
2766 return; 2766 return;
2767 } 2767 }
2768 clearallviews = true; 2768 clearallviews = true;
2769 mDateNavigator->updateView(); 2769 mDateNavigator->updateView();
2770 //mDialogManager->updateSearchDialog(); 2770 //mDialogManager->updateSearchDialog();
2771 if (which) { 2771 if (which) {
2772 // If there is an event view visible update the display 2772 // If there is an event view visible update the display
2773 mViewManager->currentView()->changeEventDisplay(which,action); 2773 mViewManager->currentView()->changeEventDisplay(which,action);
2774 // TODO: check, if update needed 2774 // TODO: check, if update needed
2775 // if (which->getTodoStatus()) { 2775 // if (which->getTodoStatus()) {
2776 mTodoList->updateView(); 2776 mTodoList->updateView();
2777 if ( action != KOGlobals::EVENTDELETED ) { 2777 if ( action != KOGlobals::EVENTDELETED ) {
2778 mConflictingEvent = which ; 2778 mConflictingEvent = which ;
2779 QTimer::singleShot( 1000, this, SLOT ( checkConflictForEvent() ) ); 2779 int time = 1000;
2780#ifdef DESKTOP_VERSION
2781 time = 500;
2782#endif
2783 QTimer::singleShot( time, this, SLOT ( checkConflictForEvent() ) );
2780 } 2784 }
2781 // } 2785 // }
2782 } else { 2786 } else {
2783 mViewManager->currentView()->updateView(); 2787 mViewManager->currentView()->updateView();
2784 } 2788 }
2785} 2789}
2786void CalendarView::checkConflictForEvent() 2790void CalendarView::checkConflictForEvent()
2787{ 2791{
2788 2792
2789 if (!KOPrefs::instance()->mConfirm) 2793 if (!KOPrefs::instance()->mConfirm)
2790 return; 2794 return;
2791 if ( ! mConflictingEvent ) return; 2795 if ( ! mConflictingEvent ) return;
2792 QDateTime current = QDateTime::currentDateTime(); 2796 QDateTime current = QDateTime::currentDateTime();
2793 if ( ! mConflictingEvent->matchTime( &current, 0 ) ) { 2797 if ( ! mConflictingEvent->matchTime( &current, 0 ) ) {
2794 mConflictingEvent = 0; 2798 mConflictingEvent = 0;
2795 return; 2799 return;
2796 } 2800 }
2797 QPtrList<Event> testlist = mCalendar->events(); 2801 QPtrList<Event> testlist = mCalendar->events();
2798 Event * test = testlist.first(); 2802 Event * test = testlist.first();
2799 QDateTime conflict; 2803 QDateTime conflict;
2800 QDateTime retVal; 2804 QDateTime retVal;
2801 bool found = false; 2805 bool found = false;
2802 Event * cE = 0; 2806 Event * cE = 0;
2803 topLevelWidget()->setCaption( i18n("Checking conflicts ... please wait") ); 2807 topLevelWidget()->setCaption( i18n("Checking conflicts ... please wait") );
2804 while ( test ) { 2808 while ( test ) {
2805 qApp->processEvents(); 2809 qApp->processEvents();
2806 bool skip = false; 2810 bool skip = false;
2807 if ( found ) 2811 if ( found )
2808 skip = !test->matchTime( &current, &conflict ); 2812 skip = !test->matchTime( &current, &conflict );
2809 else 2813 else
2810 skip = !test->matchTime( &current, 0 ); 2814 skip = !test->matchTime( &current, 0 );
2811 if ( !skip && !test->doesFloat() ) { 2815 if ( !skip && !test->doesFloat() ) {
2812 if ( mConflictingEvent->isOverlapping ( test, &retVal, &current ) ) { 2816 if ( mConflictingEvent->isOverlapping ( test, &retVal, &current ) ) {
2813 if ( ! found ) { 2817 if ( ! found ) {
2814 conflict = retVal; 2818 conflict = retVal;
2815 cE = test; 2819 cE = test;
2816 } else { 2820 } else {
2817 if ( retVal < conflict ) { 2821 if ( retVal < conflict ) {
2818 conflict = retVal; 2822 conflict = retVal;
2819 cE = test; 2823 cE = test;
2820 } 2824 }
2821 } 2825 }
2822 found = true; 2826 found = true;
2823 } 2827 }
2824 } 2828 }
2825 test = testlist.next(); 2829 test = testlist.next();
2826 } 2830 }
2827 if ( found ) { 2831 if ( found ) {
2828 QString mess = i18n("The event\n%1\nconflicts with event\n%2\nat date\n%3.\n").arg(KGlobal::formatMessage ( mConflictingEvent->summary(),0 ) ).arg( KGlobal::formatMessage ( cE->summary(),0 )).arg(KGlobal::locale()->formatDate(conflict.date()) ) ; 2832 QString mess = i18n("The event\n%1\nconflicts with event\n%2\nat date\n%3.\n").arg(KGlobal::formatMessage ( mConflictingEvent->summary(),0 ) ).arg( KGlobal::formatMessage ( cE->summary(),0 )).arg(KGlobal::locale()->formatDate(conflict.date()) ) ;
2829 qApp->processEvents(); 2833 qApp->processEvents();
2830 int km = KMessageBox::warningContinueCancel(this,mess, 2834 int km = KMessageBox::warningContinueCancel(this,mess,
2831 i18n("KO/Pi Conflict delected"),i18n("Show date"),i18n("No problem!")); 2835 i18n("KO/Pi Conflict delected"),i18n("Show date"),i18n("No problem!"));
2832 if ( km != KMessageBox::Continue ) 2836 if ( km != KMessageBox::Continue )
2833 return; 2837 return;
2834 2838
2835 if ( mViewManager->currentView() != mViewManager->agendaView() || mNavigator->selectedDates().count() > 1 ) 2839 if ( mViewManager->currentView() != mViewManager->agendaView() || mNavigator->selectedDates().count() > 1 )
2836 mViewManager->showDayView(); 2840 mViewManager->showDayView();
2837 mNavigator->slotDaySelect( conflict.date() ); 2841 mNavigator->slotDaySelect( conflict.date() );
2838 int hour = conflict.time().hour(); 2842 int hour = conflict.time().hour();
2839 mViewManager->agendaView()->setStartHour( hour ); 2843 mViewManager->agendaView()->setStartHour( hour );
2840 topLevelWidget()->setCaption( i18n("Conflict %1 <-> %2"). arg( mConflictingEvent->summary().left( 20 ) ).arg( cE->summary().left( 20 ) ) ); 2844 topLevelWidget()->setCaption( i18n("Conflict %1 <-> %2"). arg( mConflictingEvent->summary().left( 20 ) ).arg( cE->summary().left( 20 ) ) );
2841 } else 2845 } else
2842 topLevelWidget()->setCaption( i18n("No conflict found") ); 2846 topLevelWidget()->setCaption( i18n("No conflict found") );
2843 mConflictingEvent = 0; 2847 mConflictingEvent = 0;
2844 return; 2848 return;
2845 2849
2846} 2850}
2847 2851
2848void CalendarView::updateTodoViews() 2852void CalendarView::updateTodoViews()
2849{ 2853{
2850 mTodoList->updateView(); 2854 mTodoList->updateView();
2851 mViewManager->currentView()->updateView(); 2855 mViewManager->currentView()->updateView();
2852 2856
2853} 2857}
2854 2858
2855 2859
2856 2860
2857void CalendarView::clearAllViews() 2861void CalendarView::clearAllViews()
2858{ 2862{
2859 mTodoList->clearList(); 2863 mTodoList->clearList();
2860 mViewManager->clearAllViews(); 2864 mViewManager->clearAllViews();
2861 SearchDialog * sd = mDialogManager->getSearchDialog(); 2865 SearchDialog * sd = mDialogManager->getSearchDialog();
2862 if ( sd ) { 2866 if ( sd ) {
2863 KOListView* kol = sd->listview(); 2867 KOListView* kol = sd->listview();
2864 if ( kol ) 2868 if ( kol )
2865 kol->clearList(); 2869 kol->clearList();
2866 } 2870 }
2867} 2871}
2868void CalendarView::updateView() 2872void CalendarView::updateView()
2869{ 2873{
2870 static bool clearallviews = false; 2874 static bool clearallviews = false;
2871 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) { 2875 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) {
2872 if ( clearallviews ) { 2876 if ( clearallviews ) {
2873 clearAllViews(); 2877 clearAllViews();
2874 clearallviews = false; 2878 clearallviews = false;
2875 } 2879 }
2876 return; 2880 return;
2877 } 2881 }
2878 clearallviews = true; 2882 clearallviews = true;
2879 DateList tmpList = mNavigator->selectedDates(); 2883 DateList tmpList = mNavigator->selectedDates();
2880 2884
2881 if ( KOPrefs::instance()->mHideNonStartedTodos ) 2885 if ( KOPrefs::instance()->mHideNonStartedTodos )
2882 mTodoList->updateView(); 2886 mTodoList->updateView();
2883 // We assume that the navigator only selects consecutive days. 2887 // We assume that the navigator only selects consecutive days.
2884 updateView( tmpList.first(), tmpList.last() ); 2888 updateView( tmpList.first(), tmpList.last() );
2885} 2889}
2886 2890
2887void CalendarView::updateUnmanagedViews() 2891void CalendarView::updateUnmanagedViews()
2888{ 2892{
2889 mDateNavigator->updateDayMatrix(); 2893 mDateNavigator->updateDayMatrix();
2890} 2894}
2891 2895
2892int CalendarView::msgItemDelete(const QString name) 2896int CalendarView::msgItemDelete(const QString name)
2893{ 2897{
2894 return KMessageBox::warningContinueCancel(this,name +"\n\n"+ 2898 return KMessageBox::warningContinueCancel(this,name +"\n\n"+
2895 i18n("This item will be\npermanently deleted."), 2899 i18n("This item will be\npermanently deleted."),
2896 i18n("KO/Pi Confirmation"),i18n("Delete")); 2900 i18n("KO/Pi Confirmation"),i18n("Delete"));
2897} 2901}
2898 2902
2899 2903
2900void CalendarView::edit_cut() 2904void CalendarView::edit_cut()
2901{ 2905{
2902 Event *anEvent=0; 2906 Event *anEvent=0;
2903 2907
2904 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2908 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2905 2909
2906 if (mViewManager->currentView()->isEventView()) { 2910 if (mViewManager->currentView()->isEventView()) {
2907 if ( incidence && incidence->typeID() == eventID ) { 2911 if ( incidence && incidence->typeID() == eventID ) {
2908 anEvent = static_cast<Event *>(incidence); 2912 anEvent = static_cast<Event *>(incidence);
2909 } 2913 }
2910 } 2914 }
2911 2915
2912 if (!anEvent) { 2916 if (!anEvent) {
2913 KNotifyClient::beep(); 2917 KNotifyClient::beep();
2914 return; 2918 return;
2915 } 2919 }
2916 DndFactory factory( mCalendar ); 2920 DndFactory factory( mCalendar );
2917 factory.cutIncidence(anEvent); 2921 factory.cutIncidence(anEvent);
2918 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); 2922 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED);
2919} 2923}
2920 2924
2921void CalendarView::edit_copy() 2925void CalendarView::edit_copy()
2922{ 2926{
2923 Event *anEvent=0; 2927 Event *anEvent=0;
2924 2928
2925 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2929 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2926 2930
2927 if (mViewManager->currentView()->isEventView()) { 2931 if (mViewManager->currentView()->isEventView()) {
2928 if ( incidence && incidence->typeID() == eventID ) { 2932 if ( incidence && incidence->typeID() == eventID ) {
2929 anEvent = static_cast<Event *>(incidence); 2933 anEvent = static_cast<Event *>(incidence);
2930 } 2934 }
2931 } 2935 }
2932 2936
2933 if (!anEvent) { 2937 if (!anEvent) {
2934 KNotifyClient::beep(); 2938 KNotifyClient::beep();
2935 return; 2939 return;
2936 } 2940 }
2937 DndFactory factory( mCalendar ); 2941 DndFactory factory( mCalendar );
2938 factory.copyIncidence(anEvent); 2942 factory.copyIncidence(anEvent);
2939} 2943}
2940 2944
2941void CalendarView::edit_paste() 2945void CalendarView::edit_paste()
2942{ 2946{
2943 QDate date = mNavigator->selectedDates().first(); 2947 QDate date = mNavigator->selectedDates().first();
2944 2948
2945 DndFactory factory( mCalendar ); 2949 DndFactory factory( mCalendar );
2946 Event *pastedEvent = (Event *)factory.pasteIncidence( date ); 2950 Event *pastedEvent = (Event *)factory.pasteIncidence( date );
2947 2951
2948 changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED ); 2952 changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED );
2949} 2953}
2950void CalendarView::edit_global_options() 2954void CalendarView::edit_global_options()
2951{ 2955{
2952 QString tz = KPimGlobalPrefs::instance()->mTimeZoneId; 2956 QString tz = KPimGlobalPrefs::instance()->mTimeZoneId;
2953 emit save(); 2957 emit save();
2954 emit saveStopTimer(); 2958 emit saveStopTimer();
2955 mDialogManager->showGlobalOptionsDialog(); 2959 mDialogManager->showGlobalOptionsDialog();
2956 if ( tz != KPimGlobalPrefs::instance()->mTimeZoneId) { 2960 if ( tz != KPimGlobalPrefs::instance()->mTimeZoneId) {
2957 emit saveStopTimer(); 2961 emit saveStopTimer();
2958 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!"), 2962 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!"),
2959 i18n("Timezone settings"),i18n("Reload"))) { 2963 i18n("Timezone settings"),i18n("Reload"))) {
2960 qDebug("KO: TZ reload cancelled "); 2964 qDebug("KO: TZ reload cancelled ");
2961 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 2965 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
2962 return; 2966 return;
2963 } 2967 }
2964 qDebug("KO: Timezone change "); 2968 qDebug("KO: Timezone change ");
2965 loadCalendars(); 2969 loadCalendars();
2966 setModified(true); 2970 setModified(true);
2967 } 2971 }
2968 else 2972 else
2969 qDebug("KO: No tz change "); 2973 qDebug("KO: No tz change ");
2970} 2974}
2971void CalendarView::edit_options() 2975void CalendarView::edit_options()
2972{ 2976{
2973 mDialogManager->showOptionsDialog(); 2977 mDialogManager->showOptionsDialog();
2974} 2978}
2975 2979
2976 2980
2977void CalendarView::slotSelectPickerDate( QDate d) 2981void CalendarView::slotSelectPickerDate( QDate d)
2978{ 2982{
2979 mDateFrame->hide(); 2983 mDateFrame->hide();
2980 if ( mDatePickerMode == 1 ) { 2984 if ( mDatePickerMode == 1 ) {
2981 mNavigator->slotDaySelect( d ); 2985 mNavigator->slotDaySelect( d );
2982 } else if ( mDatePickerMode == 2 ) { 2986 } else if ( mDatePickerMode == 2 ) {
2983 if ( mMoveIncidence->typeID() == todoID ) { 2987 if ( mMoveIncidence->typeID() == todoID ) {
2984 Todo * to = (Todo *) mMoveIncidence; 2988 Todo * to = (Todo *) mMoveIncidence;
2985 QTime tim; 2989 QTime tim;
2986 int len = 0; 2990 int len = 0;
2987 if ( to->hasStartDate() && to->hasDueDate() ) 2991 if ( to->hasStartDate() && to->hasDueDate() )
2988 len = to->dtStart().secsTo( to->dtDue()); 2992 len = to->dtStart().secsTo( to->dtDue());
2989 if ( to->hasDueDate() ) 2993 if ( to->hasDueDate() )
2990 tim = to->dtDue().time(); 2994 tim = to->dtDue().time();
2991 else { 2995 else {
2992 tim = QTime ( 0,0,0 ); 2996 tim = QTime ( 0,0,0 );
2993 to->setFloats( true ); 2997 to->setFloats( true );
2994 to->setHasDueDate( true ); 2998 to->setHasDueDate( true );
2995 } 2999 }
2996 QDateTime dt ( d,tim ); 3000 QDateTime dt ( d,tim );
2997 to->setDtDue( dt ); 3001 to->setDtDue( dt );
2998 3002
2999 if ( to->hasStartDate() ) { 3003 if ( to->hasStartDate() ) {
3000 if ( len>0 ) 3004 if ( len>0 )
3001 to->setDtStart(to->dtDue().addSecs( -len )); 3005 to->setDtStart(to->dtDue().addSecs( -len ));
3002 else 3006 else
3003 if (to->dtStart() > to->dtDue() ) 3007 if (to->dtStart() > to->dtDue() )
3004 to->setDtStart(to->dtDue().addDays( -3 )); 3008 to->setDtStart(to->dtDue().addDays( -3 ));
3005 } 3009 }
3006 3010
3007 todoChanged( to ); 3011 todoChanged( to );
3008 } else if ( mMoveIncidence->typeID() == eventID ) { 3012 } else if ( mMoveIncidence->typeID() == eventID ) {
3009 if ( mMoveIncidence->doesRecur() ) { 3013 if ( mMoveIncidence->doesRecur() ) {
3010#if 0 3014#if 0
3011 // PENDING implement this 3015 // PENDING implement this
3012 Incidence* newInc = mMoveIncidence->recreateCloneException( mMoveIncidenceOldDate ); 3016 Incidence* newInc = mMoveIncidence->recreateCloneException( mMoveIncidenceOldDate );
3013 mCalendar()->addIncidence( newInc ); 3017 mCalendar()->addIncidence( newInc );
3014 if ( mMoveIncidence->typeID() == todoID ) 3018 if ( mMoveIncidence->typeID() == todoID )
3015 emit todoMoved((Todo*)mMoveIncidence, KOGlobals::EVENTEDITED ); 3019 emit todoMoved((Todo*)mMoveIncidence, KOGlobals::EVENTEDITED );
3016 else 3020 else
3017 emit incidenceChanged(mMoveIncidence, KOGlobals::EVENTEDITED); 3021 emit incidenceChanged(mMoveIncidence, KOGlobals::EVENTEDITED);
3018 mMoveIncidence = newInc; 3022 mMoveIncidence = newInc;
3019 3023
3020#endif 3024#endif
3021 } 3025 }
3022 QTime tim = mMoveIncidence->dtStart().time(); 3026 QTime tim = mMoveIncidence->dtStart().time();
3023 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd()); 3027 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd());
3024 QDateTime dt ( d,tim ); 3028 QDateTime dt ( d,tim );
3025 mMoveIncidence->setDtStart( dt ); 3029 mMoveIncidence->setDtStart( dt );
3026 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) ); 3030 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) );
3027 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED); 3031 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED);
3028 } else if ( mMoveIncidence->typeID() == journalID ) { 3032 } else if ( mMoveIncidence->typeID() == journalID ) {
3029 QTime tim = mMoveIncidence->dtStart().time(); 3033 QTime tim = mMoveIncidence->dtStart().time();
3030 QDateTime dt ( d,tim ); 3034 QDateTime dt ( d,tim );
3031 mMoveIncidence->setDtStart( dt ); 3035 mMoveIncidence->setDtStart( dt );
3032 updateView(); 3036 updateView();
3033 } 3037 }
3034 mMoveIncidence->setRevision( mMoveIncidence->revision()+1 ); 3038 mMoveIncidence->setRevision( mMoveIncidence->revision()+1 );
3035 } 3039 }
3036} 3040}
3037 3041
3038void CalendarView::removeCategories() 3042void CalendarView::removeCategories()
3039{ 3043{
3040 QPtrList<Incidence> incList = mCalendar->rawIncidences(); 3044 QPtrList<Incidence> incList = mCalendar->rawIncidences();
3041 QStringList catList = KOPrefs::instance()->mCustomCategories; 3045 QStringList catList = KOPrefs::instance()->mCustomCategories;
3042 QStringList catIncList; 3046 QStringList catIncList;
3043 QStringList newCatList; 3047 QStringList newCatList;
3044 Incidence* inc = incList.first(); 3048 Incidence* inc = incList.first();
3045 uint i; 3049 uint i;
3046 while ( inc ) { 3050 while ( inc ) {
3047 newCatList.clear(); 3051 newCatList.clear();
3048 catIncList = inc->categories() ; 3052 catIncList = inc->categories() ;
3049 for( i = 0; i< catIncList.count(); ++i ) { 3053 for( i = 0; i< catIncList.count(); ++i ) {
3050 if ( catList.contains (catIncList[i])) 3054 if ( catList.contains (catIncList[i]))
3051 newCatList.append( catIncList[i] ); 3055 newCatList.append( catIncList[i] );
3052 } 3056 }
3053 newCatList.sort(); 3057 newCatList.sort();
3054 inc->setCategories( newCatList.join(",") ); 3058 inc->setCategories( newCatList.join(",") );
3055 inc = incList.next(); 3059 inc = incList.next();
3056 } 3060 }
3057} 3061}
3058 3062
3059int CalendarView::addCategories() 3063int CalendarView::addCategories()
3060{ 3064{
3061 QPtrList<Incidence> incList = mCalendar->rawIncidences(); 3065 QPtrList<Incidence> incList = mCalendar->rawIncidences();
3062 QStringList catList = KOPrefs::instance()->mCustomCategories; 3066 QStringList catList = KOPrefs::instance()->mCustomCategories;
3063 QStringList catIncList; 3067 QStringList catIncList;
3064 Incidence* inc = incList.first(); 3068 Incidence* inc = incList.first();
3065 uint i; 3069 uint i;
3066 int count = 0; 3070 int count = 0;
3067 while ( inc ) { 3071 while ( inc ) {
3068 catIncList = inc->categories() ; 3072 catIncList = inc->categories() ;
3069 for( i = 0; i< catIncList.count(); ++i ) { 3073 for( i = 0; i< catIncList.count(); ++i ) {
3070 if ( !catList.contains (catIncList[i])) { 3074 if ( !catList.contains (catIncList[i])) {
3071 catList.append( catIncList[i] ); 3075 catList.append( catIncList[i] );
3072 //qDebug("add cat %s ", catIncList[i].latin1()); 3076 //qDebug("add cat %s ", catIncList[i].latin1());
3073 ++count; 3077 ++count;
3074 } 3078 }
3075 } 3079 }
3076 inc = incList.next(); 3080 inc = incList.next();
3077 } 3081 }
3078 catList.sort(); 3082 catList.sort();
3079 KOPrefs::instance()->mCustomCategories = catList; 3083 KOPrefs::instance()->mCustomCategories = catList;
3080 return count; 3084 return count;
3081} 3085}
3082 3086
3083void CalendarView::editCategories() 3087void CalendarView::editCategories()
3084{ 3088{
3085 qDebug("CalendarView::editCategories() "); 3089 qDebug("CalendarView::editCategories() ");
3086 KPIM::CategoryEditDialog ced (KOPrefs::instance(),this ); 3090 KPIM::CategoryEditDialog ced (KOPrefs::instance(),this );
3087 ced.exec(); 3091 ced.exec();
3088} 3092}
3089void CalendarView::manageCategories() 3093void CalendarView::manageCategories()
3090{ 3094{
3091 KOCatPrefs* cp = new KOCatPrefs(); 3095 KOCatPrefs* cp = new KOCatPrefs();
3092 cp->show(); 3096 cp->show();
3093 int w =cp->sizeHint().width() ; 3097 int w =cp->sizeHint().width() ;
3094 int h = cp->sizeHint().height() ; 3098 int h = cp->sizeHint().height() ;
3095 int dw = QApplication::desktop()->width(); 3099 int dw = QApplication::desktop()->width();
3096 int dh = QApplication::desktop()->height(); 3100 int dh = QApplication::desktop()->height();
3097 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 3101 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
3098 if ( !cp->exec() ) { 3102 if ( !cp->exec() ) {
3099 delete cp; 3103 delete cp;
3100 return; 3104 return;
3101 } 3105 }
3102 int count = 0; 3106 int count = 0;
3103 if ( cp->addCat() ) { 3107 if ( cp->addCat() ) {
3104 count = addCategories(); 3108 count = addCategories();
3105 if ( count ) { 3109 if ( count ) {
3106 topLevelWidget()->setCaption(QString::number( count )+ i18n(" Categories added to list! ")); 3110 topLevelWidget()->setCaption(QString::number( count )+ i18n(" Categories added to list! "));
3107 writeSettings(); 3111 writeSettings();
3108 } else 3112 } else
3109 topLevelWidget()->setCaption(QString::number( 0 )+ i18n(" Categories added to list! ")); 3113 topLevelWidget()->setCaption(QString::number( 0 )+ i18n(" Categories added to list! "));
3110 } else { 3114 } else {
3111 removeCategories(); 3115 removeCategories();
3112 updateView(); 3116 updateView();
3113 } 3117 }
3114 delete cp; 3118 delete cp;
3115} 3119}
3116 3120
3117void CalendarView::beamIncidence(Incidence * Inc) 3121void CalendarView::beamIncidence(Incidence * Inc)
3118{ 3122{
3119 QPtrList<Incidence> delSel ; 3123 QPtrList<Incidence> delSel ;
3120 delSel.append(Inc); 3124 delSel.append(Inc);
3121 beamIncidenceList( delSel ); 3125 beamIncidenceList( delSel );
3122} 3126}
3123void CalendarView::beamCalendar() 3127void CalendarView::beamCalendar()
3124{ 3128{
3125 QPtrList<Incidence> delSel = mCalendar->rawIncidences(); 3129 QPtrList<Incidence> delSel = mCalendar->rawIncidences();
3126 //qDebug("beamCalendar() "); 3130 //qDebug("beamCalendar() ");
3127 beamIncidenceList( delSel ); 3131 beamIncidenceList( delSel );
3128} 3132}
3129void CalendarView::beamFilteredCalendar() 3133void CalendarView::beamFilteredCalendar()
3130{ 3134{
3131 QPtrList<Incidence> delSel = mCalendar->incidences(); 3135 QPtrList<Incidence> delSel = mCalendar->incidences();
3132 //qDebug("beamFilteredCalendar() "); 3136 //qDebug("beamFilteredCalendar() ");
3133 beamIncidenceList( delSel ); 3137 beamIncidenceList( delSel );
3134} 3138}
3135void CalendarView::beamIncidenceList(QPtrList<Incidence> delSel ) 3139void CalendarView::beamIncidenceList(QPtrList<Incidence> delSel )
3136{ 3140{
3137 3141
3138 KOBeamPrefs beamDialog; 3142 KOBeamPrefs beamDialog;
3139 if ( beamDialog.exec () == QDialog::Rejected ) 3143 if ( beamDialog.exec () == QDialog::Rejected )
3140 return; 3144 return;
3141#ifdef DESKTOP_VERSION 3145#ifdef DESKTOP_VERSION
3142 QString fn = locateLocal( "tmp", "kopibeamfile" ); 3146 QString fn = locateLocal( "tmp", "kopibeamfile" );
3143#else 3147#else
3144 QString fn = "/tmp/kopibeamfile"; 3148 QString fn = "/tmp/kopibeamfile";
3145#endif 3149#endif
3146 QString mes; 3150 QString mes;
3147 bool createbup = true; 3151 bool createbup = true;
3148 if ( createbup ) { 3152 if ( createbup ) {
3149 QString description = "\n"; 3153 QString description = "\n";
3150 CalendarLocal* cal = new CalendarLocal(); 3154 CalendarLocal* cal = new CalendarLocal();
3151 if ( beamDialog.beamLocal() ) 3155 if ( beamDialog.beamLocal() )
3152 cal->setLocalTime(); 3156 cal->setLocalTime();
3153 else 3157 else
3154 cal->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 3158 cal->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
3155 Incidence *incidence = delSel.first(); 3159 Incidence *incidence = delSel.first();
3156 bool addText = false; 3160 bool addText = false;
3157 if ( delSel.count() < 10 ) 3161 if ( delSel.count() < 10 )
3158 addText = true; 3162 addText = true;
3159 else { 3163 else {
3160 description.sprintf(i18n(" %d items?"),delSel.count() ); 3164 description.sprintf(i18n(" %d items?"),delSel.count() );
3161 } 3165 }
3162 while ( incidence ) { 3166 while ( incidence ) {
3163 Incidence *in = incidence->clone(); 3167 Incidence *in = incidence->clone();