emit userRemoved(user);
}
+void SqliteStorage::setUserSetting(UserId userId, const QString &settingName, const QVariant &data) {
+ QByteArray rawData;
+ QDataStream out(&rawData, QIODevice::WriteOnly);
+ out.setVersion(QDataStream::Qt_4_2);
+ out << data;
+
+ QSqlQuery query(logDb());
+ query.prepare(queryString("insert_user_setting"));
+ query.bindValue(":userid", userId.toInt());
+ query.bindValue(":settingname", settingName);
+ query.bindValue(":settingvalue", rawData);
+ query.exec();
+
+ if(query.lastError().isValid()) {
+ QSqlQuery updateQuery(logDb());
+ updateQuery.prepare(queryString("update_user_setting"));
+ updateQuery.bindValue(":userid", userId.toInt());
+ updateQuery.bindValue(":settingname", settingName);
+ updateQuery.bindValue(":settingvalue", rawData);
+ updateQuery.exec();
+ }
+
+}
+
+QVariant SqliteStorage::getUserSetting(UserId userId, const QString &settingName, const QVariant &defaultData) {
+ QSqlQuery query(logDb());
+ query.prepare(queryString("select_user_setting"));
+ query.bindValue(":userid", userId.toInt());
+ query.bindValue(":settingname", settingName);
+ query.exec();
+
+ if(query.first()) {
+ QVariant data;
+ QByteArray rawData = query.value(0).toByteArray();
+ QDataStream in(&rawData, QIODevice::ReadOnly);
+ in.setVersion(QDataStream::Qt_4_2);
+ in >> data;
+ return data;
+ } else {
+ return defaultData;
+ }
+}
+
NetworkId SqliteStorage::createNetwork(UserId user, const NetworkInfo &info) {
NetworkId networkId;
QSqlQuery query(logDb());
if(!networkId.isValid()) {
watchQuery(&query);
} else {
- updateNetwork(user, info);
+ NetworkInfo newNetworkInfo = info;
+ newNetworkInfo.networkId = networkId;
+ updateNetwork(user, newNetworkInfo);
}
return networkId;
}
return bufferlist;
}
+QList<BufferId> SqliteStorage::requestBufferIdsForNetwork(UserId user, NetworkId networkId) {
+ QList<BufferId> bufferList;
+ QSqlQuery query(logDb());
+ query.prepare(queryString("select_buffers_for_network"));
+ query.bindValue(":networkid", networkId.toInt());
+ query.bindValue(":userid", user.toInt());
+
+ query.exec();
+ watchQuery(&query);
+ while(query.next()) {
+ bufferList << BufferId(query.value(0).toInt());
+ }
+ return bufferList;
+}
+
bool SqliteStorage::removeBuffer(const UserId &user, const BufferId &bufferId) {
if(!isValidBuffer(user, bufferId))
return false;
logMessageQuery->bindValue(":time", msg.timestamp().toTime_t());
logMessageQuery->bindValue(":bufferid", msg.bufferInfo().bufferId().toInt());
logMessageQuery->bindValue(":type", msg.type());
- logMessageQuery->bindValue(":flags", msg.flags());
+ logMessageQuery->bindValue(":flags", (int)msg.flags());
logMessageQuery->bindValue(":sender", msg.sender());
- logMessageQuery->bindValue(":message", msg.text());
+ logMessageQuery->bindValue(":message", msg.contents());
logMessageQuery->exec();
if(logMessageQuery->lastError().isValid()) {
(Message::Type)msgQuery->value(2).toUInt(),
msgQuery->value(5).toString(),
msgQuery->value(4).toString(),
- msgQuery->value(3).toUInt());
+ (Message::Flags)msgQuery->value(3).toUInt());
msg.setMsgId(msgQuery->value(0).toInt());
messagelist << msg;
}
(Message::Type)msgQuery->value(2).toUInt(),
msgQuery->value(5).toString(),
msgQuery->value(4).toString(),
- msgQuery->value(3).toUInt());
+ (Message::Flags)msgQuery->value(3).toUInt());
msg.setMsgId(msgQuery->value(0).toInt());
messagelist << msg;
}
(Message::Type)rangeQuery->value(2).toUInt(),
rangeQuery->value(5).toString(),
rangeQuery->value(4).toString(),
- rangeQuery->value(3).toUInt());
+ (Message::Flags)rangeQuery->value(3).toUInt());
msg.setMsgId(rangeQuery->value(0).toInt());
messagelist << msg;
}