X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fsqlitestorage.cpp;h=d71dd3c1083922991fdfb94d055b522465056f4e;hp=6333882482a8cc7b12d3b57bae37c14fde724f38;hb=88ce73ff525535c00cc979fff357fbe4cb8cdc2b;hpb=c382e0c11f80fb37307ecc42c487aa433c97ad8c diff --git a/src/core/sqlitestorage.cpp b/src/core/sqlitestorage.cpp index 63338824..d71dd3c1 100644 --- a/src/core/sqlitestorage.cpp +++ b/src/core/sqlitestorage.cpp @@ -1620,6 +1620,79 @@ void SqliteStorage::setBufferCipher(UserId user, const NetworkId &networkId, con unlock(); } +void SqliteStorage::setHighlightCount(UserId user, BufferId bufferId, int count) +{ + QSqlDatabase db = logDb(); + db.transaction(); + + { + QSqlQuery query(db); + query.prepare(queryString("update_buffer_highlightcount")); + query.bindValue(":userid", user.toInt()); + query.bindValue(":bufferid", bufferId.toInt()); + query.bindValue(":highlightcount", count); + + lockForWrite(); + safeExec(query); + watchQuery(query); + } + db.commit(); + unlock(); +} + + +QHash SqliteStorage::highlightCounts(UserId user) +{ + QHash highlightCountHash; + + QSqlDatabase db = logDb(); + db.transaction(); + + bool error = false; + { + QSqlQuery query(db); + query.prepare(queryString("select_buffer_highlightcounts")); + query.bindValue(":userid", user.toInt()); + + lockForRead(); + safeExec(query); + error = !watchQuery(query); + if (!error) { + while (query.next()) { + highlightCountHash[query.value(0).toInt()] = query.value(1).toInt(); + } + } + } + + db.commit(); + unlock(); + return highlightCountHash; +} + + +int SqliteStorage::highlightCount(BufferId bufferId, MsgId lastSeenMsgId) +{ + QSqlDatabase db = logDb(); + db.transaction(); + + int result = 0; + { + QSqlQuery query(db); + query.prepare(queryString("select_buffer_highlightcount")); + query.bindValue(":bufferid", bufferId.toInt()); + query.bindValue(":lastseenmsgid", lastSeenMsgId.toInt()); + + lockForRead(); + safeExec(query); + if (query.first()) + result = query.value(0).toInt(); + } + + db.commit(); + unlock(); + return result; +} + bool SqliteStorage::logMessage(Message &msg) { QSqlDatabase db = logDb(); @@ -2116,9 +2189,10 @@ bool SqliteMigrationReader::readMo(BufferMO &buffer) buffer.lastseenmsgid = value(8).toInt(); buffer.markerlinemsgid = value(9).toInt(); buffer.bufferactivity = value(10).toInt(); - buffer.key = value(11).toString(); - buffer.joined = value(12).toInt() == 1 ? true : false; - buffer.cipher = value(13).toString(); + buffer.highlightcount = value(11).toInt(); + buffer.key = value(12).toString(); + buffer.joined = value(13).toInt() == 1 ? true : false; + buffer.cipher = value(14).toString(); return true; }