Changeset e6ab8a2
- Timestamp:
- 07/04/11 23:42:02 (12 years ago)
- Branches:
- master, qt5
- Children:
- 526128c
- Parents:
- 8dd3dd2
- Location:
- src
- Files:
-
- 4 deleted
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
src/create_tables.sql
r8dd3dd2 re6ab8a2 11 11 , timeslot_duration INTEGER 12 12 , active INTEGER DEFAULT 0 13 , url VARCHAR 14 , map VARCHAR); 13 , url VARCHAR); 15 14 16 15 CREATE TABLE TRACK ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL -
src/gui/conferenceeditor.cpp
r8dd3dd2 re6ab8a2 22 22 #include "conferencemodel.h" 23 23 #include "urlinputdialog.h" 24 #include "mapwindow.h"25 24 #include "errormessage.h" 26 25 … … 51 50 connect(changeUrl, SIGNAL(clicked()), SLOT(changeUrlClicked())); 52 51 connect(refreshBtn, SIGNAL(clicked()), SLOT(refreshClicked())); 53 connect(showMapButton, SIGNAL(clicked()), SLOT(conferenceMapClicked()));54 52 connect(buttonBox, SIGNAL(rejected()), SLOT(close())); 55 53 … … 97 95 + ", " + 98 96 conf.end().toString("dd-MM-yyyy")); 99 100 QString map = conf.map();101 if (map.isEmpty()) {102 showMapButton->hide();103 } else {104 showMapButton->show();105 }106 107 97 conferenceInfo->setCurrentIndex(0); 108 98 removeBtn->show(); … … 220 210 } 221 211 222 void ConferenceEditor::conferenceMapClicked()223 {224 Conference conf = Conference::getById(selected_id);225 QString mapPath = conf.map();226 if(mapPath.isEmpty() or !QFile::exists(mapPath)) {227 error_message("Map is not available");228 return;229 }230 231 QString roomName;232 233 QPixmap map(mapPath);234 MapWindow window(map,roomName,this);235 window.exec();236 } -
src/gui/conferenceeditor.h
r8dd3dd2 re6ab8a2 65 65 void changeUrlClicked(); 66 66 void refreshClicked(); 67 void conferenceMapClicked();68 67 69 68 private: -
src/gui/conferenceeditor.ui
r8dd3dd2 re6ab8a2 217 217 </item> 218 218 <item row="1" column="3"> 219 <widget class="QPushButton" name="showMapButton">220 <property name="text">221 <string>MAP</string>222 </property>223 <property name="icon">224 <iconset resource="../icons.qrc">225 <normaloff>:/icons/applications-internet.png</normaloff>:/icons/applications-internet.png</iconset>226 </property>227 <property name="flat">228 <bool>true</bool>229 </property>230 </widget>231 </item>232 <item row="1" column="4">233 219 <spacer name="horizontalSpacer_4"> 234 220 <property name="orientation"> -
src/gui/gui.pro
r8dd3dd2 re6ab8a2 44 44 conflictsdialog.ui \ 45 45 tabcontainer.ui \ 46 mapwindow.ui \47 46 settingsdialog.ui \ 48 47 conferenceeditor.ui \ … … 62 61 eventdialog.h \ 63 62 tabcontainer.h \ 64 mapwindow.h \65 63 settingsdialog.h \ 66 64 conferenceeditor.h \ … … 80 78 eventdialog.cpp \ 81 79 tabcontainer.cpp \ 82 mapwindow.cpp \83 80 settingsdialog.cpp \ 84 81 conferenceeditor.cpp \ -
src/gui/tabcontainer.cpp
r8dd3dd2 re6ab8a2 28 28 29 29 #include "eventdialog.h" 30 #include "mapwindow.h"31 30 #include "room.h" 32 31 #include "errormessage.h" … … 50 49 connect(treeView, SIGNAL(eventHasChanged(int,bool)), SIGNAL(eventHasChanged(int,bool))); 51 50 connect(treeView, SIGNAL(clicked(const QModelIndex &)), SLOT(itemClicked(const QModelIndex &))); 52 connect(treeView, SIGNAL(requestForMap(const QModelIndex &)), SLOT(displayMap(const QModelIndex &)));53 51 connect(treeView, SIGNAL(requestForConflicts(const QModelIndex &)), SLOT(displayConflicts(const QModelIndex &))); 54 52 … … 81 79 dialog.exec(); 82 80 disconnect(&dialog, SIGNAL(eventHasChanged(int,bool)), this, SIGNAL(eventHasChanged(int,bool))); 83 }84 85 void TabContainer::displayMap(const QModelIndex &aIndex)86 {87 Event *event = static_cast<Event*>(aIndex.internalPointer());88 89 QVariant mapPathV = event->room()->map();90 QString mapPath;91 if (!mapPathV.isValid()) {92 error_message("No map for this room");93 return;94 } else {95 mapPath = mapPathV.toString();96 if (!QFile::exists(mapPath)) {97 error_message("Map for this room not found: " + mapPath);98 return;99 }100 }101 102 QPixmap map(mapPath);103 MapWindow window(map, event->room()->name(),this);104 window.exec();105 81 } 106 82 -
src/gui/tabcontainer.h
r8dd3dd2 re6ab8a2 51 51 virtual void updateTreeView(const QDate &aDate); 52 52 void itemClicked(const QModelIndex &aIndex); 53 void displayMap(const QModelIndex &aIndex);54 53 void displayConflicts(const QModelIndex &aIndex); 55 54 }; -
src/icons.qrc
r8dd3dd2 re6ab8a2 1 1 <RCC> 2 <qresource prefix="/"> 3 <file>icons/add.png</file> 4 <file>icons/remove.png</file> 5 <file>icons/reload.png</file> 6 <file>icons/appointment-soon-off.png</file> 7 <file>icons/appointment-soon.png</file> 8 <file>icons/applications-internet.png</file> 9 <file>icons/emblem-new-off.png</file> 10 <file>icons/emblem-new.png</file> 11 <file>icons/dialog-warning.png</file> 12 <file>icons/search.png</file> 13 </qresource> 2 <qresource prefix="/"> 3 <file>icons/add.png</file> 4 <file>icons/remove.png</file> 5 <file>icons/reload.png</file> 6 <file>icons/appointment-soon-off.png</file> 7 <file>icons/appointment-soon.png</file> 8 <file>icons/emblem-new-off.png</file> 9 <file>icons/emblem-new.png</file> 10 <file>icons/dialog-warning.png</file> 11 <file>icons/search.png</file> 12 </qresource> 14 13 </RCC> -
src/mvc/conference.cpp
r8dd3dd2 re6ab8a2 34 34 << QSqlField("active", QVariant::Bool) 35 35 << QSqlField("url", QVariant::String) 36 << QSqlField("map", QVariant::String)37 36 ); 38 37 -
src/mvc/conference.h
r8dd3dd2 re6ab8a2 52 52 bool isActive() const { return value("active").toBool(); } 53 53 QString url() const { return stringFromNullable(value("url")); } 54 QString map() const { return stringFromNullable(value("map")); }55 54 56 55 #if 0 -
src/mvc/delegate.cpp
r8dd3dd2 re6ab8a2 150 150 mControls[AlarmControlOff]->paint(painter, option.rect); 151 151 #endif 152 if (event->room()->hasMap())153 mControls[MapControl]->paint(painter, option.rect);154 152 if(event->hasTimeConflict()) 155 153 mControls[WarningControl]->paint(painter, option.rect); … … 376 374 mControls.insert(AlarmControlOff, 377 375 new Control(AlarmControlOff, QString(":icons/appointment-soon-off.png"), mControls[FavouriteControlOff])); 378 379 // MAP ICON380 mControls.insert(MapControl,381 new Control(MapControl, QString(":icons/applications-internet.png"), mControls[AlarmControlOn]));382 #else383 // MAP ICON384 mControls.insert(MapControl,385 new Control(MapControl, QString(":icons/applications-internet.png"), mControls[FavouriteControlOn]));386 376 #endif 387 377 388 378 // WARNING ICON 389 379 mControls.insert(WarningControl, 390 new Control(WarningControl, QString(":icons/dialog-warning.png"), mControls[ MapControl]));380 new Control(WarningControl, QString(":icons/dialog-warning.png"), mControls[FavouriteControlOn])); 391 381 } 392 382 -
src/mvc/delegate.h
r8dd3dd2 re6ab8a2 38 38 AlarmControlOn, 39 39 AlarmControlOff, 40 MapControl,41 40 WarningControl 42 41 }; -
src/mvc/room.cpp
r8dd3dd2 re6ab8a2 22 22 23 23 QString const Room::sTableName = QString("room"); 24 int const Room::sTableColCount = 3;24 int const Room::sTableColCount = 2; 25 25 const QString Room::NAME = "name"; 26 26 27 27 QSqlRecord const Room::sColumns = Room::toRecord(QList<QSqlField>() 28 28 << QSqlField("id", QVariant::Int) 29 << QSqlField(NAME, QVariant::String) 30 << QSqlField("picture", QVariant::String)); 29 << QSqlField(NAME, QVariant::String)); 31 30 32 31 Room Room::retrieveByName(QString name) -
src/mvc/room.h
r8dd3dd2 re6ab8a2 36 36 QString name() const { return value("name").toString(); } 37 37 void setName(const QString & type) { setValue("name", type); } 38 // TODO: make naming consistent - either "picture" or "map"39 QVariant map() const { return value("picture"); }40 bool hasMap() const41 {42 // empty strings also treasted as NULL,43 // as storing NULLs requires rewrite of storing code and DB scheme44 return !isNull("picture") and !value("picture").toString().isEmpty();45 }46 38 int insert(); 47 39 public: -
src/mvc/treeview.cpp
r8dd3dd2 re6ab8a2 126 126 } 127 127 break; 128 case Delegate::MapControl:129 {130 // handle Alarm Control clicked131 emit(requestForMap(aIndex));132 handled = true;133 }134 break;135 128 case Delegate::WarningControl: 136 129 { -
src/mvc/treeview.h
r8dd3dd2 re6ab8a2 37 37 void handleItemClicked(const QModelIndex &index); 38 38 signals: 39 void requestForMap(const QModelIndex &aIndex);40 39 void requestForConflicts(const QModelIndex &aIndex); 41 40 void eventHasChanged(int aEventId, bool aReloadModel = false); // emited when user changes some event details, eg. sets it Favourite -
src/sql/schedulexmlparser.cpp
r8dd3dd2 re6ab8a2 104 104 room["event_id"] = eventElement.attribute("id"); 105 105 room["conference_id"] = QString::number(confId,10); 106 room["picture"] = ""; // TODO: implement some mapping to assign correct picture to specified room_name107 106 SqlEngine::addRoomToDB(room); 108 107 -
src/sql/sqlengine.cpp
r8dd3dd2 re6ab8a2 67 67 database.open(); 68 68 } 69 70 checkConferenceMap(database);71 69 72 70 //LOG_INFO(QString("Opening '%1' database '%2'").arg(aDatabaseType).arg(aDatabaseName)); … … 257 255 { 258 256 query = QSqlQuery(db); 259 query.prepare("INSERT INTO ROOM (xid_conference,name,picture) VALUES (:xid_conference, :name, :picture)");257 query.prepare("INSERT INTO ROOM (xid_conference,name,picture) VALUES (:xid_conference, :name, '')"); 260 258 query.bindValue(":xid_conference", aRoom["conference_id"]); 261 259 query.bindValue(":xid_name", aRoom["name"]); 262 query.bindValue(":xid_picture", aRoom["picture"]);263 260 if (!query.exec()) qDebug() << "Could not execute 'insert into room ...' query." << query.lastError(); 264 261 aRoom["id"]= query.lastInsertId().toString(); // 'id' is assigned automatically … … 402 399 return true; 403 400 } 404 405 void SqlEngine::checkConferenceMap(QSqlDatabase &aDatabase)406 {407 QSqlQuery sqlQuery(aDatabase);408 sqlQuery.prepare("SELECT map FROM conference");409 if (!sqlQuery.exec()) {410 qWarning() << "column conference.map is missing; adding";411 execQuery(aDatabase, "ALTER TABLE conference ADD COLUMN map VARCHAR");412 }413 } -
src/sql/sqlengine.h
r8dd3dd2 re6ab8a2 49 49 static bool execQuery(QSqlDatabase &aDatabase, const QString &aQuery); 50 50 static bool execQueryWithParameter(QSqlDatabase &aDatabase, const QString &aQuery, const QHash<QString, QVariant>& params); 51 52 static void checkConferenceMap(QSqlDatabase &aDatabase);53 51 }; 54 52
Note: See TracChangeset
for help on using the changeset viewer.