From a08d4ec790328248e2f9408ff074f530b502419a Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Thu, 19 Jun 2014 13:42:49 -0300 Subject: Added a Partly Functional Date Picker widget. This widget shows a date in a better way that it was done in the old widget, much more elegantly. Signed-off-by: Tomaz Canabrava Signed-off-by: Dirk Hohndel --- qt-ui/simplewidgets.cpp | 46 ++++++++++++++++++++++++++++++++++++++++++++++ qt-ui/simplewidgets.h | 15 +++++++++++++++ subsurface.qrc | 1 + 3 files changed, 62 insertions(+) diff --git a/qt-ui/simplewidgets.cpp b/qt-ui/simplewidgets.cpp index bb6d2ff2d..04b6d1f07 100644 --- a/qt-ui/simplewidgets.cpp +++ b/qt-ui/simplewidgets.cpp @@ -298,3 +298,49 @@ bool isGnome3Session() return !p_stdout.isEmpty(); #endif } + +DateWidget::DateWidget(QWidget *parent) : QWidget(parent) +{ + setDate(QDate::currentDate()); +} + +void DateWidget::setDate(const QDate& date) +{ + mDate = date; + update(); +} + +QDate DateWidget::date() const +{ + return mDate; +} + +void DateWidget::paintEvent(QPaintEvent *event) +{ + static QPixmap pix = QPixmap(":/calendar").scaled(64,64); + static int pixRedTag = 18; /* calculated using a ruler. */ + + QPainter painter(this); + painter.drawPixmap(QPoint(0,0), pix); + + QString month = mDate.toString("MMM"); + QString year = mDate.toString("yyyy"); + QString day = mDate.toString("dd"); + + + QFont font = QFont("monospace", 5); + QFontMetrics metrics = QFontMetrics(font); + painter.setFont(font); + painter.setPen(QPen(QBrush(Qt::white), 0)); + painter.setBrush(QBrush(Qt::white)); + painter.drawText(QPoint(4, metrics.height() + 3), month); + painter.drawText(QPoint(64 - metrics.width(year) -6, 14), year); + + font.setPointSize(14); + metrics = QFontMetrics(font); + painter.setPen(QPen(QBrush(Qt::black),0)); + painter.setBrush(Qt::black); + painter.setFont(font); + painter.drawText(QPoint(32 - metrics.width(day)/2, 45), day); + +} diff --git a/qt-ui/simplewidgets.h b/qt-ui/simplewidgets.h index c7d18bb35..eea3fca30 100644 --- a/qt-ui/simplewidgets.h +++ b/qt-ui/simplewidgets.h @@ -88,6 +88,21 @@ private: time_t dcImageEpoch; }; +class DateWidget : public QWidget { + Q_OBJECT +public: + DateWidget(QWidget *parent = 0); + void setDate(const QDate& date); + QDate date() const; + +protected: + void paintEvent(QPaintEvent *event); + +private: + QDate mDate; + +}; + bool isGnome3Session(); #endif // SIMPLEWIDGETS_H diff --git a/subsurface.qrc b/subsurface.qrc index d074ea324..47a8ce414 100644 --- a/subsurface.qrc +++ b/subsurface.qrc @@ -53,5 +53,6 @@ icons/pc.png icons/ead.png icons/icon-HR.png + icons/calendarbg.png -- cgit v1.2.3-70-g09d2