summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-09-17 12:38:04 (UTC)
committer zautrix <zautrix>2004-09-17 12:38:04 (UTC)
commit053b3550aa2b987d7aeaf74cc458754d7e80a67b (patch) (side-by-side diff)
tree4190b96b6b581c18943ac7e1cdd5cbca96741eae
parentdd33ac512eb4b4b647fb3423f7cdb39ec322221b (diff)
downloadkdepimpi-053b3550aa2b987d7aeaf74cc458754d7e80a67b.zip
kdepimpi-053b3550aa2b987d7aeaf74cc458754d7e80a67b.tar.gz
kdepimpi-053b3550aa2b987d7aeaf74cc458754d7e80a67b.tar.bz2
Better datepicker
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/kdatetbl.cpp28
-rw-r--r--microkde/kdatetbl.h1
2 files changed, 21 insertions, 8 deletions
diff --git a/microkde/kdatetbl.cpp b/microkde/kdatetbl.cpp
index 0a2d1f5..146291b 100644
--- a/microkde/kdatetbl.cpp
+++ b/microkde/kdatetbl.cpp
@@ -94,8 +94,9 @@ KDateTable::KDateTable(QWidget *parent, QDate date_, const char* name, WFlags f)
viewport()->setBackgroundColor(QColor(220,245,255));
#if 0
viewport()->setEraseColor(lightGray);
#endif
+ mMarkCurrent = false;
setDate(date_); // this initializes firstday, numdays, numDaysPrevMonth
}
void
@@ -169,22 +170,31 @@ KDateTable::paintCell(QPainter *painter, int row, int col)
pen=painter->pen();
if(firstday+date.day()-1==pos)
{
+ if(mMarkCurrent && firstday+QDate::currentDate().day()-1==pos)
+ painter->setPen(green);
+ else
+ painter->setPen(red);
if(hasFocus())
- { // draw the currently selected date
- painter->setPen(red);
- painter->setBrush(darkRed);
- pen=white;
+ {
+ painter->setBrush(darkRed);
+ pen=white;
} else {
- painter->setPen(darkGray);
painter->setBrush(darkGray);
pen=white;
}
} else {
- painter->setBrush(QColor(220,245,255));
- painter->setPen(QColor(220,245,255));
- }
+ 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);
}
@@ -356,8 +366,9 @@ 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;
@@ -367,8 +378,9 @@ KDateTable::setDate(const QDate& 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();
diff --git a/microkde/kdatetbl.h b/microkde/kdatetbl.h
index df7b7ef..b4d3e16 100644
--- a/microkde/kdatetbl.h
+++ b/microkde/kdatetbl.h
@@ -244,8 +244,9 @@ public:
const QDate& getDate() const;
protected:
+ bool mMarkCurrent;
/**
* Paint a cell.
*/
virtual void paintCell(QPainter*, int, int);