current highlighted search result is no longer reset when the search string changes...
[quassel.git] / src / core / sqlitestorage.cpp
index 68120e1..ef510e7 100644 (file)
@@ -25,6 +25,7 @@
 #include "network.h"
 
 #include "util.h"
+#include "logger.h"
 
 SqliteStorage::SqliteStorage(QObject *parent)
   : AbstractSqlStorage(parent)
@@ -112,6 +113,18 @@ UserId SqliteStorage::validateUser(const QString &user, const QString &password)
   }
 }
 
+UserId SqliteStorage::internalUser() {
+  QSqlQuery query(logDb());
+  query.prepare(queryString("select_internaluser"));
+  query.exec();
+
+  if(query.first()) {
+    return query.value(0).toInt();
+  } else {
+    return 0;
+  }
+}
+
 void SqliteStorage::delUser(UserId user) {
   QSqlQuery query(logDb());
   query.prepare(queryString("delete_backlog_by_uid"));
@@ -497,9 +510,12 @@ BufferInfo SqliteStorage::getBufferInfo(UserId user, const NetworkId &networkId,
 
   BufferInfo bufferInfo = BufferInfo(query->value(0).toInt(), networkId, (BufferInfo::Type)query->value(1).toInt(), 0, buffer);
   if(query->next()) {
-    qWarning() << "SqliteStorage::getBufferInfo(): received more then one Buffer!";
-    qWarning() << "         Query:" << query->lastQuery();
-    qWarning() << "  bound Values:" << query->boundValues();
+    qCritical() << "SqliteStorage::getBufferInfo(): received more then one Buffer!";
+    qCritical() << "         Query:" << query->lastQuery();
+    qCritical() << "  bound Values:";
+    QList<QVariant> list = query->boundValues().values();
+    for (int i = 0; i < list.size(); ++i)
+      qCritical() << i << ":" << list.at(i).toString().toAscii().data();
     Q_ASSERT(false);
   }
 
@@ -538,6 +554,21 @@ QList<BufferInfo> SqliteStorage::requestBuffers(UserId user) {
   return bufferlist;
 }
 
+QList<BufferId> SqliteStorage::requestBufferIdsForNetwork(UserId user, NetworkId networkId) {
+  QList<BufferId> bufferList;
+  QSqlQuery query(logDb());
+  query.prepare(queryString("select_buffers_for_network"));
+  query.bindValue(":networkid", networkId.toInt());
+  query.bindValue(":userid", user.toInt());
+
+  query.exec();
+  watchQuery(&query);
+  while(query.next()) {
+    bufferList << BufferId(query.value(0).toInt());
+  }
+  return bufferList;
+}
+
 bool SqliteStorage::removeBuffer(const UserId &user, const BufferId &bufferId) {
   if(!isValidBuffer(user, bufferId))
     return false;
@@ -631,7 +662,7 @@ MsgId SqliteStorage::logMessage(Message msg) {
   logMessageQuery->bindValue(":type", msg.type());
   logMessageQuery->bindValue(":flags", (int)msg.flags());
   logMessageQuery->bindValue(":sender", msg.sender());
-  logMessageQuery->bindValue(":message", msg.text());
+  logMessageQuery->bindValue(":message", msg.contents());
   logMessageQuery->exec();
   
   if(logMessageQuery->lastError().isValid()) {
@@ -794,7 +825,7 @@ bool SqliteStorage::init(const QVariantMap &settings) {
   getPasswordsQuery.exec();
 
   if(!watchQuery(&getPasswordsQuery)) {
-    qWarning() << "unable to migrate to new password format!";
+    qCritical() << "unable to migrate to new password format!";
     return false;
   }