X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fsqlitestorage.cpp;h=f671c3932b3d2143ed9c7a4c4353a7b845e560f3;hb=570fe57edab50ce8acee57843b233354b6fc1c83;hp=53601e0f36b47d536f78649a0ad902c6a4f7bace;hpb=7d30b18136eecbdf2089e5d5877c7e41c6f4bcb6;p=quassel.git diff --git a/src/core/sqlitestorage.cpp b/src/core/sqlitestorage.cpp index 53601e0f..f671c393 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()); } @@ -1918,10 +1930,11 @@ bool SqliteMigrationReader::readMo(BufferMO &buffer) buffer.buffername = value(4).toString(); buffer.buffercname = value(5).toString(); buffer.buffertype = value(6).toInt(); - buffer.lastseenmsgid = value(7).toInt(); - buffer.markerlinemsgid = value(8).toInt(); - buffer.key = value(9).toString(); - buffer.joined = value(10).toInt() == 1 ? true : false; + buffer.lastmsgid = value(7).toInt(); + buffer.lastseenmsgid = value(8).toInt(); + buffer.markerlinemsgid = value(9).toInt(); + buffer.key = value(10).toString(); + buffer.joined = value(11).toInt() == 1 ? true : false; return true; }