-rw-r--r-- | korganizer/komonthview.cpp | 47 |
1 files changed, 24 insertions, 23 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index 234375b..7ba0b2f 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp | |||
@@ -772,65 +772,68 @@ void MonthViewCell::contextMenu( QListBoxItem *item ) | |||
772 | Incidence *incidence = eventItem->incidence(); | 772 | Incidence *incidence = eventItem->incidence(); |
773 | if ( incidence ) mMonthView->showContextMenu( incidence ); | 773 | if ( incidence ) mMonthView->showContextMenu( incidence ); |
774 | } | 774 | } |
775 | 775 | ||
776 | void MonthViewCell::selection( QListBoxItem *item ) | 776 | void MonthViewCell::selection( QListBoxItem *item ) |
777 | { | 777 | { |
778 | if ( !item ) return; | 778 | if ( !item ) return; |
779 | 779 | ||
780 | mMonthView->setSelectedCell( this ); | 780 | mMonthView->setSelectedCell( this ); |
781 | } | 781 | } |
782 | 782 | ||
783 | 783 | ||
784 | // ******************************************************************************* | 784 | // ******************************************************************************* |
785 | // ******************************************************************************* | 785 | // ******************************************************************************* |
786 | // ******************************************************************************* | 786 | // ******************************************************************************* |
787 | 787 | ||
788 | 788 | ||
789 | KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) | 789 | KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) |
790 | : KOEventView( calendar, parent, name ), | 790 | : KOEventView( calendar, parent, name ), |
791 | mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ), | 791 | mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ), |
792 | mShortDayLabels( false ), mWidthLongDayLabel( 0 ), mSelectedCell( 0 ) | 792 | mShortDayLabels( false ), mWidthLongDayLabel( 0 ), mSelectedCell( 0 ) |
793 | { | 793 | { |
794 | skipResize = false; | 794 | skipResize = false; |
795 | clPending = true; | 795 | clPending = true; |
796 | mNavigatorBar = new NavigatorBar( QDate::currentDate(), this, "useBigPixmaps" ); | ||
796 | mWidStack = new QWidgetStack( this ); | 797 | mWidStack = new QWidgetStack( this ); |
797 | QHBoxLayout* hb = new QHBoxLayout( this ); | 798 | QVBoxLayout* hb = new QVBoxLayout( this ); |
798 | mMonthView = new QWidget( mWidStack ); | 799 | mMonthView = new QWidget( mWidStack ); |
799 | mWeekView = new QWidget( mWidStack ); | 800 | mWeekView = new QWidget( mWidStack ); |
800 | #if QT_VERSION >= 0x030000 | 801 | #if QT_VERSION >= 0x030000 |
801 | mWidStack->addWidget(mMonthView ); | 802 | mWidStack->addWidget(mMonthView ); |
802 | mWidStack->addWidget(mWeekView ); | 803 | mWidStack->addWidget(mWeekView ); |
803 | #else | 804 | #else |
804 | mWidStack->addWidget( mMonthView, 1 ); | 805 | mWidStack->addWidget( mMonthView, 1 ); |
805 | mWidStack->addWidget( mWeekView , 1 ); | 806 | mWidStack->addWidget( mWeekView , 1 ); |
806 | #endif | 807 | #endif |
808 | hb->addWidget( mNavigatorBar ); | ||
807 | hb->addWidget( mWidStack ); | 809 | hb->addWidget( mWidStack ); |
808 | mWeekStartsMonday = KGlobal::locale()->weekStartsMonday(); | 810 | mWeekStartsMonday = KGlobal::locale()->weekStartsMonday(); |
809 | mShowWeekView = KOPrefs::instance()->mMonthViewWeek; | 811 | mShowWeekView = KOPrefs::instance()->mMonthViewWeek; |
810 | if ( mShowWeekView ) | 812 | if ( mShowWeekView ) |
811 | mWeekStartsMonday = true; | 813 | mWeekStartsMonday = true; |
812 | updatePossible = false; | 814 | updatePossible = false; |
815 | //updatePossible = true; | ||
813 | mCells.setAutoDelete( true ); | 816 | mCells.setAutoDelete( true ); |
814 | mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; | 817 | mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; |
815 | mDayLabels.resize( mDaysPerWeek ); | 818 | mDayLabels.resize( mDaysPerWeek ); |
816 | mDayLabelsW.resize( mDaysPerWeek ); | 819 | mDayLabelsW.resize( mDaysPerWeek ); |
817 | QFont bfont = font(); | 820 | QFont bfont = font(); |
818 | if ( QApplication::desktop()->width() < 650 ) { | 821 | if ( QApplication::desktop()->width() < 650 ) { |
819 | bfont.setPointSize( bfont.pointSize() - 2 ); | 822 | bfont.setPointSize( bfont.pointSize() - 2 ); |
820 | } | 823 | } |
821 | bfont.setBold( true ); | 824 | bfont.setBold( true ); |
822 | int i; | 825 | int i; |
823 | 826 | ||
824 | for( i = 0; i < mDaysPerWeek; i++ ) { | 827 | for( i = 0; i < mDaysPerWeek; i++ ) { |
825 | QLabel *label = new QLabel( mMonthView ); | 828 | QLabel *label = new QLabel( mMonthView ); |
826 | label->setFont(bfont); | 829 | label->setFont(bfont); |
827 | label->setFrameStyle(QFrame::Panel|QFrame::Raised); | 830 | label->setFrameStyle(QFrame::Panel|QFrame::Raised); |
828 | label->setLineWidth(1); | 831 | label->setLineWidth(1); |
829 | label->setAlignment(AlignCenter); | 832 | label->setAlignment(AlignCenter); |
830 | mDayLabels.insert( i, label ); | 833 | mDayLabels.insert( i, label ); |
831 | label = new QLabel( mWeekView ); | 834 | label = new QLabel( mWeekView ); |
832 | label->setFont(bfont); | 835 | label->setFont(bfont); |
833 | label->setFrameStyle(QFrame::Panel|QFrame::Raised); | 836 | label->setFrameStyle(QFrame::Panel|QFrame::Raised); |
834 | label->setLineWidth(1); | 837 | label->setLineWidth(1); |
835 | label->setAlignment(AlignCenter); | 838 | label->setAlignment(AlignCenter); |
836 | mDayLabelsW.insert( i, label ); | 839 | mDayLabelsW.insert( i, label ); |
@@ -896,75 +899,78 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) | |||
896 | connect( cell, SIGNAL( showDaySignal( QDate ) ), | 899 | connect( cell, SIGNAL( showDaySignal( QDate ) ), |
897 | SIGNAL( showDaySignal( QDate ) ) ); | 900 | SIGNAL( showDaySignal( QDate ) ) ); |
898 | cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont ); | 901 | cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont ); |
899 | } | 902 | } |
900 | 903 | ||
901 | //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); | 904 | //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); |
902 | mContextMenu = eventPopup(); | 905 | mContextMenu = eventPopup(); |
903 | // updateConfig(); //useless here... | 906 | // updateConfig(); //useless here... |
904 | // ... but we need mWidthLongDayLabel computed | 907 | // ... but we need mWidthLongDayLabel computed |
905 | QFontMetrics fontmetric(mDayLabels[0]->font()); | 908 | QFontMetrics fontmetric(mDayLabels[0]->font()); |
906 | mWidthLongDayLabel = 0; | 909 | mWidthLongDayLabel = 0; |
907 | for (int i = 0; i < 7; i++) { | 910 | for (int i = 0; i < 7; i++) { |
908 | int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); | 911 | int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); |
909 | if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; | 912 | if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; |
910 | } | 913 | } |
911 | 914 | ||
912 | //mWeekLabels[mNumWeeks]->setText( i18n("W")); | 915 | //mWeekLabels[mNumWeeks]->setText( i18n("W")); |
913 | 916 | ||
914 | if ( mShowWeekView ) | 917 | if ( mShowWeekView ) |
915 | mWidStack->raiseWidget( mWeekView ); | 918 | mWidStack->raiseWidget( mWeekView ); |
916 | else | 919 | else |
917 | mWidStack->raiseWidget( mMonthView ); | 920 | mWidStack->raiseWidget( mMonthView ); |
918 | 921 | ||
919 | emit incidenceSelected( 0 ); | 922 | emit incidenceSelected( 0 ); |
923 | #ifndef DESKTOP_VERSION | ||
924 | resize( QApplication::desktop()->size() ); | ||
925 | computeLayout(); | ||
926 | #endif | ||
920 | } | 927 | } |
921 | 928 | ||
922 | KOMonthView::~KOMonthView() | 929 | KOMonthView::~KOMonthView() |
923 | { | 930 | { |
924 | delete mContextMenu; | 931 | delete mContextMenu; |
925 | } | 932 | } |
926 | 933 | ||
927 | void KOMonthView::selectInternalWeekNum ( int n ) | 934 | void KOMonthView::selectInternalWeekNum ( int n ) |
928 | { | 935 | { |
929 | switchView(); | 936 | switchView(); |
930 | emit selectWeekNum ( n ); | 937 | emit selectWeekNum ( n ); |
931 | } | 938 | } |
932 | 939 | ||
933 | int KOMonthView::currentWeek() | 940 | int KOMonthView::currentWeek() |
934 | { | 941 | { |
935 | if ( mShowWeekView ) | 942 | if ( mShowWeekView ) |
936 | return mWeekLabelsW[0]->getWeekNum(); | 943 | return mWeekLabelsW[0]->getWeekNum(); |
937 | return mWeekLabels[0]->getWeekNum(); | 944 | return mWeekLabels[0]->getWeekNum(); |
938 | } | 945 | } |
939 | void KOMonthView::switchView() | 946 | void KOMonthView::switchView() |
940 | { | 947 | { |
941 | 948 | ||
942 | if ( selectedCell( ) ) | 949 | if ( selectedCell( ) ) |
943 | selectedCell()->deselect(); | 950 | selectedCell()->deselect(); |
944 | mShowWeekView = !mShowWeekView; | 951 | mShowWeekView = !mShowWeekView; |
945 | KOPrefs::instance()->mMonthViewWeek = mShowWeekView; | 952 | KOPrefs::instance()->mMonthViewWeek = mShowWeekView; |
946 | //emit showNavigator( !mShowWeekView ); | ||
947 | if ( clPending ) { | 953 | if ( clPending ) { |
948 | computeLayout(); | 954 | computeLayout(); |
949 | updateConfig(); | 955 | updateConfig(); |
950 | } | 956 | } |
951 | if ( mShowWeekView ) | 957 | if ( mShowWeekView ) |
952 | mWidStack->raiseWidget( mWeekView ); | 958 | mWidStack->raiseWidget( mWeekView ); |
953 | else | 959 | else |
954 | mWidStack->raiseWidget( mMonthView ); | 960 | mWidStack->raiseWidget( mMonthView ); |
955 | clPending = false; | 961 | clPending = false; |
956 | } | 962 | } |
957 | 963 | ||
958 | int KOMonthView::maxDatesHint() | 964 | int KOMonthView::maxDatesHint() |
959 | { | 965 | { |
960 | return mNumCells; | 966 | return mNumCells; |
961 | } | 967 | } |
962 | 968 | ||
963 | int KOMonthView::currentDateCount() | 969 | int KOMonthView::currentDateCount() |
964 | { | 970 | { |
965 | return mNumCells; | 971 | return mNumCells; |
966 | } | 972 | } |
967 | 973 | ||
968 | QPtrList<Incidence> KOMonthView::selectedIncidences() | 974 | QPtrList<Incidence> KOMonthView::selectedIncidences() |
969 | { | 975 | { |
970 | QPtrList<Incidence> selected; | 976 | QPtrList<Incidence> selected; |
@@ -1239,95 +1245,89 @@ void KOMonthView::updateView() | |||
1239 | } | 1245 | } |
1240 | processSelectionChange(); | 1246 | processSelectionChange(); |
1241 | (*cells)[0]->setFocus(); | 1247 | (*cells)[0]->setFocus(); |
1242 | 1248 | ||
1243 | 1249 | ||
1244 | #else | 1250 | #else |
1245 | // old code | 1251 | // old code |
1246 | //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); | 1252 | //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); |
1247 | int i; | 1253 | int i; |
1248 | for( i = 0; i < (*cells).count(); ++i ) { | 1254 | for( i = 0; i < (*cells).count(); ++i ) { |
1249 | (*cells)[i]->updateCell(); | 1255 | (*cells)[i]->updateCell(); |
1250 | } | 1256 | } |
1251 | 1257 | ||
1252 | //qDebug("KOMonthView::updateView() "); | 1258 | //qDebug("KOMonthView::updateView() "); |
1253 | processSelectionChange(); | 1259 | processSelectionChange(); |
1254 | // qDebug("---------------------------------------------------------------------+ "); | 1260 | // qDebug("---------------------------------------------------------------------+ "); |
1255 | (*cells)[0]->setFocus(); | 1261 | (*cells)[0]->setFocus(); |
1256 | #endif | 1262 | #endif |
1257 | 1263 | ||
1258 | //qDebug("update time %d ", ti.elapsed()); | 1264 | //qDebug("update time %d ", ti.elapsed()); |
1259 | } | 1265 | } |
1260 | 1266 | ||
1261 | void KOMonthView::resizeEvent(QResizeEvent * e) | 1267 | void KOMonthView::resizeEvent(QResizeEvent * e) |
1262 | { | 1268 | { |
1263 | qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); | 1269 | //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); |
1264 | if ( skipResize ) { | ||
1265 | skipResize = false; | ||
1266 | qDebug("skipResize "); | ||
1267 | return; | ||
1268 | } | ||
1269 | computeLayout(); | 1270 | computeLayout(); |
1270 | clPending = true; | 1271 | clPending = true; |
1271 | if ( mShowWeekView ) | 1272 | if ( mShowWeekView ) |
1272 | mCellsW[0]->setFocus(); | 1273 | mCellsW[0]->setFocus(); |
1273 | else | 1274 | else |
1274 | mCells[0]->setFocus(); | 1275 | mCells[0]->setFocus(); |
1275 | } | 1276 | } |
1276 | void KOMonthView::computeLayoutWeek() | 1277 | void KOMonthView::computeLayoutWeek() |
1277 | { | 1278 | { |
1278 | static int lastWid = 0; | 1279 | static int lastWid = 0; |
1279 | static int lastHei = 0; | 1280 | static int lastHei = 0; |
1280 | int daysToShow; | 1281 | int daysToShow; |
1281 | bool combinedSatSun = false; | 1282 | bool combinedSatSun = false; |
1282 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { | 1283 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { |
1283 | daysToShow = 6; | 1284 | daysToShow = 6; |
1284 | combinedSatSun = true; | 1285 | combinedSatSun = true; |
1285 | } | 1286 | } |
1286 | int tWid = topLevelWidget()->size().width(); | 1287 | int tWid = topLevelWidget()->size().width(); |
1287 | int tHei = topLevelWidget()->size().height(); | 1288 | int tHei = topLevelWidget()->size().height(); |
1288 | 1289 | ||
1289 | int wid = size().width();//e | 1290 | int wid = width();//e |
1290 | int hei = size().height()-1; | 1291 | int hei = height()-1-mNavigatorBar->height(); |
1291 | 1292 | ||
1292 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) | 1293 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) |
1293 | return; | 1294 | return; |
1294 | 1295 | ||
1295 | |||
1296 | if ( lastWid == width() && lastHei ==height() ) | 1296 | if ( lastWid == width() && lastHei ==height() ) |
1297 | return; | 1297 | return; |
1298 | lastWid =width(); | 1298 | lastWid =width(); |
1299 | lastHei = height(); | 1299 | lastHei = height(); |
1300 | 1300 | ||
1301 | 1301 | ||
1302 | if ( wid < hei ) | 1302 | if ( wid < hei ) |
1303 | daysToShow = 2; | 1303 | daysToShow = 2; |
1304 | else | 1304 | else |
1305 | daysToShow = 3; | 1305 | daysToShow = 3; |
1306 | mShowSatSunComp = true; | 1306 | mShowSatSunComp = true; |
1307 | combinedSatSun = true; | 1307 | combinedSatSun = true; |
1308 | 1308 | ||
1309 | qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); | 1309 | //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); |
1310 | QFontMetrics fm ( mWeekLabels[0]->font() ); | 1310 | QFontMetrics fm ( mWeekLabels[0]->font() ); |
1311 | int weeklabelwid = fm.width( "888" ); | 1311 | int weeklabelwid = fm.width( "888" ); |
1312 | wid -= weeklabelwid; | 1312 | wid -= weeklabelwid; |
1313 | 1313 | ||
1314 | int colWid = wid / daysToShow; | 1314 | int colWid = wid / daysToShow; |
1315 | int lastCol = wid - ( colWid*6 ); | 1315 | int lastCol = wid - ( colWid*6 ); |
1316 | int dayLabelHei = mDayLabelsW[0]->sizeHint().height(); | 1316 | int dayLabelHei = mDayLabelsW[0]->sizeHint().height(); |
1317 | int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); | 1317 | int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); |
1318 | int colModulo = wid % daysToShow; | 1318 | int colModulo = wid % daysToShow; |
1319 | int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; | 1319 | int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; |
1320 | //qDebug("rowmod %d ", rowModulo); | 1320 | //qDebug("rowmod %d ", rowModulo); |
1321 | int i; | 1321 | int i; |
1322 | int x,y,w,h; | 1322 | int x,y,w,h; |
1323 | x= 0; | 1323 | x= 0; |
1324 | y= 0; | 1324 | y= 0; |
1325 | w = colWid; | 1325 | w = colWid; |
1326 | h = dayLabelHei ; | 1326 | h = dayLabelHei ; |
1327 | for ( i = 0; i < 7; i++) { | 1327 | for ( i = 0; i < 7; i++) { |
1328 | if ( i && !( i % daysToShow) && i < 6) { | 1328 | if ( i && !( i % daysToShow) && i < 6) { |
1329 | y += hei/(5-daysToShow); | 1329 | y += hei/(5-daysToShow); |
1330 | x = 0; | 1330 | x = 0; |
1331 | w = colWid; | 1331 | w = colWid; |
1332 | } | 1332 | } |
1333 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { | 1333 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { |
@@ -1366,84 +1366,87 @@ void KOMonthView::computeLayoutWeek() | |||
1366 | if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) { | 1366 | if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) { |
1367 | ++w; | 1367 | ++w; |
1368 | } | 1368 | } |
1369 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 ); | 1369 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 ); |
1370 | y -= h/2; | 1370 | y -= h/2; |
1371 | } | 1371 | } |
1372 | } else | 1372 | } else |
1373 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h ); | 1373 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h ); |
1374 | 1374 | ||
1375 | 1375 | ||
1376 | x += w; | 1376 | x += w; |
1377 | if ( x + w/2 > wid ) { | 1377 | if ( x + w/2 > wid ) { |
1378 | x = 0; | 1378 | x = 0; |
1379 | y += h+dayLabelHei ; | 1379 | y += h+dayLabelHei ; |
1380 | } | 1380 | } |
1381 | } | 1381 | } |
1382 | y= dayLabelHei; | 1382 | y= dayLabelHei; |
1383 | h = cellHei ; | 1383 | h = cellHei ; |
1384 | mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); | 1384 | mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); |
1385 | mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); | 1385 | mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); |
1386 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); | 1386 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); |
1387 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); | 1387 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); |
1388 | mShortDayLabels = mDayLabelsW[0]->width() < mWidthLongDayLabel ; | 1388 | mShortDayLabels = mDayLabelsW[0]->width() < mWidthLongDayLabel ; |
1389 | updateDayLabels(); | 1389 | updateDayLabels(); |
1390 | bool forceUpdate = !updatePossible; | 1390 | //bool forceUpdate = !updatePossible; |
1391 | updatePossible = true; | 1391 | updatePossible = true; |
1392 | //mWeekLabels[mNumWeeks]->setText( i18n("M")); | 1392 | //mWeekLabels[mNumWeeks]->setText( i18n("M")); |
1393 | if ( forceUpdate ) | 1393 | //if ( forceUpdate ) |
1394 | updateView(); | 1394 | // updateView(); |
1395 | } | 1395 | } |
1396 | void KOMonthView::computeLayout() | 1396 | void KOMonthView::computeLayout() |
1397 | { | 1397 | { |
1398 | 1398 | ||
1399 | 1399 | ||
1400 | static int lastWid = 0; | 1400 | static int lastWid = 0; |
1401 | static int lastHei = 0; | 1401 | static int lastHei = 0; |
1402 | 1402 | ||
1403 | if ( mShowWeekView ){ | 1403 | if ( mShowWeekView ){ |
1404 | computeLayoutWeek(); | 1404 | computeLayoutWeek(); |
1405 | return; | 1405 | return; |
1406 | } | 1406 | } |
1407 | int daysToShow = 7; | 1407 | int daysToShow = 7; |
1408 | bool combinedSatSun = false; | 1408 | bool combinedSatSun = false; |
1409 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { | 1409 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { |
1410 | daysToShow = 6; | 1410 | daysToShow = 6; |
1411 | combinedSatSun = true; | 1411 | combinedSatSun = true; |
1412 | } | 1412 | } |
1413 | int tWid = topLevelWidget()->size().width(); | 1413 | int tWid = topLevelWidget()->size().width(); |
1414 | int tHei = topLevelWidget()->size().height(); | 1414 | int tHei = topLevelWidget()->size().height(); |
1415 | 1415 | ||
1416 | int wid = size().width();//e | 1416 | int wid = width();//e |
1417 | int hei = size().height()-1; | 1417 | int hei = height()-1-mNavigatorBar->height(); |
1418 | 1418 | ||
1419 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) | 1419 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) { |
1420 | return; | 1420 | return; |
1421 | if ( lastWid == width() && lastHei ==height() ) | 1421 | } |
1422 | if ( lastWid == width() && lastHei == height() ){ | ||
1422 | return; | 1423 | return; |
1424 | } | ||
1425 | |||
1423 | lastWid =width(); | 1426 | lastWid =width(); |
1424 | lastHei = height(); | 1427 | lastHei = height(); |
1425 | qDebug("KOMonthView::computeLayout() MMM ------------------------------------ "); | 1428 | //qDebug("KOMonthView::computeLayout() MMM ------------------------------------ "); |
1426 | QFontMetrics fm ( mWeekLabels[0]->font() ); | 1429 | QFontMetrics fm ( mWeekLabels[0]->font() ); |
1427 | int weeklabelwid = fm.width( "888" ); | 1430 | int weeklabelwid = fm.width( "888" ); |
1428 | wid -= weeklabelwid; | 1431 | wid -= weeklabelwid; |
1429 | 1432 | ||
1430 | int colWid = wid / daysToShow; | 1433 | int colWid = wid / daysToShow; |
1431 | int lastCol = wid - ( colWid*6 ); | 1434 | int lastCol = wid - ( colWid*6 ); |
1432 | int dayLabelHei = mDayLabels[0]->sizeHint().height(); | 1435 | int dayLabelHei = mDayLabels[0]->sizeHint().height(); |
1433 | int cellHei = (hei - dayLabelHei) /6; | 1436 | int cellHei = (hei - dayLabelHei) /6; |
1434 | int colModulo = wid % daysToShow; | 1437 | int colModulo = wid % daysToShow; |
1435 | int rowModulo = (hei- dayLabelHei) % 6; | 1438 | int rowModulo = (hei- dayLabelHei) % 6; |
1436 | //qDebug("rowmod %d ", rowModulo); | 1439 | //qDebug("rowmod %d ", rowModulo); |
1437 | int i; | 1440 | int i; |
1438 | int x,y,w,h; | 1441 | int x,y,w,h; |
1439 | x= 0; | 1442 | x= 0; |
1440 | y= 0; | 1443 | y= 0; |
1441 | w = colWid; | 1444 | w = colWid; |
1442 | h = dayLabelHei ; | 1445 | h = dayLabelHei ; |
1443 | for ( i = 0; i < 7; i++) { | 1446 | for ( i = 0; i < 7; i++) { |
1444 | if ( i == daysToShow-colModulo ) | 1447 | if ( i == daysToShow-colModulo ) |
1445 | ++w; | 1448 | ++w; |
1446 | if ( combinedSatSun ) { | 1449 | if ( combinedSatSun ) { |
1447 | if ( i >= daysToShow-1 ) { | 1450 | if ( i >= daysToShow-1 ) { |
1448 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h); | 1451 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h); |
1449 | x -= w/2 ; | 1452 | x -= w/2 ; |
@@ -1479,53 +1482,51 @@ void KOMonthView::computeLayout() | |||
1479 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); | 1482 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); |
1480 | 1483 | ||
1481 | } | 1484 | } |
1482 | else | 1485 | else |
1483 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); | 1486 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); |
1484 | x += w; | 1487 | x += w; |
1485 | if ( x + w/2 > wid ) { | 1488 | if ( x + w/2 > wid ) { |
1486 | x = 0; | 1489 | x = 0; |
1487 | y += h; | 1490 | y += h; |
1488 | } | 1491 | } |
1489 | } | 1492 | } |
1490 | y= dayLabelHei; | 1493 | y= dayLabelHei; |
1491 | h = cellHei ; | 1494 | h = cellHei ; |
1492 | for ( i = 0; i < 6; i++) { | 1495 | for ( i = 0; i < 6; i++) { |
1493 | if ( i == (6-rowModulo)) | 1496 | if ( i == (6-rowModulo)) |
1494 | ++h; | 1497 | ++h; |
1495 | mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h); | 1498 | mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h); |
1496 | y += h; | 1499 | y += h; |
1497 | } | 1500 | } |
1498 | mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); | 1501 | mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); |
1499 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); | 1502 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); |
1500 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); | 1503 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); |
1501 | mShortDayLabels = mDayLabels[0]->width() < mWidthLongDayLabel ; | 1504 | mShortDayLabels = mDayLabels[0]->width() < mWidthLongDayLabel ; |
1502 | updateDayLabels(); | 1505 | updateDayLabels(); |
1503 | bool forceUpdate = !updatePossible; | 1506 | //bool forceUpdate = !updatePossible; |
1504 | updatePossible = true; | 1507 | updatePossible = true; |
1505 | //mWeekLabels[mNumWeeks]->setText( i18n("W")); | 1508 | //mWeekLabels[mNumWeeks]->setText( i18n("W")); |
1506 | if ( forceUpdate ) | ||
1507 | updateView(); | ||
1508 | } | 1509 | } |
1509 | 1510 | ||
1510 | void KOMonthView::showContextMenu( Incidence *incidence ) | 1511 | void KOMonthView::showContextMenu( Incidence *incidence ) |
1511 | { | 1512 | { |
1512 | mContextMenu->showIncidencePopup(incidence); | 1513 | mContextMenu->showIncidencePopup(incidence); |
1513 | /* | 1514 | /* |
1514 | if( incidence && incidence->type() == "Event" ) { | 1515 | if( incidence && incidence->type() == "Event" ) { |
1515 | Event *event = static_cast<Event *>(incidence); | 1516 | Event *event = static_cast<Event *>(incidence); |
1516 | mContextMenu->showEventPopup(event); | 1517 | mContextMenu->showEventPopup(event); |
1517 | } else { | 1518 | } else { |
1518 | kdDebug() << "MonthView::showContextMenu(): cast failed." << endl; | 1519 | kdDebug() << "MonthView::showContextMenu(): cast failed." << endl; |
1519 | } | 1520 | } |
1520 | */ | 1521 | */ |
1521 | } | 1522 | } |
1522 | MonthViewCell * KOMonthView::selectedCell( ) | 1523 | MonthViewCell * KOMonthView::selectedCell( ) |
1523 | { | 1524 | { |
1524 | return mSelectedCell; | 1525 | return mSelectedCell; |
1525 | } | 1526 | } |
1526 | void KOMonthView::setSelectedCell( MonthViewCell *cell ) | 1527 | void KOMonthView::setSelectedCell( MonthViewCell *cell ) |
1527 | { | 1528 | { |
1528 | // qDebug("KOMonthView::setSelectedCell "); | 1529 | // qDebug("KOMonthView::setSelectedCell "); |
1529 | if ( mSelectedCell && mSelectedCell != cell ) { | 1530 | if ( mSelectedCell && mSelectedCell != cell ) { |
1530 | MonthViewCell * mvc = mSelectedCell; | 1531 | MonthViewCell * mvc = mSelectedCell; |
1531 | mSelectedCell = cell; | 1532 | mSelectedCell = cell; |