summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koagenda.cpp8
-rw-r--r--korganizer/koagendaview.cpp2
-rw-r--r--korganizer/koeditorgeneraltodo.cpp3
-rw-r--r--korganizer/navigatorbar.cpp6
4 files changed, 18 insertions, 1 deletions
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp
index ed7a443..1a24887 100644
--- a/korganizer/koagenda.cpp
+++ b/korganizer/koagenda.cpp
@@ -332,256 +332,264 @@ void KOAgenda::clear()
332 332
333void KOAgenda::clearSelection() 333void KOAgenda::clearSelection()
334{ 334{
335 mSelectionCellX = 0; 335 mSelectionCellX = 0;
336 mSelectionYTop = 0; 336 mSelectionYTop = 0;
337 mSelectionHeight = 0; 337 mSelectionHeight = 0;
338} 338}
339 339
340void KOAgenda::marcus_bains() 340void KOAgenda::marcus_bains()
341{ 341{
342 if(mMarcusBains) mMarcusBains->updateLocation(true); 342 if(mMarcusBains) mMarcusBains->updateLocation(true);
343} 343}
344 344
345 345
346void KOAgenda::changeColumns(int columns) 346void KOAgenda::changeColumns(int columns)
347{ 347{
348 if (columns == 0) { 348 if (columns == 0) {
349 qDebug("KOAgenda::changeColumns() called with argument 0 "); 349 qDebug("KOAgenda::changeColumns() called with argument 0 ");
350 return; 350 return;
351 } 351 }
352 clear(); 352 clear();
353 mColumns = columns; 353 mColumns = columns;
354 computeSizes(); 354 computeSizes();
355} 355}
356 356
357/* 357/*
358 This is the eventFilter function, which gets all events from the KOAgendaItems 358 This is the eventFilter function, which gets all events from the KOAgendaItems
359 contained in the agenda. It has to handle moving and resizing for all items. 359 contained in the agenda. It has to handle moving and resizing for all items.
360*/ 360*/
361bool KOAgenda::eventFilter ( QObject *object, QEvent *event ) 361bool KOAgenda::eventFilter ( QObject *object, QEvent *event )
362{ 362{
363 // kdDebug() << "KOAgenda::eventFilter" << endl; 363 // kdDebug() << "KOAgenda::eventFilter" << endl;
364 switch(event->type()) { 364 switch(event->type()) {
365 case QEvent::MouseButtonPress: 365 case QEvent::MouseButtonPress:
366 case QEvent::MouseButtonDblClick: 366 case QEvent::MouseButtonDblClick:
367 case QEvent::MouseButtonRelease: 367 case QEvent::MouseButtonRelease:
368 case QEvent::MouseMove: 368 case QEvent::MouseMove:
369 return eventFilter_mouse(object, static_cast<QMouseEvent *>(event)); 369 return eventFilter_mouse(object, static_cast<QMouseEvent *>(event));
370 370
371 case (QEvent::Leave): 371 case (QEvent::Leave):
372 if (!mActionItem) 372 if (!mActionItem)
373 setCursor(arrowCursor); 373 setCursor(arrowCursor);
374 return true; 374 return true;
375 375
376 default: 376 default:
377 return QScrollView::eventFilter(object,event); 377 return QScrollView::eventFilter(object,event);
378 } 378 }
379} 379}
380void KOAgenda::popupMenu() 380void KOAgenda::popupMenu()
381{ 381{
382 mPopupTimer->stop(); 382 mPopupTimer->stop();
383 if ( mPopupKind == 1 ) { 383 if ( mPopupKind == 1 ) {
384 if (mActionItem ) { 384 if (mActionItem ) {
385 endItemAction(); 385 endItemAction();
386 } 386 }
387 mLeftMouseDown = false; // no more leftMouse computation 387 mLeftMouseDown = false; // no more leftMouse computation
388 if (mPopupItem) { 388 if (mPopupItem) {
389 selectItem(mPopupItem); 389 selectItem(mPopupItem);
390 emit showIncidencePopupSignal(mPopupItem->incidence()); 390 emit showIncidencePopupSignal(mPopupItem->incidence());
391 391
392 } 392 }
393 } else if ( mPopupKind == 2 ) { 393 } else if ( mPopupKind == 2 ) {
394 if ( mLeftMouseDown ) { // we have a simulated right click - clear left mouse action 394 if ( mLeftMouseDown ) { // we have a simulated right click - clear left mouse action
395 endSelectAction( false ); // do not emit new event signal 395 endSelectAction( false ); // do not emit new event signal
396 mLeftMouseDown = false; // no more leftMouse computation 396 mLeftMouseDown = false; // no more leftMouse computation
397 } 397 }
398 mNewItemPopup->popup( mPopupPos); 398 mNewItemPopup->popup( mPopupPos);
399 } 399 }
400 mLeftMouseDown = false; 400 mLeftMouseDown = false;
401 mPopupItem = 0; 401 mPopupItem = 0;
402 mPopupKind = 0; 402 mPopupKind = 0;
403} 403}
404 404
405bool KOAgenda::eventFilter_mouse(QObject *object, QMouseEvent *me) 405bool KOAgenda::eventFilter_mouse(QObject *object, QMouseEvent *me)
406{ 406{
407 //qDebug("KOAgenda::eventFilter_mous "); 407 //qDebug("KOAgenda::eventFilter_mous ");
408 QPoint viewportPos; 408 QPoint viewportPos;
409 if (object != viewport()) { 409 if (object != viewport()) {
410 viewportPos = ((QWidget *)object)->mapToParent(me->pos()); 410 viewportPos = ((QWidget *)object)->mapToParent(me->pos());
411 } else { 411 } else {
412 viewportPos = me->pos(); 412 viewportPos = me->pos();
413 } 413 }
414 static int startX = 0; 414 static int startX = 0;
415 static int startY = 0; 415 static int startY = 0;
416 static int blockmoveDist = ( QApplication::desktop()->width() < 480 ? 15 : 20 ); 416 static int blockmoveDist = ( QApplication::desktop()->width() < 480 ? 15 : 20 );
417 static bool blockMoving = true; 417 static bool blockMoving = true;
418 switch (me->type()) { 418 switch (me->type()) {
419 case QEvent::MouseButtonPress: 419 case QEvent::MouseButtonPress:
420 if (me->button() == LeftButton) { 420 if (me->button() == LeftButton) {
421 mPopupTimer->start( 600 ); 421 mPopupTimer->start( 600 );
422 mLeftMouseDown = true; 422 mLeftMouseDown = true;
423 } 423 }
424 blockMoving = true; 424 blockMoving = true;
425 startX = viewportPos.x(); 425 startX = viewportPos.x();
426 startY = viewportPos.y(); 426 startY = viewportPos.y();
427 if (object != viewport()) { 427 if (object != viewport()) {
428 mPopupItem = (KOAgendaItem *)object; 428 mPopupItem = (KOAgendaItem *)object;
429 mPopupKind = 1; 429 mPopupKind = 1;
430 if (me->button() == RightButton) { 430 if (me->button() == RightButton) {
431 popupMenu(); 431 popupMenu();
432 } else if (me->button() == LeftButton) { 432 } else if (me->button() == LeftButton) {
433 mActionItem = (KOAgendaItem *)object; 433 mActionItem = (KOAgendaItem *)object;
434 if (mActionItem) { 434 if (mActionItem) {
435 if ( mSelectionHeight > 0 ) { 435 if ( mSelectionHeight > 0 ) {
436 int selectionCellX = mSelectionCellX * mGridSpacingX; 436 int selectionCellX = mSelectionCellX * mGridSpacingX;
437 int selectionYTop = mSelectionYTop; 437 int selectionYTop = mSelectionYTop;
438 int gridSpacingX = mGridSpacingX; 438 int gridSpacingX = mGridSpacingX;
439 int selectionHeight = mSelectionHeight; 439 int selectionHeight = mSelectionHeight;
440 clearSelection(); 440 clearSelection();
441 repaintContents( selectionCellX, selectionYTop, 441 repaintContents( selectionCellX, selectionYTop,
442 gridSpacingX, selectionHeight,false ); 442 gridSpacingX, selectionHeight,false );
443 } 443 }
444 selectItem(mActionItem); 444 selectItem(mActionItem);
445 Incidence *incidence = mActionItem->incidence(); 445 Incidence *incidence = mActionItem->incidence();
446 if ( incidence->isReadOnly() /*|| incidence->recurrence()->doesRecur() */) { 446 if ( incidence->isReadOnly() /*|| incidence->recurrence()->doesRecur() */) {
447 mActionItem = 0; 447 mActionItem = 0;
448 } else { 448 } else {
449 startItemAction(viewportPos); 449 startItemAction(viewportPos);
450 } 450 }
451 } 451 }
452 } 452 }
453 } else { // ---------- viewport() 453 } else { // ---------- viewport()
454 mPopupItem = 0; 454 mPopupItem = 0;
455 mPopupKind = 2; 455 mPopupKind = 2;
456 selectItem(0); 456 selectItem(0);
457 mActionItem = 0; 457 mActionItem = 0;
458 mPopupPos = viewport()->mapToGlobal( me->pos() ); 458 mPopupPos = viewport()->mapToGlobal( me->pos() );
459 if (me->button() == RightButton) { 459 if (me->button() == RightButton) {
460 int x,y;
461 viewportToContents(viewportPos.x(),viewportPos.y(),x,y);
462 int gx,gy;
463 contentsToGrid(x,y,gx,gy);
464 mCurrentCellX = gx;
465 mCurrentCellY = gy;
466 mStartCellX = gx;
467 mStartCellY = gy;
460 popupMenu(); 468 popupMenu();
461 } else if (me->button() == LeftButton) { 469 } else if (me->button() == LeftButton) {
462 setCursor(arrowCursor); 470 setCursor(arrowCursor);
463 startSelectAction(viewportPos); 471 startSelectAction(viewportPos);
464 } 472 }
465 } 473 }
466 break; 474 break;
467 475
468 case QEvent::MouseButtonRelease: 476 case QEvent::MouseButtonRelease:
469 if (me->button() == LeftButton ) { 477 if (me->button() == LeftButton ) {
470 mPopupTimer->stop(); 478 mPopupTimer->stop();
471 } 479 }
472 if (object != viewport()) { 480 if (object != viewport()) {
473 if (me->button() == LeftButton && mLeftMouseDown) { 481 if (me->button() == LeftButton && mLeftMouseDown) {
474 if (mActionItem) { 482 if (mActionItem) {
475 QPoint clipperPos = clipper()->mapFromGlobal(viewport()->mapToGlobal(viewportPos)); 483 QPoint clipperPos = clipper()->mapFromGlobal(viewport()->mapToGlobal(viewportPos));
476 //qDebug(" %d %d %d ",clipperPos.y(),visibleHeight() , 9 ); 484 //qDebug(" %d %d %d ",clipperPos.y(),visibleHeight() , 9 );
477 if ( mActionType == MOVE && (clipperPos.y() > visibleHeight()-2 ||clipperPos.y() < 0 ) ) { 485 if ( mActionType == MOVE && (clipperPos.y() > visibleHeight()-2 ||clipperPos.y() < 0 ) ) {
478 mScrollUpTimer.stop(); 486 mScrollUpTimer.stop();
479 mScrollDownTimer.stop(); 487 mScrollDownTimer.stop();
480 mActionItem->resetMove(); 488 mActionItem->resetMove();
481 placeSubCells( mActionItem ); 489 placeSubCells( mActionItem );
482 // emit startDragSignal( mActionItem->incidence() ); 490 // emit startDragSignal( mActionItem->incidence() );
483 setCursor( arrowCursor ); 491 setCursor( arrowCursor );
484 mActionItem = 0; 492 mActionItem = 0;
485 mActionType = NOP; 493 mActionType = NOP;
486 mItemMoved = 0; 494 mItemMoved = 0;
487 mLeftMouseDown = false; 495 mLeftMouseDown = false;
488 return true; 496 return true;
489 } 497 }
490 endItemAction(); 498 endItemAction();
491 } 499 }
492 } 500 }
493 501
494 } else { // ---------- viewport() 502 } else { // ---------- viewport()
495 if (me->button() == LeftButton && mLeftMouseDown ) { //left click 503 if (me->button() == LeftButton && mLeftMouseDown ) { //left click
496 endSelectAction( true ); // emit new event signal 504 endSelectAction( true ); // emit new event signal
497 } 505 }
498 } 506 }
499 if (me->button() == LeftButton) 507 if (me->button() == LeftButton)
500 mLeftMouseDown = false; 508 mLeftMouseDown = false;
501 509
502 break; 510 break;
503 511
504 case QEvent::MouseMove: 512 case QEvent::MouseMove:
505 if ( !mLeftMouseDown ) 513 if ( !mLeftMouseDown )
506 return true; 514 return true;
507 if ( blockMoving ) { 515 if ( blockMoving ) {
508 int dX, dY; 516 int dX, dY;
509 dX = startX - viewportPos.x(); 517 dX = startX - viewportPos.x();
510 if ( dX < 0 ) 518 if ( dX < 0 )
511 dX = -dX; 519 dX = -dX;
512 dY = viewportPos.y() - startY; 520 dY = viewportPos.y() - startY;
513 if ( dY < 0 ) 521 if ( dY < 0 )
514 dY = -dY; 522 dY = -dY;
515 //qDebug("%d %d %d ", dX, dY , blockmoveDist ); 523 //qDebug("%d %d %d ", dX, dY , blockmoveDist );
516 if ( dX > blockmoveDist || dY > blockmoveDist ) { 524 if ( dX > blockmoveDist || dY > blockmoveDist ) {
517 blockMoving = false; 525 blockMoving = false;
518 } 526 }
519 } 527 }
520 if ( ! blockMoving ) 528 if ( ! blockMoving )
521 mPopupTimer->stop(); 529 mPopupTimer->stop();
522 if (object != viewport()) { 530 if (object != viewport()) {
523 KOAgendaItem *moveItem = (KOAgendaItem *)object; 531 KOAgendaItem *moveItem = (KOAgendaItem *)object;
524 if (!moveItem->incidence()->isReadOnly() ) { 532 if (!moveItem->incidence()->isReadOnly() ) {
525 if (!mActionItem) 533 if (!mActionItem)
526 setNoActionCursor(moveItem,viewportPos); 534 setNoActionCursor(moveItem,viewportPos);
527 else { 535 else {
528 if ( !blockMoving ) 536 if ( !blockMoving )
529 performItemAction(viewportPos); 537 performItemAction(viewportPos);
530 } 538 }
531 } 539 }
532 } else { // ---------- viewport() 540 } else { // ---------- viewport()
533 mPopupPos = viewport()->mapToGlobal( me->pos() ); 541 mPopupPos = viewport()->mapToGlobal( me->pos() );
534 if ( mActionType == SELECT ) { 542 if ( mActionType == SELECT ) {
535 performSelectAction( viewportPos ); 543 performSelectAction( viewportPos );
536 } 544 }
537 } 545 }
538 break; 546 break;
539 547
540 case QEvent::MouseButtonDblClick: 548 case QEvent::MouseButtonDblClick:
541 mPopupTimer->stop(); 549 mPopupTimer->stop();
542 if (object == viewport()) { 550 if (object == viewport()) {
543 selectItem(0); 551 selectItem(0);
544 int x,y; 552 int x,y;
545 viewportToContents(viewportPos.x(),viewportPos.y(),x,y); 553 viewportToContents(viewportPos.x(),viewportPos.y(),x,y);
546 int gx,gy; 554 int gx,gy;
547 contentsToGrid(x,y,gx,gy); 555 contentsToGrid(x,y,gx,gy);
548 emit newEventSignal(gx,gy); 556 emit newEventSignal(gx,gy);
549 } else { 557 } else {
550 KOAgendaItem *doubleClickedItem = (KOAgendaItem *)object; 558 KOAgendaItem *doubleClickedItem = (KOAgendaItem *)object;
551 selectItem(doubleClickedItem); 559 selectItem(doubleClickedItem);
552 if ( KOPrefs::instance()->mEditOnDoubleClick ) 560 if ( KOPrefs::instance()->mEditOnDoubleClick )
553 emit editIncidenceSignal(doubleClickedItem->incidence()); 561 emit editIncidenceSignal(doubleClickedItem->incidence());
554 else 562 else
555 emit showIncidenceSignal(doubleClickedItem->incidence()); 563 emit showIncidenceSignal(doubleClickedItem->incidence());
556 } 564 }
557 break; 565 break;
558 566
559 default: 567 default:
560 break; 568 break;
561 } 569 }
562 return true; 570 return true;
563#if 0 571#if 0
564 //qDebug("KOAgenda::eventFilter_mous "); 572 //qDebug("KOAgenda::eventFilter_mous ");
565 QPoint viewportPos; 573 QPoint viewportPos;
566 if (object != viewport()) { 574 if (object != viewport()) {
567 viewportPos = ((QWidget *)object)->mapToParent(me->pos()); 575 viewportPos = ((QWidget *)object)->mapToParent(me->pos());
568 } else { 576 } else {
569 viewportPos = me->pos(); 577 viewportPos = me->pos();
570 } 578 }
571 static int startX = 0; 579 static int startX = 0;
572 static int startY = 0; 580 static int startY = 0;
573 static int blockmoveDist = ( QApplication::desktop()->width() < 480 ? 15 : 20 ); 581 static int blockmoveDist = ( QApplication::desktop()->width() < 480 ? 15 : 20 );
574 static bool blockMoving = true; 582 static bool blockMoving = true;
575 static bool leftMouseDown = false; 583 static bool leftMouseDown = false;
576 bool rightButtonPressed = false; 584 bool rightButtonPressed = false;
577 switch (me->type()) { 585 switch (me->type()) {
578 case QEvent::MouseButtonPress: 586 case QEvent::MouseButtonPress:
579 if (me->button() == LeftButton) { 587 if (me->button() == LeftButton) {
580 leftMouseDown = true; 588 leftMouseDown = true;
581 } 589 }
582 else if (me->button() == RightButton) { 590 else if (me->button() == RightButton) {
583 leftMouseDown = false; 591 leftMouseDown = false;
584 } 592 }
585 blockMoving = true; 593 blockMoving = true;
586 startX = viewportPos.x(); 594 startX = viewportPos.x();
587 startY = viewportPos.y(); 595 startY = viewportPos.y();
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index f6f390b..f452db0 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -607,347 +607,349 @@ void KOAgendaView::resizeEvent( QResizeEvent* e )
607 //qDebug("mAgenda->resize+++++++++++++++ "); 607 //qDebug("mAgenda->resize+++++++++++++++ ");
608 updateConfig(); 608 updateConfig();
609 //qDebug("KOAgendaView::Updating now possible "); 609 //qDebug("KOAgendaView::Updating now possible ");
610 } else 610 } else
611 createDayLabels(); 611 createDayLabels();
612 //qDebug("resizeEvent end "); 612 //qDebug("resizeEvent end ");
613 613
614} 614}
615void KOAgendaView::slotDaylabelClicked( int num ) 615void KOAgendaView::slotDaylabelClicked( int num )
616{ 616{
617 617
618 QDate firstDate = mSelectedDates.first(); 618 QDate firstDate = mSelectedDates.first();
619 if ( num == -1 ) 619 if ( num == -1 )
620 emit showDateView( 6, firstDate ); 620 emit showDateView( 6, firstDate );
621 else if (num >= 0 ) { 621 else if (num >= 0 ) {
622 if ( mSelectedDates.count() == 1) 622 if ( mSelectedDates.count() == 1)
623 emit showDateView( 9, firstDate.addDays( num ) ); 623 emit showDateView( 9, firstDate.addDays( num ) );
624 else 624 else
625 emit showDateView( 3, firstDate.addDays( num ) ); 625 emit showDateView( 3, firstDate.addDays( num ) );
626 } 626 }
627 else 627 else
628 showDateView( 10, firstDate.addDays(1) ); 628 showDateView( 10, firstDate.addDays(1) );
629} 629}
630 630
631KOAgendaButton* KOAgendaView::getNewDaylabel() 631KOAgendaButton* KOAgendaView::getNewDaylabel()
632{ 632{
633 633
634 KOAgendaButton * dayLabel = new KOAgendaButton(mDayLabels); 634 KOAgendaButton * dayLabel = new KOAgendaButton(mDayLabels);
635 connect( dayLabel, SIGNAL( numClicked(int) ), this, SLOT ( slotDaylabelClicked(int) ) ); 635 connect( dayLabel, SIGNAL( numClicked(int) ), this, SLOT ( slotDaylabelClicked(int) ) );
636 mDayLabelsList.append( dayLabel ); 636 mDayLabelsList.append( dayLabel );
637 mLayoutDayLabels->addWidget(dayLabel); 637 mLayoutDayLabels->addWidget(dayLabel);
638 return dayLabel ; 638 return dayLabel ;
639} 639}
640 640
641void KOAgendaView::createDayLabels() 641void KOAgendaView::createDayLabels()
642{ 642{
643 643
644 if ( mBlockUpdating || globalFlagBlockLabel == 1) { 644 if ( mBlockUpdating || globalFlagBlockLabel == 1) {
645 // qDebug(" KOAgendaView::createDayLabels() blocked "); 645 // qDebug(" KOAgendaView::createDayLabels() blocked ");
646 return; 646 return;
647 647
648 } 648 }
649 int newHight; 649 int newHight;
650 650
651 // ### Before deleting and recreating we could check if mSelectedDates changed... 651 // ### Before deleting and recreating we could check if mSelectedDates changed...
652 // It would remove some flickering and gain speed (since this is called by 652 // It would remove some flickering and gain speed (since this is called by
653 // each updateView() call) 653 // each updateView() call)
654 654
655 int maxWid = mUpcomingWidth - mTimeLabels->width()- mAgenda->verticalScrollBar()->width() - 2; 655 int maxWid = mUpcomingWidth - mTimeLabels->width()- mAgenda->verticalScrollBar()->width() - 2;
656 mDayLabelsFrame->setMaximumWidth( mUpcomingWidth ); 656 mDayLabelsFrame->setMaximumWidth( mUpcomingWidth );
657 if ( maxWid < 0 ) 657 if ( maxWid < 0 )
658 maxWid = 20; 658 maxWid = 20;
659 659
660 QFont dlf = KOPrefs::instance()->mTimeLabelsFont; 660 QFont dlf = KOPrefs::instance()->mTimeLabelsFont;
661 QFontMetrics fm ( dlf ); 661 QFontMetrics fm ( dlf );
662 int selCount = mSelectedDates.count(); 662 int selCount = mSelectedDates.count();
663 QString dayTest = "Mon 20"; 663 QString dayTest = "Mon 20";
664 //QString dayTest = "Mon 20"; 664 //QString dayTest = "Mon 20";
665 int wid = fm.width( dayTest ); 665 int wid = fm.width( dayTest );
666 //maxWid -= ( selCount * 3 ); //working for QLabels 666 //maxWid -= ( selCount * 3 ); //working for QLabels
667 maxWid -= ( selCount * 3 ); //working for QPushButton 667 maxWid -= ( selCount * 3 ); //working for QPushButton
668 if ( maxWid < 0 ) 668 if ( maxWid < 0 )
669 maxWid = 20; 669 maxWid = 20;
670 int needWid = wid * selCount; 670 int needWid = wid * selCount;
671 //qDebug("++++++++Needed : %d MaxWidth: %d", needWid, maxWid ); 671 //qDebug("++++++++Needed : %d MaxWidth: %d", needWid, maxWid );
672 //if ( needWid > maxWid ) 672 //if ( needWid > maxWid )
673 // qDebug("DAYLABELS TOOOOOOO BIG "); 673 // qDebug("DAYLABELS TOOOOOOO BIG ");
674 while ( needWid > maxWid ) { 674 while ( needWid > maxWid ) {
675 dayTest = dayTest.left( dayTest.length() - 1 ); 675 dayTest = dayTest.left( dayTest.length() - 1 );
676 wid = fm.width( dayTest ); 676 wid = fm.width( dayTest );
677 needWid = wid * selCount; 677 needWid = wid * selCount;
678 } 678 }
679 int maxLen = dayTest.length(); 679 int maxLen = dayTest.length();
680 int fontPoint = dlf.pointSize(); 680 int fontPoint = dlf.pointSize();
681 if ( maxLen < 2 ) { 681 if ( maxLen < 2 ) {
682 int fontPoint = dlf.pointSize(); 682 int fontPoint = dlf.pointSize();
683 while ( fontPoint > 4 ) { 683 while ( fontPoint > 4 ) {
684 --fontPoint; 684 --fontPoint;
685 dlf.setPointSize( fontPoint ); 685 dlf.setPointSize( fontPoint );
686 QFontMetrics f( dlf ); 686 QFontMetrics f( dlf );
687 wid = f.width( "30" ); 687 wid = f.width( "30" );
688 needWid = wid * selCount; 688 needWid = wid * selCount;
689 if ( needWid < maxWid ) 689 if ( needWid < maxWid )
690 break; 690 break;
691 } 691 }
692 maxLen = 2; 692 maxLen = 2;
693 } 693 }
694 //qDebug("Max len %d ", dayTest.length() ); 694 //qDebug("Max len %d ", dayTest.length() );
695 695
696 QFontMetrics tempF( dlf ); 696 QFontMetrics tempF( dlf );
697 newHight = tempF.height(); 697 newHight = tempF.height();
698 mDayLabels->setFont( dlf ); 698 mDayLabels->setFont( dlf );
699 // mLayoutDayLabels = new QHBoxLayout(mDayLabels);; 699 // mLayoutDayLabels = new QHBoxLayout(mDayLabels);;
700 // mLayoutDayLabels->addSpacing(mTimeLabels->width()); 700 // mLayoutDayLabels->addSpacing(mTimeLabels->width());
701 //mLayoutDayLabels->addSpacing( 2 ); 701 //mLayoutDayLabels->addSpacing( 2 );
702 // QFont lFont = dlf; 702 // QFont lFont = dlf;
703 bool appendLabels = false; 703 bool appendLabels = false;
704 KOAgendaButton *dayLabel; 704 KOAgendaButton *dayLabel;
705 dayLabel = mDayLabelsList.first(); 705 dayLabel = mDayLabelsList.first();
706 if ( !dayLabel ) { 706 if ( !dayLabel ) {
707 appendLabels = true; 707 appendLabels = true;
708 dayLabel = getNewDaylabel(); 708 dayLabel = getNewDaylabel();
709 } 709 }
710 dayLabel->setFixedWidth( mTimeLabels->width()+2 ); 710 dayLabel->setFixedWidth( mTimeLabels->width()+2 );
711 dayLabel->setFont( dlf ); 711 dayLabel->setFont( dlf );
712 dayLabel->setNum( -1 ); 712 dayLabel->setNum( -1 );
713 //dayLabel->setAlignment(QLabel::AlignHCenter); 713 //dayLabel->setAlignment(QLabel::AlignHCenter);
714 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ) ); 714 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ) );
715 dayLabel->show(); 715 dayLabel->show();
716 DateList::ConstIterator dit; 716 DateList::ConstIterator dit;
717 bool oneday = (mSelectedDates.first() == mSelectedDates.last() ); 717 bool oneday = (mSelectedDates.first() == mSelectedDates.last() );
718 int counter = -1; 718 int counter = -1;
719 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) { 719 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) {
720 ++counter; 720 ++counter;
721 QDate date = *dit; 721 QDate date = *dit;
722 // QBoxLayout *dayLayout = new QVBoxLayout(mLayoutDayLabels); 722 // QBoxLayout *dayLayout = new QVBoxLayout(mLayoutDayLabels);
723 if ( ! appendLabels ) { 723 if ( ! appendLabels ) {
724 dayLabel = mDayLabelsList.next(); 724 dayLabel = mDayLabelsList.next();
725 if ( !dayLabel ) 725 if ( !dayLabel )
726 appendLabels = true; 726 appendLabels = true;
727 } 727 }
728 if ( appendLabels ) { 728 if ( appendLabels ) {
729 dayLabel = getNewDaylabel(); 729 dayLabel = getNewDaylabel();
730 } 730 }
731 dayLabel->setMinimumWidth( 1 ); 731 dayLabel->setMinimumWidth( 1 );
732 dayLabel->setMaximumWidth( 10240 ); 732 dayLabel->setMaximumWidth( 10240 );
733 dayLabel->setFont( dlf ); 733 dayLabel->setFont( dlf );
734 dayLabel->show(); 734 dayLabel->show();
735 dayLabel->setAutoRepeat( false );
735 dayLabel->setNum( counter ); 736 dayLabel->setNum( counter );
736 QString str; 737 QString str;
737 int dW = KOGlobals::self()->calendarSystem()->dayOfWeek(date); 738 int dW = KOGlobals::self()->calendarSystem()->dayOfWeek(date);
738 QString dayName = KOGlobals::self()->calendarSystem()->weekDayName( dW, true ); 739 QString dayName = KOGlobals::self()->calendarSystem()->weekDayName( dW, true );
739 switch ( maxLen ) { 740 switch ( maxLen ) {
740 case 2: 741 case 2:
741 str = QString::number( date.day() ); 742 str = QString::number( date.day() );
742 break; 743 break;
743 744
744 case 3: 745 case 3:
745 str = dayName.left( 1 ) +QString::number( date.day()); 746 str = dayName.left( 1 ) +QString::number( date.day());
746 747
747 break; 748 break;
748 case 4: 749 case 4:
749 str = dayName.left( 1 ) + " " +QString::number( date.day()); 750 str = dayName.left( 1 ) + " " +QString::number( date.day());
750 751
751 break; 752 break;
752 case 5: 753 case 5:
753 str = dayName.left( 2 ) + " " +QString::number( date.day()); 754 str = dayName.left( 2 ) + " " +QString::number( date.day());
754 755
755 break; 756 break;
756 case 6: 757 case 6:
757 str = dayName.left( 3 ) + " " +QString::number( date.day()); 758 str = dayName.left( 3 ) + " " +QString::number( date.day());
758 break; 759 break;
759 760
760 default: 761 default:
761 break; 762 break;
762 } 763 }
763 if ( oneday ) { 764 if ( oneday ) {
764 QString addString; 765 QString addString;
765 if ( mSelectedDates.first() == QDateTime::currentDateTime().date() ) 766 if ( mSelectedDates.first() == QDateTime::currentDateTime().date() )
766 addString = i18n("Today"); 767 addString = i18n("Today");
767 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(1) ) 768 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(1) )
768 addString = i18n("Tomorrow"); 769 addString = i18n("Tomorrow");
769 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-1) ) 770 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-1) )
770 addString = i18n("Yesterday"); 771 addString = i18n("Yesterday");
771 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-2) ) 772 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-2) )
772 addString = i18n("Day before yesterday"); 773 addString = i18n("Day before yesterday");
773 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(2) ) 774 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(2) )
774 addString = i18n("Day after tomorrow"); 775 addString = i18n("Day after tomorrow");
775 if ( !addString.isEmpty() ) { 776 if ( !addString.isEmpty() ) {
776 str = addString+", " + str; 777 str = addString+", " + str;
777 } else { 778 } else {
778 str = KGlobal::locale()->formatDate( date, KOPrefs::instance()->mShortDateInViewer); 779 str = KGlobal::locale()->formatDate( date, KOPrefs::instance()->mShortDateInViewer);
779 } 780 }
780 } 781 }
781 dayLabel->setText(str); 782 dayLabel->setText(str);
782 //dayLabel->setAlignment(QLabel::AlignHCenter); 783 //dayLabel->setAlignment(QLabel::AlignHCenter);
783 if (date == QDate::currentDate()) { 784 if (date == QDate::currentDate()) {
784 QFont bFont = dlf; 785 QFont bFont = dlf;
785 bFont.setBold( true ); 786 bFont.setBold( true );
786 dayLabel->setFont(bFont); 787 dayLabel->setFont(bFont);
787 } 788 }
788 //dayLayout->addWidget(dayLabel); 789 //dayLayout->addWidget(dayLabel);
789 790
790#ifndef KORG_NOPLUGINS 791#ifndef KORG_NOPLUGINS
791 CalendarDecoration::List cds = KOCore::self()->calendarDecorations(); 792 CalendarDecoration::List cds = KOCore::self()->calendarDecorations();
792 CalendarDecoration *it; 793 CalendarDecoration *it;
793 for(it = cds.first(); it; it = cds.next()) { 794 for(it = cds.first(); it; it = cds.next()) {
794 QString text = it->shortText( date ); 795 QString text = it->shortText( date );
795 if ( !text.isEmpty() ) { 796 if ( !text.isEmpty() ) {
796 QLabel *label = new QLabel(text,mDayLabels); 797 QLabel *label = new QLabel(text,mDayLabels);
797 label->setAlignment(AlignCenter); 798 label->setAlignment(AlignCenter);
798 dayLayout->addWidget(label); 799 dayLayout->addWidget(label);
799 } 800 }
800 } 801 }
801 802
802 for(it = cds.first(); it; it = cds.next()) { 803 for(it = cds.first(); it; it = cds.next()) {
803 QWidget *wid = it->smallWidget(mDayLabels,date); 804 QWidget *wid = it->smallWidget(mDayLabels,date);
804 if ( wid ) { 805 if ( wid ) {
805 // wid->setHeight(20); 806 // wid->setHeight(20);
806 dayLayout->addWidget(wid); 807 dayLayout->addWidget(wid);
807 } 808 }
808 } 809 }
809#endif 810#endif
810 } 811 }
811 if ( ! appendLabels ) { 812 if ( ! appendLabels ) {
812 dayLabel = mDayLabelsList.next(); 813 dayLabel = mDayLabelsList.next();
813 if ( !dayLabel ) 814 if ( !dayLabel )
814 appendLabels = true; 815 appendLabels = true;
815 } 816 }
816 if ( appendLabels ) { 817 if ( appendLabels ) {
817 dayLabel = getNewDaylabel(); 818 dayLabel = getNewDaylabel();
818 } 819 }
819 //dayLabel->hide();//test only 820 //dayLabel->hide();//test only
820 821
821 int offset = (mAgenda->width() - mAgenda->verticalScrollBar()->width()-3 ) % mSelectedDates.count() ; 822 int offset = (mAgenda->width() - mAgenda->verticalScrollBar()->width()-3 ) % mSelectedDates.count() ;
822 if ( offset < 0 ) offset = 0; 823 if ( offset < 0 ) offset = 0;
823 //qDebug("mLayoutDayLabels->addSpacing %d ", mAgenda->verticalScrollBar()->width()+offset+2 ); 824 //qDebug("mLayoutDayLabels->addSpacing %d ", mAgenda->verticalScrollBar()->width()+offset+2 );
824 dayLabel->setText(">");//QString::number ( mSelectedDates.first().month() ) ); 825 dayLabel->setText(">");//QString::number ( mSelectedDates.first().month() ) );
825 dayLabel->setFont( dlf ); 826 dayLabel->setFont( dlf );
827 dayLabel->setAutoRepeat( true );
826 dayLabel->show(); 828 dayLabel->show();
827 dayLabel->setNum( -2 ); 829 dayLabel->setNum( -2 );
828 dayLabel->setFixedWidth( mAgenda->verticalScrollBar()->width()+ offset ); 830 dayLabel->setFixedWidth( mAgenda->verticalScrollBar()->width()+ offset );
829 //qDebug("setToFixed %d ", mAgenda->verticalScrollBar()->width()+ offset+2); 831 //qDebug("setToFixed %d ", mAgenda->verticalScrollBar()->width()+ offset+2);
830 //mLayoutDayLabels->addSpacing(mAgenda->verticalScrollBar()->width()+ offset+2); 832 //mLayoutDayLabels->addSpacing(mAgenda->verticalScrollBar()->width()+ offset+2);
831 if ( !appendLabels ) { 833 if ( !appendLabels ) {
832 dayLabel = mDayLabelsList.next(); 834 dayLabel = mDayLabelsList.next();
833 while ( dayLabel ) { 835 while ( dayLabel ) {
834 //qDebug("!dayLabel %d",dayLabel ); 836 //qDebug("!dayLabel %d",dayLabel );
835 dayLabel->hide(); 837 dayLabel->hide();
836 dayLabel = mDayLabelsList.next(); 838 dayLabel = mDayLabelsList.next();
837 } 839 }
838 } 840 }
839 841
840 mDayLabelsFrame->setFixedHeight( newHight + 4 ); 842 mDayLabelsFrame->setFixedHeight( newHight + 4 );
841} 843}
842 844
843int KOAgendaView::maxDatesHint() 845int KOAgendaView::maxDatesHint()
844{ 846{
845 // Not sure about the max number of events, so return 0 for now. 847 // Not sure about the max number of events, so return 0 for now.
846 return 0; 848 return 0;
847} 849}
848 850
849int KOAgendaView::currentDateCount() 851int KOAgendaView::currentDateCount()
850{ 852{
851 return mSelectedDates.count(); 853 return mSelectedDates.count();
852} 854}
853 855
854QPtrList<Incidence> KOAgendaView::selectedIncidences() 856QPtrList<Incidence> KOAgendaView::selectedIncidences()
855{ 857{
856 QPtrList<Incidence> selected; 858 QPtrList<Incidence> selected;
857 Incidence *incidence; 859 Incidence *incidence;
858 860
859 incidence = mAgenda->selectedIncidence(); 861 incidence = mAgenda->selectedIncidence();
860 if (incidence) selected.append(incidence); 862 if (incidence) selected.append(incidence);
861 863
862 incidence = mAllDayAgenda->selectedIncidence(); 864 incidence = mAllDayAgenda->selectedIncidence();
863 if (incidence) selected.append(incidence); 865 if (incidence) selected.append(incidence);
864 866
865 return selected; 867 return selected;
866} 868}
867 869
868DateList KOAgendaView::selectedDates() 870DateList KOAgendaView::selectedDates()
869{ 871{
870 DateList selected; 872 DateList selected;
871 QDate qd; 873 QDate qd;
872 874
873 qd = mAgenda->selectedIncidenceDate(); 875 qd = mAgenda->selectedIncidenceDate();
874 if (qd.isValid()) selected.append(qd); 876 if (qd.isValid()) selected.append(qd);
875 877
876 qd = mAllDayAgenda->selectedIncidenceDate(); 878 qd = mAllDayAgenda->selectedIncidenceDate();
877 if (qd.isValid()) selected.append(qd); 879 if (qd.isValid()) selected.append(qd);
878 880
879 return selected; 881 return selected;
880} 882}
881 883
882 884
883void KOAgendaView::updateView() 885void KOAgendaView::updateView()
884{ 886{
885 if ( mBlockUpdating ) 887 if ( mBlockUpdating )
886 return; 888 return;
887 // kdDebug() << "KOAgendaView::updateView()" << endl; 889 // kdDebug() << "KOAgendaView::updateView()" << endl;
888 fillAgenda(); 890 fillAgenda();
889 891
890} 892}
891 893
892 894
893/* 895/*
894 Update configuration settings for the agenda view. This method is not 896 Update configuration settings for the agenda view. This method is not
895 complete. 897 complete.
896*/ 898*/
897void KOAgendaView::updateConfig() 899void KOAgendaView::updateConfig()
898{ 900{
899 if ( mBlockUpdating ) 901 if ( mBlockUpdating )
900 return; 902 return;
901 if ( mAgenda->height() > 96 * KOPrefs::instance()->mHourSize ) { 903 if ( mAgenda->height() > 96 * KOPrefs::instance()->mHourSize ) {
902 int old = KOPrefs::instance()->mHourSize; 904 int old = KOPrefs::instance()->mHourSize;
903 KOPrefs::instance()->mHourSize = mAgenda->height()/96 +1; 905 KOPrefs::instance()->mHourSize = mAgenda->height()/96 +1;
904 qDebug("KOPrefs::instance()->mHourSize adjusted %d to %d ", old,KOPrefs::instance()->mHourSize ); 906 qDebug("KOPrefs::instance()->mHourSize adjusted %d to %d ", old,KOPrefs::instance()->mHourSize );
905 } 907 }
906 908
907 909
908 // update config for children 910 // update config for children
909 mTimeLabels->updateConfig(); 911 mTimeLabels->updateConfig();
910 mAgenda->storePosition(); 912 mAgenda->storePosition();
911 mAgenda->updateConfig(); 913 mAgenda->updateConfig();
912 mAllDayAgenda->updateConfig(); 914 mAllDayAgenda->updateConfig();
913 // widget synchronization 915 // widget synchronization
914 //TODO: find a better way, maybe signal/slot 916 //TODO: find a better way, maybe signal/slot
915 mTimeLabels->positionChanged(); 917 mTimeLabels->positionChanged();
916 918
917 // for some reason, this needs to be called explicitly 919 // for some reason, this needs to be called explicitly
918 mTimeLabels->repaint(); 920 mTimeLabels->repaint();
919 921
920 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width()); 922 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width());
921 923
922 // ToolTips displaying summary of events 924 // ToolTips displaying summary of events
923 KOAgendaItem::toolTipGroup()->setEnabled(KOPrefs::instance() 925 KOAgendaItem::toolTipGroup()->setEnabled(KOPrefs::instance()
924 ->mEnableToolTips); 926 ->mEnableToolTips);
925 927
926 //setHolidayMasks(); 928 //setHolidayMasks();
927 929
928 //createDayLabels(); called by via updateView(); 930 //createDayLabels(); called by via updateView();
929 mEventIndicatorTop->setXOffset(mTimeLabels->width() + mAgenda->frameWidth()); 931 mEventIndicatorTop->setXOffset(mTimeLabels->width() + mAgenda->frameWidth());
930 updateView(); 932 updateView();
931 mAgenda->restorePosition(); 933 mAgenda->restorePosition();
932} 934}
933 935
934 936
935void KOAgendaView::updateEventDates(KOAgendaItem *item, int type) 937void KOAgendaView::updateEventDates(KOAgendaItem *item, int type)
936{ 938{
937 // kdDebug() << "KOAgendaView::updateEventDates(): " << item->text() << endl; 939 // kdDebug() << "KOAgendaView::updateEventDates(): " << item->text() << endl;
938 //qDebug("KOAgendaView::updateEventDates "); 940 //qDebug("KOAgendaView::updateEventDates ");
939 QDateTime startDt,endDt; 941 QDateTime startDt,endDt;
940 QDate startDate; 942 QDate startDate;
941 int lenInSecs; 943 int lenInSecs;
942 // if ( type == KOAgenda::RESIZETOP ) 944 // if ( type == KOAgenda::RESIZETOP )
943 // qDebug("RESIZETOP "); 945 // qDebug("RESIZETOP ");
944 // if ( type == KOAgenda::RESIZEBOTTOM ) 946 // if ( type == KOAgenda::RESIZEBOTTOM )
945 // qDebug("RESIZEBOTTOM "); 947 // qDebug("RESIZEBOTTOM ");
946 // if ( type == KOAgenda::MOVE ) 948 // if ( type == KOAgenda::MOVE )
947 // qDebug("MOVE "); 949 // qDebug("MOVE ");
948 if ( item->incidence()->type() == "Event" ) { 950 if ( item->incidence()->type() == "Event" ) {
949 startDt =item->incidence()->dtStart(); 951 startDt =item->incidence()->dtStart();
950 endDt = item->incidence()->dtEnd(); 952 endDt = item->incidence()->dtEnd();
951 lenInSecs = startDt.secsTo( endDt ); 953 lenInSecs = startDt.secsTo( endDt );
952 } 954 }
953 955
diff --git a/korganizer/koeditorgeneraltodo.cpp b/korganizer/koeditorgeneraltodo.cpp
index a9d1ed3..a03ec52 100644
--- a/korganizer/koeditorgeneraltodo.cpp
+++ b/korganizer/koeditorgeneraltodo.cpp
@@ -90,263 +90,264 @@ void KOEditorGeneralTodo::initTime(QWidget *parent,QBoxLayout *topLayout)
90 timeLayout->addWidget(timeGroupBox); 90 timeLayout->addWidget(timeGroupBox);
91 timeGroupBox->layout()->setSpacing( 0 ); 91 timeGroupBox->layout()->setSpacing( 0 );
92 timeGroupBox->layout()->setMargin( 5 ); 92 timeGroupBox->layout()->setMargin( 5 );
93 QFrame *timeBoxFrame = new QFrame(timeGroupBox); 93 QFrame *timeBoxFrame = new QFrame(timeGroupBox);
94 94
95 QGridLayout *layoutTimeBox = new QGridLayout(timeBoxFrame,3,3); 95 QGridLayout *layoutTimeBox = new QGridLayout(timeBoxFrame,3,3);
96 layoutTimeBox->setSpacing(topLayout->spacing()); 96 layoutTimeBox->setSpacing(topLayout->spacing());
97 layoutTimeBox->setColStretch( 1, 1 ); 97 layoutTimeBox->setColStretch( 1, 1 );
98 98
99 mDueCheck = new QCheckBox(i18n("Due:"),timeBoxFrame); 99 mDueCheck = new QCheckBox(i18n("Due:"),timeBoxFrame);
100 layoutTimeBox->addWidget(mDueCheck,0,0); 100 layoutTimeBox->addWidget(mDueCheck,0,0);
101 connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(enableDueEdit(bool))); 101 connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(enableDueEdit(bool)));
102 connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(showAlarm())); 102 connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(showAlarm()));
103 103
104 104
105 mDueDateEdit = new KDateEdit(timeBoxFrame); 105 mDueDateEdit = new KDateEdit(timeBoxFrame);
106 layoutTimeBox->addWidget(mDueDateEdit,0,1); 106 layoutTimeBox->addWidget(mDueDateEdit,0,1);
107 107
108 mDueTimeEdit = new KOTimeEdit(timeBoxFrame); 108 mDueTimeEdit = new KOTimeEdit(timeBoxFrame);
109 layoutTimeBox->addWidget(mDueTimeEdit,0,2); 109 layoutTimeBox->addWidget(mDueTimeEdit,0,2);
110 110
111 111
112 mStartCheck = new QCheckBox(i18n("Start:"),timeBoxFrame); 112 mStartCheck = new QCheckBox(i18n("Start:"),timeBoxFrame);
113 layoutTimeBox->addWidget(mStartCheck,1,0); 113 layoutTimeBox->addWidget(mStartCheck,1,0);
114 connect(mStartCheck,SIGNAL(toggled(bool)),SLOT(enableStartEdit(bool))); 114 connect(mStartCheck,SIGNAL(toggled(bool)),SLOT(enableStartEdit(bool)));
115 115
116 mStartDateEdit = new KDateEdit(timeBoxFrame); 116 mStartDateEdit = new KDateEdit(timeBoxFrame);
117 layoutTimeBox->addWidget(mStartDateEdit,1,1); 117 layoutTimeBox->addWidget(mStartDateEdit,1,1);
118 118
119 mStartTimeEdit = new KOTimeEdit(timeBoxFrame); 119 mStartTimeEdit = new KOTimeEdit(timeBoxFrame);
120 layoutTimeBox->addWidget(mStartTimeEdit,1,2); 120 layoutTimeBox->addWidget(mStartTimeEdit,1,2);
121 121
122 122
123 mTimeButton = new QCheckBox(i18n("Time associated"),timeBoxFrame); 123 mTimeButton = new QCheckBox(i18n("Time associated"),timeBoxFrame);
124 layoutTimeBox->addMultiCellWidget(mTimeButton,2,2,0,1); 124 layoutTimeBox->addMultiCellWidget(mTimeButton,2,2,0,1);
125 125
126 connect(mTimeButton,SIGNAL(toggled(bool)),SLOT(enableTimeEdits(bool))); 126 connect(mTimeButton,SIGNAL(toggled(bool)),SLOT(enableTimeEdits(bool)));
127 127
128 // some more layouting 128 // some more layouting
129 //layoutTimeBox->setColStretch(3,1); 129 //layoutTimeBox->setColStretch(3,1);
130} 130}
131 131
132 132
133void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout) 133void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout)
134{ 134{
135 mCompletedCombo = new QComboBox(parent); 135 mCompletedCombo = new QComboBox(parent);
136 // xgettext:no-c-format 136 // xgettext:no-c-format
137 mCompletedCombo->insertItem(i18n(" 0 %")); 137 mCompletedCombo->insertItem(i18n(" 0 %"));
138 // xgettext:no-c-format 138 // xgettext:no-c-format
139 mCompletedCombo->insertItem(i18n(" 20 %")); 139 mCompletedCombo->insertItem(i18n(" 20 %"));
140 // xgettext:no-c-format 140 // xgettext:no-c-format
141 mCompletedCombo->insertItem(i18n(" 40 %")); 141 mCompletedCombo->insertItem(i18n(" 40 %"));
142 // xgettext:no-c-format 142 // xgettext:no-c-format
143 mCompletedCombo->insertItem(i18n(" 60 %")); 143 mCompletedCombo->insertItem(i18n(" 60 %"));
144 // xgettext:no-c-format 144 // xgettext:no-c-format
145 mCompletedCombo->insertItem(i18n(" 80 %")); 145 mCompletedCombo->insertItem(i18n(" 80 %"));
146 // xgettext:no-c-format 146 // xgettext:no-c-format
147 mCompletedCombo->insertItem(i18n("100 %")); 147 mCompletedCombo->insertItem(i18n("100 %"));
148 connect(mCompletedCombo,SIGNAL(activated(int)),SLOT(completedChanged(int))); 148 connect(mCompletedCombo,SIGNAL(activated(int)),SLOT(completedChanged(int)));
149 topLayout->addWidget(mCompletedCombo); 149 topLayout->addWidget(mCompletedCombo);
150 150
151 mCompletedLabel = new QLabel(i18n("completed"),parent); 151 mCompletedLabel = new QLabel(i18n("completed"),parent);
152 topLayout->addWidget(mCompletedLabel); 152 topLayout->addWidget(mCompletedLabel);
153 153
154 mCompleteDateEdit = new KDateEdit(parent); 154 mCompleteDateEdit = new KDateEdit(parent);
155 topLayout->addWidget(mCompleteDateEdit ); 155 topLayout->addWidget(mCompleteDateEdit );
156 156
157 mCompleteTimeEdit = new KOTimeEdit(parent); 157 mCompleteTimeEdit = new KOTimeEdit(parent);
158 topLayout->addWidget( mCompleteTimeEdit); 158 topLayout->addWidget( mCompleteTimeEdit);
159 159
160 mCompletedCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred,QSizePolicy::Preferred) ); 160 mCompletedCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred,QSizePolicy::Preferred) );
161 mCompletedLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding,QSizePolicy::Preferred) ); 161 mCompletedLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding,QSizePolicy::Preferred) );
162 162
163 if ( QApplication::desktop()->width() <= 480 ) { 163 if ( QApplication::desktop()->width() <= 480 ) {
164 if ( QApplication::desktop()->width() < 320 ) 164 if ( QApplication::desktop()->width() < 320 )
165 mCompleteDateEdit->setMaximumWidth( 85 ); 165 mCompleteDateEdit->setMaximumWidth( 85 );
166 else 166 else
167 mCompleteDateEdit->setMaximumWidth( 140 ); 167 mCompleteDateEdit->setMaximumWidth( 140 );
168 topLayout->setSpacing( 0 ); 168 topLayout->setSpacing( 0 );
169 } 169 }
170} 170}
171 171
172void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout) 172void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout)
173{ 173{
174 174
175 QHBox* h = new QHBox ( parent ); 175 QHBox* h = new QHBox ( parent );
176 topLayout->addWidget( h ); 176 topLayout->addWidget( h );
177 QLabel *priorityLabel = new QLabel(i18n("Priority:"), h); 177 QLabel *priorityLabel = new QLabel(i18n("Priority:"), h);
178 // topLayout->addWidget(priorityLabel); 178 // topLayout->addWidget(priorityLabel);
179 mPriorityCombo = new QComboBox( h ); 179 mPriorityCombo = new QComboBox( h );
180 mPriorityCombo->insertItem(i18n("1 (high)")); 180 mPriorityCombo->insertItem(i18n("1 (high)"));
181 mPriorityCombo->insertItem(i18n("2")); 181 mPriorityCombo->insertItem(i18n("2"));
182 mPriorityCombo->insertItem(i18n("3")); 182 mPriorityCombo->insertItem(i18n("3"));
183 mPriorityCombo->insertItem(i18n("4")); 183 mPriorityCombo->insertItem(i18n("4"));
184 mPriorityCombo->insertItem(i18n("5 (low)")); 184 mPriorityCombo->insertItem(i18n("5 (low)"));
185 //topLayout->addWidget(mPriorityCombo); 185 //topLayout->addWidget(mPriorityCombo);
186} 186}
187 187
188void KOEditorGeneralTodo::initStatus(QWidget *parent,QBoxLayout *topLayout) 188void KOEditorGeneralTodo::initStatus(QWidget *parent,QBoxLayout *topLayout)
189{ 189{
190 QBoxLayout *statusLayout = new QHBoxLayout(topLayout); 190 QBoxLayout *statusLayout = new QHBoxLayout(topLayout);
191 191
192 initCompletion( parent, statusLayout ); 192 initCompletion( parent, statusLayout );
193 193
194 statusLayout->addStretch( 1 ); 194 statusLayout->addStretch( 1 );
195 195
196 initPriority( parent, statusLayout ); 196 initPriority( parent, statusLayout );
197} 197}
198 198
199void KOEditorGeneralTodo::setDefaults(QDateTime due,bool allDay) 199void KOEditorGeneralTodo::setDefaults(QDateTime due,bool allDay)
200{ 200{
201 201
202 mSummaryEdit->load(KOLocationBox::SUMMARYTODO); 202 mSummaryEdit->load(KOLocationBox::SUMMARYTODO);
203 mLocationEdit->load(KOLocationBox::LOCATION); 203 mLocationEdit->load(KOLocationBox::LOCATION);
204 KOEditorGeneral::setDefaults(allDay); 204 KOEditorGeneral::setDefaults(allDay);
205 205
206 mTimeButton->setChecked( !allDay ); 206 mTimeButton->setChecked( !allDay );
207 if(mTimeButton->isChecked()) { 207 if(mTimeButton->isChecked()) {
208 mTimeButton->setEnabled(true); 208 mTimeButton->setEnabled(true);
209 } 209 }
210 else { 210 else {
211 mTimeButton->setEnabled(false); 211 mTimeButton->setEnabled(false);
212 } 212 }
213 213
214 enableTimeEdits( !allDay ); 214 enableTimeEdits( !allDay );
215 if ( due.isValid() ) { 215 if ( due.isValid() ) {
216 mDueCheck->setChecked(true); 216 mDueCheck->setChecked(true);
217 enableDueEdit(true); 217 enableDueEdit(true);
218 alarmDisable(false);
218 } else { 219 } else {
219 mDueCheck->setChecked(false); 220 mDueCheck->setChecked(false);
220 enableDueEdit(false); 221 enableDueEdit(false);
221 due = QDateTime::currentDateTime().addDays(7); 222 due = QDateTime::currentDateTime().addDays(7);
223 alarmDisable(true);
222 } 224 }
223 225
224 alarmDisable(true);
225 226
226 mStartCheck->setChecked(false); 227 mStartCheck->setChecked(false);
227 enableStartEdit(false); 228 enableStartEdit(false);
228 229
229 mDueDateEdit->setDate(due.date()); 230 mDueDateEdit->setDate(due.date());
230 mDueTimeEdit->setTime(due.time()); 231 mDueTimeEdit->setTime(due.time());
231 due = due.addDays(-7); 232 due = due.addDays(-7);
232 mStartDateEdit->setDate(due.date()); 233 mStartDateEdit->setDate(due.date());
233 mStartTimeEdit->setTime(due.time()); 234 mStartTimeEdit->setTime(due.time());
234 235
235 mPriorityCombo->setCurrentItem(2); 236 mPriorityCombo->setCurrentItem(2);
236 mCompletedLabel->setText(i18n(" completed"));; 237 mCompletedLabel->setText(i18n(" completed"));;
237 mCompletedCombo->setCurrentItem(0); 238 mCompletedCombo->setCurrentItem(0);
238 mCompleteDateEdit->hide(); 239 mCompleteDateEdit->hide();
239 mCompleteTimeEdit->hide(); 240 mCompleteTimeEdit->hide();
240} 241}
241 242
242void KOEditorGeneralTodo::readTodo(Todo *todo) 243void KOEditorGeneralTodo::readTodo(Todo *todo)
243{ 244{
244 245
245 mSummaryEdit->load(KOLocationBox::SUMMARYTODO); 246 mSummaryEdit->load(KOLocationBox::SUMMARYTODO);
246 mLocationEdit->load(KOLocationBox::LOCATION); 247 mLocationEdit->load(KOLocationBox::LOCATION);
247 KOEditorGeneral::readIncidence(todo); 248 KOEditorGeneral::readIncidence(todo);
248 249
249 QDateTime dueDT; 250 QDateTime dueDT;
250 251
251 if (todo->hasDueDate()) { 252 if (todo->hasDueDate()) {
252 enableAlarmEdit(true); 253 enableAlarmEdit(true);
253 dueDT = todo->dtDue(); 254 dueDT = todo->dtDue();
254 mDueDateEdit->setDate(todo->dtDue().date()); 255 mDueDateEdit->setDate(todo->dtDue().date());
255 mDueTimeEdit->setTime(todo->dtDue().time()); 256 mDueTimeEdit->setTime(todo->dtDue().time());
256 mDueCheck->setChecked(true); 257 mDueCheck->setChecked(true);
257 } else { 258 } else {
258 alarmDisable(true); 259 alarmDisable(true);
259 mDueDateEdit->setEnabled(false); 260 mDueDateEdit->setEnabled(false);
260 mDueTimeEdit->setEnabled(false); 261 mDueTimeEdit->setEnabled(false);
261 mDueDateEdit->setDate(QDate::currentDate()); 262 mDueDateEdit->setDate(QDate::currentDate());
262 mDueTimeEdit->setTime(QTime::currentTime()); 263 mDueTimeEdit->setTime(QTime::currentTime());
263 mDueCheck->setChecked(false); 264 mDueCheck->setChecked(false);
264 } 265 }
265 266
266 if (todo->hasStartDate()) { 267 if (todo->hasStartDate()) {
267 mStartDateEdit->setDate(todo->dtStart().date()); 268 mStartDateEdit->setDate(todo->dtStart().date());
268 mStartTimeEdit->setTime(todo->dtStart().time()); 269 mStartTimeEdit->setTime(todo->dtStart().time());
269 mStartCheck->setChecked(true); 270 mStartCheck->setChecked(true);
270 } else { 271 } else {
271 mStartDateEdit->setEnabled(false); 272 mStartDateEdit->setEnabled(false);
272 mStartTimeEdit->setEnabled(false); 273 mStartTimeEdit->setEnabled(false);
273 mStartDateEdit->setDate(QDate::currentDate()); 274 mStartDateEdit->setDate(QDate::currentDate());
274 mStartTimeEdit->setTime(QTime::currentTime()); 275 mStartTimeEdit->setTime(QTime::currentTime());
275 mStartCheck->setChecked(false); 276 mStartCheck->setChecked(false);
276 } 277 }
277 278
278 mTimeButton->setChecked( !todo->doesFloat() ); 279 mTimeButton->setChecked( !todo->doesFloat() );
279 280
280 mCompletedCombo->setCurrentItem(todo->percentComplete() / 20); 281 mCompletedCombo->setCurrentItem(todo->percentComplete() / 20);
281 if (todo->isCompleted() && todo->hasCompletedDate()) { 282 if (todo->isCompleted() && todo->hasCompletedDate()) {
282 mCompleted = todo->completed(); 283 mCompleted = todo->completed();
283 } 284 }
284 setCompletedDate(); 285 setCompletedDate();
285 286
286 mPriorityCombo->setCurrentItem(todo->priority()-1); 287 mPriorityCombo->setCurrentItem(todo->priority()-1);
287} 288}
288 289
289void KOEditorGeneralTodo::writeTodo(Todo *todo) 290void KOEditorGeneralTodo::writeTodo(Todo *todo)
290{ 291{
291 KOEditorGeneral::writeIncidence(todo); 292 KOEditorGeneral::writeIncidence(todo);
292 293
293 // temp. until something better happens. 294 // temp. until something better happens.
294 QString tmpStr; 295 QString tmpStr;
295 296
296 todo->setHasDueDate(mDueCheck->isChecked()); 297 todo->setHasDueDate(mDueCheck->isChecked());
297 todo->setHasStartDate(mStartCheck->isChecked()); 298 todo->setHasStartDate(mStartCheck->isChecked());
298 299
299 QDate tmpDate; 300 QDate tmpDate;
300 QTime tmpTime; 301 QTime tmpTime;
301 QDateTime tmpDT; 302 QDateTime tmpDT;
302 if ( mTimeButton->isChecked() ) { 303 if ( mTimeButton->isChecked() ) {
303 todo->setFloats(false); 304 todo->setFloats(false);
304 305
305 // set due date/time 306 // set due date/time
306 tmpDate = mDueDateEdit->date(); 307 tmpDate = mDueDateEdit->date();
307 tmpTime = mDueTimeEdit->getTime(); 308 tmpTime = mDueTimeEdit->getTime();
308 tmpDT.setDate(tmpDate); 309 tmpDT.setDate(tmpDate);
309 tmpDT.setTime(tmpTime); 310 tmpDT.setTime(tmpTime);
310 todo->setDtDue(tmpDT); 311 todo->setDtDue(tmpDT);
311 312
312 // set start date/time 313 // set start date/time
313 tmpDate = mStartDateEdit->date(); 314 tmpDate = mStartDateEdit->date();
314 tmpTime = mStartTimeEdit->getTime(); 315 tmpTime = mStartTimeEdit->getTime();
315 tmpDT.setDate(tmpDate); 316 tmpDT.setDate(tmpDate);
316 tmpDT.setTime(tmpTime); 317 tmpDT.setTime(tmpTime);
317 todo->setDtStart(tmpDT); 318 todo->setDtStart(tmpDT);
318 } else { 319 } else {
319 todo->setFloats(true); 320 todo->setFloats(true);
320 321
321 // need to change this. 322 // need to change this.
322 tmpDate = mDueDateEdit->date(); 323 tmpDate = mDueDateEdit->date();
323 tmpTime.setHMS(0,0,0); 324 tmpTime.setHMS(0,0,0);
324 tmpDT.setDate(tmpDate); 325 tmpDT.setDate(tmpDate);
325 tmpDT.setTime(tmpTime); 326 tmpDT.setTime(tmpTime);
326 todo->setDtDue(tmpDT); 327 todo->setDtDue(tmpDT);
327 328
328 tmpDate = mStartDateEdit->date(); 329 tmpDate = mStartDateEdit->date();
329 tmpTime.setHMS(0,0,0); 330 tmpTime.setHMS(0,0,0);
330 tmpDT.setDate(tmpDate); 331 tmpDT.setDate(tmpDate);
331 tmpDT.setTime(tmpTime); 332 tmpDT.setTime(tmpTime);
332 todo->setDtStart(tmpDT); 333 todo->setDtStart(tmpDT);
333 } 334 }
334 todo->setPriority(mPriorityCombo->currentItem()+1); 335 todo->setPriority(mPriorityCombo->currentItem()+1);
335 336
336 // set completion state 337 // set completion state
337 if ( mCompletedCombo->currentItem() == 5 ) { 338 if ( mCompletedCombo->currentItem() == 5 ) {
338 QDateTime comp ( mCompleteDateEdit->date(), mCompleteTimeEdit->getTime() ); 339 QDateTime comp ( mCompleteDateEdit->date(), mCompleteTimeEdit->getTime() );
339 if ( comp.isValid () ) { 340 if ( comp.isValid () ) {
340 todo->setPercentComplete(0); 341 todo->setPercentComplete(0);
341 todo->setPercentComplete(100); 342 todo->setPercentComplete(100);
342 todo->setCompleted(comp); 343 todo->setCompleted(comp);
343 } else { 344 } else {
344 todo->setPercentComplete( 100 ); 345 todo->setPercentComplete( 100 );
345 if ( mCompleted.isValid() ) 346 if ( mCompleted.isValid() )
346 todo->setCompleted(mCompleted); 347 todo->setCompleted(mCompleted);
347 } 348 }
348 } else { 349 } else {
349 todo->setPercentComplete(mCompletedCombo->currentItem() * 20); 350 todo->setPercentComplete(mCompletedCombo->currentItem() * 20);
350 } 351 }
351 352
352 mSummaryEdit->save(KOLocationBox::SUMMARYTODO); 353 mSummaryEdit->save(KOLocationBox::SUMMARYTODO);
diff --git a/korganizer/navigatorbar.cpp b/korganizer/navigatorbar.cpp
index eca7c14..49149f2 100644
--- a/korganizer/navigatorbar.cpp
+++ b/korganizer/navigatorbar.cpp
@@ -26,247 +26,253 @@
26#include <qtooltip.h> 26#include <qtooltip.h>
27#include <qpushbutton.h> 27#include <qpushbutton.h>
28#include <qlayout.h> 28#include <qlayout.h>
29#include <qframe.h> 29#include <qframe.h>
30#include <qlabel.h> 30#include <qlabel.h>
31#include <qpopupmenu.h> 31#include <qpopupmenu.h>
32#include <qapplication.h> 32#include <qapplication.h>
33 33
34#include <kdebug.h> 34#include <kdebug.h>
35#include <klocale.h> 35#include <klocale.h>
36#include <kglobal.h> 36#include <kglobal.h>
37#include <kiconloader.h> 37#include <kiconloader.h>
38#include "libkdepim/kdatepicker.h" 38#include "libkdepim/kdatepicker.h"
39#include <knotifyclient.h> 39#include <knotifyclient.h>
40#include "kdatetbl.h" 40#include "kdatetbl.h"
41 41
42#include "koglobals.h" 42#include "koglobals.h"
43#include <kglobalsettings.h> 43#include <kglobalsettings.h>
44#include "koprefs.h" 44#include "koprefs.h"
45#ifndef KORG_NOPLUGINS 45#ifndef KORG_NOPLUGINS
46#include "kocore.h" 46#include "kocore.h"
47#endif 47#endif
48 48
49#include <kcalendarsystem.h> 49#include <kcalendarsystem.h>
50 50
51#include "navigatorbar.h" 51#include "navigatorbar.h"
52 52
53NavigatorBar::NavigatorBar( const QDate & date, QWidget *parent, const char *name ) 53NavigatorBar::NavigatorBar( const QDate & date, QWidget *parent, const char *name )
54 : QWidget( parent, name ) 54 : QWidget( parent, name )
55{ 55{
56 QBoxLayout *topLayout = new QHBoxLayout( this ); 56 QBoxLayout *topLayout = new QHBoxLayout( this );
57 57
58 // Set up the control buttons and date label 58 // Set up the control buttons and date label
59 mCtrlFrame = new QFrame( this ); 59 mCtrlFrame = new QFrame( this );
60 mCtrlFrame->setFrameStyle(QFrame::Panel|QFrame::Raised); 60 mCtrlFrame->setFrameStyle(QFrame::Panel|QFrame::Raised);
61 mCtrlFrame->setLineWidth(1); 61 mCtrlFrame->setLineWidth(1);
62 62
63 topLayout->addWidget( mCtrlFrame ); 63 topLayout->addWidget( mCtrlFrame );
64 64
65 65
66 66
67 bool isRTL = KOGlobals::self()->reverseLayout(); 67 bool isRTL = KOGlobals::self()->reverseLayout();
68#ifndef DESKTOP_VERSION 68#ifndef DESKTOP_VERSION
69 bool isDesktop = false; 69 bool isDesktop = false;
70#else 70#else
71 bool isDesktop = true; 71 bool isDesktop = true;
72#endif 72#endif
73 if ( QString ( name ) == QString("useBigPixmaps") && QApplication::desktop()->width() > 320 ) 73 if ( QString ( name ) == QString("useBigPixmaps") && QApplication::desktop()->width() > 320 )
74 isDesktop = true; 74 isDesktop = true;
75 // Create backward navigation buttons 75 // Create backward navigation buttons
76 mPrevYear = new QPushButton( mCtrlFrame ); 76 mPrevYear = new QPushButton( mCtrlFrame );
77 mPrevYear->setPixmap( SmallIcon( isDesktop ? "3leftarrowB" : "3leftarrow" ) ); 77 mPrevYear->setPixmap( SmallIcon( isDesktop ? "3leftarrowB" : "3leftarrow" ) );
78 QToolTip::add( mPrevYear, i18n("Previous Year") ); 78 QToolTip::add( mPrevYear, i18n("Previous Year") );
79 79
80 mPrevMonth = new QPushButton( mCtrlFrame ); 80 mPrevMonth = new QPushButton( mCtrlFrame );
81 mPrevMonth->setPixmap( SmallIcon( isDesktop ? "2leftarrowB" : "2leftarrow") ); 81 mPrevMonth->setPixmap( SmallIcon( isDesktop ? "2leftarrowB" : "2leftarrow") );
82 QToolTip::add( mPrevMonth, i18n("Previous Month") ); 82 QToolTip::add( mPrevMonth, i18n("Previous Month") );
83 83
84 // Create forward navigation buttons 84 // Create forward navigation buttons
85 mNextMonth = new QPushButton( mCtrlFrame ); 85 mNextMonth = new QPushButton( mCtrlFrame );
86 mNextMonth->setPixmap( SmallIcon( isDesktop ? "2rightarrowB" : "2rightarrow") ); 86 mNextMonth->setPixmap( SmallIcon( isDesktop ? "2rightarrowB" : "2rightarrow") );
87 QToolTip::add( mNextMonth, i18n("Next Month") ); 87 QToolTip::add( mNextMonth, i18n("Next Month") );
88 88
89 mPrevWeek = new QPushButton( mCtrlFrame ); 89 mPrevWeek = new QPushButton( mCtrlFrame );
90 mPrevWeek->setPixmap( SmallIcon( isDesktop ? "1leftarrowB" : "1leftarrow") ); 90 mPrevWeek->setPixmap( SmallIcon( isDesktop ? "1leftarrowB" : "1leftarrow") );
91 QToolTip::add( mPrevWeek, i18n("Previous Week") ); 91 QToolTip::add( mPrevWeek, i18n("Previous Week") );
92 92
93 // Create forward navigation buttons 93 // Create forward navigation buttons
94 mNextWeek = new QPushButton( mCtrlFrame ); 94 mNextWeek = new QPushButton( mCtrlFrame );
95 mNextWeek->setPixmap( SmallIcon( isDesktop ? "1rightarrowB" : "1rightarrow") ); 95 mNextWeek->setPixmap( SmallIcon( isDesktop ? "1rightarrowB" : "1rightarrow") );
96 QToolTip::add( mNextWeek, i18n("Next Week") ); 96 QToolTip::add( mNextWeek, i18n("Next Week") );
97 97
98 mNextYear = new QPushButton( mCtrlFrame ); 98 mNextYear = new QPushButton( mCtrlFrame );
99 mNextYear->setPixmap( SmallIcon( isDesktop ? "3rightarrowB": "3rightarrow") ); 99 mNextYear->setPixmap( SmallIcon( isDesktop ? "3rightarrowB": "3rightarrow") );
100 QToolTip::add( mNextYear, i18n("Next Year") ); 100 QToolTip::add( mNextYear, i18n("Next Year") );
101 mSelectMonth = new QPushButton( mCtrlFrame ); 101 mSelectMonth = new QPushButton( mCtrlFrame );
102 // Create month name label 102 // Create month name label
103 //selectMonth->setFont( tfont ); 103 //selectMonth->setFont( tfont );
104 // selectMonth->setAlignment( AlignCenter ); 104 // selectMonth->setAlignment( AlignCenter );
105 //mDateLabel = new QLabel( selectMonth ); 105 //mDateLabel = new QLabel( selectMonth );
106 //mDateLabel->setFont( tfont ); 106 //mDateLabel->setFont( tfont );
107 //mDateLabel->setAlignment( AlignCenter ); 107 //mDateLabel->setAlignment( AlignCenter );
108 if ( QString ( name ) == QString("useBigPixmaps") ) { 108 if ( QString ( name ) == QString("useBigPixmaps") ) {
109 mNextMonth->setFlat( true); 109 mNextMonth->setFlat( true);
110 mNextWeek->setFlat( true); 110 mNextWeek->setFlat( true);
111 mNextYear->setFlat( true); 111 mNextYear->setFlat( true);
112 mSelectMonth->setFlat( true); 112 mSelectMonth->setFlat( true);
113 mPrevYear->setFlat( true); 113 mPrevYear->setFlat( true);
114 mPrevMonth->setFlat( true); 114 mPrevMonth->setFlat( true);
115 mPrevWeek->setFlat( true); 115 mPrevWeek->setFlat( true);
116 } else { 116 } else {
117 mPrevWeek->hide(); 117 mPrevWeek->hide();
118 mNextWeek->hide(); 118 mNextWeek->hide();
119 } 119 }
120 120
121 resetFont( font() ); 121 resetFont( font() );
122 122
123 123
124 // set up control frame layout 124 // set up control frame layout
125 QBoxLayout *ctrlLayout = new QHBoxLayout( mCtrlFrame, 1 ); 125 QBoxLayout *ctrlLayout = new QHBoxLayout( mCtrlFrame, 1 );
126 ctrlLayout->addWidget( mPrevYear, 3 ); 126 ctrlLayout->addWidget( mPrevYear, 3 );
127 ctrlLayout->addWidget( mPrevMonth, 3 ); 127 ctrlLayout->addWidget( mPrevMonth, 3 );
128 ctrlLayout->addWidget( mPrevWeek, 3 ); 128 ctrlLayout->addWidget( mPrevWeek, 3 );
129 //ctrlLayout->addStretch( 1 ); 129 //ctrlLayout->addStretch( 1 );
130 // ctrlLayout->addSpacing( 1 ); 130 // ctrlLayout->addSpacing( 1 );
131 // ctrlLayout->addWidget( mDateLabel ); 131 // ctrlLayout->addWidget( mDateLabel );
132 ctrlLayout->addWidget( mSelectMonth ); 132 ctrlLayout->addWidget( mSelectMonth );
133 // ctrlLayout->addSpacing( 1 ); 133 // ctrlLayout->addSpacing( 1 );
134 // ctrlLayout->addStretch( 1 ); 134 // ctrlLayout->addStretch( 1 );
135 ctrlLayout->addWidget( mNextWeek, 3 ); 135 ctrlLayout->addWidget( mNextWeek, 3 );
136 ctrlLayout->addWidget( mNextMonth, 3 ); 136 ctrlLayout->addWidget( mNextMonth, 3 );
137 ctrlLayout->addWidget( mNextYear, 3 ); 137 ctrlLayout->addWidget( mNextYear, 3 );
138 138
139 connect( mPrevYear, SIGNAL( clicked() ), SIGNAL( goPrevYear() ) ); 139 connect( mPrevYear, SIGNAL( clicked() ), SIGNAL( goPrevYear() ) );
140 connect( mPrevMonth, SIGNAL( clicked() ), SIGNAL( goPrevMonth() ) ); 140 connect( mPrevMonth, SIGNAL( clicked() ), SIGNAL( goPrevMonth() ) );
141 connect( mNextMonth, SIGNAL( clicked() ), SIGNAL( goNextMonth() ) ); 141 connect( mNextMonth, SIGNAL( clicked() ), SIGNAL( goNextMonth() ) );
142 connect( mPrevWeek, SIGNAL( clicked() ), SIGNAL( goPrevWeek() ) ); 142 connect( mPrevWeek, SIGNAL( clicked() ), SIGNAL( goPrevWeek() ) );
143 connect( mNextWeek, SIGNAL( clicked() ), SIGNAL( goNextWeek() ) ); 143 connect( mNextWeek, SIGNAL( clicked() ), SIGNAL( goNextWeek() ) );
144 connect( mNextYear, SIGNAL( clicked() ), SIGNAL( goNextYear() ) ); 144 connect( mNextYear, SIGNAL( clicked() ), SIGNAL( goNextYear() ) );
145 connect( mSelectMonth, SIGNAL( clicked() ),SLOT( selectMonth() ) ); 145 connect( mSelectMonth, SIGNAL( clicked() ),SLOT( selectMonth() ) );
146 mPrevYear->setFocusPolicy(NoFocus); 146 mPrevYear->setFocusPolicy(NoFocus);
147 mPrevMonth->setFocusPolicy(NoFocus); 147 mPrevMonth->setFocusPolicy(NoFocus);
148 mNextMonth->setFocusPolicy(NoFocus); 148 mNextMonth->setFocusPolicy(NoFocus);
149 mPrevWeek->setFocusPolicy(NoFocus); 149 mPrevWeek->setFocusPolicy(NoFocus);
150 mNextWeek->setFocusPolicy(NoFocus); 150 mNextWeek->setFocusPolicy(NoFocus);
151 mNextYear->setFocusPolicy(NoFocus); 151 mNextYear->setFocusPolicy(NoFocus);
152 mSelectMonth->setFocusPolicy(NoFocus); 152 mSelectMonth->setFocusPolicy(NoFocus);
153 setSizePolicy( QSizePolicy ( QSizePolicy::Expanding ,QSizePolicy::Fixed ) ); 153 setSizePolicy( QSizePolicy ( QSizePolicy::Expanding ,QSizePolicy::Fixed ) );
154 mPrevYear->setAutoRepeat( true );
155 mPrevMonth->setAutoRepeat( true );
156 mNextMonth->setAutoRepeat( true );
157 mPrevWeek->setAutoRepeat( true );
158 mNextWeek->setAutoRepeat( true );
159 mNextYear->setAutoRepeat( true );
154 160
155} 161}
156 162
157NavigatorBar::~NavigatorBar() 163NavigatorBar::~NavigatorBar()
158{ 164{
159} 165}
160QSize NavigatorBar::sizeHint() const 166QSize NavigatorBar::sizeHint() const
161{ 167{
162 int wid = mCurrentMinWid ; 168 int wid = mCurrentMinWid ;
163 if ( mPrevYear->isVisible() ) 169 if ( mPrevYear->isVisible() )
164 wid += mCurrentButtonMinWid; 170 wid += mCurrentButtonMinWid;
165 if ( mPrevMonth->isVisible() ) 171 if ( mPrevMonth->isVisible() )
166 wid += mCurrentButtonMinWid; 172 wid += mCurrentButtonMinWid;
167 if ( mPrevWeek->isVisible() ) 173 if ( mPrevWeek->isVisible() )
168 wid += mCurrentButtonMinWid; 174 wid += mCurrentButtonMinWid;
169 if ( mNextMonth->isVisible() ) 175 if ( mNextMonth->isVisible() )
170 wid += mCurrentButtonMinWid; 176 wid += mCurrentButtonMinWid;
171 if ( mNextWeek->isVisible() ) 177 if ( mNextWeek->isVisible() )
172 wid += mCurrentButtonMinWid; 178 wid += mCurrentButtonMinWid;
173 if ( mNextYear->isVisible() ) 179 if ( mNextYear->isVisible() )
174 wid += mCurrentButtonMinWid; 180 wid += mCurrentButtonMinWid;
175 //qDebug("ret %d %d ", wid, mCurrentHei); 181 //qDebug("ret %d %d ", wid, mCurrentHei);
176 return QSize ( wid, mCurrentHei ); 182 return QSize ( wid, mCurrentHei );
177} 183}
178QSize NavigatorBar::sizeHintTwoButtons( int butNum ) const 184QSize NavigatorBar::sizeHintTwoButtons( int butNum ) const
179{ 185{
180 return QSize ( mCurrentMinWid + butNum * mCurrentButtonMinWid , mCurrentHei ); 186 return QSize ( mCurrentMinWid + butNum * mCurrentButtonMinWid , mCurrentHei );
181} 187}
182void NavigatorBar::resetFont ( QFont fo ) 188void NavigatorBar::resetFont ( QFont fo )
183{ 189{
184 190
185 QFont tfont = fo; 191 QFont tfont = fo;
186 if ( QApplication::desktop()->width() >= 480 ) 192 if ( QApplication::desktop()->width() >= 480 )
187 tfont.setPointSize(tfont.pointSize()+2); 193 tfont.setPointSize(tfont.pointSize()+2);
188 tfont.setBold(true); 194 tfont.setBold(true);
189 195
190 mSelectMonth->setFont( tfont ); 196 mSelectMonth->setFont( tfont );
191 // Set minimum width to width of widest month name label 197 // Set minimum width to width of widest month name label
192 int i; 198 int i;
193 int maxwidth = 0; 199 int maxwidth = 0;
194 QFontMetrics fm ( mSelectMonth->font() ); 200 QFontMetrics fm ( mSelectMonth->font() );
195 int width = fm.width("September '00" ); 201 int width = fm.width("September '00" );
196 maxwidth = width+2; 202 maxwidth = width+2;
197 int size = fm.height()+2; 203 int size = fm.height()+2;
198 if ( QApplication::desktop()->width() >= 480 ) { 204 if ( QApplication::desktop()->width() >= 480 ) {
199 size += 6; 205 size += 6;
200 maxwidth+= 6; 206 maxwidth+= 6;
201 } 207 }
202 mSelectMonth->setMinimumWidth( maxwidth ); 208 mSelectMonth->setMinimumWidth( maxwidth );
203 mSelectMonth->setFixedHeight( size ); 209 mSelectMonth->setFixedHeight( size );
204 mPrevYear->setFixedHeight( size ); 210 mPrevYear->setFixedHeight( size );
205 mPrevMonth->setFixedHeight( size ); 211 mPrevMonth->setFixedHeight( size );
206 mPrevWeek->setFixedHeight( size ); 212 mPrevWeek->setFixedHeight( size );
207 mNextMonth->setFixedHeight( size ); 213 mNextMonth->setFixedHeight( size );
208 mNextWeek->setFixedHeight( size ); 214 mNextWeek->setFixedHeight( size );
209 mNextYear->setFixedHeight ( size ); 215 mNextYear->setFixedHeight ( size );
210 mCurrentHei = size +2; 216 mCurrentHei = size +2;
211 mCurrentMinWid = maxwidth+2; 217 mCurrentMinWid = maxwidth+2;
212 mCurrentButtonMinWid = mPrevYear->sizeHint().width()+2; 218 mCurrentButtonMinWid = mPrevYear->sizeHint().width()+2;
213} 219}
214 220
215void NavigatorBar::showButtons( bool left, bool right ) 221void NavigatorBar::showButtons( bool left, bool right )
216{ 222{
217 if ( left ) { 223 if ( left ) {
218 mPrevYear->show(); 224 mPrevYear->show();
219 mPrevMonth->show(); 225 mPrevMonth->show();
220 } else { 226 } else {
221 mPrevYear->hide(); 227 mPrevYear->hide();
222 mPrevMonth->hide(); 228 mPrevMonth->hide();
223 } 229 }
224 230
225 if ( right ) { 231 if ( right ) {
226 mNextYear->show(); 232 mNextYear->show();
227 mNextMonth->show(); 233 mNextMonth->show();
228 } else { 234 } else {
229 mNextYear->hide(); 235 mNextYear->hide();
230 mNextMonth->hide(); 236 mNextMonth->hide();
231 } 237 }
232 if ( !left && !right ) { 238 if ( !left && !right ) {
233 //mSelectMonth->setMaximumWidth( 1024 ); 239 //mSelectMonth->setMaximumWidth( 1024 );
234 mSelectMonth->setSizePolicy( QSizePolicy ( QSizePolicy::Expanding ,QSizePolicy::Fixed ) ); 240 mSelectMonth->setSizePolicy( QSizePolicy ( QSizePolicy::Expanding ,QSizePolicy::Fixed ) );
235 } 241 }
236} 242}
237 243
238void NavigatorBar::selectMonth() 244void NavigatorBar::selectMonth()
239{ 245{
240 246
241 int month; 247 int month;
242 KPopupFrame* popup = new KPopupFrame(this); 248 KPopupFrame* popup = new KPopupFrame(this);
243 KDateInternalMonthPicker* picker = new KDateInternalMonthPicker(popup); 249 KDateInternalMonthPicker* picker = new KDateInternalMonthPicker(popup);
244 // ----- 250 // -----
245 picker->resize(picker->sizeHint()); 251 picker->resize(picker->sizeHint());
246 popup->setMainWidget(picker); 252 popup->setMainWidget(picker);
247 picker->setFocus(); 253 picker->setFocus();
248 connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int))); 254 connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int)));
249 if(popup->exec(mSelectMonth->mapToGlobal(QPoint(0, mSelectMonth->height())))) 255 if(popup->exec(mSelectMonth->mapToGlobal(QPoint(0, mSelectMonth->height()))))
250 { 256 {
251 month = picker->getResult(); 257 month = picker->getResult();
252 emit monthSelected ( month ); 258 emit monthSelected ( month );
253 } else { 259 } else {
254 KNotifyClient::beep(); 260 KNotifyClient::beep();
255 } 261 }
256 delete popup; 262 delete popup;
257} 263}
258void NavigatorBar::selectDates( const KCal::DateList &dateList ) 264void NavigatorBar::selectDates( const KCal::DateList &dateList )
259{ 265{
260 if (dateList.count() > 0) { 266 if (dateList.count() > 0) {
261 QDate date = dateList.first(); 267 QDate date = dateList.first();
262 268
263 const KCalendarSystem *calSys = KOGlobals::self()->calendarSystem(); 269 const KCalendarSystem *calSys = KOGlobals::self()->calendarSystem();
264 270
265 // compute the label at the top of the navigator 271 // compute the label at the top of the navigator
266 QString dtstr = i18n(calSys->monthName( date )) + " '" + 272 QString dtstr = i18n(calSys->monthName( date )) + " '" +
267 QString::number( calSys->year( date ) ).right(2); 273 QString::number( calSys->year( date ) ).right(2);
268 274
269 mSelectMonth->setText( dtstr ); 275 mSelectMonth->setText( dtstr );
270 } 276 }
271} 277}
272 278