-rw-r--r-- | microkde/kdatetbl.cpp | 18 | ||||
-rw-r--r-- | microkde/kdatetbl.h | 1 |
2 files changed, 16 insertions, 3 deletions
diff --git a/microkde/kdatetbl.cpp b/microkde/kdatetbl.cpp index 0a2d1f5..146291b 100644 --- a/microkde/kdatetbl.cpp +++ b/microkde/kdatetbl.cpp @@ -92,12 +92,13 @@ KDateTable::KDateTable(QWidget *parent, QDate date_, const char* name, WFlags f) setHScrollBarMode(AlwaysOff); setVScrollBarMode(AlwaysOff); viewport()->setBackgroundColor(QColor(220,245,255)); #if 0 viewport()->setEraseColor(lightGray); #endif + mMarkCurrent = false; setDate(date_); // this initializes firstday, numdays, numDaysPrevMonth } void KDateTable::paintCell(QPainter *painter, int row, int col) { @@ -167,26 +168,35 @@ KDateTable::paintCell(QPainter *painter, int row, int col) painter->setPen(black); } pen=painter->pen(); if(firstday+date.day()-1==pos) { - if(hasFocus()) - { // draw the currently selected date + if(mMarkCurrent && firstday+QDate::currentDate().day()-1==pos) + painter->setPen(green); + else painter->setPen(red); + if(hasFocus()) + { painter->setBrush(darkRed); pen=white; } else { - painter->setPen(darkGray); painter->setBrush(darkGray); pen=white; } } else { + if(mMarkCurrent && firstday+QDate::currentDate().day()-1==pos) + { + painter->setPen(green); + painter->setBrush(darkGreen); + pen=white; + } else { painter->setBrush(QColor(220,245,255)); painter->setPen(QColor(220,245,255)); } + } painter->drawRect(0, 0, w, h); painter->setPen(pen); painter->drawText(0, 0, w, h, AlignCenter, text, -1, &rect); } if(rect.width()>maxCell.width()) maxCell.setWidth(rect.width()); if(rect.height()>maxCell.height()) maxCell.setHeight(rect.height()); @@ -354,23 +364,25 @@ KDateTable::contentsMousePressEvent(QMouseEvent *e) bool KDateTable::setDate(const QDate& date_) { bool changed=false; QDate temp; + mMarkCurrent = false; // ----- if(!date_.isValid()) { kdDebug() << "KDateTable::setDate: refusing to set invalid date." << endl; return false; } if(date!=date_) { date=date_; changed=true; } + mMarkCurrent = ( date.month() == QDate::currentDate().month() && date.year() == QDate::currentDate().year() ); temp.setYMD(date.year(), date.month(), 1); firstday=temp.dayOfWeek(); if(firstday==1) firstday=8; numdays=date.daysInMonth(); if(date.month()==1) { // set to december of previous year diff --git a/microkde/kdatetbl.h b/microkde/kdatetbl.h index df7b7ef..b4d3e16 100644 --- a/microkde/kdatetbl.h +++ b/microkde/kdatetbl.h @@ -242,12 +242,13 @@ public: */ bool setDate(const QDate&); const QDate& getDate() const; protected: + bool mMarkCurrent; /** * Paint a cell. */ virtual void paintCell(QPainter*, int, int); /** * Handle the resize events. |