+ // favourite
+ 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(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
+ if (event->room()->hasMap()) {
+ painter->drawImage(mControls[MapControl]->drawPoint(option.rect),*mControls[MapControl]->image());
+ }
+ // Time conflict
+ if(event->hasTimeConflict())
+ painter->drawImage(mControls[WarningControl]->drawPoint(option.rect),*mControls[WarningControl]->image());
+
+ // draw texts
+ 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->roomName());
+ // title
+ titlePointF.setY(titlePointF.y()+fmBig.height()-fmBig.descent());
+ painter->setFont(fontBigB);
+ QString title = event->title();
+ if(fmBigB.boundingRect(title).width() > (option.rect.width()-2*SPACER)) // the title won't fit the screen
+ {
+ // chop words from the end
+ while( (fmBigB.boundingRect(title + "...").width() > (option.rect.width()-2*SPACER)) && !title.isEmpty())
+ {
+ title.chop(1);
+ // chop characters one-by-one from the end
+ while( (!title.at(title.length()-1).isSpace()) && !title.isEmpty())
+ {
+ title.chop(1);
+ }
+ }
+ title += "...";
+ }
+ painter->drawText(titlePointF,title);
+ // persons
+ titlePointF.setY(titlePointF.y()+fmSmall.height()-fmSmall.descent());
+ painter->setFont(fontSmall);
+ painter->drawText(titlePointF,"Presenter(s): " + event->persons().join(" and "));
+ // track
+ titlePointF.setY(titlePointF.y()+fmSmall.height()-fmSmall.descent());
+ painter->drawText(titlePointF,"Track: " + Track::retrieveTrackName(event->trackId()));