summaryrefslogtreecommitdiffabout
path: root/korganizer/komonthview.cpp
Unidiff
Diffstat (limited to 'korganizer/komonthview.cpp') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/komonthview.cpp61
1 files changed, 29 insertions, 32 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 65accdc..5926abe 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -792,15 +792,17 @@ void MonthViewCell::selection( QListBoxItem *item )
792// ******************************************************************************* 792// *******************************************************************************
793 793
794 794
795KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) 795KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
796 : KOEventView( calendar, parent, name ), 796 : KOEventView( calendar, parent, name ),
797 mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ), 797 mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ),
798 mShortDayLabels( false ), mWidthLongDayLabel( 0 ), mSelectedCell( 0 ) 798 mWidthLongDayLabel( 0 ), mSelectedCell( 0 )
799{ 799{
800 800 ignoreResizeEvent = 0;
801 mShortDayLabelsW = false;
802 mShortDayLabelsM = false;
801 clPending = true; 803 clPending = true;
802 mWidStack = new QWidgetStack( this ); 804 mWidStack = new QWidgetStack( this );
803 QHBoxLayout* hb = new QHBoxLayout( this ); 805 QHBoxLayout* hb = new QHBoxLayout( this );
804 mMonthView = new QWidget( mWidStack ); 806 mMonthView = new QWidget( mWidStack );
805 mWeekView = new QWidget( mWidStack ); 807 mWeekView = new QWidget( mWidStack );
806#if QT_VERSION >= 0x030000 808#if QT_VERSION >= 0x030000
@@ -814,13 +816,12 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
814 mWeekStartsMonday = KGlobal::locale()->weekStartsMonday(); 816 mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
815 mShowWeekView = KOPrefs::instance()->mMonthViewWeek; 817 mShowWeekView = KOPrefs::instance()->mMonthViewWeek;
816 if ( mShowWeekView ) 818 if ( mShowWeekView )
817 mWeekStartsMonday = true; 819 mWeekStartsMonday = true;
818 updatePossible = false; 820 updatePossible = false;
819 mCells.setAutoDelete( true ); 821 mCells.setAutoDelete( true );
820 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ;
821 mDayLabels.resize( mDaysPerWeek ); 822 mDayLabels.resize( mDaysPerWeek );
822 mDayLabelsW.resize( mDaysPerWeek ); 823 mDayLabelsW.resize( mDaysPerWeek );
823 QFont bfont = font(); 824 QFont bfont = font();
824 if ( QApplication::desktop()->width() < 650 ) { 825 if ( QApplication::desktop()->width() < 650 ) {
825 bfont.setPointSize( bfont.pointSize() - 2 ); 826 bfont.setPointSize( bfont.pointSize() - 2 );
826 } 827 }
@@ -903,20 +904,16 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
903 SIGNAL( showDaySignal( QDate ) ) ); 904 SIGNAL( showDaySignal( QDate ) ) );
904 cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont ); 905 cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont );
905 } 906 }
906 907
907 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); 908 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) );
908 mContextMenu = eventPopup(); 909 mContextMenu = eventPopup();
909 // updateConfig(); //useless here 910 updateConfig(); //useless here
910 911
911 //mWeekLabels[mNumWeeks]->setText( i18n("W")); 912 //mWeekLabels[mNumWeeks]->setText( i18n("W"));
912#if 0 913
913 mWidStack = new QWidgetStack( this );
914 mMonthView = new QWidget( mWidStack );
915 mWeekView = new QWidget( mWidStack );
916#endif
917 if ( mShowWeekView ) 914 if ( mShowWeekView )
918 mWidStack->raiseWidget( mWeekView ); 915 mWidStack->raiseWidget( mWeekView );
919 else 916 else
920 mWidStack->raiseWidget( mMonthView ); 917 mWidStack->raiseWidget( mMonthView );
921 918
922 emit incidenceSelected( 0 ); 919 emit incidenceSelected( 0 );
@@ -1007,21 +1004,18 @@ void KOMonthView::updateConfig()
1007 1004
1008 if ( mShowWeekView ) { 1005 if ( mShowWeekView ) {
1009 mWeekStartsMonday = true; 1006 mWeekStartsMonday = true;
1010 } 1007 }
1011 QFontMetrics fontmetric(mDayLabels[0]->font()); 1008 QFontMetrics fontmetric(mDayLabels[0]->font());
1012 mWidthLongDayLabel = 0; 1009 mWidthLongDayLabel = 0;
1013 1010 qDebug("KOMonthView::updateConfig() ");
1014 for (int i = 0; i < 7; i++) { 1011 for (int i = 0; i < 7; i++) {
1015 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); 1012 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1));
1016 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; 1013 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width;
1017 } 1014 }
1018 bool temp = mShowSatSunComp ;
1019 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ;
1020 if ( ! mShowWeekView ) { 1015 if ( ! mShowWeekView ) {
1021 if ( temp != KOPrefs::instance()->mMonthViewSatSunTog )
1022 computeLayout(); 1016 computeLayout();
1023 } 1017 }
1024 updateDayLabels(); 1018 updateDayLabels();
1025 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks); 1019 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks);
1026 //int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks; 1020 //int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks;
1027 //resizeEvent( 0 ); 1021 //resizeEvent( 0 );
@@ -1045,36 +1039,36 @@ void KOMonthView::updateDayLabels()
1045#if 0 1039#if 0
1046 if (mShowWeekView ) 1040 if (mShowWeekView )
1047 mDayLabelsT = &mDayLabelsW; 1041 mDayLabelsT = &mDayLabelsW;
1048 else 1042 else
1049 mDayLabelsT = &mDayLabels; 1043 mDayLabelsT = &mDayLabels;
1050#endif 1044#endif
1051 1045 qDebug("updateDayLabels W %d M %d ",mShortDayLabelsW ,mShortDayLabelsM);
1052 mDayLabelsT = &mDayLabelsW; 1046 mDayLabelsT = &mDayLabelsW;
1053 for (int i = 0; i < 7; i++) { 1047 for (int i = 0; i < 7; i++) {
1054 if (mWeekStartsMonday) { 1048 if (mWeekStartsMonday) {
1055 bool show = mShortDayLabels; 1049 bool show = mShortDayLabelsW;
1056 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) 1050 if ( i > 4 && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() )
1057 show = true; 1051 show = true;
1058 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); 1052 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show));
1059 } else { 1053 } else {
1060 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabels)); 1054 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabelsW));
1061 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabels)); 1055 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabelsW));
1062 1056
1063 } 1057 }
1064 } 1058 }
1065 mDayLabelsT = &mDayLabels; 1059 mDayLabelsT = &mDayLabels;
1066 for (int i = 0; i < 7; i++) { 1060 for (int i = 0; i < 7; i++) {
1067 if (mWeekStartsMonday) { 1061 if (mWeekStartsMonday) {
1068 bool show = mShortDayLabels; 1062 bool show = mShortDayLabelsM;
1069 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) 1063 if ( i > 4 && KOPrefs::instance()->mMonthViewSatSunTog && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() )
1070 show = true; 1064 show = true;
1071 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); 1065 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show));
1072 } else { 1066 } else {
1073 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabels)); 1067 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabelsM));
1074 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabels)); 1068 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabelsM));
1075 1069
1076 } 1070 }
1077 } 1071 }
1078 1072
1079} 1073}
1080 1074
@@ -1266,28 +1260,31 @@ void KOMonthView::updateView()
1266 1260
1267 //qDebug("update time %d ", ti.elapsed()); 1261 //qDebug("update time %d ", ti.elapsed());
1268} 1262}
1269 1263
1270void KOMonthView::resizeEvent(QResizeEvent * e) 1264void KOMonthView::resizeEvent(QResizeEvent * e)
1271{ 1265{
1266 qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height());
1267 if ( ignoreResizeEvent ) {
1268 qDebug("KOMonthView::resizeEvent ignored ");
1269 --ignoreResizeEvent;
1270 return;
1271 }
1272 if ( e->size().width()+ e->size().height() < 240 )
1273 return;
1272 computeLayout(); 1274 computeLayout();
1273 clPending = true; 1275 clPending = true;
1274 if ( mShowWeekView ) 1276 if ( mShowWeekView )
1275 mCellsW[0]->setFocus(); 1277 mCellsW[0]->setFocus();
1276 else 1278 else
1277 mCells[0]->setFocus(); 1279 mCells[0]->setFocus();
1278} 1280}
1279void KOMonthView::computeLayoutWeek() 1281void KOMonthView::computeLayoutWeek()
1280{ 1282{
1281 1283
1282 int daysToShow; 1284 int daysToShow;
1283 bool combinedSatSun = false;
1284 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) {
1285 daysToShow = 6;
1286 combinedSatSun = true;
1287 }
1288 int tWid = topLevelWidget()->size().width(); 1285 int tWid = topLevelWidget()->size().width();
1289 int tHei = topLevelWidget()->size().height(); 1286 int tHei = topLevelWidget()->size().height();
1290 1287
1291 int wid = size().width();//e 1288 int wid = size().width();//e
1292 int hei = size().height()-1; 1289 int hei = size().height()-1;
1293 1290
@@ -1295,14 +1292,13 @@ void KOMonthView::computeLayoutWeek()
1295 return; 1292 return;
1296 1293
1297 if ( wid < hei ) 1294 if ( wid < hei )
1298 daysToShow = 2; 1295 daysToShow = 2;
1299 else 1296 else
1300 daysToShow = 3; 1297 daysToShow = 3;
1301 mShowSatSunComp = true; 1298 bool combinedSatSun = true;
1302 combinedSatSun = true;
1303 1299
1304 //qDebug("KOMonthView::computeLayout()------------------------------------ "); 1300 //qDebug("KOMonthView::computeLayout()------------------------------------ ");
1305 QFontMetrics fm ( mWeekLabels[0]->font() ); 1301 QFontMetrics fm ( mWeekLabels[0]->font() );
1306 int weeklabelwid = fm.width( "888" ); 1302 int weeklabelwid = fm.width( "888" );
1307 wid -= weeklabelwid; 1303 wid -= weeklabelwid;
1308 1304
@@ -1377,13 +1373,13 @@ void KOMonthView::computeLayoutWeek()
1377 y= dayLabelHei; 1373 y= dayLabelHei;
1378 h = cellHei ; 1374 h = cellHei ;
1379 mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); 1375 mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei);
1380 mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); 1376 mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei);
1381 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); 1377 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height());
1382 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); 1378 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height());
1383 mShortDayLabels = mDayLabelsW[0]->width() < mWidthLongDayLabel ; 1379 mShortDayLabelsW = mDayLabelsW[0]->width() < mWidthLongDayLabel ;
1384 updateDayLabels(); 1380 updateDayLabels();
1385 bool forceUpdate = !updatePossible; 1381 bool forceUpdate = !updatePossible;
1386 updatePossible = true; 1382 updatePossible = true;
1387 //mWeekLabels[mNumWeeks]->setText( i18n("M")); 1383 //mWeekLabels[mNumWeeks]->setText( i18n("M"));
1388 if ( forceUpdate ) 1384 if ( forceUpdate )
1389 updateView(); 1385 updateView();
@@ -1397,13 +1393,13 @@ void KOMonthView::computeLayout()
1397 if ( mShowWeekView ){ 1393 if ( mShowWeekView ){
1398 computeLayoutWeek(); 1394 computeLayoutWeek();
1399 return; 1395 return;
1400 } 1396 }
1401 int daysToShow = 7; 1397 int daysToShow = 7;
1402 bool combinedSatSun = false; 1398 bool combinedSatSun = false;
1403 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { 1399 if (KOPrefs::instance()->mMonthViewSatSunTog ) {
1404 daysToShow = 6; 1400 daysToShow = 6;
1405 combinedSatSun = true; 1401 combinedSatSun = true;
1406 } 1402 }
1407 int tWid = topLevelWidget()->size().width(); 1403 int tWid = topLevelWidget()->size().width();
1408 int tHei = topLevelWidget()->size().height(); 1404 int tHei = topLevelWidget()->size().height();
1409 1405
@@ -1484,13 +1480,14 @@ void KOMonthView::computeLayout()
1484 mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h); 1480 mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h);
1485 y += h; 1481 y += h;
1486 } 1482 }
1487 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); 1483 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei);
1488 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); 1484 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height());
1489 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); 1485 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height());
1490 mShortDayLabels = mDayLabels[0]->width() < mWidthLongDayLabel ; 1486 mShortDayLabelsM = mDayLabels[0]->width() < mWidthLongDayLabel ;
1487 qDebug("dlwid %d %d ",mDayLabels[0]->width() , mWidthLongDayLabel);
1491 updateDayLabels(); 1488 updateDayLabels();
1492 bool forceUpdate = !updatePossible; 1489 bool forceUpdate = !updatePossible;
1493 updatePossible = true; 1490 updatePossible = true;
1494 //mWeekLabels[mNumWeeks]->setText( i18n("W")); 1491 //mWeekLabels[mNumWeeks]->setText( i18n("W"));
1495 if ( forceUpdate ) 1492 if ( forceUpdate )
1496 updateView(); 1493 updateView();