{
Event *event = static_cast<Event*>(aIndex.internalPointer());
- Room room = Room::retrieve(event->roomId());
- QVariant mapPathV = room.map();
+ QVariant mapPathV = event->room()->map();
QString mapPath;
if (!mapPathV.isValid()) {
error_message("No map for this room");
}
QPixmap map(mapPath);
- MapWindow window(map, room.name(),this);
+ MapWindow window(map, event->room()->name(),this);
window.exec();
}
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);
<< QSqlField("description", QVariant::String));
Event::Event() :
- mRoomId( 0 )
+ room_(NULL)
{
}
return load(query);
}
-QString Event::room()
+Room* Event::room()
{
- if ( mRoomName.isEmpty() )
- {
- QSqlQuery query;
- // TODO: conference ID isn't used here
- query.prepare("SELECT name FROM room WHERE id = :roomId");
- query.bindValue(":roomId", roomId());
- query.exec();
- // TODO: handle qeury error
- //qDebug() << query.lastError();
- if(query.next())
- mRoomName = query.record().value("name").toString();
- else
- mRoomName = QString("not-available");
- }
- return mRoomName;
-}
-
-int Event::roomId()
-{
- if ( mRoomId == 0 )
+ if (room_ == NULL)
{
QSqlQuery query;
query.prepare("SELECT xid_room FROM event_room WHERE xid_event = :id AND xid_conference = :conf");
qDebug() << "No room found for event id: " << id();
throw OrmNoObjectException();
}
- mRoomId = query.record().value("xid_room").toInt();
+ int id = query.record().value("xid_room").toInt();
+ room_ = new Room(Room::retrieve(id));
}
- return mRoomId;
+ return room_;
+}
+
+QString Event::roomName()
+{
+ return room()->name();
+}
+
+int Event::roomId()
+{
+ return room()->id();
}
QStringList Event::persons()
#include <ormrecord.h>
+class Room;
+
/**
NoSuchEventException is thrown when required event does not exist.
*/
QString abstract() const { return value("abstract").toString(); }
QString description() const { return value("description").toString(); }
// records from other tables associated with 'id'
- QString room();
+ Room* room();
+ QString roomName();
int roomId();
QStringList persons();
QMap<QString,QString> links();
QMap<QString,QString> mLinksList;
int mRoomId;
QString mRoomName;
+ Room* room_;
};
#endif // EVENT_H