#include <QDebug>
#include <QPainter>
+#include "room.h"
+
const int RADIUS = 10;
const int SPACER = 10;
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);
//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());
// 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());
QString name() const { return value("name").toString(); }
void setName(const QString & type) { setValue("name", type); }
// TODO: make naming consistent - either "picture" or "map"
- QVariant map() const { return value("picture"); }
+ QVariant map() const { return value("picture"); }
+ bool hasMap() const
+ {
+ // empty strings also treasted as NULL,
+ // as storing NULLs requires rewrite of storing code and DB scheme
+ return !isNull("picture") and !value("picture").toString().isEmpty();
+ }
int insert();
public:
static QList<Room> getAll();