Actualizaciones varias: mejoras en cuenta, sincronización, UI
This commit is contained in:
+14
-12
@@ -8,8 +8,8 @@ bool MailItemDao::insert(const MailItem& item)
|
||||
QSqlDatabase& db = DatabaseManager::instance().database();
|
||||
QSqlQuery query(db);
|
||||
query.prepare(
|
||||
"INSERT INTO MailCopy (folderId, messageId, subject, sender, recipient, date, read, flagged, hasAttachment, size, fileId) "
|
||||
"VALUES (:folderId, :messageId, :subject, :sender, :recipient, :date, :read, :flagged, :hasAttachment, :size, :fileId)"
|
||||
"INSERT INTO MailCopy (folderId, messageId, subject, sender, recipient, date, read, flagged, hasAttachment, size, fileId, uid) "
|
||||
"VALUES (:folderId, :messageId, :subject, :sender, :recipient, :date, :read, :flagged, :hasAttachment, :size, :fileId, :uid)"
|
||||
);
|
||||
query.bindValue(":folderId", item.folderId());
|
||||
query.bindValue(":messageId", item.messageId());
|
||||
@@ -22,6 +22,7 @@ bool MailItemDao::insert(const MailItem& item)
|
||||
query.bindValue(":hasAttachment", !item.attachments().isEmpty() ? 1 : 0);
|
||||
query.bindValue(":size", item.size());
|
||||
query.bindValue(":fileId", item.fileId());
|
||||
query.bindValue(":uid", item.uid());
|
||||
|
||||
if (!query.exec()) {
|
||||
qWarning() << "Failed to insert mail item:" << query.lastError().text();
|
||||
@@ -46,7 +47,8 @@ bool MailItemDao::update(const MailItem& item)
|
||||
"flagged = :flagged, "
|
||||
"hasAttachment = :hasAttachment, "
|
||||
"size = :size, "
|
||||
"fileId = :fileId "
|
||||
"fileId = :fileId, "
|
||||
"uid = :uid "
|
||||
"WHERE id = :id"
|
||||
);
|
||||
query.bindValue(":id", item.id());
|
||||
@@ -61,6 +63,7 @@ bool MailItemDao::update(const MailItem& item)
|
||||
query.bindValue(":hasAttachment", !item.attachments().isEmpty() ? 1 : 0);
|
||||
query.bindValue(":size", item.size());
|
||||
query.bindValue(":fileId", item.fileId());
|
||||
query.bindValue(":uid", item.uid());
|
||||
|
||||
if (!query.exec()) {
|
||||
qWarning() << "Failed to update mail item:" << query.lastError().text();
|
||||
@@ -87,7 +90,7 @@ std::optional<MailItem> MailItemDao::findById(qint64 id)
|
||||
{
|
||||
QSqlDatabase& db = DatabaseManager::instance().database();
|
||||
QSqlQuery query(db);
|
||||
query.prepare("SELECT id, folderId, messageId, subject, sender, recipient, date, read, flagged, hasAttachment, size, fileId FROM MailCopy WHERE id = :id");
|
||||
query.prepare("SELECT id, folderId, messageId, subject, sender, recipient, date, read, flagged, hasAttachment, size, fileId, uid FROM MailCopy WHERE id = :id");
|
||||
query.bindValue(":id", id);
|
||||
|
||||
if (!query.exec()) {
|
||||
@@ -106,12 +109,9 @@ std::optional<MailItem> MailItemDao::findById(qint64 id)
|
||||
item.setDate(query.value(6).toDateTime());
|
||||
item.setRead(query.value(7).toBool());
|
||||
item.setFlagged(query.value(8).toBool());
|
||||
// attachments, size, fileId: we don't have them in the select? Actually we do.
|
||||
// We need to fetch attachments? Not stored in DB as separate column? We have hasAttachment flag but not list.
|
||||
// For simplicity, we leave attachments empty.
|
||||
// We'll set size and fileId.
|
||||
item.setSize(query.value(10).toLongLong());
|
||||
item.setFileId(query.value(11).toString());
|
||||
item.setUid(query.value(12).toLongLong());
|
||||
return item;
|
||||
}
|
||||
return std::nullopt;
|
||||
@@ -122,7 +122,7 @@ QVector<MailItem> MailItemDao::findAll()
|
||||
QVector<MailItem> items;
|
||||
QSqlDatabase& db = DatabaseManager::instance().database();
|
||||
QSqlQuery query(db);
|
||||
if (!query.exec("SELECT id, folderId, messageId, subject, sender, recipient, date, read, flagged, hasAttachment, size, fileId FROM MailCopy")) {
|
||||
if (!query.exec("SELECT id, folderId, messageId, subject, sender, recipient, date, read, flagged, hasAttachment, size, fileId, uid FROM MailCopy")) {
|
||||
qWarning() << "Failed to fetch all mail items:" << query.lastError().text();
|
||||
return items;
|
||||
}
|
||||
@@ -138,9 +138,9 @@ QVector<MailItem> MailItemDao::findAll()
|
||||
item.setDate(query.value(6).toDateTime());
|
||||
item.setRead(query.value(7).toBool());
|
||||
item.setFlagged(query.value(8).toBool());
|
||||
// attachments: we don't have the list, just a flag. We'll leave empty.
|
||||
item.setSize(query.value(10).toLongLong());
|
||||
item.setFileId(query.value(11).toString());
|
||||
item.setUid(query.value(12).toLongLong());
|
||||
items.append(item);
|
||||
}
|
||||
return items;
|
||||
@@ -151,7 +151,7 @@ QVector<MailItem> MailItemDao::findByFolderId(int folderId)
|
||||
QVector<MailItem> items;
|
||||
QSqlDatabase& db = DatabaseManager::instance().database();
|
||||
QSqlQuery query(db);
|
||||
query.prepare("SELECT id, folderId, messageId, subject, sender, recipient, date, read, flagged, hasAttachment, size, fileId FROM MailCopy WHERE folderId = :folderId");
|
||||
query.prepare("SELECT id, folderId, messageId, subject, sender, recipient, date, read, flagged, hasAttachment, size, fileId, uid FROM MailCopy WHERE folderId = :folderId");
|
||||
query.bindValue(":folderId", folderId);
|
||||
|
||||
if (!query.exec()) {
|
||||
@@ -172,6 +172,7 @@ QVector<MailItem> MailItemDao::findByFolderId(int folderId)
|
||||
item.setFlagged(query.value(8).toBool());
|
||||
item.setSize(query.value(10).toLongLong());
|
||||
item.setFileId(query.value(11).toString());
|
||||
item.setUid(query.value(12).toLongLong());
|
||||
items.append(item);
|
||||
}
|
||||
return items;
|
||||
@@ -182,7 +183,7 @@ QVector<MailItem> MailItemDao::findByFolderIdSinceUid(int folderId, qint64 since
|
||||
QVector<MailItem> items;
|
||||
QSqlDatabase& db = DatabaseManager::instance().database();
|
||||
QSqlQuery query(db);
|
||||
query.prepare("SELECT id, folderId, messageId, subject, sender, recipient, date, read, flagged, hasAttachment, size, fileId FROM MailCopy WHERE folderId = :folderId AND id > :sinceUid");
|
||||
query.prepare("SELECT id, folderId, messageId, subject, sender, recipient, date, read, flagged, hasAttachment, size, fileId, uid FROM MailCopy WHERE folderId = :folderId AND id > :sinceUid");
|
||||
query.bindValue(":folderId", folderId);
|
||||
query.bindValue(":sinceUid", sinceUid);
|
||||
|
||||
@@ -204,6 +205,7 @@ QVector<MailItem> MailItemDao::findByFolderIdSinceUid(int folderId, qint64 since
|
||||
item.setFlagged(query.value(8).toBool());
|
||||
item.setSize(query.value(10).toLongLong());
|
||||
item.setFileId(query.value(11).toString());
|
||||
item.setUid(query.value(12).toLongLong());
|
||||
items.append(item);
|
||||
}
|
||||
return items;
|
||||
|
||||
Reference in New Issue
Block a user