Changeset 680a4da
- Timestamp:
- 01/16/10 16:31:15 (13 years ago)
- Branches:
- master, qt5
- Children:
- c790268
- Parents:
- 8860ff4
- Location:
- src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
src/fosdem.pro
r8860ff4 r680a4da 1 1 TEMPLATE = subdirs 2 SUBDIRS = orm mvc sql gui app test 2 SUBDIRS = orm mvc sql gui app 3 #SUBDIRS += test 3 4 CONFIG += ordered 4 5 -
src/mvc/delegate.cpp
r8860ff4 r680a4da 84 84 85 85 // draw Controls 86 painter->drawImage(mControls[FavouriteControl]->drawPoint(option.rect),*mControls[FavouriteControl]->image()); 87 painter->drawImage(mControls[AlarmControl]->drawPoint(option.rect),*mControls[AlarmControl]->image()); 86 if(static_cast<Event*>(index.internalPointer())->isFavourite()) 87 painter->drawImage(mControls[FavouriteControlOn]->drawPoint(option.rect),*mControls[FavouriteControlOn]->image()); 88 else 89 painter->drawImage(mControls[FavouriteControlOff]->drawPoint(option.rect),*mControls[FavouriteControlOff]->image()); 90 painter->drawImage(mControls[AlarmControlOn]->drawPoint(option.rect),*mControls[AlarmControlOn]->image()); 88 91 painter->drawImage(mControls[MapControl]->drawPoint(option.rect),*mControls[MapControl]->image()); 89 92 } … … 201 204 { 202 205 Control *control; 203 // FAVOURITE ICON 204 control = new Control(FavouriteControl,QString(":icons/favourite-on.png")); 206 // FAVOURITE ICONs 207 // on 208 control = new Control(FavouriteControlOn,QString(":icons/favourite-on.png")); 205 209 control->setDrawPoint(QPoint(-control->image()->width()-SPACER,SPACER)); 206 mControls.insert(FavouriteControl,control); 207 208 // ALARM ICON 209 control = new Control(AlarmControl,QString(":icons/alarm-on.png")); 210 control->setDrawPoint(QPoint(-mControls[FavouriteControl]->image()->width()-control->image()->width()-2*SPACER,SPACER)); 211 mControls.insert(AlarmControl,control); 210 mControls.insert(FavouriteControlOn,control); 211 // off 212 control = new Control(FavouriteControlOff,QString(":icons/favourite-off.png")); 213 control->setDrawPoint(QPoint(-control->image()->width()-SPACER,SPACER)); 214 mControls.insert(FavouriteControlOff,control); 215 216 // ALARM ICONs 217 // on 218 control = new Control(AlarmControlOn,QString(":icons/alarm-on.png")); 219 control->setDrawPoint(QPoint(-mControls[FavouriteControlOn]->image()->width()-control->image()->width()-2*SPACER,SPACER)); 220 mControls.insert(AlarmControlOn,control); 221 // off 222 control = new Control(AlarmControlOff,QString(":icons/alarm-off.png")); 223 control->setDrawPoint(QPoint(-mControls[FavouriteControlOff]->image()->width()-control->image()->width()-2*SPACER,SPACER)); 224 mControls.insert(AlarmControlOff,control); 212 225 213 226 // MAP ICON 214 227 control = new Control(MapControl,QString(":icons/compass.png")); 215 control->setDrawPoint(QPoint(-mControls[AlarmControl ]->image()->width()-control->image()->width()216 -mControls[FavouriteControl ]->image()->width()-3*SPACER,SPACER));228 control->setDrawPoint(QPoint(-mControls[AlarmControlOn]->image()->width()-control->image()->width() 229 -mControls[FavouriteControlOn]->image()->width()-3*SPACER,SPACER)); 217 230 mControls.insert(MapControl,control); 218 231 } -
src/mvc/delegate.h
r8860ff4 r680a4da 15 15 { 16 16 ControlNone = 0, 17 FavouriteControl, 18 AlarmControl, 17 FavouriteControlOn, 18 FavouriteControlOff, 19 AlarmControlOn, 20 AlarmControlOff, 19 21 MapControl 20 22 }; -
src/mvc/event.cpp
r8860ff4 r680a4da 8 8 << QSqlField("xid_activity", QVariant::Int) 9 9 << QSqlField("type", QVariant::String) 10 << QSqlField("language", QVariant::String)); 10 << QSqlField("language", QVariant::String) 11 << QSqlField("favourite", QVariant::Bool)); 11 12 12 13 QString const Event::sTableName = QString("event"); … … 31 32 return load(query); 32 33 } 34 -
src/mvc/event.h
r8860ff4 r680a4da 7 7 8 8 #include <ormrecord.h> 9 10 9 11 10 /** … … 34 33 QString type() const { return value("type").toString(); } 35 34 QString language() const { return value("language").toString(); } 35 bool isFavourite() const { return value("favourite").toBool(); } 36 36 37 37 void setId(int id) { setValue("id", id); } … … 42 42 void setType(const QString& type) { setValue("type", type); } 43 43 void setLanguage(const QString& language) { setValue("language", language); } 44 void setFavourite(bool favourite) { setValue("favourite", favourite); } 44 45 45 46 friend class EventTest; 46 47 }; 47 48 49 #endif // EVENT_H 48 50 49 50 #endif // EVENT_H -
src/mvc/treeview.cpp
r8860ff4 r680a4da 3 3 #include "treeview.h" 4 4 #include "delegate.h" 5 #include "event.h" 5 6 6 7 #include <QDebug> … … 31 32 switch(delegate->whichControlClicked(aIndex,aPoint)) 32 33 { 33 case Delegate::FavouriteControl: 34 case Delegate::FavouriteControlOn: 35 case Delegate::FavouriteControlOff: 34 36 { 35 37 // handle Favourite Control clicked 36 qDebug() << "FAVOURITE CLICKED: " << qVariantValue<QString>(aIndex.data()); 38 Event event = Event::getById(aIndex.data().toInt(),1); 39 if(event.isFavourite()) 40 { 41 static_cast<Event*>(aIndex.internalPointer())->setFavourite(false); // list of events 42 event.setFavourite(false); // update DB 43 } 44 else 45 { 46 static_cast<Event*>(aIndex.internalPointer())->setFavourite(true); // list of events 47 event.setFavourite(true); 48 } 49 qDebug() << " FAVOURITE [" << qVariantValue<QString>(aIndex.data()) << "] -> " << event.isFavourite(); 50 event.update("favourite"); 51 // TODO: since the Favourite icon has changed, update TreeView accordingly 52 // not really working solution is the following 53 // maybe the call to MainWindow->update() fix the problem ??? 54 QTreeView::update(); 55 update(); 37 56 } 38 57 break; 39 case Delegate::AlarmControl: 58 case Delegate::AlarmControlOn: 59 case Delegate::AlarmControlOff: 40 60 { 41 61 // handle Alarm Control clicked -
src/orm/ormrecord.h
r8860ff4 r680a4da 34 34 OrmRecord(); 35 35 static T hydrate(const QSqlRecord& record); 36 void update(QString col, QVariant value = QVariant()); // updates specified column 'col' 36 37 37 38 protected: … … 45 46 static QString columnsForSelect(const QString& prefix = QString()); 46 47 static QString selectQuery(); 48 static QString updateQuery(); 47 49 static QSqlRecord toRecord(const QList<QSqlField> & columnList); 48 50 … … 63 65 object.QSqlRecord::operator=(record); 64 66 return object; 67 } 68 69 // updates specified column 'col' 70 // if the value is not specified as an argument, 71 // it's taken from the reford itself 72 // see also: setValue() method for more details 73 template <typename T> 74 void OrmRecord<T>::update(QString col, QVariant value) 75 { 76 QSqlQuery query; 77 query.prepare(QString(updateQuery() + "SET %1 = :col WHERE id = :id").arg(col)); 78 if(value.isValid()) // take 'col' value from the method's arguments 79 query.bindValue(":col", value); 80 else // take 'col' value from the record; see setValue() 81 query.bindValue(":col", convertToDb(this->value(col), this->value(col).type())); 82 query.bindValue(":id", this->value("id")); 83 //query.bindValue(":id", convertToDb(value("id"), QVariant::Int)); 84 query.exec(); 65 85 } 66 86 … … 103 123 if (!query.exec()) 104 124 { 105 //TODO Palo: exception handling !106 QString start = "START\n";107 QString end = "\nEND\n";108 QString message = start + query.lastError().text() + end;109 const char *data = message.toLatin1().data();110 qDebug(data);111 125 throw new OrmSqlException(query.lastError().text()); 112 126 } … … 139 153 { 140 154 return QString("SELECT %1 FROM %2 ").arg(columnsForSelect(), T::sTableName); 155 } 156 157 template <typename T> 158 QString OrmRecord<T>::updateQuery() 159 { 160 return QString("UPDATE %1 ").arg(T::sTableName); 141 161 } 142 162 -
src/sql/sqlengine.cpp
r8860ff4 r680a4da 91 91 // VIRTUAL_EVENT is for Full-Text-Serach Support 92 92 QDateTime startDateTime = QDateTime(QDate::fromString(aEvent["date"],DATE_FORMAT),QTime::fromString(aEvent["start"],TIME_FORMAT)); 93 QString values = QString("'%1', '%2', '%3', '%4', '%5', '%6', '%7' ") \93 QString values = QString("'%1', '%2', '%3', '%4', '%5', '%6', '%7', '%8'") \ 94 94 .arg(aEvent["conference_id"]) \ 95 95 .arg(aEvent["id"]) \ … … 98 98 .arg("123456") \ 99 99 .arg(aEvent["type"]) \ 100 .arg(aEvent["language"]); 101 102 QString query = QString("INSERT INTO EVENT (xid_conference, id, start, duration, xid_activity, type, language) VALUES (%1)").arg(values); 100 .arg(aEvent["language"]) \ 101 .arg("0"); // not favourite when added 102 103 QString query = QString("INSERT INTO EVENT (xid_conference, id, start, duration, xid_activity, type, language, favourite) VALUES (%1)").arg(values); 103 104 QSqlQuery result (query, db); 104 105 //LOG_AUTOTEST(query); … … 227 228 type VARCHAR, \ 228 229 language VARCHAR, \ 230 favourite INTEGER DEFAULT 0, \ 229 231 PRIMARY KEY (xid_conference,id), \ 230 232 FOREIGN KEY(xid_conference) REFERENCES CONFERENCE(id) \
Note: See TracChangeset
for help on using the changeset viewer.