summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--korganizer/datenavigatorcontainer.cpp5
-rw-r--r--korganizer/kodaymatrix.cpp9
2 files changed, 13 insertions, 1 deletions
diff --git a/korganizer/datenavigatorcontainer.cpp b/korganizer/datenavigatorcontainer.cpp
index 9506768..b147427 100644
--- a/korganizer/datenavigatorcontainer.cpp
+++ b/korganizer/datenavigatorcontainer.cpp
@@ -123,24 +123,29 @@ void DateNavigatorContainer::updateConfig()
n->updateConfig();
}
}
void DateNavigatorContainer::selectDates( const DateList &dateList )
{
mNavigatorView->selectDates( dateList );
setBaseDates();
if ( mExtraViews.count() ) {
KDateNavigator *view = mExtraViews.at( 0 );
view->dayMatrix()->setSelectedDaysFrom(*(dateList.begin()), *(--dateList.end()));
view->dayMatrix()->repaint( false );
+ if ( mExtraViews.count() > 1 ) {
+ KDateNavigator *view = mExtraViews.at( 1 );
+ view->dayMatrix()->setSelectedDaysFrom(*(dateList.begin()), *(--dateList.end()));
+ view->dayMatrix()->repaint( false );
+ }
}
}
void DateNavigatorContainer::setBaseDates()
{
KCal::DateList dateList = mNavigatorView->selectedDates();
if ( dateList.isEmpty() ) {
kdError() << "DateNavigatorContainer::selectDates() empty list." << endl;
}
QDate baseDate = dateList.first();
KDateNavigator *n;
bool doRepaint = false; // skip first repaint
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index a776cb6..d7a4112 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -281,24 +281,25 @@ void KODayMatrix::addSelectedDaysTo(DateList& selDays)
for (int i = i0; i <= mSelEnd; i++) {
selDays.append(days[i]);
}
}
}
void KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end)
{
mSelStart = startdate.daysTo(start);
if ( mSelStart < 0 )
mSelStart = 0;
mSelEnd = startdate.daysTo(end);
+ //qDebug("SELECTION %d %d ", mSelStart ,mSelEnd );
if ( mSelEnd < 0 )
clearSelection();
}
void KODayMatrix::clearSelection()
{
mSelEnd = mSelStart = NOSELECTION;
}
void KODayMatrix::recalculateToday()
{
today = -1;
@@ -682,25 +683,31 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
p.drawRect(0, 0, sz.width()+1, sz.height()+1);
int mSelStartT = mSelStart;
int mSelEndT = mSelEnd;
if ( mSelEndT >= NUMDAYS )
mSelEndT = NUMDAYS-1;
// draw selected days with highlighted background color
if (mSelStart != NOSELECTION) {
bool skip = false;
if ( ! mouseDown ) {
int mo = days[20].month();
//qDebug("-- %d %d ", mSelStartT, mSelEndT);
//qDebug("%d %d %d - d %d", mo, days[mSelStartT].month() , days[mSelEndT].month(), days[mSelEndT].day() );
- if ( days[mSelStartT].month() > mo || days[mSelEndT].month() < mo ) {
+ int startMo = days[mSelStartT].month();
+ int endMo = days[mSelEndT].month();
+ if ( startMo == 12 && mo == 1 && endMo == 1 )
+ startMo = 1;
+ if ( endMo == 1 && mo == 12 )
+ endMo = 12;
+ if ( (startMo > mo || endMo < mo) ) {
skip = true;
} else {
if ( days[mSelStartT].month() != mo ) {
int add = days[mSelStartT].daysInMonth ()-days[mSelStartT].day();
mSelStartT += add +1;
}
if ( days[mSelEndT].month() != mo ) {
int sub = days[mSelEndT].day();
mSelEndT -= sub ;
}
}
}