-rw-r--r-- | korganizer/komonthview.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index 9fd1f68..8ee5bc3 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp | |||
@@ -949,96 +949,101 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) | |||
949 | for( row = 0; row < mNumWeeks; ++row ) { | 949 | for( row = 0; row < mNumWeeks; ++row ) { |
950 | for( col = 0; col < mDaysPerWeek; ++col ) { | 950 | for( col = 0; col < mDaysPerWeek; ++col ) { |
951 | MonthViewCell *cell = new MonthViewCell( this, mMonthView ); | 951 | MonthViewCell *cell = new MonthViewCell( this, mMonthView ); |
952 | mCells.insert( row * mDaysPerWeek + col, cell ); | 952 | mCells.insert( row * mDaysPerWeek + col, cell ); |
953 | 953 | ||
954 | connect( cell, SIGNAL( defaultAction( Incidence * ) ), | 954 | connect( cell, SIGNAL( defaultAction( Incidence * ) ), |
955 | SLOT( defaultAction( Incidence * ) ) ); | 955 | SLOT( defaultAction( Incidence * ) ) ); |
956 | connect( cell, SIGNAL( newEventSignal( QDateTime ) ), | 956 | connect( cell, SIGNAL( newEventSignal( QDateTime ) ), |
957 | SIGNAL( newEventSignal( QDateTime ) ) ); | 957 | SIGNAL( newEventSignal( QDateTime ) ) ); |
958 | connect( cell, SIGNAL( showDaySignal( QDate ) ), | 958 | connect( cell, SIGNAL( showDaySignal( QDate ) ), |
959 | SIGNAL( showDaySignal( QDate ) ) ); | 959 | SIGNAL( showDaySignal( QDate ) ) ); |
960 | } | 960 | } |
961 | } | 961 | } |
962 | mCellsW.resize( mDaysPerWeek ); | 962 | mCellsW.resize( mDaysPerWeek ); |
963 | for( col = 0; col < mDaysPerWeek; ++col ) { | 963 | for( col = 0; col < mDaysPerWeek; ++col ) { |
964 | MonthViewCell *cell = new MonthViewCell( this, mWeekView ); | 964 | MonthViewCell *cell = new MonthViewCell( this, mWeekView ); |
965 | mCellsW.insert( col, cell ); | 965 | mCellsW.insert( col, cell ); |
966 | 966 | ||
967 | connect( cell, SIGNAL( defaultAction( Incidence * ) ), | 967 | connect( cell, SIGNAL( defaultAction( Incidence * ) ), |
968 | SLOT( defaultAction( Incidence * ) ) ); | 968 | SLOT( defaultAction( Incidence * ) ) ); |
969 | connect( cell, SIGNAL( newEventSignal( QDateTime ) ), | 969 | connect( cell, SIGNAL( newEventSignal( QDateTime ) ), |
970 | SIGNAL( newEventSignal( QDateTime ) ) ); | 970 | SIGNAL( newEventSignal( QDateTime ) ) ); |
971 | connect( cell, SIGNAL( showDaySignal( QDate ) ), | 971 | connect( cell, SIGNAL( showDaySignal( QDate ) ), |
972 | SIGNAL( showDaySignal( QDate ) ) ); | 972 | SIGNAL( showDaySignal( QDate ) ) ); |
973 | cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont ); | 973 | cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont ); |
974 | } | 974 | } |
975 | 975 | ||
976 | //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); | 976 | //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); |
977 | mContextMenu = eventPopup(); | 977 | mContextMenu = eventPopup(); |
978 | // updateConfig(); //useless here... | 978 | // updateConfig(); //useless here... |
979 | // ... but we need mWidthLongDayLabel computed | 979 | // ... but we need mWidthLongDayLabel computed |
980 | QFontMetrics fontmetric(mDayLabels[0]->font()); | 980 | QFontMetrics fontmetric(mDayLabels[0]->font()); |
981 | mWidthLongDayLabel = 0; | 981 | mWidthLongDayLabel = 0; |
982 | for (int i = 0; i < 7; i++) { | 982 | for (int i = 0; i < 7; i++) { |
983 | int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); | 983 | int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); |
984 | if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; | 984 | if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; |
985 | } | 985 | } |
986 | 986 | ||
987 | //mWeekLabels[mNumWeeks]->setText( i18n("W")); | 987 | //mWeekLabels[mNumWeeks]->setText( i18n("W")); |
988 | 988 | ||
989 | #if 0 | 989 | #if 0 |
990 | if ( mShowWeekView ) | 990 | if ( mShowWeekView ) |
991 | mWidStack->raiseWidget( mWeekView ); | 991 | mWidStack->raiseWidget( mWeekView ); |
992 | else | 992 | else |
993 | mWidStack->raiseWidget( mMonthView ); | 993 | mWidStack->raiseWidget( mMonthView ); |
994 | #endif | 994 | #endif |
995 | 995 | ||
996 | emit incidenceSelected( 0 ); | 996 | emit incidenceSelected( 0 ); |
997 | |||
998 | mComputeLayoutTimer = new QTimer( this ); | ||
999 | connect (mComputeLayoutTimer ,SIGNAL(timeout()), this, SLOT ( slotComputeLayout())); | ||
1000 | |||
1001 | |||
997 | #ifndef DESKTOP_VERSION | 1002 | #ifndef DESKTOP_VERSION |
998 | resize( QApplication::desktop()->size() ); | 1003 | resize( QApplication::desktop()->size() ); |
999 | #else | 1004 | #else |
1000 | resize(640, 480 ); | 1005 | resize(640, 480 ); |
1001 | updatePossible = true; | 1006 | updatePossible = true; |
1002 | #endif | 1007 | #endif |
1003 | computeLayout(); | 1008 | computeLayout(); |
1004 | 1009 | ||
1005 | if ( mShowWeekView ) | 1010 | if ( mShowWeekView ) |
1006 | mWidStack->raiseWidget( mWeekView ); | 1011 | mWidStack->raiseWidget( mWeekView ); |
1007 | else | 1012 | else |
1008 | mWidStack->raiseWidget( mMonthView ); | 1013 | mWidStack->raiseWidget( mMonthView ); |
1009 | } | 1014 | } |
1010 | 1015 | ||
1011 | KOMonthView::~KOMonthView() | 1016 | KOMonthView::~KOMonthView() |
1012 | { | 1017 | { |
1013 | delete mContextMenu; | 1018 | delete mContextMenu; |
1014 | } | 1019 | } |
1015 | 1020 | ||
1016 | void KOMonthView::selectInternalWeekNum ( int n ) | 1021 | void KOMonthView::selectInternalWeekNum ( int n ) |
1017 | { | 1022 | { |
1018 | switchView(); | 1023 | switchView(); |
1019 | if ( !KOPrefs::instance()->mMonthViewWeek ) | 1024 | if ( !KOPrefs::instance()->mMonthViewWeek ) |
1020 | emit selectMonth (); | 1025 | emit selectMonth (); |
1021 | else | 1026 | else |
1022 | emit selectWeekNum ( n ); | 1027 | emit selectWeekNum ( n ); |
1023 | } | 1028 | } |
1024 | 1029 | ||
1025 | int KOMonthView::currentWeek() | 1030 | int KOMonthView::currentWeek() |
1026 | { | 1031 | { |
1027 | if ( mShowWeekView ) | 1032 | if ( mShowWeekView ) |
1028 | return mWeekLabelsW[0]->getWeekNum(); | 1033 | return mWeekLabelsW[0]->getWeekNum(); |
1029 | return mWeekLabels[0]->getWeekNum(); | 1034 | return mWeekLabels[0]->getWeekNum(); |
1030 | } | 1035 | } |
1031 | void KOMonthView::switchView() | 1036 | void KOMonthView::switchView() |
1032 | { | 1037 | { |
1033 | if ( selectedCell( ) ) | 1038 | if ( selectedCell( ) ) |
1034 | selectedCell()->deselect(); | 1039 | selectedCell()->deselect(); |
1035 | mShowWeekView = !mShowWeekView; | 1040 | mShowWeekView = !mShowWeekView; |
1036 | KOPrefs::instance()->mMonthViewWeek = mShowWeekView; | 1041 | KOPrefs::instance()->mMonthViewWeek = mShowWeekView; |
1037 | if ( clPending ) { | 1042 | if ( clPending ) { |
1038 | computeLayout(); | 1043 | computeLayout(); |
1039 | updateConfig(); | 1044 | updateConfig(); |
1040 | } | 1045 | } |
1041 | if ( mShowWeekView ) | 1046 | if ( mShowWeekView ) |
1042 | mWidStack->raiseWidget( mWeekView ); | 1047 | mWidStack->raiseWidget( mWeekView ); |
1043 | else | 1048 | else |
1044 | mWidStack->raiseWidget( mMonthView ); | 1049 | mWidStack->raiseWidget( mMonthView ); |
@@ -1306,125 +1311,139 @@ void KOMonthView::updateView() | |||
1306 | if ( st < 0 ) st = 0; | 1311 | if ( st < 0 ) st = 0; |
1307 | if ( end > timeSpan ) end = timeSpan; | 1312 | if ( end > timeSpan ) end = timeSpan; |
1308 | int iii; | 1313 | int iii; |
1309 | for ( iii = st;iii<= end;++iii) | 1314 | for ( iii = st;iii<= end;++iii) |
1310 | (*cells)[iii]->insertEvent( event ); | 1315 | (*cells)[iii]->insertEvent( event ); |
1311 | } | 1316 | } |
1312 | } | 1317 | } |
1313 | } | 1318 | } |
1314 | } | 1319 | } |
1315 | // insert due todos | 1320 | // insert due todos |
1316 | QPtrList<Todo> todos = calendar()->todos( ); | 1321 | QPtrList<Todo> todos = calendar()->todos( ); |
1317 | Todo *todo; | 1322 | Todo *todo; |
1318 | for(todo = todos.first(); todo; todo = todos.next()) { | 1323 | for(todo = todos.first(); todo; todo = todos.next()) { |
1319 | //insertTodo( todo ); | 1324 | //insertTodo( todo ); |
1320 | if ( todo->hasDueDate() ) { | 1325 | if ( todo->hasDueDate() ) { |
1321 | int day = mStartDate.daysTo( todo->dtDue().date() ); | 1326 | int day = mStartDate.daysTo( todo->dtDue().date() ); |
1322 | if ( day >= 0 && day < timeSpan + 1) { | 1327 | if ( day >= 0 && day < timeSpan + 1) { |
1323 | (*cells)[day]->insertTodo( todo ); | 1328 | (*cells)[day]->insertTodo( todo ); |
1324 | } | 1329 | } |
1325 | } | 1330 | } |
1326 | } | 1331 | } |
1327 | 1332 | ||
1328 | for( i = 0; i < timeSpan+1; ++i ) { | 1333 | for( i = 0; i < timeSpan+1; ++i ) { |
1329 | (*cells)[i]->finishUpdateCell(); | 1334 | (*cells)[i]->finishUpdateCell(); |
1330 | } | 1335 | } |
1331 | processSelectionChange(); | 1336 | processSelectionChange(); |
1332 | (*cells)[0]->setFocus(); | 1337 | (*cells)[0]->setFocus(); |
1333 | 1338 | ||
1334 | 1339 | ||
1335 | #else | 1340 | #else |
1336 | // old code | 1341 | // old code |
1337 | //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); | 1342 | //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); |
1338 | int i; | 1343 | int i; |
1339 | for( i = 0; i < (*cells).count(); ++i ) { | 1344 | for( i = 0; i < (*cells).count(); ++i ) { |
1340 | (*cells)[i]->updateCell(); | 1345 | (*cells)[i]->updateCell(); |
1341 | } | 1346 | } |
1342 | 1347 | ||
1343 | //qDebug("KOMonthView::updateView() "); | 1348 | //qDebug("KOMonthView::updateView() "); |
1344 | processSelectionChange(); | 1349 | processSelectionChange(); |
1345 | // qDebug("---------------------------------------------------------------------+ "); | 1350 | // qDebug("---------------------------------------------------------------------+ "); |
1346 | (*cells)[0]->setFocus(); | 1351 | (*cells)[0]->setFocus(); |
1347 | #endif | 1352 | #endif |
1348 | 1353 | ||
1349 | //qDebug("update time %d ", ti.elapsed()); | 1354 | //qDebug("update time %d ", ti.elapsed()); |
1350 | } | 1355 | } |
1351 | 1356 | ||
1352 | void KOMonthView::resizeEvent(QResizeEvent * e) | 1357 | void KOMonthView::resizeEvent(QResizeEvent * e) |
1353 | { | 1358 | { |
1354 | //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); | 1359 | qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); |
1360 | if ( isVisible() ) { | ||
1361 | qDebug("KOMonthView::isVisible "); | ||
1362 | slotComputeLayout(); | ||
1363 | } else | ||
1364 | mComputeLayoutTimer->start( 100 ); | ||
1365 | } | ||
1366 | |||
1367 | void KOMonthView::slotComputeLayout() | ||
1368 | { | ||
1369 | mComputeLayoutTimer->stop(); | ||
1370 | qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() ); | ||
1355 | computeLayout(); | 1371 | computeLayout(); |
1356 | clPending = true; | 1372 | clPending = true; |
1357 | if ( mShowWeekView ) | 1373 | if ( mShowWeekView ) |
1358 | mCellsW[0]->setFocus(); | 1374 | mCellsW[0]->setFocus(); |
1359 | else | 1375 | else |
1360 | mCells[0]->setFocus(); | 1376 | mCells[0]->setFocus(); |
1377 | |||
1361 | } | 1378 | } |
1362 | void KOMonthView::computeLayoutWeek() | 1379 | void KOMonthView::computeLayoutWeek() |
1363 | { | 1380 | { |
1364 | static int lastWid = 0; | 1381 | static int lastWid = 0; |
1365 | static int lastHei = 0; | 1382 | static int lastHei = 0; |
1366 | int daysToShow; | 1383 | int daysToShow; |
1367 | bool combinedSatSun = false; | 1384 | bool combinedSatSun = false; |
1368 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { | 1385 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { |
1369 | daysToShow = 6; | 1386 | daysToShow = 6; |
1370 | combinedSatSun = true; | 1387 | combinedSatSun = true; |
1371 | } | 1388 | } |
1372 | int tWid = topLevelWidget()->size().width(); | 1389 | int tWid = topLevelWidget()->size().width(); |
1373 | int tHei = topLevelWidget()->size().height(); | 1390 | int tHei = topLevelWidget()->size().height(); |
1374 | 1391 | ||
1375 | int wid = width();//e | 1392 | int wid = width();//e |
1376 | int hei = height()-1-mNavigatorBar->height(); | 1393 | int hei = height()-1-mNavigatorBar->height(); |
1377 | 1394 | ||
1378 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) | 1395 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) |
1379 | return; | 1396 | return; |
1380 | 1397 | ||
1381 | if ( lastWid == width() && lastHei == height() ) | 1398 | if ( lastWid == width() && lastHei == height() ) { |
1399 | qDebug("KOListWeekView::No compute layout needed "); | ||
1382 | return; | 1400 | return; |
1401 | } | ||
1383 | lastWid = width(); | 1402 | lastWid = width(); |
1384 | lastHei = height(); | 1403 | lastHei = height(); |
1385 | 1404 | ||
1386 | 1405 | ||
1387 | if ( wid < hei ) | 1406 | if ( wid < hei ) |
1388 | daysToShow = 2; | 1407 | daysToShow = 2; |
1389 | else | 1408 | else |
1390 | daysToShow = 3; | 1409 | daysToShow = 3; |
1391 | mShowSatSunComp = true; | 1410 | mShowSatSunComp = true; |
1392 | combinedSatSun = true; | 1411 | combinedSatSun = true; |
1393 | 1412 | ||
1394 | //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); | 1413 | //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); |
1395 | QFontMetrics fm ( mWeekLabels[0]->font() ); | 1414 | QFontMetrics fm ( mWeekLabels[0]->font() ); |
1396 | int weeklabelwid = fm.width( "888" ); | 1415 | int weeklabelwid = fm.width( "888" ); |
1397 | wid -= weeklabelwid; | 1416 | wid -= weeklabelwid; |
1398 | 1417 | ||
1399 | int colWid = wid / daysToShow; | 1418 | int colWid = wid / daysToShow; |
1400 | int lastCol = wid - ( colWid*6 ); | 1419 | int lastCol = wid - ( colWid*6 ); |
1401 | int dayLabelHei = mDayLabelsW[0]->sizeHint().height(); | 1420 | int dayLabelHei = mDayLabelsW[0]->sizeHint().height(); |
1402 | int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); | 1421 | int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); |
1403 | int colModulo = wid % daysToShow; | 1422 | int colModulo = wid % daysToShow; |
1404 | int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; | 1423 | int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; |
1405 | //qDebug("rowmod %d ", rowModulo); | 1424 | //qDebug("rowmod %d ", rowModulo); |
1406 | int i; | 1425 | int i; |
1407 | int x,y,w,h; | 1426 | int x,y,w,h; |
1408 | x= 0; | 1427 | x= 0; |
1409 | y= 0; | 1428 | y= 0; |
1410 | w = colWid; | 1429 | w = colWid; |
1411 | h = dayLabelHei ; | 1430 | h = dayLabelHei ; |
1412 | for ( i = 0; i < 7; i++) { | 1431 | for ( i = 0; i < 7; i++) { |
1413 | if ( i && !( i % daysToShow) && i < 6) { | 1432 | if ( i && !( i % daysToShow) && i < 6) { |
1414 | y += hei/(5-daysToShow); | 1433 | y += hei/(5-daysToShow); |
1415 | x = 0; | 1434 | x = 0; |
1416 | w = colWid; | 1435 | w = colWid; |
1417 | } | 1436 | } |
1418 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { | 1437 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { |
1419 | ++w; | 1438 | ++w; |
1420 | } | 1439 | } |
1421 | if ( i >= 5 ) { | 1440 | if ( i >= 5 ) { |
1422 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,w/2+w%2,h); | 1441 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,w/2+w%2,h); |
1423 | x -= (w/2 ); | 1442 | x -= (w/2 ); |
1424 | } | 1443 | } |
1425 | else | 1444 | else |
1426 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,w,h); | 1445 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,w,h); |
1427 | x += w; | 1446 | x += w; |
1428 | } | 1447 | } |
1429 | x= 0; | 1448 | x= 0; |
1430 | y= dayLabelHei; | 1449 | y= dayLabelHei; |
@@ -1460,102 +1479,103 @@ void KOMonthView::computeLayoutWeek() | |||
1460 | 1479 | ||
1461 | x += w; | 1480 | x += w; |
1462 | if ( x + w/2 > wid ) { | 1481 | if ( x + w/2 > wid ) { |
1463 | x = 0; | 1482 | x = 0; |
1464 | y += h+dayLabelHei ; | 1483 | y += h+dayLabelHei ; |
1465 | } | 1484 | } |
1466 | } | 1485 | } |
1467 | y= dayLabelHei; | 1486 | y= dayLabelHei; |
1468 | h = cellHei ; | 1487 | h = cellHei ; |
1469 | mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); | 1488 | mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); |
1470 | mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); | 1489 | mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); |
1471 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); | 1490 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); |
1472 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); | 1491 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); |
1473 | mShortDayLabelsW = mDayLabelsW[0]->width()-2 < mWidthLongDayLabel ; | 1492 | mShortDayLabelsW = mDayLabelsW[0]->width()-2 < mWidthLongDayLabel ; |
1474 | updateDayLabels(); | 1493 | updateDayLabels(); |
1475 | //bool forceUpdate = !updatePossible; | 1494 | //bool forceUpdate = !updatePossible; |
1476 | updatePossible = true; | 1495 | updatePossible = true; |
1477 | //mWeekLabels[mNumWeeks]->setText( i18n("M")); | 1496 | //mWeekLabels[mNumWeeks]->setText( i18n("M")); |
1478 | //if ( forceUpdate ) | 1497 | //if ( forceUpdate ) |
1479 | // updateView(); | 1498 | // updateView(); |
1480 | } | 1499 | } |
1481 | void KOMonthView::computeLayout() | 1500 | void KOMonthView::computeLayout() |
1482 | { | 1501 | { |
1483 | 1502 | ||
1484 | 1503 | ||
1485 | static int lastWid = 0; | 1504 | static int lastWid = 0; |
1486 | static int lastHei = 0; | 1505 | static int lastHei = 0; |
1487 | 1506 | ||
1488 | if ( mShowWeekView ){ | 1507 | if ( mShowWeekView ){ |
1489 | computeLayoutWeek(); | 1508 | computeLayoutWeek(); |
1490 | return; | 1509 | return; |
1491 | } | 1510 | } |
1492 | int daysToShow = 7; | 1511 | int daysToShow = 7; |
1493 | bool combinedSatSun = false; | 1512 | bool combinedSatSun = false; |
1494 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { | 1513 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { |
1495 | daysToShow = 6; | 1514 | daysToShow = 6; |
1496 | combinedSatSun = true; | 1515 | combinedSatSun = true; |
1497 | } | 1516 | } |
1498 | int tWid = topLevelWidget()->size().width(); | 1517 | int tWid = topLevelWidget()->size().width(); |
1499 | int tHei = topLevelWidget()->size().height(); | 1518 | int tHei = topLevelWidget()->size().height(); |
1500 | 1519 | ||
1501 | int wid = width();//e | 1520 | int wid = width();//e |
1502 | int hei = height()-1-mNavigatorBar->height(); | 1521 | int hei = height()-1-mNavigatorBar->height(); |
1503 | 1522 | ||
1504 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) { | 1523 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) { |
1505 | return; | 1524 | return; |
1506 | } | 1525 | } |
1507 | if ( lastWid == width() && lastHei == height() ){ | 1526 | if ( lastWid == width() && lastHei == height() ){ |
1527 | qDebug("KOMonthview::No compute layout needed "); | ||
1508 | return; | 1528 | return; |
1509 | } | 1529 | } |
1510 | 1530 | ||
1511 | lastWid = width(); | 1531 | lastWid = width(); |
1512 | lastHei = height(); | 1532 | lastHei = height(); |
1513 | //qDebug("KOMonthView::computeLayout() MMM ------------------------------------ "); | 1533 | qDebug("KOMonthView::computeLayout() MMM ------------------- "); |
1514 | QFontMetrics fm ( mWeekLabels[0]->font() ); | 1534 | QFontMetrics fm ( mWeekLabels[0]->font() ); |
1515 | int weeklabelwid = fm.width( "888" ); | 1535 | int weeklabelwid = fm.width( "888" ); |
1516 | wid -= weeklabelwid; | 1536 | wid -= weeklabelwid; |
1517 | 1537 | ||
1518 | int colWid = wid / daysToShow; | 1538 | int colWid = wid / daysToShow; |
1519 | int lastCol = wid - ( colWid*6 ); | 1539 | int lastCol = wid - ( colWid*6 ); |
1520 | int dayLabelHei = mDayLabels[0]->sizeHint().height(); | 1540 | int dayLabelHei = mDayLabels[0]->sizeHint().height(); |
1521 | int cellHei = (hei - dayLabelHei) /6; | 1541 | int cellHei = (hei - dayLabelHei) /6; |
1522 | int colModulo = wid % daysToShow; | 1542 | int colModulo = wid % daysToShow; |
1523 | int rowModulo = (hei- dayLabelHei) % 6; | 1543 | int rowModulo = (hei- dayLabelHei) % 6; |
1524 | //qDebug("rowmod %d ", rowModulo); | 1544 | //qDebug("rowmod %d ", rowModulo); |
1525 | int i; | 1545 | int i; |
1526 | int x,y,w,h; | 1546 | int x,y,w,h; |
1527 | x= 0; | 1547 | x= 0; |
1528 | y= 0; | 1548 | y= 0; |
1529 | w = colWid; | 1549 | w = colWid; |
1530 | h = dayLabelHei ; | 1550 | h = dayLabelHei ; |
1531 | for ( i = 0; i < 7; i++) { | 1551 | for ( i = 0; i < 7; i++) { |
1532 | if ( i == daysToShow-colModulo ) | 1552 | if ( i == daysToShow-colModulo ) |
1533 | ++w; | 1553 | ++w; |
1534 | if ( combinedSatSun ) { | 1554 | if ( combinedSatSun ) { |
1535 | if ( i >= daysToShow-1 ) { | 1555 | if ( i >= daysToShow-1 ) { |
1536 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h); | 1556 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h); |
1537 | x -= w/2 ; | 1557 | x -= w/2 ; |
1538 | } | 1558 | } |
1539 | else | 1559 | else |
1540 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); | 1560 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); |
1541 | } else | 1561 | } else |
1542 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); | 1562 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); |
1543 | x += w; | 1563 | x += w; |
1544 | } | 1564 | } |
1545 | x= 0; | 1565 | x= 0; |
1546 | y= dayLabelHei; | 1566 | y= dayLabelHei; |
1547 | w = colWid; | 1567 | w = colWid; |
1548 | h = cellHei ; | 1568 | h = cellHei ; |
1549 | for ( i = 0; i < mCells.count(); ++i) { | 1569 | for ( i = 0; i < mCells.count(); ++i) { |
1550 | //qDebug("iii %d ", i); | 1570 | //qDebug("iii %d ", i); |
1551 | w = colWid; | 1571 | w = colWid; |
1552 | if ( ((i) % 7) >= 7-colModulo ) { | 1572 | if ( ((i) % 7) >= 7-colModulo ) { |
1553 | ++w; | 1573 | ++w; |
1554 | } | 1574 | } |
1555 | if ( i == (6-rowModulo)*7) | 1575 | if ( i == (6-rowModulo)*7) |
1556 | ++h; | 1576 | ++h; |
1557 | if ( combinedSatSun ) { | 1577 | if ( combinedSatSun ) { |
1558 | if ( (i)%7 >= daysToShow-1 ) { | 1578 | if ( (i)%7 >= daysToShow-1 ) { |
1559 | if ( (i)%7 == daysToShow-1 ) { | 1579 | if ( (i)%7 == daysToShow-1 ) { |
1560 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h/2 ); | 1580 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h/2 ); |
1561 | x -= w ;y += h/2; | 1581 | x -= w ;y += h/2; |