]> ToastFreeware Gitweb - toast/confclerk.git/blobdiff - src/gui/daynavigatorwidget.cpp
day navigator widget changes
[toast/confclerk.git] / src / gui / daynavigatorwidget.cpp
index 5c7b8d03d3d6e049826423c58f2cc9bc2acbff13..c554c1dc33e1ccbaf8f64a4b28db79a40019aa00 100644 (file)
@@ -1,5 +1,9 @@
 #include "daynavigatorwidget.h"
 
+#include <QPainter>
+#include <QFontMetrics>
+#include <QLabel>
+
 #include <QDebug>
 
 DayNavigatorWidget::DayNavigatorWidget(QWidget *aParent)
@@ -11,6 +15,8 @@ DayNavigatorWidget::DayNavigatorWidget(QWidget *aParent)
     setupUi(this);
     connect(prevDayButton, SIGNAL(clicked()), SLOT(prevDayButtonClicked()));
     connect(nextDayButton, SIGNAL(clicked()), SLOT(nextDayButtonClicked()));
+
+    mFontMetrics = new QFontMetrics(QLabel().font());
 }
 
 void DayNavigatorWidget::setDates(const QDate &aStartDate, const QDate &aEndDate)
@@ -22,7 +28,9 @@ void DayNavigatorWidget::setDates(const QDate &aStartDate, const QDate &aEndDate
     mEndDate = aEndDate;
     mCurDate = aStartDate;
 
-    currentDateLabel->setText(mCurDate.toString());
+    QRect rect = mFontMetrics->boundingRect(mCurDate.toString("MMM dd yyyy"));
+    qDebug() << mCurDate.toString();
+
     if(mStartDate==mEndDate) // only one day conference
     {
         prevDayButton->setDisabled(true);
@@ -44,7 +52,6 @@ void DayNavigatorWidget::prevDayButtonClicked()
     if(mCurDate>mStartDate)
     {
         mCurDate = mCurDate.addDays(-1);
-        currentDateLabel->setText(mCurDate.toString());
         // check start date
         if(mCurDate==mStartDate || mStartDate==mEndDate)
             prevDayButton->setDisabled(true);
@@ -57,6 +64,7 @@ void DayNavigatorWidget::prevDayButtonClicked()
             nextDayButton->setDisabled(false);
 
         emit(dateChanged(mCurDate));
+        selectedDate->update();
     }
 }
 
@@ -66,7 +74,6 @@ void DayNavigatorWidget::nextDayButtonClicked()
     if(mCurDate<mEndDate)
     {
         mCurDate = mCurDate.addDays(1);
-        currentDateLabel->setText(mCurDate.toString());
         // check start date
         if(mCurDate==mStartDate || mStartDate==mEndDate)
             prevDayButton->setDisabled(true);
@@ -79,6 +86,7 @@ void DayNavigatorWidget::nextDayButtonClicked()
             nextDayButton->setDisabled(false);
 
         emit(dateChanged(mCurDate));
+        selectedDate->update();
     }
 }
 
@@ -87,3 +95,22 @@ QDate DayNavigatorWidget::getCurrentDate()
     return mCurDate;
 }
 
+void DayNavigatorWidget::paintEvent(QPaintEvent *aEvent)
+{
+    QString selectedDateStr = mCurDate.toString("MMM dd yyyy");
+
+    QPainter painter(this);
+    painter.save();
+    QRect r = selectedDate->geometry();
+    QRect s = mFontMetrics->boundingRect(selectedDateStr);
+    QPoint p = QPoint(
+            r.x() + r.width()/2 - s.height()/2 - mFontMetrics->descent(),
+            - 130
+            );
+
+    painter.translate(r.width()/2, r.height()/2);
+    painter.rotate(270);
+    painter.drawText(p.y(), p.x(), selectedDateStr); // y,x,string
+    painter.restore();
+}
+