-rw-r--r-- | korganizer/komonthview.cpp | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index 00b1e92..f2cfb75 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp | |||
@@ -777,93 +777,108 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) | |||
777 | // create the day of the week labels (Sun, Mon, etc) and add them to | 777 | // create the day of the week labels (Sun, Mon, etc) and add them to |
778 | // the layout. | 778 | // the layout. |
779 | mDayLabels.resize( mDaysPerWeek ); | 779 | mDayLabels.resize( mDaysPerWeek ); |
780 | QFont bfont = font(); | 780 | QFont bfont = font(); |
781 | if ( QApplication::desktop()->width() < 650 ) { | 781 | if ( QApplication::desktop()->width() < 650 ) { |
782 | bfont.setPointSize( bfont.pointSize() - 2 ); | 782 | bfont.setPointSize( bfont.pointSize() - 2 ); |
783 | } | 783 | } |
784 | bfont.setBold( true ); | 784 | bfont.setBold( true ); |
785 | int i; | 785 | int i; |
786 | 786 | ||
787 | for( i = 0; i < mDaysPerWeek; i++ ) { | 787 | for( i = 0; i < mDaysPerWeek; i++ ) { |
788 | QLabel *label = new QLabel( this ); | 788 | QLabel *label = new QLabel( this ); |
789 | label->setFont(bfont); | 789 | label->setFont(bfont); |
790 | label->setFrameStyle(QFrame::Panel|QFrame::Raised); | 790 | label->setFrameStyle(QFrame::Panel|QFrame::Raised); |
791 | label->setLineWidth(1); | 791 | label->setLineWidth(1); |
792 | label->setAlignment(AlignCenter); | 792 | label->setAlignment(AlignCenter); |
793 | mDayLabels.insert( i, label ); | 793 | mDayLabels.insert( i, label ); |
794 | } | 794 | } |
795 | 795 | ||
796 | bfont.setBold( false ); | 796 | bfont.setBold( false ); |
797 | mWeekLabels.resize( mNumWeeks+1 ); | 797 | mWeekLabels.resize( mNumWeeks+1 ); |
798 | for( i = 0; i < mNumWeeks+1; i++ ) { | 798 | for( i = 0; i < mNumWeeks+1; i++ ) { |
799 | KOWeekButton *label = new KOWeekButton( this ); | 799 | KOWeekButton *label = new KOWeekButton( this ); |
800 | label->setFont(bfont); | 800 | label->setFont(bfont); |
801 | connect( label, SIGNAL( selectWeekNum ( int )),this, SIGNAL( selectWeekNum ( int )) ); | 801 | connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) ); |
802 | label->setFlat(true); | 802 | label->setFlat(true); |
803 | QWhatsThis::add(label,i18n("Click on the week number to\nshow week in agenda view")); | 803 | QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed")); |
804 | //label->setFrameStyle(QFrame::Panel|QFrame::Raised); | 804 | //label->setFrameStyle(QFrame::Panel|QFrame::Raised); |
805 | //label->setLineWidth(1); | 805 | //label->setLineWidth(1); |
806 | //label->setAlignment(AlignCenter); | 806 | //label->setAlignment(AlignCenter); |
807 | mWeekLabels.insert( i, label ); | 807 | mWeekLabels.insert( i, label ); |
808 | } | 808 | } |
809 | mWeekLabels[mNumWeeks]->setText( i18n("W")); | 809 | mWeekLabels[mNumWeeks]->setText( i18n("")); |
810 | QWhatsThis::add(mWeekLabels[mNumWeeks],i18n("Click on this to\nswitch to week mode view")); | 810 | QWhatsThis::add(mWeekLabels[mNumWeeks],i18n("Click on this to\nselect week number")); |
811 | int row, col; | 811 | int row, col; |
812 | QPopupMenu * wpo = new QPopupMenu (this); | ||
813 | wpo->insertItem( i18n("W#"), 0 ); | ||
814 | for ( i = 1; i < 54; i++ ) | ||
815 | wpo->insertItem( i18n("%1").arg(i), i ); | ||
816 | mWeekLabels[mNumWeeks]->setPopup( wpo ); | ||
812 | mCells.resize( mNumCells ); | 817 | mCells.resize( mNumCells ); |
813 | for( row = 0; row < mNumWeeks; ++row ) { | 818 | for( row = 0; row < mNumWeeks; ++row ) { |
814 | for( col = 0; col < mDaysPerWeek; ++col ) { | 819 | for( col = 0; col < mDaysPerWeek; ++col ) { |
815 | MonthViewCell *cell = new MonthViewCell( this ); | 820 | MonthViewCell *cell = new MonthViewCell( this ); |
816 | mCells.insert( row * mDaysPerWeek + col, cell ); | 821 | mCells.insert( row * mDaysPerWeek + col, cell ); |
817 | 822 | ||
818 | connect( cell, SIGNAL( defaultAction( Incidence * ) ), | 823 | connect( cell, SIGNAL( defaultAction( Incidence * ) ), |
819 | SLOT( defaultAction( Incidence * ) ) ); | 824 | SLOT( defaultAction( Incidence * ) ) ); |
820 | connect( cell, SIGNAL( newEventSignal( QDateTime ) ), | 825 | connect( cell, SIGNAL( newEventSignal( QDateTime ) ), |
821 | SIGNAL( newEventSignal( QDateTime ) ) ); | 826 | SIGNAL( newEventSignal( QDateTime ) ) ); |
822 | connect( cell, SIGNAL( showDaySignal( QDate ) ), | 827 | connect( cell, SIGNAL( showDaySignal( QDate ) ), |
823 | SIGNAL( showDaySignal( QDate ) ) ); | 828 | SIGNAL( showDaySignal( QDate ) ) ); |
824 | } | 829 | } |
825 | } | 830 | } |
826 | 831 | ||
827 | connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), | 832 | //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); |
828 | SLOT( switchView() ) ); | 833 | connect( wpo, SIGNAL( activated(int) ), SIGNAL( selectWeekNum ( int ) ) ); |
829 | mContextMenu = eventPopup(); | 834 | mContextMenu = eventPopup(); |
830 | // updateConfig(); //useless here | 835 | // updateConfig(); //useless here |
831 | 836 | ||
832 | emit incidenceSelected( 0 ); | 837 | emit incidenceSelected( 0 ); |
833 | } | 838 | } |
834 | 839 | ||
835 | KOMonthView::~KOMonthView() | 840 | KOMonthView::~KOMonthView() |
836 | { | 841 | { |
837 | delete mContextMenu; | 842 | delete mContextMenu; |
838 | } | 843 | } |
844 | void KOMonthView::selectDateWeekNum ( int ) | ||
845 | { | ||
846 | |||
847 | } | ||
848 | void KOMonthView::selectInternalWeekNum ( int n ) | ||
849 | { | ||
850 | emit selectWeekNum ( n ); | ||
851 | switchView(); | ||
852 | } | ||
853 | |||
839 | void KOMonthView::switchView() | 854 | void KOMonthView::switchView() |
840 | { | 855 | { |
841 | if ( selectedCell( ) ) | 856 | if ( selectedCell( ) ) |
842 | selectedCell()->deselect(); | 857 | selectedCell()->deselect(); |
843 | mShowWeekView = !mShowWeekView; | 858 | mShowWeekView = !mShowWeekView; |
844 | KOPrefs::instance()->mMonthViewWeek = mShowWeekView; | 859 | KOPrefs::instance()->mMonthViewWeek = mShowWeekView; |
845 | emit showNavigator( !mShowWeekView ); | 860 | //emit showNavigator( !mShowWeekView ); |
846 | computeLayout(); | 861 | computeLayout(); |
847 | updateConfig(); | 862 | updateConfig(); |
848 | } | 863 | } |
849 | 864 | ||
850 | int KOMonthView::maxDatesHint() | 865 | int KOMonthView::maxDatesHint() |
851 | { | 866 | { |
852 | return mNumCells; | 867 | return mNumCells; |
853 | } | 868 | } |
854 | 869 | ||
855 | int KOMonthView::currentDateCount() | 870 | int KOMonthView::currentDateCount() |
856 | { | 871 | { |
857 | return mNumCells; | 872 | return mNumCells; |
858 | } | 873 | } |
859 | 874 | ||
860 | QPtrList<Incidence> KOMonthView::selectedIncidences() | 875 | QPtrList<Incidence> KOMonthView::selectedIncidences() |
861 | { | 876 | { |
862 | QPtrList<Incidence> selected; | 877 | QPtrList<Incidence> selected; |
863 | 878 | ||
864 | if ( mSelectedCell ) { | 879 | if ( mSelectedCell ) { |
865 | Incidence *incidence = mSelectedCell->selectedIncidence(); | 880 | Incidence *incidence = mSelectedCell->selectedIncidence(); |
866 | if ( incidence ) selected.append( incidence ); | 881 | if ( incidence ) selected.append( incidence ); |
867 | } | 882 | } |
868 | 883 | ||
869 | return selected; | 884 | return selected; |
@@ -1201,49 +1216,49 @@ void KOMonthView::computeLayoutWeek() | |||
1201 | } | 1216 | } |
1202 | } else | 1217 | } else |
1203 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); | 1218 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); |
1204 | 1219 | ||
1205 | 1220 | ||
1206 | x += w; | 1221 | x += w; |
1207 | if ( x + w/2 > wid ) { | 1222 | if ( x + w/2 > wid ) { |
1208 | x = 0; | 1223 | x = 0; |
1209 | y += h+dayLabelHei ; | 1224 | y += h+dayLabelHei ; |
1210 | } | 1225 | } |
1211 | } | 1226 | } |
1212 | y= dayLabelHei; | 1227 | y= dayLabelHei; |
1213 | h = cellHei ; | 1228 | h = cellHei ; |
1214 | mWeekLabels[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); | 1229 | mWeekLabels[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); |
1215 | for ( i = 1; i < 6; i++) { | 1230 | for ( i = 1; i < 6; i++) { |
1216 | mWeekLabels[i]->hide(); | 1231 | mWeekLabels[i]->hide(); |
1217 | } | 1232 | } |
1218 | mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); | 1233 | mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); |
1219 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); | 1234 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); |
1220 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); | 1235 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); |
1221 | mShortDayLabels = mDayLabels[0]->width() < mWidthLongDayLabel ; | 1236 | mShortDayLabels = mDayLabels[0]->width() < mWidthLongDayLabel ; |
1222 | updateDayLabels(); | 1237 | updateDayLabels(); |
1223 | bool forceUpdate = !updatePossible; | 1238 | bool forceUpdate = !updatePossible; |
1224 | updatePossible = true; | 1239 | updatePossible = true; |
1225 | mWeekLabels[mNumWeeks]->setText( i18n("M")); | 1240 | //mWeekLabels[mNumWeeks]->setText( i18n("M")); |
1226 | if ( forceUpdate ) | 1241 | if ( forceUpdate ) |
1227 | updateView(); | 1242 | updateView(); |
1228 | } | 1243 | } |
1229 | void KOMonthView::computeLayout() | 1244 | void KOMonthView::computeLayout() |
1230 | { | 1245 | { |
1231 | // select the appropriate heading string size. E.g. "Wednesday" or "Wed". | 1246 | // select the appropriate heading string size. E.g. "Wednesday" or "Wed". |
1232 | // note this only changes the text if the requested size crosses the | 1247 | // note this only changes the text if the requested size crosses the |
1233 | // threshold between big enough to support the full name and not big | 1248 | // threshold between big enough to support the full name and not big |
1234 | // enough. | 1249 | // enough. |
1235 | if ( mShowWeekView ){ | 1250 | if ( mShowWeekView ){ |
1236 | computeLayoutWeek(); | 1251 | computeLayoutWeek(); |
1237 | return; | 1252 | return; |
1238 | } | 1253 | } |
1239 | int daysToShow = 7; | 1254 | int daysToShow = 7; |
1240 | bool combinedSatSun = false; | 1255 | bool combinedSatSun = false; |
1241 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { | 1256 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { |
1242 | daysToShow = 6; | 1257 | daysToShow = 6; |
1243 | combinedSatSun = true; | 1258 | combinedSatSun = true; |
1244 | } | 1259 | } |
1245 | int tWid = topLevelWidget()->size().width(); | 1260 | int tWid = topLevelWidget()->size().width(); |
1246 | int tHei = topLevelWidget()->size().height(); | 1261 | int tHei = topLevelWidget()->size().height(); |
1247 | 1262 | ||
1248 | int wid = size().width();//e | 1263 | int wid = size().width();//e |
1249 | int hei = size().height()-1; | 1264 | int hei = size().height()-1; |
@@ -1310,49 +1325,49 @@ void KOMonthView::computeLayout() | |||
1310 | else | 1325 | else |
1311 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); | 1326 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); |
1312 | x += w; | 1327 | x += w; |
1313 | if ( x + w/2 > wid ) { | 1328 | if ( x + w/2 > wid ) { |
1314 | x = 0; | 1329 | x = 0; |
1315 | y += h; | 1330 | y += h; |
1316 | } | 1331 | } |
1317 | } | 1332 | } |
1318 | y= dayLabelHei; | 1333 | y= dayLabelHei; |
1319 | h = cellHei ; | 1334 | h = cellHei ; |
1320 | for ( i = 0; i < 6; i++) { | 1335 | for ( i = 0; i < 6; i++) { |
1321 | mWeekLabels[i]->show(); | 1336 | mWeekLabels[i]->show(); |
1322 | if ( i == (6-rowModulo)) | 1337 | if ( i == (6-rowModulo)) |
1323 | ++h; | 1338 | ++h; |
1324 | mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h); | 1339 | mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h); |
1325 | y += h; | 1340 | y += h; |
1326 | } | 1341 | } |
1327 | mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); | 1342 | mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); |
1328 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); | 1343 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); |
1329 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); | 1344 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); |
1330 | mShortDayLabels = mDayLabels[0]->width() < mWidthLongDayLabel ; | 1345 | mShortDayLabels = mDayLabels[0]->width() < mWidthLongDayLabel ; |
1331 | updateDayLabels(); | 1346 | updateDayLabels(); |
1332 | bool forceUpdate = !updatePossible; | 1347 | bool forceUpdate = !updatePossible; |
1333 | updatePossible = true; | 1348 | updatePossible = true; |
1334 | mWeekLabels[mNumWeeks]->setText( i18n("W")); | 1349 | //mWeekLabels[mNumWeeks]->setText( i18n("W")); |
1335 | if ( forceUpdate ) | 1350 | if ( forceUpdate ) |
1336 | updateView(); | 1351 | updateView(); |
1337 | } | 1352 | } |
1338 | 1353 | ||
1339 | void KOMonthView::showContextMenu( Incidence *incidence ) | 1354 | void KOMonthView::showContextMenu( Incidence *incidence ) |
1340 | { | 1355 | { |
1341 | mContextMenu->showIncidencePopup(incidence); | 1356 | mContextMenu->showIncidencePopup(incidence); |
1342 | /* | 1357 | /* |
1343 | if( incidence && incidence->type() == "Event" ) { | 1358 | if( incidence && incidence->type() == "Event" ) { |
1344 | Event *event = static_cast<Event *>(incidence); | 1359 | Event *event = static_cast<Event *>(incidence); |
1345 | mContextMenu->showEventPopup(event); | 1360 | mContextMenu->showEventPopup(event); |
1346 | } else { | 1361 | } else { |
1347 | kdDebug() << "MonthView::showContextMenu(): cast failed." << endl; | 1362 | kdDebug() << "MonthView::showContextMenu(): cast failed." << endl; |
1348 | } | 1363 | } |
1349 | */ | 1364 | */ |
1350 | } | 1365 | } |
1351 | MonthViewCell * KOMonthView::selectedCell( ) | 1366 | MonthViewCell * KOMonthView::selectedCell( ) |
1352 | { | 1367 | { |
1353 | return mSelectedCell; | 1368 | return mSelectedCell; |
1354 | } | 1369 | } |
1355 | void KOMonthView::setSelectedCell( MonthViewCell *cell ) | 1370 | void KOMonthView::setSelectedCell( MonthViewCell *cell ) |
1356 | { | 1371 | { |
1357 | // qDebug("KOMonthView::setSelectedCell "); | 1372 | // qDebug("KOMonthView::setSelectedCell "); |
1358 | if ( mSelectedCell && mSelectedCell != cell ) { | 1373 | if ( mSelectedCell && mSelectedCell != cell ) { |