-rw-r--r-- | korganizer/datenavigatorcontainer.cpp | 7 | ||||
-rw-r--r-- | korganizer/kodaymatrix.cpp | 9 |
2 files changed, 14 insertions, 2 deletions
diff --git a/korganizer/datenavigatorcontainer.cpp b/korganizer/datenavigatorcontainer.cpp index 9506768..b147427 100644 --- a/korganizer/datenavigatorcontainer.cpp +++ b/korganizer/datenavigatorcontainer.cpp | |||
@@ -118,33 +118,38 @@ void DateNavigatorContainer::updateView() | |||
118 | void DateNavigatorContainer::updateConfig() | 118 | void DateNavigatorContainer::updateConfig() |
119 | { | 119 | { |
120 | mNavigatorView->updateConfig(); | 120 | mNavigatorView->updateConfig(); |
121 | KDateNavigator *n; | 121 | KDateNavigator *n; |
122 | for( n = mExtraViews.first(); n; n = mExtraViews.next() ) { | 122 | for( n = mExtraViews.first(); n; n = mExtraViews.next() ) { |
123 | n->updateConfig(); | 123 | n->updateConfig(); |
124 | } | 124 | } |
125 | } | 125 | } |
126 | 126 | ||
127 | void DateNavigatorContainer::selectDates( const DateList &dateList ) | 127 | void DateNavigatorContainer::selectDates( const DateList &dateList ) |
128 | { | 128 | { |
129 | mNavigatorView->selectDates( dateList ); | 129 | mNavigatorView->selectDates( dateList ); |
130 | setBaseDates(); | 130 | setBaseDates(); |
131 | if ( mExtraViews.count() ) { | 131 | if ( mExtraViews.count() ) { |
132 | KDateNavigator *view = mExtraViews.at( 0 ); | 132 | KDateNavigator *view = mExtraViews.at( 0 ); |
133 | view->dayMatrix()->setSelectedDaysFrom(*(dateList.begin()), *(--dateList.end())); | 133 | view->dayMatrix()->setSelectedDaysFrom(*(dateList.begin()), *(--dateList.end())); |
134 | view->dayMatrix()->repaint( false ); | 134 | view->dayMatrix()->repaint( false ); |
135 | if ( mExtraViews.count() > 1 ) { | ||
136 | KDateNavigator *view = mExtraViews.at( 1 ); | ||
137 | view->dayMatrix()->setSelectedDaysFrom(*(dateList.begin()), *(--dateList.end())); | ||
138 | view->dayMatrix()->repaint( false ); | ||
139 | } | ||
135 | } | 140 | } |
136 | } | 141 | } |
137 | 142 | ||
138 | void DateNavigatorContainer::setBaseDates() | 143 | void DateNavigatorContainer::setBaseDates() |
139 | { | 144 | { |
140 | KCal::DateList dateList = mNavigatorView->selectedDates(); | 145 | KCal::DateList dateList = mNavigatorView->selectedDates(); |
141 | if ( dateList.isEmpty() ) { | 146 | if ( dateList.isEmpty() ) { |
142 | kdError() << "DateNavigatorContainer::selectDates() empty list." << endl; | 147 | kdError() << "DateNavigatorContainer::selectDates() empty list." << endl; |
143 | } | 148 | } |
144 | QDate baseDate = dateList.first(); | 149 | QDate baseDate = dateList.first(); |
145 | KDateNavigator *n; | 150 | KDateNavigator *n; |
146 | bool doRepaint = false; // skip first repaint | 151 | bool doRepaint = false; // skip first repaint |
147 | for( n = mExtraViews.first(); n; n = mExtraViews.next() ) { | 152 | for( n = mExtraViews.first(); n; n = mExtraViews.next() ) { |
148 | baseDate = baseDate.addDays( baseDate.daysInMonth () - baseDate.day() +1 ); | 153 | baseDate = baseDate.addDays( baseDate.daysInMonth () - baseDate.day() +1 ); |
149 | n->setBaseDate( baseDate, doRepaint ); | 154 | n->setBaseDate( baseDate, doRepaint ); |
150 | doRepaint = true; | 155 | doRepaint = true; |
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp index a776cb6..d7a4112 100644 --- a/korganizer/kodaymatrix.cpp +++ b/korganizer/kodaymatrix.cpp | |||
@@ -277,32 +277,33 @@ void KODayMatrix::addSelectedDaysTo(DateList& selDays) | |||
277 | } | 277 | } |
278 | 278 | ||
279 | // apply normal routine to selection being entirely within matrix limits | 279 | // apply normal routine to selection being entirely within matrix limits |
280 | } else { | 280 | } else { |
281 | for (int i = i0; i <= mSelEnd; i++) { | 281 | for (int i = i0; i <= mSelEnd; i++) { |
282 | selDays.append(days[i]); | 282 | selDays.append(days[i]); |
283 | } | 283 | } |
284 | } | 284 | } |
285 | } | 285 | } |
286 | 286 | ||
287 | void KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end) | 287 | void KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end) |
288 | { | 288 | { |
289 | mSelStart = startdate.daysTo(start); | 289 | mSelStart = startdate.daysTo(start); |
290 | if ( mSelStart < 0 ) | 290 | if ( mSelStart < 0 ) |
291 | mSelStart = 0; | 291 | mSelStart = 0; |
292 | mSelEnd = startdate.daysTo(end); | 292 | mSelEnd = startdate.daysTo(end); |
293 | //qDebug("SELECTION %d %d ", mSelStart ,mSelEnd ); | ||
293 | if ( mSelEnd < 0 ) | 294 | if ( mSelEnd < 0 ) |
294 | clearSelection(); | 295 | clearSelection(); |
295 | } | 296 | } |
296 | void KODayMatrix::clearSelection() | 297 | void KODayMatrix::clearSelection() |
297 | { | 298 | { |
298 | mSelEnd = mSelStart = NOSELECTION; | 299 | mSelEnd = mSelStart = NOSELECTION; |
299 | } | 300 | } |
300 | 301 | ||
301 | 302 | ||
302 | void KODayMatrix::recalculateToday() | 303 | void KODayMatrix::recalculateToday() |
303 | { | 304 | { |
304 | today = -1; | 305 | today = -1; |
305 | for (int i=0; i<NUMDAYS; i++) { | 306 | for (int i=0; i<NUMDAYS; i++) { |
306 | events[i] = 0; | 307 | events[i] = 0; |
307 | days[i] = startdate.addDays(i); | 308 | days[i] = startdate.addDays(i); |
308 | daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] )); | 309 | daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] )); |
@@ -678,33 +679,39 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent) | |||
678 | 679 | ||
679 | // draw background and topleft frame | 680 | // draw background and topleft frame |
680 | p.fillRect(pevent->rect(), mDefaultBackColor); | 681 | p.fillRect(pevent->rect(), mDefaultBackColor); |
681 | p.setPen(mDefaultTextColor); | 682 | p.setPen(mDefaultTextColor); |
682 | p.drawRect(0, 0, sz.width()+1, sz.height()+1); | 683 | p.drawRect(0, 0, sz.width()+1, sz.height()+1); |
683 | int mSelStartT = mSelStart; | 684 | int mSelStartT = mSelStart; |
684 | int mSelEndT = mSelEnd; | 685 | int mSelEndT = mSelEnd; |
685 | if ( mSelEndT >= NUMDAYS ) | 686 | if ( mSelEndT >= NUMDAYS ) |
686 | mSelEndT = NUMDAYS-1; | 687 | mSelEndT = NUMDAYS-1; |
687 | // draw selected days with highlighted background color | 688 | // draw selected days with highlighted background color |
688 | if (mSelStart != NOSELECTION) { | 689 | if (mSelStart != NOSELECTION) { |
689 | bool skip = false; | 690 | bool skip = false; |
690 | if ( ! mouseDown ) { | 691 | if ( ! mouseDown ) { |
691 | int mo = days[20].month(); | 692 | int mo = days[20].month(); |
692 | //qDebug("-- %d %d ", mSelStartT, mSelEndT); | 693 | //qDebug("-- %d %d ", mSelStartT, mSelEndT); |
693 | //qDebug("%d %d %d - d %d", mo, days[mSelStartT].month() , days[mSelEndT].month(), days[mSelEndT].day() ); | 694 | //qDebug("%d %d %d - d %d", mo, days[mSelStartT].month() , days[mSelEndT].month(), days[mSelEndT].day() ); |
694 | if ( days[mSelStartT].month() > mo || days[mSelEndT].month() < mo ) { | 695 | int startMo = days[mSelStartT].month(); |
696 | int endMo = days[mSelEndT].month(); | ||
697 | if ( startMo == 12 && mo == 1 && endMo == 1 ) | ||
698 | startMo = 1; | ||
699 | if ( endMo == 1 && mo == 12 ) | ||
700 | endMo = 12; | ||
701 | if ( (startMo > mo || endMo < mo) ) { | ||
695 | skip = true; | 702 | skip = true; |
696 | } else { | 703 | } else { |
697 | if ( days[mSelStartT].month() != mo ) { | 704 | if ( days[mSelStartT].month() != mo ) { |
698 | int add = days[mSelStartT].daysInMonth ()-days[mSelStartT].day(); | 705 | int add = days[mSelStartT].daysInMonth ()-days[mSelStartT].day(); |
699 | mSelStartT += add +1; | 706 | mSelStartT += add +1; |
700 | } | 707 | } |
701 | if ( days[mSelEndT].month() != mo ) { | 708 | if ( days[mSelEndT].month() != mo ) { |
702 | int sub = days[mSelEndT].day(); | 709 | int sub = days[mSelEndT].day(); |
703 | mSelEndT -= sub ; | 710 | mSelEndT -= sub ; |
704 | } | 711 | } |
705 | } | 712 | } |
706 | } | 713 | } |
707 | if ( ! skip ) { | 714 | if ( ! skip ) { |
708 | row = mSelStartT/7; | 715 | row = mSelStartT/7; |
709 | col = mSelStartT -row*7; | 716 | col = mSelStartT -row*7; |
710 | QColor selcol = KOPrefs::instance()->mHighlightColor; | 717 | QColor selcol = KOPrefs::instance()->mHighlightColor; |