X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcore%2Fsqlitestorage.cpp;h=d81deeeff9f839d4e72bffdc6ef68564dbcac885;hb=8699dd758516d0ded076811e8ea656adc95e69d0;hp=fcb0700d506ebcbedb81364996ef74db42f572cb;hpb=97d674034551438238c568e8b42efb08e1ba7354;p=quassel.git diff --git a/src/core/sqlitestorage.cpp b/src/core/sqlitestorage.cpp index fcb0700d..d81deeef 100644 --- a/src/core/sqlitestorage.cpp +++ b/src/core/sqlitestorage.cpp @@ -1,11 +1,11 @@ /*************************************************************************** - * Copyright (C) 2005-07 by The Quassel Team * + * Copyright (C) 2005-08 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * + * (at your option) version 3. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -62,12 +62,13 @@ QString SqliteStorage::displayName() { } bool SqliteStorage::setup(const QVariantMap &settings) { + Q_UNUSED(settings); bool ok; // this extra scope is needed to be able to remove the database connection later { logDb = QSqlDatabase::addDatabase("QSQLITE", "quassel_setup"); logDb.setDatabaseName(SqliteStorage::backlogFile(true)); - bool ok = logDb.open(); + ok = logDb.open(); if (!ok) { qWarning(tr("Could not open backlog database: %1").arg(logDb.lastError().text()).toAscii()); @@ -135,6 +136,7 @@ bool SqliteStorage::setup(const QVariantMap &settings) { } bool SqliteStorage::init(const QVariantMap &settings) { + Q_UNUSED(settings); bool ok; // i need the extra scope to be able to remove the database connection { @@ -167,7 +169,7 @@ bool SqliteStorage::init(const QVariantMap &settings) { // we will need those pretty often... so let's speed things up: createBufferQuery = new QSqlQuery(logDb); - createBufferQuery->prepare("INSERT INTO buffer (userid, networkid, buffername) VALUES (:userid, (SELECT networkid FROM network WHERE networkname = :networkname), :buffername)"); + createBufferQuery->prepare("INSERT INTO buffer (userid, networkid, buffername) VALUES (:userid, (SELECT networkid FROM network WHERE networkname = :networkname AND userid = :userid2), :buffername)"); createNetworkQuery = new QSqlQuery(logDb); createNetworkQuery->prepare("INSERT INTO network (userid, networkname) VALUES (:userid, :networkname)"); @@ -175,7 +177,7 @@ bool SqliteStorage::init(const QVariantMap &settings) { getBufferInfoQuery = new QSqlQuery(logDb); getBufferInfoQuery->prepare("SELECT bufferid FROM buffer " "JOIN network ON buffer.networkid = network.networkid " - "WHERE network.networkname = :networkname AND buffer.userid = :userid AND lower(buffer.buffername) = lower(:buffername)"); + "WHERE network.networkname = :networkname AND network.userid = :userid AND buffer.userid = :userid2 AND lower(buffer.buffername) = lower(:buffername)"); logMessageQuery = new QSqlQuery(logDb); logMessageQuery->prepare("INSERT INTO backlog (time, bufferid, type, flags, senderid, message) " @@ -311,6 +313,7 @@ void SqliteStorage::delUser(UserId user) { void SqliteStorage::createBuffer(UserId user, const QString &network, const QString &buffer) { createBufferQuery->bindValue(":userid", user); + createBufferQuery->bindValue(":userid2", user); // Qt can't handle same placeholder twice (maybe sqlites fault) createBufferQuery->bindValue(":networkname", network); createBufferQuery->bindValue(":buffername", buffer); createBufferQuery->exec(); @@ -359,6 +362,7 @@ BufferInfo SqliteStorage::getBufferInfo(UserId user, const QString &network, con uint networkId = getNetworkId(user, network); getBufferInfoQuery->bindValue(":networkname", network); getBufferInfoQuery->bindValue(":userid", user); + getBufferInfoQuery->bindValue(":userid2", user); // Qt can't handle same placeholder twice... though I guess it's sqlites fault getBufferInfoQuery->bindValue(":buffername", buffer); getBufferInfoQuery->exec(); @@ -521,7 +525,7 @@ QList SqliteStorage::requestMsgRange(BufferInfo buffer, int first, int QString SqliteStorage::backlogFile(bool createPath) { // kinda ugly, but I currently see no other way to do that -#ifdef _WINDOWS +#ifdef Q_OS_WIN32 QString quasselDir = QDir::homePath() + qgetenv("APPDATA") + "\\quassel\\"; #else QString quasselDir = QDir::homePath() + "/.quassel/";