summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp5
-rw-r--r--korganizer/calendarview.h1
-rw-r--r--korganizer/komonthview.cpp163
-rw-r--r--korganizer/komonthview.h4
-rw-r--r--korganizer/koprefs.cpp1
-rw-r--r--korganizer/koprefs.h1
-rw-r--r--korganizer/koviewmanager.cpp16
7 files changed, 174 insertions, 17 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index cca73f2..be78057 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -3851,12 +3851,17 @@ void CalendarView::slotCalendarChanged()
3851} 3851}
3852 3852
3853NavigatorBar *CalendarView::navigatorBar() 3853NavigatorBar *CalendarView::navigatorBar()
3854{ 3854{
3855 return mNavigatorBar; 3855 return mNavigatorBar;
3856} 3856}
3857void CalendarView::showNavigatorBar( bool b)
3858{
3859 if ( b ) mNavigatorBar->show();
3860 else mNavigatorBar->hide();
3861}
3857 3862
3858 3863
3859 3864
3860void CalendarView::keyPressEvent ( QKeyEvent *e) 3865void CalendarView::keyPressEvent ( QKeyEvent *e)
3861{ 3866{
3862 //qDebug(" alendarView::keyPressEvent "); 3867 //qDebug(" alendarView::keyPressEvent ");
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h
index 7c59a8d..6ea8287 100644
--- a/korganizer/calendarview.h
+++ b/korganizer/calendarview.h
@@ -171,12 +171,13 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
171 171
172 void calendarViewExpanded( bool ); 172 void calendarViewExpanded( bool );
173 void updateSearchDialog(); 173 void updateSearchDialog();
174 174
175 175
176 public slots: 176 public slots:
177 void showNavigatorBar(bool);
177 void showOpenError(); 178 void showOpenError();
178 void watchSavedFile(); 179 void watchSavedFile();
179 void recheckTimerAlarm(); 180 void recheckTimerAlarm();
180 void checkNextTimerAlarm(); 181 void checkNextTimerAlarm();
181 void addAlarm(const QDateTime &qdt, const QString &noti ); 182 void addAlarm(const QDateTime &qdt, const QString &noti );
182 void addSuspendAlarm(const QDateTime &qdt, const QString &noti ); 183 void addSuspendAlarm(const QDateTime &qdt, const QString &noti );
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 6411156..9888566 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -462,12 +462,19 @@ void MonthViewCell::insertEvent(Event *event)
462 if (mDate == event->dtStart().date()) { 462 if (mDate == event->dtStart().date()) {
463 prefix ="->" ; 463 prefix ="->" ;
464 } else if (mDate == event->dtEnd().date()) { 464 } else if (mDate == event->dtEnd().date()) {
465 prefix ="<-" ; 465 prefix ="<-" ;
466 } 466 }
467 } 467 }
468 if ( !event->doesFloat() ) {
469 if ( mDate == event->dtStart().date () )
470 prefix += KGlobal::locale()->formatTime(event->dtStart().time())+" ";
471 else if ( mDate == event->dtEnd().date () )
472 prefix += KGlobal::locale()->formatTime(event->dtEnd().time())+" ";
473
474 }
468 text = prefix + event->summary(); 475 text = prefix + event->summary();
469 mToolTip += text; 476 mToolTip += text;
470 } else { 477 } else {
471 if (event->doesFloat()) { 478 if (event->doesFloat()) {
472 text = event->summary(); 479 text = event->summary();
473 mToolTip += text; 480 mToolTip += text;
@@ -564,18 +571,18 @@ void MonthViewCell::insertTodo(Todo *todo)
564void MonthViewCell::finishUpdateCell() 571void MonthViewCell::finishUpdateCell()
565{ 572{
566#ifdef DESKTOP_VERSION 573#ifdef DESKTOP_VERSION
567 if (mToolTip != "") 574 if (mToolTip != "")
568 QToolTip::add(this,mToolTip,toolTipGroup(),""); 575 QToolTip::add(this,mToolTip,toolTipGroup(),"");
569#endif 576#endif
570 577 mItemList->sort();
571 //setMyPalette(); 578 //setMyPalette();
572 setMyPalette(); 579 setMyPalette();
573 QString text; 580 QString text;
574 bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog; 581 bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog;
575 if ( KOGlobals::self()->calendarSystem()->day( mDate ) == 1 || (mDate.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) { 582 if ( KOPrefs::instance()->mMonthViewWeek || KOGlobals::self()->calendarSystem()->day( mDate ) == 1 || (mDate.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) {
576 text = KOGlobals::self()->calendarSystem()->monthName( mDate, true ) + " "; 583 text = KOGlobals::self()->calendarSystem()->monthName( mDate, true ) + " ";
577 mLabel->resize( mLabelBigSize ); 584 mLabel->resize( mLabelBigSize );
578 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); 585 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) );
579 } else { 586 } else {
580 mLabel->resize( mLabelSize ); 587 mLabel->resize( mLabelSize );
581 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); 588 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) );
@@ -685,16 +692,16 @@ void MonthViewCell::resizeEvent ( QResizeEvent * )
685 return; 692 return;
686#ifndef DESKTOP_VERSION 693#ifndef DESKTOP_VERSION
687 if ( !isVisible() ){ 694 if ( !isVisible() ){
688 return; 695 return;
689 } 696 }
690#endif 697#endif
691 int size = height() - mLabel->height(); 698 int size = height() - mLabel->height() - 2;
692 if ( size > 0 ) 699 if ( size > 0 )
693 mItemList->verticalScrollBar()->setMaximumHeight( size ); 700 mItemList->verticalScrollBar()->setMaximumHeight( size );
694 size = width() - mLabel->width(); 701 size = width() - mLabel->width() -2;
695 if ( size > 0 ) 702 if ( size > 0 )
696 mItemList->horizontalScrollBar()->setMaximumWidth( size ); 703 mItemList->horizontalScrollBar()->setMaximumWidth( size );
697 mLabel->move( width()-mItemList->lineWidth() - mLabel->width(), height()-mItemList->lineWidth() - mLabel->height() ); 704 mLabel->move( width()-mItemList->lineWidth() - mLabel->width(), height()-mItemList->lineWidth() - mLabel->height() );
698 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); 705 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2);
699} 706}
700 707
@@ -729,13 +736,13 @@ void MonthViewCell::cellClicked( QListBoxItem *item )
729 if ( lastClicked->listBox() != item->listBox() ) 736 if ( lastClicked->listBox() != item->listBox() )
730 lastClicked->listBox()->clearSelection(); 737 lastClicked->listBox()->clearSelection();
731 } 738 }
732 */ 739 */
733 740
734 mMonthView->setSelectedCell( this ); 741 mMonthView->setSelectedCell( this );
735 if( KOPrefs::instance()->mEnableMonthScroll ) enableScrollBars( true ); 742 if( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) enableScrollBars( true );
736 select(); 743 select();
737} 744}
738 745
739void MonthViewCell::contextMenu( QListBoxItem *item ) 746void MonthViewCell::contextMenu( QListBoxItem *item )
740{ 747{
741 if ( !item ) return; 748 if ( !item ) return;
@@ -760,13 +767,16 @@ void MonthViewCell::selection( QListBoxItem *item )
760 767
761KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) 768KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
762 : KOEventView( calendar, parent, name ), 769 : KOEventView( calendar, parent, name ),
763 mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ), 770 mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ),
764 mShortDayLabels( false ), mWidthLongDayLabel( 0 ), mSelectedCell( 0 ) 771 mShortDayLabels( false ), mWidthLongDayLabel( 0 ), mSelectedCell( 0 )
765{ 772{
766 773 mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
774 mShowWeekView = KOPrefs::instance()->mMonthViewWeek;
775 if ( mShowWeekView )
776 mWeekStartsMonday = true;
767 updatePossible = false; 777 updatePossible = false;
768 mCells.setAutoDelete( true ); 778 mCells.setAutoDelete( true );
769 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; 779 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ;
770 // mDayLayout = new QGridLayout( this ); 780 // mDayLayout = new QGridLayout( this );
771 // create the day of the week labels (Sun, Mon, etc) and add them to 781 // create the day of the week labels (Sun, Mon, etc) and add them to
772 // the layout. 782 // the layout.
@@ -814,22 +824,32 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
814 SIGNAL( newEventSignal( QDateTime ) ) ); 824 SIGNAL( newEventSignal( QDateTime ) ) );
815 connect( cell, SIGNAL( showDaySignal( QDate ) ), 825 connect( cell, SIGNAL( showDaySignal( QDate ) ),
816 SIGNAL( showDaySignal( QDate ) ) ); 826 SIGNAL( showDaySignal( QDate ) ) );
817 } 827 }
818 } 828 }
819 829
830 connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ),
831 SLOT( switchView() ) );
820 mContextMenu = eventPopup(); 832 mContextMenu = eventPopup();
821 // updateConfig(); //useless here 833 // updateConfig(); //useless here
822 834
823 emit incidenceSelected( 0 ); 835 emit incidenceSelected( 0 );
824} 836}
825 837
826KOMonthView::~KOMonthView() 838KOMonthView::~KOMonthView()
827{ 839{
828 delete mContextMenu; 840 delete mContextMenu;
829} 841}
842void KOMonthView::switchView()
843{
844 mShowWeekView = !mShowWeekView;
845 KOPrefs::instance()->mMonthViewWeek = mShowWeekView;
846 emit showNavigator( !mShowWeekView );
847 computeLayout();
848 updateConfig();
849}
830 850
831int KOMonthView::maxDatesHint() 851int KOMonthView::maxDatesHint()
832{ 852{
833 return mNumCells; 853 return mNumCells;
834} 854}
835 855
@@ -872,12 +892,14 @@ void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd,
872 892
873void KOMonthView::updateConfig() 893void KOMonthView::updateConfig()
874{ 894{
875 895
876 mWeekStartsMonday = KGlobal::locale()->weekStartsMonday(); 896 mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
877 897
898 if ( mShowWeekView )
899 mWeekStartsMonday = true;
878 QFontMetrics fontmetric(mDayLabels[0]->font()); 900 QFontMetrics fontmetric(mDayLabels[0]->font());
879 mWidthLongDayLabel = 0; 901 mWidthLongDayLabel = 0;
880 902
881 for (int i = 0; i < 7; i++) { 903 for (int i = 0; i < 7; i++) {
882 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); 904 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1));
883 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; 905 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width;
@@ -977,21 +999,23 @@ void KOMonthView::updateView()
977 if ( !updatePossible ) 999 if ( !updatePossible )
978 return; 1000 return;
979 //QTime ti; 1001 //QTime ti;
980 //ti.start(); 1002 //ti.start();
981#if 1 1003#if 1
982 int i; 1004 int i;
983 for( i = 0; i < mCells.count(); ++i ) { 1005 int timeSpan = mCells.size()-1;
1006 if ( KOPrefs::instance()->mMonthViewWeek )
1007 timeSpan = 6;
1008 for( i = 0; i < timeSpan + 1; ++i ) {
984 mCells[i]->startUpdateCell(); 1009 mCells[i]->startUpdateCell();
985 } 1010 }
986 1011
987 QPtrList<Event> events = calendar()->events(); 1012 QPtrList<Event> events = calendar()->events();
988 Event *event; 1013 Event *event;
989 QDateTime dt; 1014 QDateTime dt;
990 bool ok; 1015 bool ok;
991 int timeSpan = mCells.size()-1;
992 QDate endDate = mStartDate.addDays( timeSpan ); 1016 QDate endDate = mStartDate.addDays( timeSpan );
993 for( event = events.first(); event; event = events.next() ) { // for event 1017 for( event = events.first(); event; event = events.next() ) { // for event
994 if ( event->doesRecur() ) { 1018 if ( event->doesRecur() ) {
995 bool last; 1019 bool last;
996 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last ); 1020 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last );
997 QDateTime incidenceEnd; 1021 QDateTime incidenceEnd;
@@ -1050,19 +1074,19 @@ void KOMonthView::updateView()
1050 QPtrList<Todo> todos = calendar()->todos( ); 1074 QPtrList<Todo> todos = calendar()->todos( );
1051 Todo *todo; 1075 Todo *todo;
1052 for(todo = todos.first(); todo; todo = todos.next()) { 1076 for(todo = todos.first(); todo; todo = todos.next()) {
1053 //insertTodo( todo ); 1077 //insertTodo( todo );
1054 if ( todo->hasDueDate() ) { 1078 if ( todo->hasDueDate() ) {
1055 int day = mStartDate.daysTo( todo->dtDue().date() ); 1079 int day = mStartDate.daysTo( todo->dtDue().date() );
1056 if ( day >= 0 && day < mCells.size() ) { 1080 if ( day >= 0 && day < timeSpan + 1) {
1057 mCells[day]->insertTodo( todo ); 1081 mCells[day]->insertTodo( todo );
1058 } 1082 }
1059 } 1083 }
1060 } 1084 }
1061 1085
1062 for( i = 0; i < mCells.count(); ++i ) { 1086 for( i = 0; i < timeSpan+1; ++i ) {
1063 mCells[i]->finishUpdateCell(); 1087 mCells[i]->finishUpdateCell();
1064 } 1088 }
1065 processSelectionChange(); 1089 processSelectionChange();
1066 mCells[0]->setFocus(); 1090 mCells[0]->setFocus();
1067 1091
1068 1092
@@ -1085,19 +1109,132 @@ void KOMonthView::updateView()
1085 1109
1086void KOMonthView::resizeEvent(QResizeEvent * e) 1110void KOMonthView::resizeEvent(QResizeEvent * e)
1087{ 1111{
1088 computeLayout(); 1112 computeLayout();
1089 mCells[0]->setFocus(); 1113 mCells[0]->setFocus();
1090} 1114}
1115void KOMonthView::computeLayoutWeek()
1116{
1117
1118 int daysToShow;
1119 bool combinedSatSun = false;
1120 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) {
1121 daysToShow = 6;
1122 combinedSatSun = true;
1123 }
1124 int tWid = topLevelWidget()->size().width();
1125 int tHei = topLevelWidget()->size().height();
1126
1127 int wid = size().width();//e
1128 int hei = size().height()-1;
1129
1130 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei )
1131 return;
1132
1133 if ( wid < hei )
1134 daysToShow = 2;
1135 else
1136 daysToShow = 3;
1137 mShowSatSunComp = true;
1138 combinedSatSun = true;
1139
1140 //qDebug("KOMonthView::computeLayout()------------------------------------ ");
1141 QFontMetrics fm ( mWeekLabels[0]->font() );
1142 int weeklabelwid = fm.width( "888" );
1143 wid -= weeklabelwid;
1144
1145 int colWid = wid / daysToShow;
1146 int lastCol = wid - ( colWid*6 );
1147 int dayLabelHei = mDayLabels[0]->sizeHint().height();
1148 int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow );
1149 int colModulo = wid % daysToShow;
1150 int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1;
1151 //qDebug("rowmod %d ", rowModulo);
1152 int i;
1153 int x,y,w,h;
1154 x= 0;
1155 y= 0;
1156 w = colWid;
1157 h = dayLabelHei ;
1158 for ( i = 0; i < 7; i++) {
1159 if ( i && !( i % daysToShow) && i < 6) {
1160 y += hei/(5-daysToShow);
1161 x = 0;
1162 }
1163 if ( i == daysToShow-colModulo )
1164 ++w;
1165 if ( i >= 5 ) {
1166 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h);
1167 x -= w/2 ;
1168 }
1169 else
1170 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h);
1171 x += w;
1172 }
1173 x= 0;
1174 y= dayLabelHei;
1175 w = colWid;
1176 h = cellHei;
1177 for ( i = 0; i < mCells.count(); ++i) {
1178 if ( i > 6 ) {
1179 mCells[i]->hide();
1180 continue;
1181 }
1182
1183 w = colWid;
1184 if ( ((i) % daysToShow) >= daysToShow-colModulo ) {
1185 ++w;
1186 }
1187 if ( i == (daysToShow-1-rowModulo)*7)
1188 ++h;
1189
1190 if ( i >= 5 ) {
1191 if ( i ==5 ) {
1192 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h/2 );
1193 x -= w ;y += h/2;
1194 } else {
1195 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 );
1196 y -= h/2;
1197 }
1198 } else
1199 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h );
1200
1201
1202 x += w;
1203 if ( x + w/2 > wid ) {
1204 x = 0;
1205 y += h+dayLabelHei ;
1206 }
1207 }
1208 y= dayLabelHei;
1209 h = cellHei ;
1210 mWeekLabels[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei);
1211 for ( i = 1; i < 6; i++) {
1212 mWeekLabels[i]->hide();
1213 }
1214 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei);
1215 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height());
1216 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height());
1217 mShortDayLabels = mDayLabels[0]->width() < mWidthLongDayLabel ;
1218 updateDayLabels();
1219 bool forceUpdate = !updatePossible;
1220 updatePossible = true;
1221 mWeekLabels[mNumWeeks]->setText( i18n("M"));
1222 if ( forceUpdate )
1223 updateView();
1224}
1091void KOMonthView::computeLayout() 1225void KOMonthView::computeLayout()
1092{ 1226{
1093 // select the appropriate heading string size. E.g. "Wednesday" or "Wed". 1227 // select the appropriate heading string size. E.g. "Wednesday" or "Wed".
1094 // note this only changes the text if the requested size crosses the 1228 // note this only changes the text if the requested size crosses the
1095 // threshold between big enough to support the full name and not big 1229 // threshold between big enough to support the full name and not big
1096 // enough. 1230 // enough.
1097 1231 if ( mShowWeekView ){
1232 computeLayoutWeek();
1233 return;
1234 }
1098 int daysToShow = 7; 1235 int daysToShow = 7;
1099 bool combinedSatSun = false; 1236 bool combinedSatSun = false;
1100 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { 1237 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) {
1101 daysToShow = 6; 1238 daysToShow = 6;
1102 combinedSatSun = true; 1239 combinedSatSun = true;
1103 } 1240 }
@@ -1143,13 +1280,13 @@ void KOMonthView::computeLayout()
1143 } 1280 }
1144 x= 0; 1281 x= 0;
1145 y= dayLabelHei; 1282 y= dayLabelHei;
1146 w = colWid; 1283 w = colWid;
1147 h = cellHei ; 1284 h = cellHei ;
1148 for ( i = 0; i < mCells.count(); ++i) { 1285 for ( i = 0; i < mCells.count(); ++i) {
1149 1286 mCells[i]->show();
1150 w = colWid; 1287 w = colWid;
1151 if ( ((i) % 7) >= 7-colModulo ) { 1288 if ( ((i) % 7) >= 7-colModulo ) {
1152 ++w; 1289 ++w;
1153 } 1290 }
1154 if ( i == (6-rowModulo)*7) 1291 if ( i == (6-rowModulo)*7)
1155 ++h; 1292 ++h;
@@ -1174,24 +1311,26 @@ void KOMonthView::computeLayout()
1174 y += h; 1311 y += h;
1175 } 1312 }
1176 } 1313 }
1177 y= dayLabelHei; 1314 y= dayLabelHei;
1178 h = cellHei ; 1315 h = cellHei ;
1179 for ( i = 0; i < 6; i++) { 1316 for ( i = 0; i < 6; i++) {
1317 mWeekLabels[i]->show();
1180 if ( i == (6-rowModulo)) 1318 if ( i == (6-rowModulo))
1181 ++h; 1319 ++h;
1182 mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h); 1320 mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h);
1183 y += h; 1321 y += h;
1184 } 1322 }
1185 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); 1323 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei);
1186 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); 1324 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height());
1187 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); 1325 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height());
1188 mShortDayLabels = mDayLabels[0]->width() < mWidthLongDayLabel ; 1326 mShortDayLabels = mDayLabels[0]->width() < mWidthLongDayLabel ;
1189 updateDayLabels(); 1327 updateDayLabels();
1190 bool forceUpdate = !updatePossible; 1328 bool forceUpdate = !updatePossible;
1191 updatePossible = true; 1329 updatePossible = true;
1330 mWeekLabels[mNumWeeks]->setText( i18n("W"));
1192 if ( forceUpdate ) 1331 if ( forceUpdate )
1193 updateView(); 1332 updateView();
1194} 1333}
1195 1334
1196void KOMonthView::showContextMenu( Incidence *incidence ) 1335void KOMonthView::showContextMenu( Incidence *incidence )
1197{ 1336{
diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h
index b84065e..0bc3743 100644
--- a/korganizer/komonthview.h
+++ b/korganizer/komonthview.h
@@ -237,31 +237,35 @@ class KOMonthView: public KOEventView
237 237
238 void showContextMenu( Incidence * ); 238 void showContextMenu( Incidence * );
239 239
240 void setSelectedCell( MonthViewCell * ); 240 void setSelectedCell( MonthViewCell * );
241 241
242 protected slots: 242 protected slots:
243 void switchView();
243 void processSelectionChange(); 244 void processSelectionChange();
244 signals: 245 signals:
245 void nextMonth(); 246 void nextMonth();
246 void prevMonth(); 247 void prevMonth();
248 void showNavigator( bool );
247 void selectWeekNum ( int ); 249 void selectWeekNum ( int );
248 void showDaySignal( QDate ); 250 void showDaySignal( QDate );
249 protected: 251 protected:
250 void resizeEvent(QResizeEvent *); 252 void resizeEvent(QResizeEvent *);
251 void viewChanged(); 253 void viewChanged();
252 void updateDayLabels(); 254 void updateDayLabels();
253 255
254 private: 256 private:
257 bool mShowWeekView;
255 bool updatePossible; 258 bool updatePossible;
256 int mDaysPerWeek; 259 int mDaysPerWeek;
257 int mNumWeeks; 260 int mNumWeeks;
258 int mNumCells; 261 int mNumCells;
259 bool mWeekStartsMonday; 262 bool mWeekStartsMonday;
260 bool mShowSatSunComp; 263 bool mShowSatSunComp;
261 void computeLayout(); 264 void computeLayout();
265 void computeLayoutWeek();
262 266
263 QPtrVector<MonthViewCell> mCells; 267 QPtrVector<MonthViewCell> mCells;
264 QPtrVector<QLabel> mDayLabels; 268 QPtrVector<QLabel> mDayLabels;
265 QPtrVector<KOWeekButton> mWeekLabels; 269 QPtrVector<KOWeekButton> mWeekLabels;
266 270
267 bool mShortDayLabels; 271 bool mShortDayLabels;
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp
index 0548f14..2fb7c36 100644
--- a/korganizer/koprefs.cpp
+++ b/korganizer/koprefs.cpp
@@ -204,12 +204,13 @@ KOPrefs::KOPrefs() :
204 addItemColor("Todo overdue Color",&mTodoOverdueColor,defaultTodoOverdueColor); 204 addItemColor("Todo overdue Color",&mTodoOverdueColor,defaultTodoOverdueColor);
205 addItemColor("MonthViewEvenColor",&mMonthViewEvenColor,QColor( 160,160,255 )); 205 addItemColor("MonthViewEvenColor",&mMonthViewEvenColor,QColor( 160,160,255 ));
206 addItemColor("MonthViewOddColor",&mMonthViewOddColor,QColor( 160,255,160 )); 206 addItemColor("MonthViewOddColor",&mMonthViewOddColor,QColor( 160,255,160 ));
207 addItemColor("MonthViewHolidayColor",&mMonthViewHolidayColor,QColor( 255,160,160 )); 207 addItemColor("MonthViewHolidayColor",&mMonthViewHolidayColor,QColor( 255,160,160 ));
208 addItemBool("MonthViewUsesDayColors",&mMonthViewUsesDayColors,true); 208 addItemBool("MonthViewUsesDayColors",&mMonthViewUsesDayColors,true);
209 addItemBool("MonthViewSatSunTog",&mMonthViewSatSunTog,true); 209 addItemBool("MonthViewSatSunTog",&mMonthViewSatSunTog,true);
210 addItemBool("MonthViewWeek",&mMonthViewWeek,false);
210 addItemBool("HightlightDateTimeEdit",&mHightlightDateTimeEdit,false); 211 addItemBool("HightlightDateTimeEdit",&mHightlightDateTimeEdit,false);
211 addItemColor("AppColor1",&mAppColor1,QColor( 130,170,255 )); 212 addItemColor("AppColor1",&mAppColor1,QColor( 130,170,255 ));
212 addItemColor("AppColor2",&mAppColor2,QColor( 174,216,255 )); 213 addItemColor("AppColor2",&mAppColor2,QColor( 174,216,255 ));
213 addItemBool("UseAppColors",&mUseAppColors,false); 214 addItemBool("UseAppColors",&mUseAppColors,false);
214 215
215 216
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index 8b849fa..6541af2 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -130,12 +130,13 @@ class KOPrefs : public KPimPrefs
130 QColor mTodoOverdueColor; 130 QColor mTodoOverdueColor;
131 QColor mMonthViewEvenColor; 131 QColor mMonthViewEvenColor;
132 QColor mMonthViewOddColor; 132 QColor mMonthViewOddColor;
133 QColor mMonthViewHolidayColor; 133 QColor mMonthViewHolidayColor;
134 bool mMonthViewUsesDayColors; 134 bool mMonthViewUsesDayColors;
135 bool mMonthViewSatSunTog; 135 bool mMonthViewSatSunTog;
136 bool mMonthViewWeek;
136 QColor mAppColor1; 137 QColor mAppColor1;
137 QColor mAppColor2; 138 QColor mAppColor2;
138 bool mUseAppColors; 139 bool mUseAppColors;
139 140
140 int mDayBegins; 141 int mDayBegins;
141 int mHourSize; 142 int mHourSize;
diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp
index 7e126d9..6afd203 100644
--- a/korganizer/koviewmanager.cpp
+++ b/korganizer/koviewmanager.cpp
@@ -221,15 +221,17 @@ void KOViewManager::showView(KOrg::BaseView *view, bool fullScreen )
221 221
222void KOViewManager::raiseCurrentView( bool fullScreen, bool callUpdateView ) 222void KOViewManager::raiseCurrentView( bool fullScreen, bool callUpdateView )
223{ 223{
224 mCurrentAgendaView = 0; 224 mCurrentAgendaView = 0;
225 int wid = mMainView->width() ; 225 int wid = mMainView->width() ;
226 int hei = mMainView->height(); 226 int hei = mMainView->height();
227 if ( mCurrentView == mMonthView ) { 227 if ( mCurrentView == mMonthView ) {
228 mMainView->navigatorBar()->show(); 228 if ( !KOPrefs::instance()->mMonthViewWeek ) {
229 hei -= mMainView->navigatorBar()->sizeHint().height(); 229 mMainView->navigatorBar()->show();
230 hei -= mMainView->navigatorBar()->sizeHint().height();
231 }
230 //mMainView->navigatorBar()->hide(); 232 //mMainView->navigatorBar()->hide();
231 } else { 233 } else {
232 mMainView->navigatorBar()->hide(); 234 mMainView->navigatorBar()->hide();
233 } 235 }
234 if ( fullScreen ) { 236 if ( fullScreen ) {
235 mMainView->leftFrame()->hide(); 237 mMainView->leftFrame()->hide();
@@ -524,19 +526,23 @@ void KOViewManager::showMonthView()
524 mMainView, SLOT ( showDay( QDate ) ) ); 526 mMainView, SLOT ( showDay( QDate ) ) );
525 connect(mMainView, SIGNAL(configChanged()), mMonthView, SLOT(updateConfig())); 527 connect(mMainView, SIGNAL(configChanged()), mMonthView, SLOT(updateConfig()));
526 connect( mMonthView, SIGNAL(nextMonth() ), 528 connect( mMonthView, SIGNAL(nextMonth() ),
527 mMainView->navigatorBar(), SIGNAL(goNextMonth() ) ); 529 mMainView->navigatorBar(), SIGNAL(goNextMonth() ) );
528 connect( mMonthView, SIGNAL(prevMonth() ), 530 connect( mMonthView, SIGNAL(prevMonth() ),
529 mMainView->navigatorBar(), SIGNAL(goPrevMonth() ) ); 531 mMainView->navigatorBar(), SIGNAL(goPrevMonth() ) );
530 mMonthView->updateConfig(); 532 connect( mMonthView, SIGNAL( showNavigator(bool) ),
533 mMainView, SLOT ( showNavigatorBar(bool) ) );
531 } 534 }
532 535
533 globalFlagBlockAgenda = 1; 536 globalFlagBlockAgenda = 1;
534 //mFlagShowNextxDays = false; 537 //mFlagShowNextxDays = false;
535 // if(mMonthView == mCurrentView) return; 538 // if(mMonthView == mCurrentView) return;
536 mMainView->dateNavigator()->selectMonth(); 539 if ( KOPrefs::instance()->mMonthViewWeek )
540 mMainView->dateNavigator()->selectWeek();
541 else
542 mMainView->dateNavigator()->selectMonth();
537 543
538 showView(mMonthView, true ); 544 showView(mMonthView, true );
539 545
540} 546}
541 547
542void KOViewManager::showTodoView() 548void KOViewManager::showTodoView()