#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"));
insertNickQuery.bindValue(":identityid", identity.id().toInt());
insertNickQuery.bindValue(":nick", nick);
safeExec(insertNickQuery);
+ watchQuery(insertNickQuery);
}
return true;
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());
safeExec(query);
if(!query.first()) {
+ if(!create)
+ return BufferInfo();
+
createBuffer(user, networkId, type, buffer);
safeExec(query);
if(!query.first()) {
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"));
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);