-rw-r--r-- | korganizer/komonthview.cpp | 72 | ||||
-rw-r--r-- | korganizer/komonthview.h | 1 |
2 files changed, 46 insertions, 27 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index 38cfda7..12233ee 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp | |||
@@ -733,60 +733,49 @@ void MonthViewCell::repaintfinishUpdateCell() | |||
733 | mitem->setBlockRepaint( false ); | 733 | mitem->setBlockRepaint( false ); |
734 | updateItem ( mitem ); | 734 | updateItem ( mitem ); |
735 | mitem = (MonthViewItem *)mitem->next(); | 735 | mitem = (MonthViewItem *)mitem->next(); |
736 | } | 736 | } |
737 | } | 737 | } |
738 | void MonthViewCell::finishUpdateCell() | 738 | void MonthViewCell::finishUpdateCell() |
739 | { | 739 | { |
740 | while ( mCurrentAvailItem ) { | 740 | while ( mCurrentAvailItem ) { |
741 | MonthViewItem *item = mCurrentAvailItem; | 741 | MonthViewItem *item = mCurrentAvailItem; |
742 | mCurrentAvailItem = (MonthViewItem *)item->next(); | 742 | mCurrentAvailItem = (MonthViewItem *)item->next(); |
743 | mAvailItemList.append( item ); | 743 | mAvailItemList.append( item ); |
744 | takeItem ( item ); | 744 | takeItem ( item ); |
745 | } | 745 | } |
746 | 746 | ||
747 | 747 | ||
748 | #ifdef DESKTOP_VERSION | 748 | #ifdef DESKTOP_VERSION |
749 | if (mToolTip.count() > 0 ) { | 749 | if (mToolTip.count() > 0 ) { |
750 | mToolTip.sort(); | 750 | mToolTip.sort(); |
751 | QToolTip::add(this,mToolTip.join("\n"),toolTipGroup(),""); | 751 | QToolTip::add(this,mToolTip.join("\n"),toolTipGroup(),""); |
752 | } | 752 | } |
753 | #endif | 753 | #endif |
754 | sort(); | 754 | sort(); |
755 | //setMyPalette(); | 755 | //setMyPalette(); |
756 | setMyPalette(); | 756 | setMyPalette(); |
757 | QString text; | 757 | |
758 | bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog; | ||
759 | if ( KOPrefs::instance()->mMonthViewWeek || KOGlobals::self()->calendarSystem()->day( mDate ) == 1 || (mDate.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) { | ||
760 | text = KOGlobals::self()->calendarSystem()->monthName( mDate, true ) + " "; | ||
761 | mLabel->resize( mLabelBigSize ); | ||
762 | text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); | ||
763 | } else { | ||
764 | mLabel->resize( mLabelSize ); | ||
765 | text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); | ||
766 | } | ||
767 | |||
768 | mLabel->setText( text ); | ||
769 | resizeEvent( 0 ); | 758 | resizeEvent( 0 ); |
770 | 759 | ||
771 | } | 760 | } |
772 | void MonthViewCell::updateCell() | 761 | void MonthViewCell::updateCell() |
773 | { | 762 | { |
774 | //qDebug("MonthViewCell::updateCell() "); | 763 | //qDebug("MonthViewCell::updateCell() "); |
775 | if ( !mMonthView->isUpdatePossible() ) | 764 | if ( !mMonthView->isUpdatePossible() ) |
776 | return; | 765 | return; |
777 | startUpdateCell(); | 766 | startUpdateCell(); |
778 | //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); | 767 | //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); |
779 | QPtrList<Event> events = mMonthView->calendar()->events( mDate, true ); | 768 | QPtrList<Event> events = mMonthView->calendar()->events( mDate, true ); |
780 | Event *event; | 769 | Event *event; |
781 | for( event = events.first(); event; event = events.next() ) { // for event | 770 | for( event = events.first(); event; event = events.next() ) { // for event |
782 | insertEvent(event); | 771 | insertEvent(event); |
783 | } | 772 | } |
784 | // insert due todos | 773 | // insert due todos |
785 | QPtrList<Todo> todos = mMonthView->calendar()->todos( mDate ); | 774 | QPtrList<Todo> todos = mMonthView->calendar()->todos( mDate ); |
786 | Todo *todo; | 775 | Todo *todo; |
787 | for(todo = todos.first(); todo; todo = todos.next()) { | 776 | for(todo = todos.first(); todo; todo = todos.next()) { |
788 | insertTodo( todo ); | 777 | insertTodo( todo ); |
789 | } | 778 | } |
790 | finishUpdateCell(); | 779 | finishUpdateCell(); |
791 | // if ( isVisible()) | 780 | // if ( isVisible()) |
792 | //qApp->processEvents(); | 781 | //qApp->processEvents(); |
@@ -874,48 +863,63 @@ QDate MonthViewCell::selectedIncidenceDate() | |||
874 | static_cast<MonthViewItem *>( item( index ) ); | 863 | static_cast<MonthViewItem *>( item( index ) ); |
875 | 864 | ||
876 | if ( !mitem ) return qd; | 865 | if ( !mitem ) return qd; |
877 | 866 | ||
878 | return mitem->incidenceDate(); | 867 | return mitem->incidenceDate(); |
879 | } | 868 | } |
880 | 869 | ||
881 | void MonthViewCell::deselect() | 870 | void MonthViewCell::deselect() |
882 | { | 871 | { |
883 | clearSelection(); | 872 | clearSelection(); |
884 | enableScrollBars( false ); | 873 | enableScrollBars( false ); |
885 | // updateCell(); | 874 | // updateCell(); |
886 | } | 875 | } |
887 | void MonthViewCell::select() | 876 | void MonthViewCell::select() |
888 | { | 877 | { |
889 | ;// updateCell(); | 878 | ;// updateCell(); |
890 | } | 879 | } |
891 | 880 | ||
892 | void MonthViewCell::resizeEvent ( QResizeEvent * e ) | 881 | void MonthViewCell::resizeEvent ( QResizeEvent * e ) |
893 | { | 882 | { |
894 | if ( !mMonthView->isUpdatePossible() ) | 883 | if ( !mMonthView->isUpdatePossible() ) |
895 | return; | 884 | return; |
896 | //qDebug("++++++++++++++MonthViewCell::resizeEvent %d %d ", width(), height()); | 885 | //qDebug("++++++++++++++MonthViewCell::resizeEvent %d %d ", width(), height()); |
897 | deselect(); | 886 | deselect(); |
887 | mLabel->setMaximumHeight( height() - lineWidth()*2 ); | ||
888 | |||
889 | QString text; | ||
890 | mLabel->setText( text ); | ||
891 | bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog; | ||
892 | if ( KOPrefs::instance()->mMonthViewWeek || KOGlobals::self()->calendarSystem()->day( mDate ) == 1 || (mDate.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) { | ||
893 | text = KOGlobals::self()->calendarSystem()->monthName( mDate, true ) + " "; | ||
894 | mLabel->resize( mLabelBigSize ); | ||
895 | text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); | ||
896 | } else { | ||
897 | mLabel->resize( mLabelSize ); | ||
898 | text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); | ||
899 | } | ||
900 | mLabel->setText( text ); | ||
901 | |||
898 | int size = height() - mLabel->height() - lineWidth()-1; | 902 | int size = height() - mLabel->height() - lineWidth()-1; |
899 | //qDebug("LW %d ", lineWidth()); | 903 | //qDebug("LW %d ", lineWidth()); |
900 | if ( size > 0 ) | 904 | if ( size > 0 ) |
901 | verticalScrollBar()->setMaximumHeight( size ); | 905 | verticalScrollBar()->setMaximumHeight( size ); |
902 | size = width() - mLabel->width() -lineWidth()-1; | 906 | size = width() - mLabel->width() -lineWidth()-1; |
903 | if ( size > 0 ) | 907 | if ( size > 0 ) |
904 | horizontalScrollBar()->setMaximumWidth( size ); | 908 | horizontalScrollBar()->setMaximumWidth( size ); |
905 | mLabel->move( width()-lineWidth() - mLabel->width(), height()-lineWidth() - mLabel->height() ); | 909 | mLabel->move( width()-lineWidth() - mLabel->width(), height()-lineWidth() - mLabel->height() ); |
906 | //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); | 910 | //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); |
907 | // mItemList->resize ( width(), height () ); | 911 | // mItemList->resize ( width(), height () ); |
908 | if ( e ) | 912 | if ( e ) |
909 | KNoScrollListBox::resizeEvent ( e ); | 913 | KNoScrollListBox::resizeEvent ( e ); |
910 | } | 914 | } |
911 | 915 | ||
912 | void MonthViewCell::defaultAction( QListBoxItem *item ) | 916 | void MonthViewCell::defaultAction( QListBoxItem *item ) |
913 | { | 917 | { |
914 | if ( !item ) return; | 918 | if ( !item ) return; |
915 | 919 | ||
916 | MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); | 920 | MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); |
917 | Incidence *incidence = eventItem->incidence(); | 921 | Incidence *incidence = eventItem->incidence(); |
918 | if ( incidence ) mMonthView->defaultAction( incidence ); | 922 | if ( incidence ) mMonthView->defaultAction( incidence ); |
919 | } | 923 | } |
920 | void MonthViewCell::showDay() | 924 | void MonthViewCell::showDay() |
921 | { | 925 | { |
@@ -1427,115 +1431,115 @@ void KOMonthView::updateView() | |||
1427 | int iii; | 1431 | int iii; |
1428 | for ( iii = st;iii<= end;++iii) | 1432 | for ( iii = st;iii<= end;++iii) |
1429 | (*cells)[iii]->insertEvent( event ); | 1433 | (*cells)[iii]->insertEvent( event ); |
1430 | } | 1434 | } |
1431 | } | 1435 | } |
1432 | } | 1436 | } |
1433 | } | 1437 | } |
1434 | // insert due todos | 1438 | // insert due todos |
1435 | QPtrList<Todo> todos = calendar()->todos( ); | 1439 | QPtrList<Todo> todos = calendar()->todos( ); |
1436 | Todo *todo; | 1440 | Todo *todo; |
1437 | for(todo = todos.first(); todo; todo = todos.next()) { | 1441 | for(todo = todos.first(); todo; todo = todos.next()) { |
1438 | //insertTodo( todo ); | 1442 | //insertTodo( todo ); |
1439 | if ( todo->hasDueDate() ) { | 1443 | if ( todo->hasDueDate() ) { |
1440 | int day = mStartDate.daysTo( todo->dtDue().date() ); | 1444 | int day = mStartDate.daysTo( todo->dtDue().date() ); |
1441 | if ( day >= 0 && day < timeSpan + 1) { | 1445 | if ( day >= 0 && day < timeSpan + 1) { |
1442 | (*cells)[day]->insertTodo( todo ); | 1446 | (*cells)[day]->insertTodo( todo ); |
1443 | } | 1447 | } |
1444 | } | 1448 | } |
1445 | } | 1449 | } |
1446 | 1450 | ||
1447 | for( i = 0; i < timeSpan+1; ++i ) { | 1451 | for( i = 0; i < timeSpan+1; ++i ) { |
1448 | (*cells)[i]->finishUpdateCell(); | 1452 | (*cells)[i]->finishUpdateCell(); |
1449 | } | 1453 | } |
1450 | processSelectionChange(); | 1454 | processSelectionChange(); |
1451 | qApp->processEvents(); | 1455 | //qApp->processEvents(); |
1452 | for( i = 0; i < timeSpan+1; ++i ) { | 1456 | for( i = 0; i < timeSpan+1; ++i ) { |
1453 | (*cells)[i]->repaintfinishUpdateCell(); | 1457 | (*cells)[i]->repaintfinishUpdateCell(); |
1454 | } | 1458 | } |
1455 | (*cells)[0]->setFocus(); | 1459 | (*cells)[0]->setFocus(); |
1456 | 1460 | ||
1457 | 1461 | ||
1458 | #else | 1462 | #else |
1459 | // old code | 1463 | // old code |
1460 | //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); | 1464 | //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); |
1461 | int i; | 1465 | int i; |
1462 | for( i = 0; i < (*cells).count(); ++i ) { | 1466 | for( i = 0; i < (*cells).count(); ++i ) { |
1463 | (*cells)[i]->updateCell(); | 1467 | (*cells)[i]->updateCell(); |
1464 | } | 1468 | } |
1465 | 1469 | ||
1466 | //qDebug("KOMonthView::updateView() "); | 1470 | //qDebug("KOMonthView::updateView() "); |
1467 | processSelectionChange(); | 1471 | processSelectionChange(); |
1468 | // qDebug("---------------------------------------------------------------------+ "); | 1472 | // qDebug("---------------------------------------------------------------------+ "); |
1469 | (*cells)[0]->setFocus(); | 1473 | (*cells)[0]->setFocus(); |
1470 | #endif | 1474 | #endif |
1471 | 1475 | ||
1472 | //qDebug("update time %d ", ti.elapsed()); | 1476 | //qDebug("update time %d ", ti.elapsed()); |
1473 | } | 1477 | } |
1474 | 1478 | ||
1475 | void KOMonthView::resizeEvent(QResizeEvent * e) | 1479 | void KOMonthView::resizeEvent(QResizeEvent * e) |
1476 | { | 1480 | { |
1477 | qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); | 1481 | //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); |
1478 | if ( isVisible() ) { | 1482 | if ( isVisible() ) { |
1479 | qDebug("KOMonthView::isVisible "); | 1483 | //qDebug("KOMonthView::isVisible "); |
1480 | slotComputeLayout(); | 1484 | slotComputeLayout(); |
1481 | } else | 1485 | } else |
1482 | mComputeLayoutTimer->start( 100 ); | 1486 | mComputeLayoutTimer->start( 100 ); |
1483 | } | 1487 | } |
1484 | 1488 | ||
1485 | void KOMonthView::slotComputeLayout() | 1489 | void KOMonthView::slotComputeLayout() |
1486 | { | 1490 | { |
1487 | mComputeLayoutTimer->stop(); | 1491 | mComputeLayoutTimer->stop(); |
1488 | qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() ); | 1492 | //qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() ); |
1489 | computeLayout(); | 1493 | computeLayout(); |
1490 | clPending = true; | 1494 | clPending = true; |
1491 | if ( mShowWeekView ) | 1495 | if ( mShowWeekView ) |
1492 | mCellsW[0]->setFocus(); | 1496 | mCellsW[0]->setFocus(); |
1493 | else | 1497 | else |
1494 | mCells[0]->setFocus(); | 1498 | mCells[0]->setFocus(); |
1495 | 1499 | ||
1496 | } | 1500 | } |
1497 | void KOMonthView::computeLayoutWeek() | 1501 | void KOMonthView::computeLayoutWeek() |
1498 | { | 1502 | { |
1499 | static int lastWid = 0; | 1503 | static int lastWid = 0; |
1500 | static int lastHei = 0; | 1504 | static int lastHei = 0; |
1501 | int daysToShow; | 1505 | int daysToShow; |
1502 | bool combinedSatSun = false; | 1506 | bool combinedSatSun = false; |
1503 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { | 1507 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { |
1504 | daysToShow = 6; | 1508 | daysToShow = 6; |
1505 | combinedSatSun = true; | 1509 | combinedSatSun = true; |
1506 | } | 1510 | } |
1507 | int tWid = topLevelWidget()->size().width(); | 1511 | int tWid = topLevelWidget()->size().width(); |
1508 | int tHei = topLevelWidget()->size().height(); | 1512 | int tHei = topLevelWidget()->size().height(); |
1509 | 1513 | ||
1510 | int wid = width();//e | 1514 | int wid = width();//e |
1511 | int hei = height()-1-mNavigatorBar->height(); | 1515 | int hei = height()-1-mNavigatorBar->height(); |
1512 | 1516 | ||
1513 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) | 1517 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) |
1514 | return; | 1518 | return; |
1515 | 1519 | ||
1516 | if ( lastWid == width() && lastHei == height() ) { | 1520 | if ( lastWid == width() && lastHei == height() ) { |
1517 | qDebug("KOListWeekView::No compute layout needed "); | 1521 | //qDebug("KOListWeekView::No compute layout needed "); |
1518 | return; | 1522 | return; |
1519 | } | 1523 | } |
1520 | lastWid = width(); | 1524 | lastWid = width(); |
1521 | lastHei = height(); | 1525 | lastHei = height(); |
1522 | 1526 | ||
1523 | 1527 | ||
1524 | if ( wid < hei ) | 1528 | if ( wid < hei ) |
1525 | daysToShow = 2; | 1529 | daysToShow = 2; |
1526 | else | 1530 | else |
1527 | daysToShow = 3; | 1531 | daysToShow = 3; |
1528 | mShowSatSunComp = true; | 1532 | mShowSatSunComp = true; |
1529 | combinedSatSun = true; | 1533 | combinedSatSun = true; |
1530 | 1534 | ||
1531 | //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); | 1535 | //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); |
1532 | QFontMetrics fm ( mWeekLabels[0]->font() ); | 1536 | QFontMetrics fm ( mWeekLabels[0]->font() ); |
1533 | int weeklabelwid = fm.width( "888" ); | 1537 | int weeklabelwid = fm.width( "888" ); |
1534 | wid -= weeklabelwid; | 1538 | wid -= weeklabelwid; |
1535 | 1539 | ||
1536 | int colWid = wid / daysToShow; | 1540 | int colWid = wid / daysToShow; |
1537 | int lastCol = wid - ( colWid*6 ); | 1541 | int lastCol = wid - ( colWid*6 ); |
1538 | int dayLabelHei = mDayLabelsW[0]->sizeHint().height(); | 1542 | int dayLabelHei = mDayLabelsW[0]->sizeHint().height(); |
1539 | int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); | 1543 | int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); |
1540 | int colModulo = wid % daysToShow; | 1544 | int colModulo = wid % daysToShow; |
1541 | int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; | 1545 | int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; |
@@ -1546,193 +1550,207 @@ void KOMonthView::computeLayoutWeek() | |||
1546 | y= 0; | 1550 | y= 0; |
1547 | w = colWid; | 1551 | w = colWid; |
1548 | h = dayLabelHei ; | 1552 | h = dayLabelHei ; |
1549 | for ( i = 0; i < 7; i++) { | 1553 | for ( i = 0; i < 7; i++) { |
1550 | if ( i && !( i % daysToShow) && i < 6) { | 1554 | if ( i && !( i % daysToShow) && i < 6) { |
1551 | y += hei/(5-daysToShow); | 1555 | y += hei/(5-daysToShow); |
1552 | x = 0; | 1556 | x = 0; |
1553 | w = colWid; | 1557 | w = colWid; |
1554 | } | 1558 | } |
1555 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { | 1559 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { |
1556 | ++w; | 1560 | ++w; |
1557 | } | 1561 | } |
1558 | if ( i >= 5 ) { | 1562 | if ( i >= 5 ) { |
1559 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,w/2+w%2,h); | 1563 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,w/2+w%2,h); |
1560 | x -= (w/2 ); | 1564 | x -= (w/2 ); |
1561 | } | 1565 | } |
1562 | else | 1566 | else |
1563 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,w,h); | 1567 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,w,h); |
1564 | x += w; | 1568 | x += w; |
1565 | } | 1569 | } |
1566 | x= 0; | 1570 | x= 0; |
1567 | y= dayLabelHei; | 1571 | y= dayLabelHei; |
1568 | w = colWid; | 1572 | w = colWid; |
1569 | h = cellHei; | 1573 | h = cellHei; |
1574 | int max = 0; | ||
1570 | for ( i = 0; i < mCellsW.count(); ++i) { | 1575 | for ( i = 0; i < mCellsW.count(); ++i) { |
1571 | if ( i > 6 ) { | 1576 | if ( i > 6 ) { |
1572 | mCellsW[i]->hide(); | 1577 | mCellsW[i]->hide(); |
1573 | continue; | 1578 | continue; |
1574 | } | 1579 | } |
1575 | 1580 | ||
1576 | w = colWid; | 1581 | w = colWid; |
1577 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { | 1582 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { |
1578 | ++w; | 1583 | ++w; |
1579 | } | 1584 | } |
1580 | if ( i == (daysToShow-1-rowModulo)*7) | 1585 | if ( i == (daysToShow-1-rowModulo)*7) |
1581 | ++h; | 1586 | ++h; |
1582 | 1587 | ||
1583 | if ( i >= 5 ) { | 1588 | if ( i >= 5 ) { |
1584 | if ( i ==5 ) { | 1589 | if ( i ==5 ) { |
1585 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h/2 ); | 1590 | max = h/2; |
1591 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max ); | ||
1586 | x -= w ;y += h/2; | 1592 | x -= w ;y += h/2; |
1587 | } else { | 1593 | } else { |
1588 | if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) { | 1594 | if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) { |
1589 | ++w; | 1595 | ++w; |
1590 | } | 1596 | } |
1591 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 ); | 1597 | max = h-h/2; |
1598 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max ); | ||
1592 | y -= h/2; | 1599 | y -= h/2; |
1593 | } | 1600 | } |
1594 | } else | 1601 | } else { |
1602 | max = h; | ||
1595 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h ); | 1603 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h ); |
1604 | } | ||
1596 | 1605 | ||
1597 | 1606 | ||
1598 | x += w; | 1607 | x += w; |
1599 | if ( x + w/2 > wid ) { | 1608 | if ( x + w/2 > wid ) { |
1600 | x = 0; | 1609 | x = 0; |
1601 | y += h+dayLabelHei ; | 1610 | y += h+dayLabelHei ; |
1602 | } | 1611 | } |
1612 | //mCellsW[i]->dateLabel()->setMaximumHeight( max - mCellsW[i]->lineWidth()*2 ); | ||
1603 | } | 1613 | } |
1604 | y= dayLabelHei; | 1614 | y= dayLabelHei; |
1605 | h = cellHei ; | 1615 | h = cellHei ; |
1606 | mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); | 1616 | mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); |
1607 | mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); | 1617 | mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); |
1608 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); | 1618 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); |
1609 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); | 1619 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); |
1610 | mShortDayLabelsW = mDayLabelsW[0]->width()-2 < mWidthLongDayLabel ; | 1620 | mShortDayLabelsW = mDayLabelsW[0]->width()-2 < mWidthLongDayLabel ; |
1611 | updateDayLabels(); | 1621 | updateDayLabels(); |
1612 | //bool forceUpdate = !updatePossible; | 1622 | //bool forceUpdate = !updatePossible; |
1613 | updatePossible = true; | 1623 | updatePossible = true; |
1614 | //mWeekLabels[mNumWeeks]->setText( i18n("M")); | 1624 | //mWeekLabels[mNumWeeks]->setText( i18n("M")); |
1615 | //if ( forceUpdate ) | 1625 | //if ( forceUpdate ) |
1616 | // updateView(); | 1626 | // updateView(); |
1617 | } | 1627 | } |
1618 | void KOMonthView::computeLayout() | 1628 | void KOMonthView::computeLayout() |
1619 | { | 1629 | { |
1620 | 1630 | ||
1621 | 1631 | ||
1622 | static int lastWid = 0; | 1632 | static int lastWid = 0; |
1623 | static int lastHei = 0; | 1633 | static int lastHei = 0; |
1624 | 1634 | ||
1625 | if ( mShowWeekView ){ | 1635 | if ( mShowWeekView ){ |
1626 | computeLayoutWeek(); | 1636 | computeLayoutWeek(); |
1627 | return; | 1637 | return; |
1628 | } | 1638 | } |
1629 | int daysToShow = 7; | 1639 | int daysToShow = 7; |
1630 | bool combinedSatSun = false; | 1640 | bool combinedSatSun = false; |
1631 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { | 1641 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { |
1632 | daysToShow = 6; | 1642 | daysToShow = 6; |
1633 | combinedSatSun = true; | 1643 | combinedSatSun = true; |
1634 | } | 1644 | } |
1635 | int tWid = topLevelWidget()->size().width(); | 1645 | int tWid = topLevelWidget()->size().width(); |
1636 | int tHei = topLevelWidget()->size().height(); | 1646 | int tHei = topLevelWidget()->size().height(); |
1637 | 1647 | ||
1638 | int wid = width();//e | 1648 | int wid = width();//e |
1639 | int hei = height()-1-mNavigatorBar->height(); | 1649 | int hei = height()-1-mNavigatorBar->height(); |
1640 | 1650 | ||
1641 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) { | 1651 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) { |
1642 | return; | 1652 | return; |
1643 | } | 1653 | } |
1644 | if ( lastWid == width() && lastHei == height() ){ | 1654 | if ( lastWid == width() && lastHei == height() ){ |
1645 | qDebug("KOMonthview::No compute layout needed "); | 1655 | //qDebug("KOMonthview::No compute layout needed "); |
1646 | return; | 1656 | return; |
1647 | } | 1657 | } |
1648 | 1658 | ||
1649 | lastWid = width(); | 1659 | lastWid = width(); |
1650 | lastHei = height(); | 1660 | lastHei = height(); |
1651 | qDebug("KOMonthView::computeLayout() MMM ------------------- "); | 1661 | //qDebug("KOMonthView::computeLayout() MMM ------------------- "); |
1652 | QFontMetrics fm ( mWeekLabels[0]->font() ); | 1662 | QFontMetrics fm ( mWeekLabels[0]->font() ); |
1653 | int weeklabelwid = fm.width( "888" ); | 1663 | int weeklabelwid = fm.width( "888" ); |
1654 | wid -= weeklabelwid; | 1664 | wid -= weeklabelwid; |
1655 | 1665 | ||
1656 | int colWid = wid / daysToShow; | 1666 | int colWid = wid / daysToShow; |
1657 | int lastCol = wid - ( colWid*6 ); | 1667 | int lastCol = wid - ( colWid*6 ); |
1658 | int dayLabelHei = mDayLabels[0]->sizeHint().height(); | 1668 | int dayLabelHei = mDayLabels[0]->sizeHint().height(); |
1659 | int cellHei = (hei - dayLabelHei) /6; | 1669 | int cellHei = (hei - dayLabelHei) /6; |
1660 | int colModulo = wid % daysToShow; | 1670 | int colModulo = wid % daysToShow; |
1661 | int rowModulo = (hei- dayLabelHei) % 6; | 1671 | int rowModulo = (hei- dayLabelHei) % 6; |
1662 | //qDebug("rowmod %d ", rowModulo); | 1672 | //qDebug("rowmod %d ", rowModulo); |
1663 | int i; | 1673 | int i; |
1664 | int x,y,w,h; | 1674 | int x,y,w,h; |
1665 | x= 0; | 1675 | x= 0; |
1666 | y= 0; | 1676 | y= 0; |
1667 | w = colWid; | 1677 | w = colWid; |
1668 | h = dayLabelHei ; | 1678 | h = dayLabelHei ; |
1669 | for ( i = 0; i < 7; i++) { | 1679 | for ( i = 0; i < 7; i++) { |
1670 | if ( i == daysToShow-colModulo ) | 1680 | if ( i == daysToShow-colModulo ) |
1671 | ++w; | 1681 | ++w; |
1672 | if ( combinedSatSun ) { | 1682 | if ( combinedSatSun ) { |
1673 | if ( i >= daysToShow-1 ) { | 1683 | if ( i >= daysToShow-1 ) { |
1674 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h); | 1684 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h); |
1675 | x -= w/2 ; | 1685 | x -= w/2 ; |
1676 | } | 1686 | } |
1677 | else | 1687 | else |
1678 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); | 1688 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); |
1679 | } else | 1689 | } else |
1680 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); | 1690 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); |
1681 | x += w; | 1691 | x += w; |
1682 | } | 1692 | } |
1683 | x= 0; | 1693 | x= 0; |
1684 | y= dayLabelHei; | 1694 | y= dayLabelHei; |
1685 | w = colWid; | 1695 | w = colWid; |
1686 | h = cellHei ; | 1696 | h = cellHei ; |
1697 | int max = 0; | ||
1687 | for ( i = 0; i < mCells.count(); ++i) { | 1698 | for ( i = 0; i < mCells.count(); ++i) { |
1688 | //qDebug("iii %d ", i); | 1699 | //qDebug("iii %d ", i); |
1689 | w = colWid; | 1700 | w = colWid; |
1690 | if ( ((i) % 7) >= 7-colModulo ) { | 1701 | if ( ((i) % 7) >= 7-colModulo ) { |
1691 | ++w; | 1702 | ++w; |
1692 | } | 1703 | } |
1693 | if ( i == (6-rowModulo)*7) | 1704 | if ( i == (6-rowModulo)*7) |
1694 | ++h; | 1705 | ++h; |
1695 | if ( combinedSatSun ) { | 1706 | if ( combinedSatSun ) { |
1696 | if ( (i)%7 >= daysToShow-1 ) { | 1707 | if ( (i)%7 >= daysToShow-1 ) { |
1697 | if ( (i)%7 == daysToShow-1 ) { | 1708 | if ( (i)%7 == daysToShow-1 ) { |
1698 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h/2 ); | 1709 | max = h/2; |
1710 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,max ); | ||
1699 | x -= w ;y += h/2; | 1711 | x -= w ;y += h/2; |
1700 | } else { | 1712 | } else { |
1701 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 ); | 1713 | max = h-h/2; |
1714 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,max ); | ||
1702 | y -= h/2; | 1715 | y -= h/2; |
1703 | } | 1716 | } |
1704 | } else | 1717 | } else { |
1718 | max = h; | ||
1705 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); | 1719 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); |
1720 | } | ||
1706 | 1721 | ||
1707 | } | 1722 | } |
1708 | else | 1723 | else { |
1724 | max = h; | ||
1709 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); | 1725 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); |
1726 | } | ||
1710 | x += w; | 1727 | x += w; |
1711 | if ( x + w/2 > wid ) { | 1728 | if ( x + w/2 > wid ) { |
1712 | x = 0; | 1729 | x = 0; |
1713 | y += h; | 1730 | y += h; |
1714 | } | 1731 | } |
1732 | //mCells[i]->dateLabel()->setMaximumHeight( max- mCells[i]->lineWidth()*2 ); | ||
1715 | } | 1733 | } |
1716 | y= dayLabelHei; | 1734 | y= dayLabelHei; |
1717 | h = cellHei ; | 1735 | h = cellHei ; |
1718 | for ( i = 0; i < 6; i++) { | 1736 | for ( i = 0; i < 6; i++) { |
1719 | if ( i == (6-rowModulo)) | 1737 | if ( i == (6-rowModulo)) |
1720 | ++h; | 1738 | ++h; |
1721 | mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h); | 1739 | mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h); |
1722 | y += h; | 1740 | y += h; |
1723 | } | 1741 | } |
1724 | mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); | 1742 | mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); |
1725 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); | 1743 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); |
1726 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); | 1744 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); |
1727 | mShortDayLabelsM = mDayLabels[0]->width()-2 < mWidthLongDayLabel ; | 1745 | mShortDayLabelsM = mDayLabels[0]->width()-2 < mWidthLongDayLabel ; |
1728 | updateDayLabels(); | 1746 | updateDayLabels(); |
1729 | //bool forceUpdate = !updatePossible; | 1747 | //bool forceUpdate = !updatePossible; |
1730 | updatePossible = true; | 1748 | updatePossible = true; |
1731 | //mWeekLabels[mNumWeeks]->setText( i18n("W")); | 1749 | //mWeekLabels[mNumWeeks]->setText( i18n("W")); |
1732 | } | 1750 | } |
1733 | 1751 | ||
1734 | void KOMonthView::showContextMenu( Incidence *incidence ) | 1752 | void KOMonthView::showContextMenu( Incidence *incidence ) |
1735 | { | 1753 | { |
1736 | mContextMenu->showIncidencePopup(incidence); | 1754 | mContextMenu->showIncidencePopup(incidence); |
1737 | /* | 1755 | /* |
1738 | if( incidence && incidence->type() == "Event" ) { | 1756 | if( incidence && incidence->type() == "Event" ) { |
diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h index b997c1a..a58f6b8 100644 --- a/korganizer/komonthview.h +++ b/korganizer/komonthview.h | |||
@@ -138,48 +138,49 @@ class MonthViewCell : public KNoScrollListBox | |||
138 | ~MonthViewCell() {mAvailItemList.setAutoDelete( true );} | 138 | ~MonthViewCell() {mAvailItemList.setAutoDelete( true );} |
139 | 139 | ||
140 | void setDate( const QDate & ); | 140 | void setDate( const QDate & ); |
141 | QDate date() const; | 141 | QDate date() const; |
142 | 142 | ||
143 | void setPrimary( bool ); | 143 | void setPrimary( bool ); |
144 | bool isPrimary() const; | 144 | bool isPrimary() const; |
145 | 145 | ||
146 | void setHoliday( bool ); | 146 | void setHoliday( bool ); |
147 | void setHoliday( const QString & ); | 147 | void setHoliday( const QString & ); |
148 | 148 | ||
149 | void updateCell(); | 149 | void updateCell(); |
150 | void startUpdateCell(); | 150 | void startUpdateCell(); |
151 | void finishUpdateCell(); | 151 | void finishUpdateCell(); |
152 | void repaintfinishUpdateCell(); | 152 | void repaintfinishUpdateCell(); |
153 | void insertEvent(Event *); | 153 | void insertEvent(Event *); |
154 | void insertTodo(Todo *); | 154 | void insertTodo(Todo *); |
155 | 155 | ||
156 | void updateConfig( bool bigFont = false ); | 156 | void updateConfig( bool bigFont = false ); |
157 | 157 | ||
158 | void enableScrollBars( bool ); | 158 | void enableScrollBars( bool ); |
159 | 159 | ||
160 | Incidence *selectedIncidence(); | 160 | Incidence *selectedIncidence(); |
161 | QDate selectedIncidenceDate(); | 161 | QDate selectedIncidenceDate(); |
162 | QPushButton * dateLabel() { return mLabel; } | ||
162 | 163 | ||
163 | void deselect(); | 164 | void deselect(); |
164 | void select(); | 165 | void select(); |
165 | 166 | ||
166 | #ifdef DESKTOP_VERSION | 167 | #ifdef DESKTOP_VERSION |
167 | static QToolTipGroup *toolTipGroup(); | 168 | static QToolTipGroup *toolTipGroup(); |
168 | #endif | 169 | #endif |
169 | signals: | 170 | signals: |
170 | void defaultAction( Incidence * ); | 171 | void defaultAction( Incidence * ); |
171 | void newEventSignal( QDateTime ); | 172 | void newEventSignal( QDateTime ); |
172 | void showDaySignal( QDate ); | 173 | void showDaySignal( QDate ); |
173 | 174 | ||
174 | protected: | 175 | protected: |
175 | QStringList mToolTip; | 176 | QStringList mToolTip; |
176 | void resizeEvent( QResizeEvent * ); | 177 | void resizeEvent( QResizeEvent * ); |
177 | 178 | ||
178 | 179 | ||
179 | public slots: | 180 | public slots: |
180 | void showDay(); | 181 | void showDay(); |
181 | 182 | ||
182 | protected slots: | 183 | protected slots: |
183 | void defaultAction( QListBoxItem * ); | 184 | void defaultAction( QListBoxItem * ); |
184 | void contextMenu( QListBoxItem * ); | 185 | void contextMenu( QListBoxItem * ); |
185 | void selection( QListBoxItem * ); | 186 | void selection( QListBoxItem * ); |