]> ToastFreeware Gitweb - toast/confclerk.git/blobdiff - src/mvc/delegate.cpp
do not draw showmap button for event is there is no map for its room
[toast/confclerk.git] / src / mvc / delegate.cpp
index 15bc99e7517135458c4cdb080f3457123271c9c0..dac1bdfa2da2140f0b8f39de691e6887937e4939 100644 (file)
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2010 Ixonos Plc.
+ *
+ * This file is part of fosdem-schedule.
+ *
+ * fosdem-schedule 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
+ * 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/>.
+ */
 #include "delegate.h"
 #include "eventmodel.h"
 #include <track.h>
@@ -5,6 +23,8 @@
 #include <QDebug>
 #include <QPainter>
 
+#include "room.h"
+
 const int RADIUS = 10;
 const int SPACER = 10;
 
@@ -42,6 +62,7 @@ void Delegate::paint(QPainter *painter, const QStyleOptionViewItem &option, cons
     if(hasParent(index))
     {
         int aux = option.rect.height() - mControls[FavouriteControlOn]->drawPoint().y() - mControls[FavouriteControlOn]->image()->height();
+        Event *event = static_cast<Event*>(index.internalPointer());
         // font SMALL
         QFont fontSmall = option.font;
         fontSmall.setBold(false);
@@ -65,7 +86,7 @@ void Delegate::paint(QPainter *painter, const QStyleOptionViewItem &option, cons
         //int spacer = (fmSmall.boundingRect("999").width() < SPACER) ? SPACER : fmSmall.boundingRect("999").width();
 
         //Time conflicts are colored differently
-        if(static_cast<Event*>(index.internalPointer())->hasTimeConflict())
+        if(event->hasTimeConflict())
             bkgrColor = conflictColor;
 
         QLinearGradient itemGradient(option.rect.topLeft(), option.rect.bottomLeft());
@@ -111,31 +132,32 @@ void Delegate::paint(QPainter *painter, const QStyleOptionViewItem &option, cons
 
         // draw Controls
         // favourite
-        if(static_cast<Event*>(index.internalPointer())->isFavourite())
+        if(event->isFavourite())
             painter->drawImage(mControls[FavouriteControlOn]->drawPoint(option.rect),*mControls[FavouriteControlOn]->image());
         else
             painter->drawImage(mControls[FavouriteControlOff]->drawPoint(option.rect),*mControls[FavouriteControlOff]->image());
 #ifdef MAEMO
         // alarm
-        if(static_cast<Event*>(index.internalPointer())->hasAlarm())
+        if(event->hasAlarm())
             painter->drawImage(mControls[AlarmControlOn]->drawPoint(option.rect),*mControls[AlarmControlOn]->image());
         else
             painter->drawImage(mControls[AlarmControlOff]->drawPoint(option.rect),*mControls[AlarmControlOff]->image());
 #endif
         // map
-        painter->drawImage(mControls[MapControl]->drawPoint(option.rect),*mControls[MapControl]->image());
+        if (event->room()->hasMap()) {
+            painter->drawImage(mControls[MapControl]->drawPoint(option.rect),*mControls[MapControl]->image());
+        }
         // Time conflict
-        if(static_cast<Event*>(index.internalPointer())->hasTimeConflict())
+        if(event->hasTimeConflict())
             painter->drawImage(mControls[WarningControl]->drawPoint(option.rect),*mControls[WarningControl]->image());
 
         // draw texts
-        Event *event = static_cast<Event*>(index.internalPointer());
         QPointF titlePointF(mControls[FavouriteControlOn]->drawPoint(option.rect));
         titlePointF.setX(option.rect.x()+SPACER);
         titlePointF.setY(titlePointF.y()+mControls[FavouriteControlOn]->image()->height());
         QTime start = event->start().time();
         painter->setFont(fontBig);
-        painter->drawText(titlePointF,start.toString("hh:mm") + "-" + start.addSecs(event->duration()).toString("hh:mm") + ", " + event->room());
+        painter->drawText(titlePointF,start.toString("hh:mm") + "-" + start.addSecs(event->duration()).toString("hh:mm") + ", " + event->roomName());
         // title
         titlePointF.setY(titlePointF.y()+fmBig.height()-fmBig.descent());
         painter->setFont(fontBigB);