summaryrefslogtreecommitdiffabout
path: root/korganizer/kodaymatrix.cpp
Unidiff
Diffstat (limited to 'korganizer/kodaymatrix.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kodaymatrix.cpp34
1 files changed, 23 insertions, 11 deletions
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index 59618bf..d543aaf 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -115,9 +115,11 @@ KODayMatrix::KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const
115 mouseDown = false; 115 mouseDown = false;
116 // initialize dynamic arrays 116 // initialize dynamic arrays
117 bDays.resize ( NUMDAYS ); 117 bDays.resize ( NUMDAYS );
118 hDays.resize ( NUMDAYS );;
119 eDays.resize ( NUMDAYS );;
118 days = new QDate[NUMDAYS]; 120 days = new QDate[NUMDAYS];
119 daylbls = new QString[NUMDAYS]; 121 daylbls = new QString[NUMDAYS];
120 events = new int[NUMDAYS]; 122 //events = new int[NUMDAYS];
121 mToolTip = new DynamicTip(this); 123 mToolTip = new DynamicTip(this);
122 124
123 // set default values used for drawing the matrix 125 // set default values used for drawing the matrix
@@ -240,7 +242,7 @@ KODayMatrix::~KODayMatrix()
240 // delete mKODaymatrixWhatsThis; 242 // delete mKODaymatrixWhatsThis;
241 delete [] days; 243 delete [] days;
242 delete [] daylbls; 244 delete [] daylbls;
243 delete [] events; 245 //delete [] events;
244 delete mToolTip; 246 delete mToolTip;
245} 247}
246 248
@@ -311,7 +313,7 @@ void KODayMatrix::recalculateToday()
311{ 313{
312 today = -1; 314 today = -1;
313 for (int i=0; i<NUMDAYS; i++) { 315 for (int i=0; i<NUMDAYS; i++) {
314 events[i] = 0; 316 //events[i] = 0;
315 days[i] = startdate.addDays(i); 317 days[i] = startdate.addDays(i);
316 daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] )); 318 daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] ));
317 319
@@ -349,6 +351,8 @@ void KODayMatrix::updateViewTimed()
349 int numEvents = eventlist.count(); 351 int numEvents = eventlist.count();
350 QString holiStr = ""; 352 QString holiStr = "";
351 bDays.clearBit(i); 353 bDays.clearBit(i);
354 hDays.clearBit(i);
355 eDays.clearBit(i);
352 for(event=eventlist.first();event != 0;event=eventlist.next()) { 356 for(event=eventlist.first();event != 0;event=eventlist.next()) {
353 ushort recurType = event->recurrence()->doesRecur(); 357 ushort recurType = event->recurrence()->doesRecur();
354 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) || 358 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) ||
@@ -356,6 +360,7 @@ void KODayMatrix::updateViewTimed()
356 numEvents--; 360 numEvents--;
357 } 361 }
358 if ( event->isHoliday()) { 362 if ( event->isHoliday()) {
363 hDays.setBit(i);
359 if ( !holiStr.isEmpty() ) 364 if ( !holiStr.isEmpty() )
360 holiStr += "\n"; 365 holiStr += "\n";
361 holiStr += event->summary(); 366 holiStr += event->summary();
@@ -371,7 +376,8 @@ void KODayMatrix::updateViewTimed()
371 bDays.setBit(i); 376 bDays.setBit(i);
372 } 377 }
373 } 378 }
374 events[i] = numEvents; 379 if ( numEvents )
380 eDays.setBit(i);
375 //if it is a holy day then draw it red. Sundays are consider holidays, too 381 //if it is a holy day then draw it red. Sundays are consider holidays, too
376 if ( (KOGlobals::self()->calendarSystem()->dayOfWeek(days[i]) == KOGlobals::self()->calendarSystem()->weekDayOfPray()) || 382 if ( (KOGlobals::self()->calendarSystem()->dayOfWeek(days[i]) == KOGlobals::self()->calendarSystem()->weekDayOfPray()) ||
377 !holiStr.isEmpty()) { 383 !holiStr.isEmpty()) {
@@ -447,8 +453,11 @@ void KODayMatrix::updateEvents()
447 !KOPrefs::instance()->mWeeklyRecur ) ) { 453 !KOPrefs::instance()->mWeeklyRecur ) ) {
448 numEvents--; 454 numEvents--;
449 } 455 }
450 } 456 }
451 events[ i ] = numEvents; 457 if ( numEvents )
458 eDays.setBit(i);
459 else
460 eDays.clearBit(i);
452 } 461 }
453} 462}
454 463
@@ -862,18 +871,21 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
862 } 871 }
863 872
864 // if any events are on that day then draw it using a bold font 873 // if any events are on that day then draw it using a bold font
865 if (events[i] > 0) { 874 if ( eDays.testBit(i) ) {
866 QFont myFont = font(); 875 QFont myFont = font();
867 myFont.setBold(true); 876 myFont.setBold(true);
868 p.setFont(myFont); 877 p.setFont(myFont);
869 } 878 }
870 879
871 // if it is a holiday then use the default holiday color 880 // if it is a holiday then use the default holiday color
872 if (!mHolidays[i].isNull()) { 881 if ( !mHolidays[i].isNull()) {
873 if ( bDays.testBit(i) ) { 882 if ( bDays.testBit(i) ) {
874 p.setPen(Qt::green); 883 if ( hDays.testBit(i) )
884 p.setPen(QColor(Qt::green));
885 else
886 p.setPen(QColor(Qt::green).dark());
875 } else { 887 } else {
876 if (actcol == mDefaultTextColor) { 888 if (actcol == mDefaultTextColor ) {
877 p.setPen(KOPrefs::instance()->mHolidayColor); 889 p.setPen(KOPrefs::instance()->mHolidayColor);
878 } else { 890 } else {
879 p.setPen(mHolidayColorShaded); 891 p.setPen(mHolidayColorShaded);
@@ -909,7 +921,7 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
909 p.setPen(actcol); 921 p.setPen(actcol);
910 } 922 }
911 // reset bold font to plain font 923 // reset bold font to plain font
912 if (events[i] > 0) { 924 if ( eDays.testBit(i)) {
913 QFont myFont = font(); 925 QFont myFont = font();
914 myFont.setBold(false); 926 myFont.setBold(false);
915 p.setFont(myFont); 927 p.setFont(myFont);