#include "daynavigatorwidget.h"
+#include <QPainter>
+#include <QFontMetrics>
+#include <QLabel>
+
#include <QDebug>
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)
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);
if(mCurDate>mStartDate)
{
mCurDate = mCurDate.addDays(-1);
- currentDateLabel->setText(mCurDate.toString());
// check start date
if(mCurDate==mStartDate || mStartDate==mEndDate)
prevDayButton->setDisabled(true);
nextDayButton->setDisabled(false);
emit(dateChanged(mCurDate));
+ selectedDate->update();
}
}
if(mCurDate<mEndDate)
{
mCurDate = mCurDate.addDays(1);
- currentDateLabel->setText(mCurDate.toString());
// check start date
if(mCurDate==mStartDate || mStartDate==mEndDate)
prevDayButton->setDisabled(true);
nextDayButton->setDisabled(false);
emit(dateChanged(mCurDate));
+ selectedDate->update();
}
}
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();
+}
+
#include <QObject>
#include <QDate>
+/*#include <QPainter>*/
+/*#include <QLabel>*/
+
+/*class QFontMetrics;*/
+
+/*class VerticalLabel : public QWidget*/
+/*{*/
+
+/*public:*/
+/*VerticalLabel(QWidget *aParent = NULL)*/
+/*: QWidget(aParent)*/
+/*, mText("")*/
+/*{*/
+/*mFont = QLabel().font();*/
+/*} */
+
+/*void paintEvent(QPaintEvent *)*/
+/*{ */
+/*QPainter p(this);*/
+/*drawRotatedText(&p, 270, width()/2, height()/2, mText);*/
+/*} */
+
+/*void drawRotatedText(QPainter *aPainter, qreal aDegrees, int x, int y, const QString &aText)*/
+/*{ */
+
+/*aPainter->save();*/
+/*aPainter->setFont(mFont);*/
+/*aPainter->translate(x, y); */
+/*aPainter->rotate(aDegrees);*/
+/*QFontMetrics fm(mFont);*/
+/*QRect r = fm.boundingRect(aText);*/
+/*aPainter->drawText(-r.width()/2, fm.descent()/2, aText);*/
+/*aPainter->restore();*/
+/*} */
+
+/*void setText(const QString &aText)*/
+/*{*/
+/*mText = aText;*/
+/*update();*/
+/*}*/
+
+/*private:*/
+/*QString mText;*/
+/*QFont mFont;*/
+/*};*/
+
class DayNavigatorWidget : public QWidget, private Ui::DayNavigatorWidget
{
Q_OBJECT
~DayNavigatorWidget() {}
void setDates(const QDate &aStartDate, const QDate &aEndDate);
QDate getCurrentDate();
+ protected:
+ void paintEvent(QPaintEvent *);
private slots:
void prevDayButtonClicked();
void nextDayButtonClicked();
QDate mStartDate;
QDate mEndDate;
QDate mCurDate;
+ QFontMetrics *mFontMetrics;
};
#endif /* DAYNAVIGATORWIDGET_H */
<rect>
<x>0</x>
<y>0</y>
- <width>360</width>
- <height>52</height>
+ <width>52</width>
+ <height>198</height>
</rect>
</property>
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Minimum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="windowTitle" >
<string>Form</string>
</property>
+ <property name="layoutDirection" >
+ <enum>Qt::LeftToRight</enum>
+ </property>
<layout class="QGridLayout" name="gridLayout" >
- <item row="0" column="0" >
- <layout class="QHBoxLayout" name="horizontalLayout" >
+ <item row="1" column="0" >
+ <layout class="QVBoxLayout" name="verticalLayout" >
<item>
- <widget class="QToolButton" name="prevDayButton" >
+ <widget class="QToolButton" name="nextDayButton" >
<property name="text" >
<string>...</string>
</property>
<bool>true</bool>
</property>
<property name="arrowType" >
- <enum>Qt::LeftArrow</enum>
+ <enum>Qt::UpArrow</enum>
</property>
</widget>
</item>
<item>
- <spacer name="horizontalSpacer" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QLabel" name="currentDateLabel" >
- <property name="text" >
- <string>Currently selected date</string>
+ <widget class="QWidget" native="1" name="selectedDate" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Minimum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
</widget>
</item>
<item>
- <spacer name="horizontalSpacer_2" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QToolButton" name="nextDayButton" >
+ <widget class="QToolButton" name="prevDayButton" >
<property name="text" >
<string>...</string>
</property>
<bool>true</bool>
</property>
<property name="arrowType" >
- <enum>Qt::RightArrow</enum>
+ <enum>Qt::DownArrow</enum>
</property>
</widget>
</item>
<item row="0" column="0" >
<layout class="QVBoxLayout" name="verticalLayout" >
<item>
- <widget class="DayNavigatorWidget" native="1" name="dayNavigator" />
- </item>
- <item>
- <widget class="TreeView" name="dayTreeView" >
- <property name="maximumSize" >
- <size>
- <width>16777215</width>
- <height>16777215</height>
- </size>
- </property>
- </widget>
+ <layout class="QHBoxLayout" name="horizontalLayout_2" >
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_5" >
+ <item>
+ <widget class="QToolButton" name="toolButton" >
+ <property name="autoFillBackground" >
+ <bool>true</bool>
+ </property>
+ <property name="text" >
+ <string>H</string>
+ </property>
+ <property name="autoRaise" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="DayNavigatorWidget" native="1" name="dayNavigator" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Minimum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="TreeView" name="dayTreeView" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
</layout>
</item>
<string>Favourites</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_3" >
- <item row="0" column="0" >
- <layout class="QVBoxLayout" name="verticalLayout_2" >
+ <item row="1" column="0" >
+ <layout class="QHBoxLayout" name="horizontalLayout_4" >
<item>
<widget class="DayNavigatorWidget" native="1" name="favouriteDayNavigator" />
</item>
</attribute>
<layout class="QGridLayout" name="gridLayout_4" >
<item row="0" column="0" >
- <layout class="QVBoxLayout" name="activitiesVerticalLayout" >
+ <layout class="QHBoxLayout" name="horizontalLayout_3" >
<item>
<widget class="DayNavigatorWidget" native="1" name="trackDayNavigator" />
</item>
<x>0</x>
<y>0</y>
<width>654</width>
- <height>22</height>
+ <height>26</height>
</rect>
</property>
<widget class="QMenu" name="menuFile" >