X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fsqlitestorage.cpp;h=cc484206f6ea192be52ff7fd307e1ade0af10b7d;hp=0d870a6a211ae8502bb87da91b5c99bf27013bca;hb=ac21cc48d22f0cf58a98b74754fa94564a8e3f45;hpb=de1619ce11bf386490cdb38bc1be134a391eeaae;ds=sidebyside diff --git a/src/core/sqlitestorage.cpp b/src/core/sqlitestorage.cpp index 0d870a6a..cc484206 100644 --- a/src/core/sqlitestorage.cpp +++ b/src/core/sqlitestorage.cpp @@ -246,12 +246,11 @@ bool SqliteStorage::updateNetwork(UserId user, const NetworkInfo &info) { QSqlQuery insertServersQuery(logDb()); insertServersQuery.prepare(queryString("insert_server")); - foreach(QVariant server_, info.serverList) { - QVariantMap server = server_.toMap(); - insertServersQuery.bindValue(":hostname", server["Host"]); - insertServersQuery.bindValue(":port", server["Port"].toInt()); - insertServersQuery.bindValue(":password", server["Password"]); - insertServersQuery.bindValue(":ssl", server["UseSSL"].toBool() ? 1 : 0); + foreach(Network::Server server, info.serverList) { + insertServersQuery.bindValue(":hostname", server.host); + insertServersQuery.bindValue(":port", server.port); + insertServersQuery.bindValue(":password", server.password); + insertServersQuery.bindValue(":ssl", server.useSsl ? 1 : 0); insertServersQuery.bindValue(":userid", user.toInt()); insertServersQuery.bindValue(":networkid", info.networkId.toInt()); @@ -358,13 +357,13 @@ QList SqliteStorage::networks(UserId user) { if(!watchQuery(serversQuery)) return nets; - QVariantList servers; + Network::ServerList servers; while(serversQuery.next()) { - QVariantMap server; - server["Host"] = serversQuery.value(0).toString(); - server["Port"] = serversQuery.value(1).toInt(); - server["Password"] = serversQuery.value(2).toString(); - server["UseSSL"] = serversQuery.value(3).toInt() == 1 ? true : false; + Network::Server server; + server.host = serversQuery.value(0).toString(); + server.port = serversQuery.value(1).toUInt(); + server.password = serversQuery.value(2).toString(); + server.useSsl = serversQuery.value(3).toInt() == 1 ? true : false; servers << server; } net.serverList = servers; @@ -728,7 +727,7 @@ QList SqliteStorage::requestMsgs(UserId user, BufferId bufferId, MsgId return messagelist; } -QList SqliteStorage::requestAllNewMsgs(UserId user, int first, int limit) { +QList SqliteStorage::requestAllMsgs(UserId user, MsgId first, MsgId last, int limit) { QList messagelist; QHash bufferInfoHash; @@ -737,17 +736,22 @@ QList SqliteStorage::requestAllNewMsgs(UserId user, int first, int limi } QSqlQuery query(logDb()); - query.prepare(queryString("select_messagesAllNew")); + if(last == -1) { + query.prepare(queryString("select_messagesAllNew")); + } else { + query.prepare(queryString("select_messagesAll")); + query.bindValue(":lastmsg", last.toInt()); + } query.bindValue(":userid", user.toInt()); - query.bindValue(":firstmsg", first); + query.bindValue(":firstmsg", first.toInt()); query.bindValue(":limit", limit); safeExec(query); watchQuery(query); while(query.next()) { - Message msg(QDateTime::fromTime_t(query.value(1).toInt()), - bufferInfoHash[query.value(2).toInt()], + Message msg(QDateTime::fromTime_t(query.value(2).toInt()), + bufferInfoHash[query.value(1).toInt()], (Message::Type)query.value(3).toUInt(), query.value(6).toString(), query.value(5).toString(),