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
@@ -112,15 +112,17 @@ KODayMatrix::KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const
112{ 112{
113 mKODaymatrixWhatsThis = new KODaymatrixWhatsThis(this); 113 mKODaymatrixWhatsThis = new KODaymatrixWhatsThis(this);
114 mPendingUpdateBeforeRepaint = false; 114 mPendingUpdateBeforeRepaint = false;
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
124 mDefaultBackColor = palette().active().base(); 126 mDefaultBackColor = palette().active().base();
125 mDefaultTextColor = palette().active().foreground(); 127 mDefaultTextColor = palette().active().foreground();
126 mDefaultTextColorShaded = getShadedColor(mDefaultTextColor); 128 mDefaultTextColorShaded = getShadedColor(mDefaultTextColor);
@@ -237,13 +239,13 @@ QColor KODayMatrix::getShadedColor(QColor color)
237 239
238KODayMatrix::~KODayMatrix() 240KODayMatrix::~KODayMatrix()
239{ 241{
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
247/* 249/*
248void KODayMatrix::setStartDate(QDate start) 250void KODayMatrix::setStartDate(QDate start)
249{ 251{
@@ -308,13 +310,13 @@ void KODayMatrix::clearSelection()
308 310
309 311
310void KODayMatrix::recalculateToday() 312void 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
318 // if today is in the currently displayed month, hilight today 320 // if today is in the currently displayed month, hilight today
319 if (days[i].year() == QDate::currentDate().year() && 321 if (days[i].year() == QDate::currentDate().year() &&
320 days[i].month() == QDate::currentDate().month() && 322 days[i].month() == QDate::currentDate().month() &&
@@ -346,19 +348,22 @@ void KODayMatrix::updateViewTimed()
346 // if events are set for the day then remember to draw it bold 348 // if events are set for the day then remember to draw it bold
347 QPtrList<Event> eventlist = mCalendar->events(days[i]); 349 QPtrList<Event> eventlist = mCalendar->events(days[i]);
348 Event *event; 350 Event *event;
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) ||
355 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) { 359 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) {
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();
362 if ( !event->location().isEmpty() ) 367 if ( !event->location().isEmpty() )
363 holiStr += " (" + event->location() + ")"; 368 holiStr += " (" + event->location() + ")";
364 } 369 }
@@ -368,13 +373,14 @@ void KODayMatrix::updateViewTimed()
368 holiStr += i18n("Birthday") + ": "+event->summary(); 373 holiStr += i18n("Birthday") + ": "+event->summary();
369 if ( !event->location().isEmpty() ) 374 if ( !event->location().isEmpty() )
370 holiStr += " (" + event->location() + ")"; 375 holiStr += " (" + event->location() + ")";
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()) {
378 mHolidays[i] = holiStr; 384 mHolidays[i] = holiStr;
379 } else { 385 } else {
380 mHolidays[i] = QString::null; 386 mHolidays[i] = QString::null;
@@ -444,14 +450,17 @@ void KODayMatrix::updateEvents()
444 if ( ( recurType == Recurrence::rDaily && 450 if ( ( recurType == Recurrence::rDaily &&
445 !KOPrefs::instance()->mDailyRecur ) || 451 !KOPrefs::instance()->mDailyRecur ) ||
446 ( recurType == Recurrence::rWeekly && 452 ( recurType == Recurrence::rWeekly &&
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
455const QDate& KODayMatrix::getDate(int offset) 464const QDate& KODayMatrix::getDate(int offset)
456{ 465{
457 if (offset < 0 || offset > NUMDAYS-1) { 466 if (offset < 0 || offset > NUMDAYS-1) {
@@ -859,24 +868,27 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
859 addCol += 1; 868 addCol += 1;
860 p.drawRect(col*dwidth+addCol, row*dheight+addRow, dwidth, dheight+1); 869 p.drawRect(col*dwidth+addCol, row*dheight+addRow, dwidth, dheight+1);
861 p.setPen(tmppen); 870 p.setPen(tmppen);
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);
880 } 892 }
881 } 893 }
882 } 894 }
@@ -906,13 +918,13 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
906 918
907 // reset color to actual color 919 // reset color to actual color
908 if (!mHolidays[i].isNull()) { 920 if (!mHolidays[i].isNull()) {
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);
916 } 928 }
917 } 929 }
918 int off = 0;//xyOff; 930 int off = 0;//xyOff;