summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Ranquet <granquet@baylibre.com>2022-07-19 21:43:01 +0200
committerManos Pitsidianakis <el13635@mail.ntua.gr>2022-08-25 12:52:39 +0300
commitd921b3c3209ff7fe865b5a3b90e20098b3ff211f (patch)
treebb9338db66add2ee0fba9eca1fb9bcbb73fabe1e
parent9205f3b8afe28ef3a68959d590ed967946a5d622 (diff)
downloadmeli-d921b3c3209ff7fe865b5a3b90e20098b3ff211f.zip
compact.rs: use mail sorting parameters from config
Signed-off-by: Guillaume Ranquet <granquet@baylibre.com>
-rw-r--r--src/components/mail/listing/compact.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/components/mail/listing/compact.rs b/src/components/mail/listing/compact.rs
index 66c27eb0..955310c8 100644
--- a/src/components/mail/listing/compact.rs
+++ b/src/components/mail/listing/compact.rs
@@ -165,6 +165,7 @@ pub struct CompactListing {
new_cursor_pos: (AccountHash, MailboxHash, usize),
length: usize,
sort: (SortField, SortOrder),
+ sortcmd: bool,
subsort: (SortField, SortOrder),
all_threads: HashSet<ThreadHash>,
order: HashMap<ThreadHash, usize>,
@@ -316,6 +317,10 @@ impl MailListingTrait for CompactListing {
let threads = account.collection.get_threads(self.cursor_pos.1);
self.order.clear();
+ // Use account settings only if no sortcmd has been used
+ if !self.sortcmd {
+ self.sort = context.accounts[&self.cursor_pos.0].settings.account.order
+ }
self.length = 0;
let mut rows = Vec::with_capacity(1024);
let mut min_width = (0, 0, 0, 0);
@@ -877,6 +882,7 @@ impl CompactListing {
new_cursor_pos: (coordinates.0, coordinates.1, 0),
length: 0,
sort: (Default::default(), Default::default()),
+ sortcmd: false,
subsort: (SortField::Date, SortOrder::Desc),
all_threads: HashSet::default(),
order: HashMap::default(),
@@ -1791,6 +1797,7 @@ impl Component for CompactListing {
Action::Sort(field, order) if !self.unfocused => {
debug!("Sort {:?} , {:?}", field, order);
self.sort = (*field, *order);
+ self.sortcmd = true;
if !self.filtered_selection.is_empty() {
// FIXME: perform sort
self.dirty = true;