]> ToastFreeware Gitweb - toast/confclerk.git/blobdiff - src/gui/daynavigatorwidget.h
Add Stefan as a copyright holder to source files, too.
[toast/confclerk.git] / src / gui / daynavigatorwidget.h
index f39fcce94e375e5c8d9f51431807ab429aa2b7f5..889e0dbf57903c847b8d7f26c8929c08e576a922 100644 (file)
@@ -1,20 +1,21 @@
 /*
  * Copyright (C) 2010 Ixonos Plc.
+ * Copyright (C) 2011-2012 Philipp Spitzer, gregor herrmann, Stefan Stahl
  *
- * This file is part of fosdem-schedule.
+ * This file is part of ConfClerk.
  *
- * fosdem-schedule is free software: you can redistribute it and/or modify it
+ * ConfClerk is free software: you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
  * Software Foundation, either version 2 of the License, or (at your option)
  * any later version.
  *
- * fosdem-schedule is distributed in the hope that it will be useful, but
+ * ConfClerk is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  * more details.
  *
  * You should have received a copy of the GNU General Public License along with
- * fosdem-schedule.  If not, see <http://www.gnu.org/licenses/>.
+ * ConfClerk.  If not, see <http://www.gnu.org/licenses/>.
  */
 #ifndef DAYNAVIGATORWIDGET_H
 #define DAYNAVIGATORWIDGET_H
 #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
-{
+/** The DayNavigator widget manages three dates, the startDate, curDate and endDate.
+Either startDate, curDate and endDate all have to be valid and startDate <= curDate <= endDate,
+OR all three dates are invalid (representing "no date range", e.g. no conference). */
+class DayNavigatorWidget : public QWidget, private Ui::DayNavigatorWidget {
     Q_OBJECT
     public:
         DayNavigatorWidget(QWidget *aParent = NULL);
         ~DayNavigatorWidget() {}
         void setDates(const QDate &aStartDate, const QDate &aEndDate);
+        void setCurDate(const QDate& curDate);
+        QDate startDate() const {return mStartDate;}
+        QDate curDate() const {return mCurDate;}
+        QDate endDate() const {return mEndDate;}
+        void unsetDates();
     protected:
         void paintEvent(QPaintEvent *);
+        void configureNavigation();
     private slots:
         void prevDayButtonClicked();
         void nextDayButtonClicked();
@@ -87,7 +50,6 @@ class DayNavigatorWidget : public QWidget, private Ui::DayNavigatorWidget
         QDate mStartDate;
         QDate mEndDate;
         QDate mCurDate;
-        QFontMetrics *mFontMetrics;
 };
 
 #endif /* DAYNAVIGATORWIDGET_H */