[plasma-mobile/raven] src: Set folder nullptr, if there is no inbox found. Delete messages with
Devin Lin <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit 1d1a1fccc4f615cf1a301fcd17f4edb5c1e87834 by Devin Lin, on behalf of Alexander Malygin.
Committed on 20/07/2026 at 17:56.
Pushed by devinlin into branch 'master'.
Set folder nullptr, if there is no inbox found. Delete messages with
folderId
M +3 -5 src/raven/modelviews/mailboxmodel.cpp
M +6 -0 src/raven/modelviews/maillistmodel.cpp
M +2 -1 src/raven/raven.cpp
M +1 -0 src/ravend/src/db/operations.rs
https://invent.kde.org/plasma-mobile/raven/-/commit/1d1a1fccc4f615cf1a301fcd17f4edb5c1e87834
diff --git a/src/raven/modelviews/mailboxmodel.cpp b/src/raven/modelviews/mailboxmodel.cpp
index 27afbd2..040239c 100644
--- a/src/raven/modelviews/mailboxmodel.cpp
+++ b/src/raven/modelviews/mailboxmodel.cpp
@@ -180,12 +180,10 @@ void MailBoxModel::load()
if (currentFolder) {
MailListModel::self()->loadFolder(currentFolder);
- }
- else {
+ } else {
Folder *inbox = findInboxFolder();
- if(inbox) {
- MailListModel::self()->loadFolder(inbox);
- }
+
+ MailListModel::self()->loadFolder(inbox);
}
}
endResetModel();
diff --git a/src/raven/modelviews/maillistmodel.cpp b/src/raven/modelviews/maillistmodel.cpp
index 47c3f3a..7239020 100644
--- a/src/raven/modelviews/maillistmodel.cpp
+++ b/src/raven/modelviews/maillistmodel.cpp
@@ -233,6 +233,12 @@ void MailListModel::loadFolder(Folder *folder)
return;
}
+ if(!m_currentFolder) {
+ m_threads.clear();
+ endResetModel();
+ return;
+ }
+
m_threads = Thread::fetchByFolder(m_db, folder->id(), folder->accountId(), this, 100);
auto currentDate = QDateTime::currentDateTime();
diff --git a/src/raven/raven.cpp b/src/raven/raven.cpp
index 2613210..4a16ca7 100644
--- a/src/raven/raven.cpp
+++ b/src/raven/raven.cpp
@@ -29,7 +29,8 @@ Raven::Raven(QObject *parent)
// Connect DBWatcher signals to reload models
QObject::connect(dbWatcher, &DBWatcher::foldersChanged, MailBoxModel::self(), [this]() {
MailBoxModel::self()->load();
- this->setSelectedFolderName(MailListModel::self()->currentFolder()->name());
+ if(MailListModel::self()->currentFolder())
+ this->setSelectedFolderName(MailListModel::self()->currentFolder()->name());
});
// Targeted updates for specific message changes (e.g., read/unread, starred)
diff --git a/src/ravend/src/db/operations.rs b/src/ravend/src/db/operations.rs
index c3e9049..37058ba 100644
--- a/src/ravend/src/db/operations.rs
+++ b/src/ravend/src/db/operations.rs
@@ -200,6 +200,7 @@ pub fn delete_folder_by_uid(conn: &Connection, folder_id: &str) -> Result<bool>
conn.execute("DELETE FROM folder WHERE id = ?1", [&folder_id])?;
conn.execute("DELETE FROM thread_folder WHERE folderId = ?1", [&folder_id])?;
+ conn.execute("DELETE FROM message WHERE folderId = ?1", [&folder_id])?;
return Ok(true);
}