- Timestamp:
- 01/25/10 13:52:01 (13 years ago)
- Branches:
- master, qt5
- Children:
- c7b58d4
- Parents:
- 7b70507
- Location:
- src/mvc
- Files:
-
- 2 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
src/mvc/event.cpp
r7b70507 r7620de0 1 1 #include "event.h" 2 #include "room.h" 2 3 3 4 QString const Event::sTableName = QString("event"); … … 40 41 } 41 42 43 QList<Event> Event::getByDateAndRoom(const QDate& date, int conferenceId) 44 { 45 QSqlQuery query; 46 QString aliasEvent("E"); 47 QString aliasEventRoom("R"); 48 query.prepare(QString("SELECT %1 FROM %2 %3, %4 %5 WHERE %3.xid_conference = :conf AND %3.start >= :start AND %3.start < :end AND %3.id = R.xid_event ORDER BY %5.xid_room, %3.start").arg( 49 columnsForSelect(aliasEvent), Event::sTableName, aliasEvent, "EVENT_ROOM", aliasEventRoom)); 50 query.bindValue(":conf", conferenceId); 51 query.bindValue(":start", convertToDb(date, QVariant::DateTime)); 52 query.bindValue(":end", convertToDb(date.addDays(1), QVariant::DateTime)); 53 54 return load(query); 55 } 56 42 57 QList<Event> Event::nowEvents(int conferenceId, QString orderBy) 43 58 { … … 65 80 } 66 81 67 QList<Event> Event::getByTrack(int trackId)68 {69 QSqlQuery query;70 query.prepare(selectQuery() + QString("WHERE xid_track = :trackId ORDER BY start"));71 query.bindValue(":trackId", trackId);72 73 return load(query);74 }75 76 82 QString Event::room() const 77 83 { … … 87 93 else 88 94 return QString("not-available"); 95 } 96 97 int Event::roomId() const 98 { 99 QSqlQuery query; 100 query.prepare("SELECT xid_room FROM event_room WHERE xid_event = :id"); 101 query.bindValue(":id", id()); 102 if (!query.isActive()) 103 if (!query.exec()) 104 throw OrmSqlException(query.lastError().text()); 105 if (!query.next()) 106 throw OrmNoObjectException(); 107 return query.record().value("xid_room").toInt(); 89 108 } 90 109 -
src/mvc/event.h
r7b70507 r7620de0 27 27 static QList<Event> nowEvents(int conferenceId, QString orderBy); // get events scheduled NOW 28 28 static QList<Event> getByTrack(int id); 29 static QList<Event> getByDateAndRoom(const QDate& date, int conferenceId); 29 30 public: 30 31 int id() const { return value("id").toInt(); } … … 45 46 // records from other tables associated with 'id' 46 47 QString room() const; 48 int roomId() const; 47 49 QStringList persons() const; 48 50 -
src/mvc/eventmodel.cpp
r7b70507 r7620de0 3 3 #include <conference.h> 4 4 #include <track.h> 5 #include <room.h> 5 6 6 7 const QString EventModel::COMMA_SEPARATOR = ", "; … … 74 75 } 75 76 76 void EventModel::createTrackGroupsNew() { 77 void EventModel::createRoomGroups() 78 { 77 79 mGroups.clear(); 78 80 mParents.clear(); … … 81 83 return; 82 84 } 83 QList<Track> trackList = Track::getAll(); 84 QList<Track>::iterator track = trackList.begin(); 85 while (track != trackList.end()) 86 { 87 QList<Event> eventList = Event::getByTrack(track->id()); 88 QList<Event>::iterator event = eventList.begin(); 89 while (event != eventList.end()) 90 { 91 //TODO korinpa: pokracuj 92 event++; 93 } 94 track++; 95 } 85 int roomId = mEvents.first().roomId(); 86 87 mGroups << EventModel::Group(Room::retrieveRoomName(roomId), 0); 88 int nextRoomId = roomId; 89 90 QList<Event>::iterator event = mEvents.begin(); 91 int i = 0; 92 while (event != mEvents.end()) 93 { 94 roomId = event->roomId(); 95 if (nextRoomId != roomId) 96 { 97 mGroups.last().mChildCount = i - mGroups.last().mFirstEventIndex; 98 mGroups << EventModel::Group(Room::retrieveRoomName(roomId), i); 99 nextRoomId = roomId; 100 } 101 mParents[event->id()] = mGroups.count() - 1; 102 event++; 103 i++; 104 } 105 mGroups.last().mChildCount = mEvents.count() - mGroups.last().mFirstEventIndex; 96 106 } 97 107 … … 235 245 { 236 246 clearModel(); 237 if (Conference::getAll().count())247 if (Conference::getAll().count()) 238 248 { 239 249 qDebug() << "Loading Conference Data (by Track): [" << Conference::getById(aConferenceId).title() << "] " << aDate; … … 241 251 } 242 252 createTrackGroups(); 253 } 254 255 void EventModel::loadEventsByRoom(const QDate &aDate, int aConferenceId) 256 { 257 clearModel(); 258 if (Conference::getAll().count()) 259 { 260 qDebug() << "Loading Conference Data (by Room): [" << Conference::getById(aConferenceId).title() << "] " << aDate; 261 mEvents = Event::getByDateAndRoom(QDate(aDate.year(), aDate.month(), aDate.day()), aConferenceId); 262 } 263 createRoomGroups(); 243 264 } 244 265 -
src/mvc/eventmodel.h
r7b70507 r7620de0 19 19 void loadEvents(const QDate &aDate, int aConferenceId); // loads Events from the DB 20 20 void loadFavEvents(const QDate &aDate, int aConferenceId); // loads Favourite events from the DB 21 void loadEventsByTrack(const QDate &aDate, int aConferenceId); // loads Events grouped by Trackfrom the DB21 void loadEventsByTrack(const QDate &aDate, int aConferenceId); // loads Events sorted by Track id and Event start from the DB 22 22 int loadSearchResultEvents(const QDate &aDate, int aConferenceId); 23 23 void loadNowEvents(int aConferenceId); // loads Now events from the DB 24 void loadEventsByRoom(const QDate &aDate, int aConferenceId); 24 25 25 26 private: … … 44 45 void createTrackGroupsNew(); 45 46 void clearModel(); 47 void createRoomGroups(); 46 48 47 49 public slots: -
src/mvc/mvc.pro
r7b70507 r7620de0 26 26 delegate.h \ 27 27 eventmodel.h \ 28 treeview.h 28 treeview.h \ 29 room.h 29 30 SOURCES += event.cpp \ 30 31 conference.cpp \ … … 32 33 delegate.cpp \ 33 34 eventmodel.cpp \ 34 treeview.cpp 35 treeview.cpp \ 36 room.cpp -
src/mvc/track.cpp
r7b70507 r7620de0 7 7 8 8 #include "track.h" 9 #include <QSqlTableModel>10 9 11 10 QString const Track::sTableName = QString("track"); … … 16 15 << QSqlField("id", QVariant::Int) 17 16 << QSqlField(NAME, QVariant::String)); 18 19 //QMap<int, Track> Track::mIdToTrack;20 17 21 18 class TrackInsertException : OrmSqlException -
src/mvc/track.h
r7b70507 r7620de0 15 15 public: 16 16 static const QSqlRecord sColumns; 17 static const QSqlRecord sInsertColumns;18 17 static QString const sTableName; 19 18 static const int sTableColCount; 20 19 static const QString NAME; 21 20 public: 22 static QMap<int, Track> mIdToTrack;23 public:24 int insert();25 21 int id() const { return value("id").toInt(); } 26 22 void setId(int id) { setValue("id", id); } 27 23 QString name() const { return value("name").toString(); } 28 24 void setName(const QString & type) { setValue("name", type); } 25 int insert(); 29 26 public: 30 27 static QList<Track> getAll();
Note: See TracChangeset
for help on using the changeset viewer.