void SqliteStorage::renameUser(UserId user, const QString &newName) {
QSqlQuery query(logDb());
query.prepare(queryString("update_username"));
void SqliteStorage::renameUser(UserId user, const QString &newName) {
QSqlQuery query(logDb());
query.prepare(queryString("update_username"));
query.bindValue(":username", newName);
query.exec();
emit userRenamed(user, newName);
query.bindValue(":username", newName);
query.exec();
emit userRenamed(user, newName);
void SqliteStorage::delUser(UserId user) {
QSqlQuery query(logDb());
query.prepare(queryString("delete_backlog_by_uid"));
void SqliteStorage::delUser(UserId user) {
QSqlQuery query(logDb());
query.prepare(queryString("delete_backlog_by_uid"));
void SqliteStorage::createBuffer(UserId user, const QString &network, const QString &buffer) {
QSqlQuery *createBufferQuery = cachedQuery("insert_buffer");
void SqliteStorage::createBuffer(UserId user, const QString &network, const QString &buffer) {
QSqlQuery *createBufferQuery = cachedQuery("insert_buffer");
- createBufferQuery->bindValue(":userid", user);
- createBufferQuery->bindValue(":userid2", user); // Qt can't handle same placeholder twice (maybe sqlites fault)
+ createBufferQuery->bindValue(":userid", user.toInt());
+ createBufferQuery->bindValue(":userid2", user.toInt()); // Qt can't handle same placeholder twice (maybe sqlites fault)
createBufferQuery->bindValue(":networkname", network);
createBufferQuery->bindValue(":buffername", buffer);
createBufferQuery->exec();
createBufferQuery->bindValue(":networkname", network);
createBufferQuery->bindValue(":buffername", buffer);
createBufferQuery->exec();
if(createBufferQuery->lastError().isValid()) {
if(createBufferQuery->lastError().number() == 19) { // Null Constraint violation
QSqlQuery *createNetworkQuery = cachedQuery("insert_network");
if(createBufferQuery->lastError().isValid()) {
if(createBufferQuery->lastError().number() == 19) { // Null Constraint violation
QSqlQuery *createNetworkQuery = cachedQuery("insert_network");
createNetworkQuery->bindValue(":networkname", network);
createNetworkQuery->exec();
createNetworkQuery->bindValue(":networkname", network);
createNetworkQuery->exec();
QSqlQuery query(logDb());
query.prepare("SELECT networkid FROM network "
"WHERE userid = :userid AND networkname = :networkname");
QSqlQuery query(logDb());
query.prepare("SELECT networkid FROM network "
"WHERE userid = :userid AND networkname = :networkname");
BufferInfo SqliteStorage::getBufferInfo(UserId user, const QString &network, const QString &buffer) {
BufferInfo bufferid;
// TODO: get rid of this hackaround
BufferInfo SqliteStorage::getBufferInfo(UserId user, const QString &network, const QString &buffer) {
BufferInfo bufferid;
// TODO: get rid of this hackaround
- getBufferInfoQuery->bindValue(":networkname", network);
- getBufferInfoQuery->bindValue(":userid", user);
- getBufferInfoQuery->bindValue(":userid2", user); // Qt can't handle same placeholder twice... though I guess it's sqlites fault
+ getBufferInfoQuery->bindValue(":networkid", networkId.toInt());
+ getBufferInfoQuery->bindValue(":userid", user.toInt());
getBufferInfoQuery->bindValue(":buffername", buffer);
getBufferInfoQuery->exec();
getBufferInfoQuery->bindValue(":buffername", buffer);
getBufferInfoQuery->exec();
createBuffer(user, network, buffer);
getBufferInfoQuery->exec();
if(getBufferInfoQuery->first()) {
createBuffer(user, network, buffer);
getBufferInfoQuery->exec();
if(getBufferInfoQuery->first()) {
- bufferid = BufferInfo(getBufferInfoQuery->value(0).toUInt(), networkId, 0, network, buffer);
- emit bufferInfoUpdated(bufferid);
+ bufferid = BufferInfo(getBufferInfoQuery->value(0).toInt(), networkId, 0, network, buffer);
+ emit bufferInfoUpdated(user, bufferid);
- bufferid = BufferInfo(getBufferInfoQuery->value(0).toUInt(), networkId, 0, network, buffer);
+ bufferid = BufferInfo(getBufferInfoQuery->value(0).toInt(), networkId, 0, network, buffer);
QList<BufferInfo> bufferlist;
QSqlQuery query(logDb());
query.prepare(queryString("select_buffers"));
QList<BufferInfo> bufferlist;
QSqlQuery query(logDb());
query.prepare(queryString("select_buffers"));
- bufferlist << BufferInfo(query.value(0).toUInt(), query.value(2).toUInt(), 0, query.value(3).toString(), query.value(1).toString());
+ bufferlist << BufferInfo(query.value(0).toInt(), query.value(2).toInt(), 0, query.value(3).toString(), query.value(1).toString());
MsgId SqliteStorage::logMessage(Message msg) {
QSqlQuery *logMessageQuery = cachedQuery("insert_message");
logMessageQuery->bindValue(":time", msg.timestamp().toTime_t());
MsgId SqliteStorage::logMessage(Message msg) {
QSqlQuery *logMessageQuery = cachedQuery("insert_message");
logMessageQuery->bindValue(":time", msg.timestamp().toTime_t());
logMessageQuery->bindValue(":type", msg.type());
logMessageQuery->bindValue(":flags", msg.flags());
logMessageQuery->bindValue(":sender", msg.sender());
logMessageQuery->bindValue(":type", msg.type());
logMessageQuery->bindValue(":flags", msg.flags());
logMessageQuery->bindValue(":sender", msg.sender());
QSqlQuery *getLastMessageIdQuery = cachedQuery("select_lastMessage");
getLastMessageIdQuery->bindValue(":time", msg.timestamp().toTime_t());
QSqlQuery *getLastMessageIdQuery = cachedQuery("select_lastMessage");
getLastMessageIdQuery->bindValue(":time", msg.timestamp().toTime_t());
getLastMessageIdQuery->bindValue(":type", msg.type());
getLastMessageIdQuery->bindValue(":sender", msg.sender());
getLastMessageIdQuery->exec();
if(getLastMessageIdQuery->first()) {
getLastMessageIdQuery->bindValue(":type", msg.type());
getLastMessageIdQuery->bindValue(":sender", msg.sender());
getLastMessageIdQuery->exec();
if(getLastMessageIdQuery->first()) {
} else { // somethin went wrong... :(
qDebug() << getLastMessageIdQuery->lastQuery() << "time/bufferid/type/sender:" << msg.timestamp().toTime_t() << msg.buffer().uid() << msg.type() << msg.sender();
Q_ASSERT(false);
} else { // somethin went wrong... :(
qDebug() << getLastMessageIdQuery->lastQuery() << "time/bufferid/type/sender:" << msg.timestamp().toTime_t() << msg.buffer().uid() << msg.type() << msg.sender();
Q_ASSERT(false);
QList<Message> messagelist;
// we have to determine the real offset first
QSqlQuery *requestMsgsOffsetQuery = cachedQuery("select_messagesOffset");
QList<Message> messagelist;
// we have to determine the real offset first
QSqlQuery *requestMsgsOffsetQuery = cachedQuery("select_messagesOffset");
requestMsgsOffsetQuery->bindValue(":messageid", offset);
requestMsgsOffsetQuery->exec();
requestMsgsOffsetQuery->first();
requestMsgsOffsetQuery->bindValue(":messageid", offset);
requestMsgsOffsetQuery->exec();
requestMsgsOffsetQuery->first();
- requestMsgsQuery->bindValue(":bufferid", buffer.uid());
- requestMsgsQuery->bindValue(":bufferid2", buffer.uid()); // Qt can't handle the same placeholder used twice
+ requestMsgsQuery->bindValue(":bufferid", buffer.uid().toInt());
+ requestMsgsQuery->bindValue(":bufferid2", buffer.uid().toInt()); // Qt can't handle the same placeholder used twice
requestMsgsQuery->bindValue(":limit", lastmsgs);
requestMsgsQuery->bindValue(":offset", offset);
requestMsgsQuery->exec();
requestMsgsQuery->bindValue(":limit", lastmsgs);
requestMsgsQuery->bindValue(":offset", offset);
requestMsgsQuery->exec();
requestMsgsQuery->value(5).toString(),
requestMsgsQuery->value(4).toString(),
requestMsgsQuery->value(3).toUInt());
requestMsgsQuery->value(5).toString(),
requestMsgsQuery->value(4).toString(),
requestMsgsQuery->value(3).toUInt());
QList<Message> messagelist;
// we have to determine the real offset first
QSqlQuery *requestMsgsSinceOffsetQuery = cachedQuery("select_messagesSinceOffset");
QList<Message> messagelist;
// we have to determine the real offset first
QSqlQuery *requestMsgsSinceOffsetQuery = cachedQuery("select_messagesSinceOffset");
requestMsgsSinceOffsetQuery->bindValue(":since", since.toTime_t());
requestMsgsSinceOffsetQuery->exec();
requestMsgsSinceOffsetQuery->first();
requestMsgsSinceOffsetQuery->bindValue(":since", since.toTime_t());
requestMsgsSinceOffsetQuery->exec();
requestMsgsSinceOffsetQuery->first();
// now let's select the messages
QSqlQuery *requestMsgsSinceQuery = cachedQuery("select_messagesSince");
// now let's select the messages
QSqlQuery *requestMsgsSinceQuery = cachedQuery("select_messagesSince");
- requestMsgsSinceQuery->bindValue(":bufferid", buffer.uid());
- requestMsgsSinceQuery->bindValue(":bufferid2", buffer.uid());
+ requestMsgsSinceQuery->bindValue(":bufferid", buffer.uid().toInt());
+ requestMsgsSinceQuery->bindValue(":bufferid2", buffer.uid().toInt());
requestMsgsSinceQuery->bindValue(":since", since.toTime_t());
requestMsgsSinceQuery->bindValue(":offset", offset);
requestMsgsSinceQuery->exec();
requestMsgsSinceQuery->bindValue(":since", since.toTime_t());
requestMsgsSinceQuery->bindValue(":offset", offset);
requestMsgsSinceQuery->exec();
requestMsgsSinceQuery->value(5).toString(),
requestMsgsSinceQuery->value(4).toString(),
requestMsgsSinceQuery->value(3).toUInt());
requestMsgsSinceQuery->value(5).toString(),
requestMsgsSinceQuery->value(4).toString(),
requestMsgsSinceQuery->value(3).toUInt());
QList<Message> SqliteStorage::requestMsgRange(BufferInfo buffer, int first, int last) {
QList<Message> messagelist;
QSqlQuery *requestMsgRangeQuery = cachedQuery("select_messageRange");
QList<Message> SqliteStorage::requestMsgRange(BufferInfo buffer, int first, int last) {
QList<Message> messagelist;
QSqlQuery *requestMsgRangeQuery = cachedQuery("select_messageRange");
- requestMsgRangeQuery->bindValue(":bufferid", buffer.uid());
- requestMsgRangeQuery->bindValue(":bufferid2", buffer.uid());
+ requestMsgRangeQuery->bindValue(":bufferid", buffer.uid().toInt());
+ requestMsgRangeQuery->bindValue(":bufferid2", buffer.uid().toInt());
requestMsgRangeQuery->bindValue(":firstmsg", first);
requestMsgRangeQuery->bindValue(":lastmsg", last);
requestMsgRangeQuery->bindValue(":firstmsg", first);
requestMsgRangeQuery->bindValue(":lastmsg", last);
requestMsgRangeQuery->value(5).toString(),
requestMsgRangeQuery->value(4).toString(),
requestMsgRangeQuery->value(3).toUInt());
requestMsgRangeQuery->value(5).toString(),
requestMsgRangeQuery->value(4).toString(),
requestMsgRangeQuery->value(3).toUInt());