summaryrefslogtreecommitdiffabout
path: root/korganizer/komonthview.cpp
Unidiff
Diffstat (limited to 'korganizer/komonthview.cpp') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/komonthview.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 9b9e164..6ae4c6f 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -769,50 +769,52 @@ void MonthViewCell::contextMenu( QListBoxItem *item )
769{ 769{
770 if ( !item ) return; 770 if ( !item ) return;
771 771
772 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); 772 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item );
773 Incidence *incidence = eventItem->incidence(); 773 Incidence *incidence = eventItem->incidence();
774 if ( incidence ) mMonthView->showContextMenu( incidence ); 774 if ( incidence ) mMonthView->showContextMenu( incidence );
775} 775}
776 776
777void MonthViewCell::selection( QListBoxItem *item ) 777void MonthViewCell::selection( QListBoxItem *item )
778{ 778{
779 if ( !item ) return; 779 if ( !item ) return;
780 780
781 mMonthView->setSelectedCell( this ); 781 mMonthView->setSelectedCell( this );
782} 782}
783 783
784 784
785// ******************************************************************************* 785// *******************************************************************************
786// ******************************************************************************* 786// *******************************************************************************
787// ******************************************************************************* 787// *******************************************************************************
788 788
789 789
790KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) 790KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
791 : KOEventView( calendar, parent, name ), 791 : KOEventView( calendar, parent, name ),
792 mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ), 792 mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ),
793 mShortDayLabels( false ), mWidthLongDayLabel( 0 ), mSelectedCell( 0 ) 793 mWidthLongDayLabel( 0 ), mSelectedCell( 0 )
794{ 794{
795 mShortDayLabelsM = false;
796 mShortDayLabelsW = false;
795 skipResize = false; 797 skipResize = false;
796 clPending = true; 798 clPending = true;
797 mNavigatorBar = new NavigatorBar( QDate::currentDate(), this, "useBigPixmaps" ); 799 mNavigatorBar = new NavigatorBar( QDate::currentDate(), this, "useBigPixmaps" );
798 mWidStack = new QWidgetStack( this ); 800 mWidStack = new QWidgetStack( this );
799 QVBoxLayout* hb = new QVBoxLayout( this ); 801 QVBoxLayout* hb = new QVBoxLayout( this );
800 mMonthView = new QWidget( mWidStack ); 802 mMonthView = new QWidget( mWidStack );
801 mWeekView = new QWidget( mWidStack ); 803 mWeekView = new QWidget( mWidStack );
802#if QT_VERSION >= 0x030000 804#if QT_VERSION >= 0x030000
803 mWidStack->addWidget(mMonthView ); 805 mWidStack->addWidget(mMonthView );
804 mWidStack->addWidget(mWeekView ); 806 mWidStack->addWidget(mWeekView );
805#else 807#else
806 mWidStack->addWidget( mMonthView, 1 ); 808 mWidStack->addWidget( mMonthView, 1 );
807 mWidStack->addWidget( mWeekView , 1 ); 809 mWidStack->addWidget( mWeekView , 1 );
808#endif 810#endif
809 hb->addWidget( mNavigatorBar ); 811 hb->addWidget( mNavigatorBar );
810 hb->addWidget( mWidStack ); 812 hb->addWidget( mWidStack );
811 mWeekStartsMonday = KGlobal::locale()->weekStartsMonday(); 813 mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
812 mShowWeekView = KOPrefs::instance()->mMonthViewWeek; 814 mShowWeekView = KOPrefs::instance()->mMonthViewWeek;
813 if ( mShowWeekView ) 815 if ( mShowWeekView )
814 mWeekStartsMonday = true; 816 mWeekStartsMonday = true;
815 updatePossible = false; 817 updatePossible = false;
816 //updatePossible = true; 818 //updatePossible = true;
817 mCells.setAutoDelete( true ); 819 mCells.setAutoDelete( true );
818 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; 820 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ;
@@ -1029,68 +1031,68 @@ void KOMonthView::updateConfig()
1029 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks); 1031 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks);
1030 //int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks; 1032 //int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks;
1031 //resizeEvent( 0 ); 1033 //resizeEvent( 0 );
1032 for (uint i = 0; i < mCells.count(); ++i) { 1034 for (uint i = 0; i < mCells.count(); ++i) {
1033 mCells[i]->updateConfig(); 1035 mCells[i]->updateConfig();
1034 } 1036 }
1035 1037
1036 for (uint i = 0; i < mCellsW.count(); ++i) { 1038 for (uint i = 0; i < mCellsW.count(); ++i) {
1037 mCellsW[i]->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont); 1039 mCellsW[i]->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont);
1038 } 1040 }
1039#ifdef DESKTOP_VERSION 1041#ifdef DESKTOP_VERSION
1040 MonthViewCell::toolTipGroup()->setEnabled(KOPrefs::instance()->mEnableToolTips); 1042 MonthViewCell::toolTipGroup()->setEnabled(KOPrefs::instance()->mEnableToolTips);
1041#endif 1043#endif
1042 updateView(); 1044 updateView();
1043} 1045}
1044 1046
1045void KOMonthView::updateDayLabels() 1047void KOMonthView::updateDayLabels()
1046{ 1048{
1047 1049
1048 QPtrVector<QLabel> *mDayLabelsT; 1050 QPtrVector<QLabel> *mDayLabelsT;
1049 1051
1050 mDayLabelsT = &mDayLabelsW; 1052 mDayLabelsT = &mDayLabelsW;
1051 for (int i = 0; i < 7; i++) { 1053 for (int i = 0; i < 7; i++) {
1052 if (mWeekStartsMonday) { 1054 if (mWeekStartsMonday) {
1053 bool show = mShortDayLabels; 1055 bool show = mShortDayLabelsW;
1054 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) 1056 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() )
1055 show = true; 1057 show = true;
1056 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); 1058 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show));
1057 } else { 1059 } else {
1058 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabels)); 1060 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabelsW));
1059 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabels)); 1061 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabelsW));
1060 1062
1061 } 1063 }
1062 } 1064 }
1063 mDayLabelsT = &mDayLabels; 1065 mDayLabelsT = &mDayLabels;
1064 for (int i = 0; i < 7; i++) { 1066 for (int i = 0; i < 7; i++) {
1065 if (mWeekStartsMonday) { 1067 if (mWeekStartsMonday) {
1066 bool show = mShortDayLabels; 1068 bool show = mShortDayLabelsM;
1067 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) 1069 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() )
1068 show = true; 1070 show = true;
1069 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); 1071 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show));
1070 } else { 1072 } else {
1071 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabels)); 1073 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabelsM));
1072 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabels)); 1074 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabelsM));
1073 1075
1074 } 1076 }
1075 } 1077 }
1076 1078
1077} 1079}
1078 1080
1079void KOMonthView::showDates(const QDate &start, const QDate &) 1081void KOMonthView::showDates(const QDate &start, const QDate &)
1080{ 1082{
1081 // kdDebug() << "KOMonthView::showDates(): " << start.toString() << endl; 1083 // kdDebug() << "KOMonthView::showDates(): " << start.toString() << endl;
1082 1084
1083 QPtrVector<MonthViewCell> *cells; 1085 QPtrVector<MonthViewCell> *cells;
1084 QPtrVector<QLabel> *dayLabels; 1086 QPtrVector<QLabel> *dayLabels;
1085 QPtrVector<KOWeekButton> *weekLabels; 1087 QPtrVector<KOWeekButton> *weekLabels;
1086 int weekNum = 6; 1088 int weekNum = 6;
1087 if ( mShowWeekView ) { 1089 if ( mShowWeekView ) {
1088 weekNum = 1; 1090 weekNum = 1;
1089 cells = &mCellsW; 1091 cells = &mCellsW;
1090 dayLabels = &mDayLabelsW; 1092 dayLabels = &mDayLabelsW;
1091 weekLabels = &mWeekLabelsW; 1093 weekLabels = &mWeekLabelsW;
1092 } else { 1094 } else {
1093 cells = &mCells; 1095 cells = &mCells;
1094 dayLabels = &mDayLabels; 1096 dayLabels = &mDayLabels;
1095 weekLabels = &mWeekLabels; 1097 weekLabels = &mWeekLabels;
1096 } 1098 }
@@ -1365,49 +1367,49 @@ void KOMonthView::computeLayoutWeek()
1365 x -= w ;y += h/2; 1367 x -= w ;y += h/2;
1366 } else { 1368 } else {
1367 if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) { 1369 if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) {
1368 ++w; 1370 ++w;
1369 } 1371 }
1370 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 ); 1372 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 );
1371 y -= h/2; 1373 y -= h/2;
1372 } 1374 }
1373 } else 1375 } else
1374 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h ); 1376 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h );
1375 1377
1376 1378
1377 x += w; 1379 x += w;
1378 if ( x + w/2 > wid ) { 1380 if ( x + w/2 > wid ) {
1379 x = 0; 1381 x = 0;
1380 y += h+dayLabelHei ; 1382 y += h+dayLabelHei ;
1381 } 1383 }
1382 } 1384 }
1383 y= dayLabelHei; 1385 y= dayLabelHei;
1384 h = cellHei ; 1386 h = cellHei ;
1385 mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); 1387 mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei);
1386 mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); 1388 mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei);
1387 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); 1389 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height());
1388 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); 1390 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height());
1389 mShortDayLabels = mDayLabelsW[0]->width() < mWidthLongDayLabel ; 1391 mShortDayLabelsW = mDayLabelsW[0]->width()-2 < mWidthLongDayLabel ;
1390 updateDayLabels(); 1392 updateDayLabels();
1391 //bool forceUpdate = !updatePossible; 1393 //bool forceUpdate = !updatePossible;
1392 updatePossible = true; 1394 updatePossible = true;
1393 //mWeekLabels[mNumWeeks]->setText( i18n("M")); 1395 //mWeekLabels[mNumWeeks]->setText( i18n("M"));
1394 //if ( forceUpdate ) 1396 //if ( forceUpdate )
1395 // updateView(); 1397 // updateView();
1396} 1398}
1397void KOMonthView::computeLayout() 1399void KOMonthView::computeLayout()
1398{ 1400{
1399 1401
1400 1402
1401 static int lastWid = 0; 1403 static int lastWid = 0;
1402 static int lastHei = 0; 1404 static int lastHei = 0;
1403 1405
1404 if ( mShowWeekView ){ 1406 if ( mShowWeekView ){
1405 computeLayoutWeek(); 1407 computeLayoutWeek();
1406 return; 1408 return;
1407 } 1409 }
1408 int daysToShow = 7; 1410 int daysToShow = 7;
1409 bool combinedSatSun = false; 1411 bool combinedSatSun = false;
1410 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { 1412 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) {
1411 daysToShow = 6; 1413 daysToShow = 6;
1412 combinedSatSun = true; 1414 combinedSatSun = true;
1413 } 1415 }
@@ -1481,49 +1483,49 @@ void KOMonthView::computeLayout()
1481 } 1483 }
1482 } else 1484 } else
1483 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); 1485 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h );
1484 1486
1485 } 1487 }
1486 else 1488 else
1487 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); 1489 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h );
1488 x += w; 1490 x += w;
1489 if ( x + w/2 > wid ) { 1491 if ( x + w/2 > wid ) {
1490 x = 0; 1492 x = 0;
1491 y += h; 1493 y += h;
1492 } 1494 }
1493 } 1495 }
1494 y= dayLabelHei; 1496 y= dayLabelHei;
1495 h = cellHei ; 1497 h = cellHei ;
1496 for ( i = 0; i < 6; i++) { 1498 for ( i = 0; i < 6; i++) {
1497 if ( i == (6-rowModulo)) 1499 if ( i == (6-rowModulo))
1498 ++h; 1500 ++h;
1499 mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h); 1501 mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h);
1500 y += h; 1502 y += h;
1501 } 1503 }
1502 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); 1504 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei);
1503 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); 1505 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height());
1504 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); 1506 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height());
1505 mShortDayLabels = mDayLabels[0]->width() < mWidthLongDayLabel ; 1507 mShortDayLabelsM = mDayLabels[0]->width()-2 < mWidthLongDayLabel ;
1506 updateDayLabels(); 1508 updateDayLabels();
1507 //bool forceUpdate = !updatePossible; 1509 //bool forceUpdate = !updatePossible;
1508 updatePossible = true; 1510 updatePossible = true;
1509 //mWeekLabels[mNumWeeks]->setText( i18n("W")); 1511 //mWeekLabels[mNumWeeks]->setText( i18n("W"));
1510} 1512}
1511 1513
1512void KOMonthView::showContextMenu( Incidence *incidence ) 1514void KOMonthView::showContextMenu( Incidence *incidence )
1513{ 1515{
1514 mContextMenu->showIncidencePopup(incidence); 1516 mContextMenu->showIncidencePopup(incidence);
1515 /* 1517 /*
1516 if( incidence && incidence->type() == "Event" ) { 1518 if( incidence && incidence->type() == "Event" ) {
1517 Event *event = static_cast<Event *>(incidence); 1519 Event *event = static_cast<Event *>(incidence);
1518 mContextMenu->showEventPopup(event); 1520 mContextMenu->showEventPopup(event);
1519 } else { 1521 } else {
1520 kdDebug() << "MonthView::showContextMenu(): cast failed." << endl; 1522 kdDebug() << "MonthView::showContextMenu(): cast failed." << endl;
1521 } 1523 }
1522 */ 1524 */
1523} 1525}
1524MonthViewCell * KOMonthView::selectedCell( ) 1526MonthViewCell * KOMonthView::selectedCell( )
1525{ 1527{
1526 return mSelectedCell; 1528 return mSelectedCell;
1527} 1529}
1528void KOMonthView::setSelectedCell( MonthViewCell *cell ) 1530void KOMonthView::setSelectedCell( MonthViewCell *cell )
1529{ 1531{