-rw-r--r-- | korganizer/komonthview.cpp | 94 |
1 files changed, 41 insertions, 53 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index ffb2e1e..70cbf96 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp | |||
@@ -907,7 +907,14 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) | |||
907 | 907 | ||
908 | //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); | 908 | //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); |
909 | mContextMenu = eventPopup(); | 909 | mContextMenu = eventPopup(); |
910 | updateConfig(); //useless here | 910 | //updateConfig(); //useless here ... |
911 | // ... but we need mWidthLongDayLabel computed | ||
912 | QFontMetrics fontmetric(mDayLabels[0]->font()); | ||
913 | mWidthLongDayLabel = 0; | ||
914 | for (int i = 0; i < 7; i++) { | ||
915 | int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); | ||
916 | if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; | ||
917 | } | ||
911 | 918 | ||
912 | //mWeekLabels[mNumWeeks]->setText( i18n("W")); | 919 | //mWeekLabels[mNumWeeks]->setText( i18n("W")); |
913 | 920 | ||
@@ -1007,7 +1014,6 @@ void KOMonthView::updateConfig() | |||
1007 | } | 1014 | } |
1008 | QFontMetrics fontmetric(mDayLabels[0]->font()); | 1015 | QFontMetrics fontmetric(mDayLabels[0]->font()); |
1009 | mWidthLongDayLabel = 0; | 1016 | mWidthLongDayLabel = 0; |
1010 | qDebug("KOMonthView::updateConfig() "); | ||
1011 | for (int i = 0; i < 7; i++) { | 1017 | for (int i = 0; i < 7; i++) { |
1012 | int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); | 1018 | int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); |
1013 | if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; | 1019 | if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; |
@@ -1036,13 +1042,7 @@ void KOMonthView::updateDayLabels() | |||
1036 | { | 1042 | { |
1037 | 1043 | ||
1038 | QPtrVector<QLabel> *mDayLabelsT; | 1044 | QPtrVector<QLabel> *mDayLabelsT; |
1039 | #if 0 | 1045 | |
1040 | if (mShowWeekView ) | ||
1041 | mDayLabelsT = &mDayLabelsW; | ||
1042 | else | ||
1043 | mDayLabelsT = &mDayLabels; | ||
1044 | #endif | ||
1045 | qDebug("updateDayLabels W %d M %d ",mShortDayLabelsW ,mShortDayLabelsM); | ||
1046 | mDayLabelsT = &mDayLabelsW; | 1046 | mDayLabelsT = &mDayLabelsW; |
1047 | for (int i = 0; i < 7; i++) { | 1047 | for (int i = 0; i < 7; i++) { |
1048 | if (mWeekStartsMonday) { | 1048 | if (mWeekStartsMonday) { |
@@ -1263,17 +1263,11 @@ void KOMonthView::updateView() | |||
1263 | 1263 | ||
1264 | void KOMonthView::resizeEvent(QResizeEvent * e) | 1264 | void KOMonthView::resizeEvent(QResizeEvent * e) |
1265 | { | 1265 | { |
1266 | qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); | 1266 | //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); |
1267 | if ( ignoreResizeEvent ) { | 1267 | if ( ignoreResizeEvent ) { |
1268 | int diff = e->size().height() - e->oldSize().height(); | 1268 | //qDebug("KOMonthView::resizeEvent ignored "); |
1269 | if ( diff < 0 ) | 1269 | --ignoreResizeEvent; |
1270 | diff = diff * (-1); | 1270 | return; |
1271 | if ( diff == ignoreResizeEventHeight ) { | ||
1272 | qDebug("KOMonthView::resizeEvent ignored "); | ||
1273 | --ignoreResizeEvent; | ||
1274 | return; | ||
1275 | } | ||
1276 | ignoreResizeEvent = 0; | ||
1277 | } | 1271 | } |
1278 | if ( e->size().width()+ e->size().height() < 240 ) | 1272 | if ( e->size().width()+ e->size().height() < 240 ) |
1279 | return; | 1273 | return; |
@@ -1286,24 +1280,22 @@ void KOMonthView::resizeEvent(QResizeEvent * e) | |||
1286 | } | 1280 | } |
1287 | void KOMonthView::computeLayoutWeek() | 1281 | void KOMonthView::computeLayoutWeek() |
1288 | { | 1282 | { |
1289 | 1283 | static int widd = 0; | |
1284 | static int heigg = 0; | ||
1285 | if ( widd == width() && heigg == height () ) { | ||
1286 | return; | ||
1287 | } | ||
1288 | widd = width() ; | ||
1289 | heigg = height (); | ||
1290 | int daysToShow; | 1290 | int daysToShow; |
1291 | int tWid = topLevelWidget()->size().width(); | ||
1292 | int tHei = topLevelWidget()->size().height(); | ||
1293 | |||
1294 | int wid = size().width();//e | 1291 | int wid = size().width();//e |
1295 | int hei = size().height()-1; | 1292 | int hei = size().height()-1; |
1296 | |||
1297 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) | ||
1298 | return; | ||
1299 | |||
1300 | if ( wid < hei ) | 1293 | if ( wid < hei ) |
1301 | daysToShow = 2; | 1294 | daysToShow = 2; |
1302 | else | 1295 | else |
1303 | daysToShow = 3; | 1296 | daysToShow = 3; |
1304 | bool combinedSatSun = true; | 1297 | bool combinedSatSun = true; |
1305 | 1298 | ||
1306 | //qDebug("KOMonthView::computeLayout()------------------------------------ "); | ||
1307 | QFontMetrics fm ( mWeekLabels[0]->font() ); | 1299 | QFontMetrics fm ( mWeekLabels[0]->font() ); |
1308 | int weeklabelwid = fm.width( "888" ); | 1300 | int weeklabelwid = fm.width( "888" ); |
1309 | wid -= weeklabelwid; | 1301 | wid -= weeklabelwid; |
@@ -1380,8 +1372,7 @@ void KOMonthView::computeLayoutWeek() | |||
1380 | h = cellHei ; | 1372 | h = cellHei ; |
1381 | mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); | 1373 | mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); |
1382 | mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); | 1374 | mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); |
1383 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); | 1375 | |
1384 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); | ||
1385 | mShortDayLabelsW = mDayLabelsW[0]->width() < mWidthLongDayLabel ; | 1376 | mShortDayLabelsW = mDayLabelsW[0]->width() < mWidthLongDayLabel ; |
1386 | updateDayLabels(); | 1377 | updateDayLabels(); |
1387 | bool forceUpdate = !updatePossible; | 1378 | bool forceUpdate = !updatePossible; |
@@ -1396,25 +1387,35 @@ void KOMonthView::computeLayout() | |||
1396 | // note this only changes the text if the requested size crosses the | 1387 | // note this only changes the text if the requested size crosses the |
1397 | // threshold between big enough to support the full name and not big | 1388 | // threshold between big enough to support the full name and not big |
1398 | // enough. | 1389 | // enough. |
1390 | |||
1391 | int tWid = topLevelWidget()->size().width(); | ||
1392 | int tHei = topLevelWidget()->size().height(); | ||
1393 | |||
1394 | int wid = size().width();//e | ||
1395 | int hei = size().height()-1; | ||
1396 | |||
1397 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) | ||
1398 | return; | ||
1399 | |||
1400 | |||
1399 | if ( mShowWeekView ){ | 1401 | if ( mShowWeekView ){ |
1400 | computeLayoutWeek(); | 1402 | computeLayoutWeek(); |
1401 | return; | 1403 | return; |
1402 | } | 1404 | } |
1405 | static int widd = 0; | ||
1406 | static int heigg = 0; | ||
1407 | if ( widd == width() && heigg == height () ) { | ||
1408 | return; | ||
1409 | } | ||
1410 | widd = width() ; | ||
1411 | heigg = height (); | ||
1412 | |||
1403 | int daysToShow = 7; | 1413 | int daysToShow = 7; |
1404 | bool combinedSatSun = false; | 1414 | bool combinedSatSun = false; |
1405 | if (KOPrefs::instance()->mMonthViewSatSunTog ) { | 1415 | if (KOPrefs::instance()->mMonthViewSatSunTog ) { |
1406 | daysToShow = 6; | 1416 | daysToShow = 6; |
1407 | combinedSatSun = true; | 1417 | combinedSatSun = true; |
1408 | } | 1418 | } |
1409 | int tWid = topLevelWidget()->size().width(); | ||
1410 | int tHei = topLevelWidget()->size().height(); | ||
1411 | |||
1412 | int wid = size().width();//e | ||
1413 | int hei = size().height()-1; | ||
1414 | |||
1415 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) | ||
1416 | return; | ||
1417 | //qDebug("KOMonthView::computeLayout()------------------------------------ "); | ||
1418 | QFontMetrics fm ( mWeekLabels[0]->font() ); | 1419 | QFontMetrics fm ( mWeekLabels[0]->font() ); |
1419 | int weeklabelwid = fm.width( "888" ); | 1420 | int weeklabelwid = fm.width( "888" ); |
1420 | wid -= weeklabelwid; | 1421 | wid -= weeklabelwid; |
@@ -1487,14 +1488,11 @@ void KOMonthView::computeLayout() | |||
1487 | y += h; | 1488 | y += h; |
1488 | } | 1489 | } |
1489 | mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); | 1490 | mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); |
1490 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); | ||
1491 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); | ||
1492 | mShortDayLabelsM = mDayLabels[0]->width() < mWidthLongDayLabel ; | 1491 | mShortDayLabelsM = mDayLabels[0]->width() < mWidthLongDayLabel ; |
1493 | qDebug("dlwid %d %d ",mDayLabels[0]->width() , mWidthLongDayLabel); | 1492 | qDebug("dlwid %d %d ",mDayLabels[0]->width() , mWidthLongDayLabel); |
1494 | updateDayLabels(); | 1493 | updateDayLabels(); |
1495 | bool forceUpdate = !updatePossible; | 1494 | bool forceUpdate = !updatePossible; |
1496 | updatePossible = true; | 1495 | updatePossible = true; |
1497 | //mWeekLabels[mNumWeeks]->setText( i18n("W")); | ||
1498 | if ( forceUpdate ) | 1496 | if ( forceUpdate ) |
1499 | updateView(); | 1497 | updateView(); |
1500 | } | 1498 | } |
@@ -1502,14 +1500,7 @@ void KOMonthView::computeLayout() | |||
1502 | void KOMonthView::showContextMenu( Incidence *incidence ) | 1500 | void KOMonthView::showContextMenu( Incidence *incidence ) |
1503 | { | 1501 | { |
1504 | mContextMenu->showIncidencePopup(incidence); | 1502 | mContextMenu->showIncidencePopup(incidence); |
1505 | /* | 1503 | |
1506 | if( incidence && incidence->type() == "Event" ) { | ||
1507 | Event *event = static_cast<Event *>(incidence); | ||
1508 | mContextMenu->showEventPopup(event); | ||
1509 | } else { | ||
1510 | kdDebug() << "MonthView::showContextMenu(): cast failed." << endl; | ||
1511 | } | ||
1512 | */ | ||
1513 | } | 1504 | } |
1514 | MonthViewCell * KOMonthView::selectedCell( ) | 1505 | MonthViewCell * KOMonthView::selectedCell( ) |
1515 | { | 1506 | { |
@@ -1517,15 +1508,12 @@ MonthViewCell * KOMonthView::selectedCell( ) | |||
1517 | } | 1508 | } |
1518 | void KOMonthView::setSelectedCell( MonthViewCell *cell ) | 1509 | void KOMonthView::setSelectedCell( MonthViewCell *cell ) |
1519 | { | 1510 | { |
1520 | //qDebug("KOMonthView::setSelectedCell %x ", cell); | ||
1521 | if ( mSelectedCell && mSelectedCell != cell ) { | 1511 | if ( mSelectedCell && mSelectedCell != cell ) { |
1522 | MonthViewCell * mvc = mSelectedCell; | 1512 | MonthViewCell * mvc = mSelectedCell; |
1523 | mSelectedCell = cell; | 1513 | mSelectedCell = cell; |
1524 | mvc->deselect(); | 1514 | mvc->deselect(); |
1525 | } else | 1515 | } else |
1526 | mSelectedCell = cell; | 1516 | mSelectedCell = cell; |
1527 | // if ( mSelectedCell ) | ||
1528 | // mSelectedCell->select(); | ||
1529 | if ( !mSelectedCell ) | 1517 | if ( !mSelectedCell ) |
1530 | emit incidenceSelected( 0 ); | 1518 | emit incidenceSelected( 0 ); |
1531 | else | 1519 | else |