All messages from selected feeds can be removed now.
This commit is contained in:
parent
17d4122a72
commit
11d28da3bd
|
@ -325,9 +325,6 @@ bool MessagesModel::switchBatchMessageImportance(const QModelIndexList &messages
|
||||||
query_delete_msg.bindValue(":id", message_id);
|
query_delete_msg.bindValue(":id", message_id);
|
||||||
query_delete_msg.bindValue(":important",
|
query_delete_msg.bindValue(":important",
|
||||||
importance == 1 ? 0 : 1);
|
importance == 1 ? 0 : 1);
|
||||||
|
|
||||||
// TODO: dat u vsech funkci ty execy do ifu a kdyz
|
|
||||||
// vratijou false tak udela rollback a vratit funkci s hodnotou false.
|
|
||||||
query_delete_msg.exec();
|
query_delete_msg.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -373,6 +370,8 @@ bool MessagesModel::setBatchMessagesDeleted(const QModelIndexList &messages, int
|
||||||
// FULLY reload the model if underlying data is changed.
|
// FULLY reload the model if underlying data is changed.
|
||||||
select();
|
select();
|
||||||
fetchAll();
|
fetchAll();
|
||||||
|
|
||||||
|
emit feedCountsChanged();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -424,9 +423,43 @@ bool MessagesModel::switchAllMessageImportance() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MessagesModel::setAllMessagesDeleted(int deleted) {
|
bool MessagesModel::setAllMessagesDeleted(int deleted) {
|
||||||
|
QSqlDatabase db_handle = database();
|
||||||
|
|
||||||
|
if (!db_handle.transaction()) {
|
||||||
|
qWarning("Starting transaction for all message deletion.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QSqlQuery query_delete_msg(db_handle);
|
||||||
|
if (!query_delete_msg.prepare(QString("UPDATE messages SET deleted = :deleted "
|
||||||
|
"WHERE feed IN (%1) AND deleted = 0").arg(textualFeeds().join(", ")))) {
|
||||||
|
qWarning("Query preparation failed for message deletion.");
|
||||||
|
|
||||||
|
db_handle.rollback();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
query_delete_msg.bindValue(":deleted", deleted);
|
||||||
|
|
||||||
|
if (!query_delete_msg.exec()) {
|
||||||
|
qDebug("Query execution for all message deletion failed.");
|
||||||
|
db_handle.rollback();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Commit changes.
|
||||||
|
if (db_handle.commit()) {
|
||||||
|
// FULLY reload the model if underlying data is changed.
|
||||||
|
select();
|
||||||
|
fetchAll();
|
||||||
|
|
||||||
|
emit feedCountsChanged();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return db_handle.rollback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool MessagesModel::setAllMessagesRead(int read) {
|
bool MessagesModel::setAllMessagesRead(int read) {
|
||||||
QSqlDatabase db_handle = database();
|
QSqlDatabase db_handle = database();
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,6 @@ class Message {
|
||||||
QDateTime m_updated;
|
QDateTime m_updated;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class MessagesModel : public QSqlTableModel {
|
class MessagesModel : public QSqlTableModel {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,8 @@ void FeedMessageViewer::createConnections() {
|
||||||
SIGNAL(triggered()), m_messagesView, SLOT(openSelectedMessagesInternally()));
|
SIGNAL(triggered()), m_messagesView, SLOT(openSelectedMessagesInternally()));
|
||||||
connect(FormMain::getInstance()->m_ui->m_actionMarkAllMessagesAsRead,
|
connect(FormMain::getInstance()->m_ui->m_actionMarkAllMessagesAsRead,
|
||||||
SIGNAL(triggered()), m_messagesView, SLOT(setAllMessagesRead()));
|
SIGNAL(triggered()), m_messagesView, SLOT(setAllMessagesRead()));
|
||||||
|
connect(FormMain::getInstance()->m_ui->m_actionDeleteAllMessages,
|
||||||
|
SIGNAL(triggered()), m_messagesView, SLOT(setAllMessagesDeleted()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void FeedMessageViewer::initialize() {
|
void FeedMessageViewer::initialize() {
|
||||||
|
|
|
@ -338,6 +338,18 @@ void MessagesView::setAllMessagesUnread() {
|
||||||
setAllMessagesReadStatus(0);
|
setAllMessagesReadStatus(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MessagesView::setAllMessagesDeleteStatus(int deleted) {
|
||||||
|
m_sourceModel->setAllMessagesDeleted(deleted);
|
||||||
|
|
||||||
|
// We deleted completely each and every visible message.
|
||||||
|
// That is why no message can be displayed now.
|
||||||
|
emit currentMessageRemoved();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MessagesView::setAllMessagesDeleted() {
|
||||||
|
setAllMessagesDeleteStatus(1);
|
||||||
|
}
|
||||||
|
|
||||||
void MessagesView::reselectIndexes(const QModelIndexList &indexes) {
|
void MessagesView::reselectIndexes(const QModelIndexList &indexes) {
|
||||||
selectionModel()->clearSelection();
|
selectionModel()->clearSelection();
|
||||||
|
|
||||||
|
|
|
@ -40,6 +40,9 @@ class MessagesView : public QTreeView {
|
||||||
void setAllMessagesRead();
|
void setAllMessagesRead();
|
||||||
void setAllMessagesUnread();
|
void setAllMessagesUnread();
|
||||||
|
|
||||||
|
void setAllMessagesDeleteStatus(int deleted);
|
||||||
|
void setAllMessagesDeleted();
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
// Marks given indexes as selected.
|
// Marks given indexes as selected.
|
||||||
void reselectIndexes(const QModelIndexList &indexes);
|
void reselectIndexes(const QModelIndexList &indexes);
|
||||||
|
|
Loading…
Reference in New Issue