From 595fa8ab95947b5010aaaa7f0438f229f22c500e Mon Sep 17 00:00:00 2001 From: Manos Pitsidianakis Date: Sat, 16 May 2020 13:33:22 +0300 Subject: [PATCH] notmuch: add total message count for mailboxes --- melib/src/backends/notmuch.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/melib/src/backends/notmuch.rs b/melib/src/backends/notmuch.rs index e3cd9d4d4..a489af6f5 100644 --- a/melib/src/backends/notmuch.rs +++ b/melib/src/backends/notmuch.rs @@ -347,6 +347,10 @@ impl MailBackend for NotmuchDb { let database_lck = database.inner.read().unwrap(); let mut mailboxes_lck = mailboxes.write().unwrap(); let mailbox = mailboxes_lck.get_mut(&mailbox_hash).unwrap(); + let mut total_lck = mailbox.total.lock().unwrap(); + let mut unseen_lck = mailbox.unseen.lock().unwrap(); + *total_lck = 0; + *unseen_lck = 0; let query: Query = match Query::new(lib.clone(), &database_lck, mailbox.query_str.as_str()) { Ok(q) => q, @@ -378,6 +382,10 @@ impl MailBackend for NotmuchDb { .entry(env.hash()) .or_default() .push(mailbox_hash); + *total_lck += 1; + if !env.is_seen() { + *unseen_lck += 1; + } ret.push(env); } Err(err) => { @@ -510,6 +518,13 @@ impl MailBackend for NotmuchDb { &query_str, )?; if query.count().unwrap_or(0) > 0 { + let mut total_lck = m.total.lock().unwrap(); + let mut unseen_lck = + m.unseen.lock().unwrap(); + *total_lck += 1; + if !env.is_seen() { + *unseen_lck += 1; + } sender.send(RefreshEvent { account_hash, mailbox_hash, @@ -544,6 +559,9 @@ impl MailBackend for NotmuchDb { mailbox_index_lck.get(&env_hash) { for &mailbox_hash in mailbox_hashes { + let m = &mailboxes_lck[&mailbox_hash]; + let mut total_lck = m.total.lock().unwrap(); + *total_lck = total_lck.saturating_sub(1); sender.send(RefreshEvent { account_hash, mailbox_hash,