X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fsqlitestorage.cpp;h=3c58fa3be193f74fd17991bbfceb974336da1ecb;hp=718dc59d5117278d4983b4eb0912eee905b8204a;hb=b9ff1ddc759d891d244abf22a6b9d2e8446325bf;hpb=3c2914faeb01f3bc32e29f40179ae88040fbcf59 diff --git a/src/core/sqlitestorage.cpp b/src/core/sqlitestorage.cpp index 718dc59d..3c58fa3b 100644 --- a/src/core/sqlitestorage.cpp +++ b/src/core/sqlitestorage.cpp @@ -283,11 +283,13 @@ bool SqliteStorage::updateIdentity(UserId user, const CoreIdentity &identity) { #endif query.bindValue(":identityid", identity.id().toInt()); safeExec(query); + watchQuery(query); QSqlQuery deleteNickQuery(logDb()); deleteNickQuery.prepare(queryString("delete_nicks")); deleteNickQuery.bindValue(":identityid", identity.id().toInt()); safeExec(deleteNickQuery); + watchQuery(deleteNickQuery); QSqlQuery insertNickQuery(logDb()); insertNickQuery.prepare(queryString("insert_nick")); @@ -295,6 +297,7 @@ bool SqliteStorage::updateIdentity(UserId user, const CoreIdentity &identity) { insertNickQuery.bindValue(":identityid", identity.id().toInt()); insertNickQuery.bindValue(":nick", nick); safeExec(insertNickQuery); + watchQuery(insertNickQuery); } return true; @@ -688,7 +691,7 @@ void SqliteStorage::createBuffer(UserId user, const NetworkId &networkId, Buffer watchQuery(query); } -BufferInfo SqliteStorage::getBufferInfo(UserId user, const NetworkId &networkId, BufferInfo::Type type, const QString &buffer) { +BufferInfo SqliteStorage::bufferInfo(UserId user, const NetworkId &networkId, BufferInfo::Type type, const QString &buffer, bool create) { QSqlQuery query(logDb()); query.prepare(queryString("select_bufferByName")); query.bindValue(":networkid", networkId.toInt()); @@ -697,6 +700,9 @@ BufferInfo SqliteStorage::getBufferInfo(UserId user, const NetworkId &networkId, safeExec(query); if(!query.first()) { + if(!create) + return BufferInfo(); + createBuffer(user, networkId, type, buffer); safeExec(query); if(!query.first()) { @@ -895,15 +901,19 @@ QList SqliteStorage::requestMsgs(UserId user, BufferId bufferId, MsgId return messagelist; QSqlQuery query(logDb()); - if(last == -1) { - query.prepare(queryString("select_messagesNew")); + + if(last == -1 && first == -1) { + query.prepare(queryString("select_messagesNewestK")); + } else if(last == -1) { + query.prepare(queryString("select_messagesNewerThan")); + query.bindValue(":firstmsg", first.toInt()); } else { query.prepare(queryString("select_messages")); query.bindValue(":lastmsg", last.toInt()); + query.bindValue(":firstmsg", first.toInt()); } query.bindValue(":bufferid", bufferId.toInt()); - query.bindValue(":firstmsg", first.toInt()); query.bindValue(":limit", limit); safeExec(query);