fixing a big oopsie that would cause the creation of a new empty buffer on any observ...
[quassel.git] / src / core / sqlitestorage.cpp
index 718dc59..cbcacf7 100644 (file)
@@ -283,11 +283,13 @@ bool SqliteStorage::updateIdentity(UserId user, const CoreIdentity &identity) {
 #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"));
@@ -295,6 +297,7 @@ bool SqliteStorage::updateIdentity(UserId user, const CoreIdentity &identity) {
     insertNickQuery.bindValue(":identityid", identity.id().toInt());
     insertNickQuery.bindValue(":nick", nick);
     safeExec(insertNickQuery);
+    watchQuery(insertNickQuery);
   }
 
   return true;
@@ -688,7 +691,7 @@ void SqliteStorage::createBuffer(UserId user, const NetworkId &networkId, Buffer
   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());
@@ -697,6 +700,9 @@ BufferInfo SqliteStorage::getBufferInfo(UserId user, const NetworkId &networkId,
   safeExec(query);
 
   if(!query.first()) {
+    if(!create)
+      return BufferInfo();
+
     createBuffer(user, networkId, type, buffer);
     safeExec(query);
     if(!query.first()) {