From: kirilma Date: Wed, 5 May 2010 13:56:57 +0000 (+0000) Subject: store room map in database X-Git-Tag: 0.5.0~81 X-Git-Url: https://git.toastfreeware.priv.at/toast/confclerk.git/commitdiff_plain/58eb7cc4677845238dc7c36dca26b8af4b3d1d94 store room map in database show it if it's available, otherwise show a warning set proper values in default database new rooms imported as without maps --- diff --git a/src/fosdem.sql b/src/fosdem.sql index 09913fe..c27ff91 100644 --- a/src/fosdem.sql +++ b/src/fosdem.sql @@ -50,26 +50,26 @@ INSERT INTO "TRACK" VALUES(32,'BSD'); CREATE TABLE ROOM ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , name VARCHAR UNIQUE NOT NULL , picture VARCHAR NOT NULL); -INSERT INTO "ROOM" VALUES(1,'Janson','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(2,'Chavanne','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(3,'Ferrer','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(4,'Lameere','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(5,'H.1301','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(6,'UA2.114','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(7,'H.1302','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(8,'H.1308','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(9,'H.1309','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(10,'H.2213','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(11,'H.2214','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(12,'AW1.105','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(13,'AW1.120','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(14,'AW1.121','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(15,'AW1.124','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(16,'AW1.126','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(17,'Guillissen','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(18,'AY','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(19,'AW1.117','NOT DEFINED YET'); -INSERT INTO "ROOM" VALUES(20,'AW1.125','NOT DEFINED YET'); +INSERT INTO "ROOM" VALUES(1,'Janson', ':/maps/rooms/janson.png'); +INSERT INTO "ROOM" VALUES(2,'Chavanne', ':/maps/rooms/chavanne.png'); +INSERT INTO "ROOM" VALUES(3,'Ferrer', ':/maps/rooms/ferrer.png'); +INSERT INTO "ROOM" VALUES(4,'Lameere', ':/maps/rooms/lameere.png'); +INSERT INTO "ROOM" VALUES(5,'H.1301', ':/maps/rooms/h1301.png'); +INSERT INTO "ROOM" VALUES(6,'UA2.114', ':/maps/rooms/ua2114.png'); +INSERT INTO "ROOM" VALUES(7,'H.1302', ':/maps/rooms/h1302.png'); +INSERT INTO "ROOM" VALUES(8,'H.1308', ':/maps/rooms/h1308.png'); +INSERT INTO "ROOM" VALUES(9,'H.1309', ':/maps/rooms/h1309.png'); +INSERT INTO "ROOM" VALUES(10,'H.2213', ':/maps/rooms/h2213.png'); +INSERT INTO "ROOM" VALUES(11,'H.2214', ':/maps/rooms/h2214.png'); +INSERT INTO "ROOM" VALUES(12,'AW1.105', ':/maps/rooms/aw1105.png'); +INSERT INTO "ROOM" VALUES(13,'AW1.120', ':/maps/rooms/aw1120.png'); +INSERT INTO "ROOM" VALUES(14,'AW1.121', ':/maps/rooms/aw1121.png'); +INSERT INTO "ROOM" VALUES(15,'AW1.124', ':/maps/rooms/aw1124.png'); +INSERT INTO "ROOM" VALUES(16,'AW1.126', ':/maps/rooms/aw1126.png'); +INSERT INTO "ROOM" VALUES(17,'Guillissen', ':/maps/rooms/guillissen.png'); +INSERT INTO "ROOM" VALUES(18,'AY', ':/maps/rooms/ay.png'); +INSERT INTO "ROOM" VALUES(19,'AW1.117', ':/maps/rooms/aw1117.png'); +INSERT INTO "ROOM" VALUES(20,'AW1.125', ':/maps/rooms/aw1125.png'); CREATE TABLE PERSON ( id INTEGER PRIMARY KEY NOT NULL, name VARCHAR UNIQUE NOT NULL); INSERT INTO "PERSON" VALUES(19,'Tias Guns'); INSERT INTO "PERSON" VALUES(22,'Peter Saint-Andre'); diff --git a/src/gui/tabcontainer.cpp b/src/gui/tabcontainer.cpp index 01900d8..94ce625 100644 --- a/src/gui/tabcontainer.cpp +++ b/src/gui/tabcontainer.cpp @@ -27,6 +27,8 @@ #include "eventdialog.h" #include "mapwindow.h" +#include "room.h" +#include "errormessage.h" #include "conflictsdialog.h" @@ -83,20 +85,22 @@ void TabContainer::displayMap(const QModelIndex &aIndex) { Event *event = static_cast(aIndex.internalPointer()); - // room names are stored in lower-case format - // room names are stored without dots in the name, eg. "aw.1124.png" -> "aw1124.png" - QString mapPath = QString(":/maps/rooms/%1.png").arg(event->room().toLower().remove(".")); - if(!QFile::exists(mapPath)) - mapPath = QString(":/maps/rooms/not-available.png"); - - QString roomName; - if(mapPath.contains("not-available", Qt::CaseInsensitive)) - roomName = QString("Map is not available: %1").arg(event->room()); - else - roomName = event->room(); + Room room = Room::retrieve(event->roomId()); + QVariant mapPathV = room.map(); + QString mapPath; + if (!mapPathV.isValid()) { + error_message("No map for this room"); + return; + } else { + mapPath = mapPathV.toString(); + if (!QFile::exists(mapPath)) { + error_message("Map for this room not found: " + mapPath); + return; + } + } QPixmap map(mapPath); - MapWindow window(map,roomName,this); + MapWindow window(map, room.name(),this); window.exec(); } diff --git a/src/mvc/room.h b/src/mvc/room.h index dd78e58..11544a2 100644 --- a/src/mvc/room.h +++ b/src/mvc/room.h @@ -34,6 +34,8 @@ public: void setId(int id) { setValue("id", id); } 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"); } int insert(); public: static QList getAll(); diff --git a/src/sql/schedulexmlparser.cpp b/src/sql/schedulexmlparser.cpp index 68bf711..78a6633 100644 --- a/src/sql/schedulexmlparser.cpp +++ b/src/sql/schedulexmlparser.cpp @@ -102,7 +102,7 @@ void ScheduleXmlParser::parseData(const QByteArray &aData, const QString& url) room["name"] = roomElement.attribute("name"); room["event_id"] = eventElement.attribute("id"); room["conference_id"] = QString::number(confId,10); - room["picture"] = "NOT DEFINED YET"; // TODO: implement some mapping to assign correct picture to specified room_name + room["picture"] = ""; // TODO: implement some mapping to assign correct picture to specified room_name SqlEngine::addRoomToDB(room); // process event's nodes