X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fsqlitestorage.cpp;h=99e97b54cfa1208a8c2b48150c32c7546e0a04fe;hb=cbc57790069f3bc3e54c59e54cd3274abff536e6;hp=53601e0f36b47d536f78649a0ad902c6a4f7bace;hpb=7d30b18136eecbdf2089e5d5877c7e41c6f4bcb6;p=quassel.git diff --git a/src/core/sqlitestorage.cpp b/src/core/sqlitestorage.cpp index 53601e0f..99e97b54 100644 --- a/src/core/sqlitestorage.cpp +++ b/src/core/sqlitestorage.cpp @@ -1475,6 +1475,16 @@ QHash SqliteStorage::bufferMarkerLineMsgIds(UserId user) return markerLineHash; } +void SqliteStorage::setBufferLastMsg(const BufferId &bufferId, const MsgId &msgId) +{ + QSqlQuery query(logDb()); + query.prepare(queryString("update_buffer_lastmsgid")); + + query.bindValue(":bufferid", bufferId.toInt()); + query.bindValue(":lastmsgid", msgId.toInt()); + safeExec(query); + watchQuery(query); +} bool SqliteStorage::logMessage(Message &msg) { @@ -1514,6 +1524,8 @@ bool SqliteStorage::logMessage(Message &msg) MsgId msgId = logMessageQuery.lastInsertId().toInt(); if (msgId.isValid()) { msg.setMsgId(msgId); + + setBufferLastMsg(msg.bufferInfo().bufferId(), msgId); } else { error = true; @@ -1636,7 +1648,7 @@ QList SqliteStorage::requestMsgs(UserId user, BufferId bufferId, MsgId query.bindValue(":firstmsg", first.toInt()); } else { - query.prepare(queryString("select_messages")); + query.prepare(queryString("select_messagesRange")); query.bindValue(":lastmsg", last.toInt()); query.bindValue(":firstmsg", first.toInt()); }