Some work on message operations.

This commit is contained in:
Martin Rotter 2014-02-25 14:16:51 +01:00
parent bbc52e31ea
commit 6da3b9da64

View File

@ -369,42 +369,44 @@ bool MessagesModel::setBatchMessagesDeleted(const QModelIndexList &messages, int
bool MessagesModel::setBatchMessagesRead(const QModelIndexList &messages, int read) { bool MessagesModel::setBatchMessagesRead(const QModelIndexList &messages, int read) {
QSqlDatabase db_handle = database(); QSqlDatabase db_handle = database();
if (!db_handle.transaction()) { /*if (!db_handle.transaction()) {
qWarning("Starting transaction for batch message read change."); qWarning("Starting transaction for batch message read change.");
return false; return false;
} }*/
int message_id; // TODO: pokracovat tady
//int message_id;
QSqlQuery query_read_msg(db_handle); QSqlQuery query_read_msg(db_handle);
QStringList message_ids;
query_read_msg.setForwardOnly(true); query_read_msg.setForwardOnly(true);
if (!query_read_msg.prepare("UPDATE messages SET is_read = :read "
"WHERE id = :id")) {
qWarning("Query preparation failed for message read change.");
db_handle.rollback();
return false;
}
foreach (const QModelIndex &message, messages) { foreach (const QModelIndex &message, messages) {
message_ids.append(QString::number(messageId(message.row())));
/*
message_id = messageId(message.row()); message_id = messageId(message.row());
query_read_msg.bindValue(":id", message_id); query_read_msg.bindValue(":id", message_id);
query_read_msg.bindValue(":read", read); query_read_msg.bindValue(":read", read);
query_read_msg.exec(); query_read_msg.exec();
*/
} }
query_read_msg.exec(QString("UPDATE messages SET is_read = %2 "
"WHERE id IN (%1)").arg(message_ids.join(", "),
QString::number(read)));
// Commit changes. // Commit changes.
if (db_handle.commit()) { /*if (db_handle.commit()) {
// FULLY reload the model if underlying data is changed. // FULLY reload the model if underlying data is changed.*/
select(); select();
fetchAll(); fetchAll();
emit feedCountsChanged(); emit feedCountsChanged();
return true; return true;/*
} }
else { else {
return db_handle.rollback(); return db_handle.rollback();
} }*/
} }
QVariant MessagesModel::headerData(int section, QVariant MessagesModel::headerData(int section,