X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fsqlitestorage.cpp;h=718dc59d5117278d4983b4eb0912eee905b8204a;hp=dea348fbeaefebdecc06167903e087441dfa0b94;hb=3c2914faeb01f3bc32e29f40179ae88040fbcf59;hpb=1658ab9a8f4287fde15f3ceb13503282a6948990 diff --git a/src/core/sqlitestorage.cpp b/src/core/sqlitestorage.cpp index dea348fb..718dc59d 100644 --- a/src/core/sqlitestorage.cpp +++ b/src/core/sqlitestorage.cpp @@ -808,6 +808,27 @@ bool SqliteStorage::renameBuffer(const UserId &user, const BufferId &bufferId, c return true; } +bool SqliteStorage::mergeBuffersPermanently(const UserId &user, const BufferId &bufferId1, const BufferId &bufferId2) { + if(!isValidBuffer(user, bufferId1) || !isValidBuffer(user, bufferId2)) + return false; + + QSqlQuery query(logDb()); + query.prepare(queryString("update_backlog_bufferid")); + query.bindValue(":oldbufferid", bufferId2.toInt()); + query.bindValue(":newbufferid", bufferId1.toInt()); + safeExec(query); + if(!watchQuery(query)) + return false; + + QSqlQuery delBufferQuery(logDb()); + delBufferQuery.prepare(queryString("delete_buffer_for_bufferid")); + delBufferQuery.bindValue(":bufferid", bufferId2.toInt()); + safeExec(delBufferQuery); + watchQuery(delBufferQuery); + + return true; +} + void SqliteStorage::setBufferLastSeenMsg(UserId user, const BufferId &bufferId, const MsgId &msgId) { QSqlQuery query(logDb()); query.prepare(queryString("update_buffer_lastseen"));