|
|
|
@ -566,16 +566,31 @@ impl Component for MailListing {
|
|
|
|
|
},
|
|
|
|
|
UIEventType::Input(Key::Char(k @ 'J')) | UIEventType::Input(Key::Char(k @ 'K')) => {
|
|
|
|
|
let folder_length = context.accounts[self.cursor_pos.0].len();
|
|
|
|
|
let accounts_length = context.accounts.len();
|
|
|
|
|
match k {
|
|
|
|
|
'J' if folder_length > 0 && self.new_cursor_pos.1 < folder_length - 1 => {
|
|
|
|
|
'J' if folder_length > 0 => {
|
|
|
|
|
if self.new_cursor_pos.1 < folder_length - 1 {
|
|
|
|
|
self.new_cursor_pos.1 = self.cursor_pos.1 + 1;
|
|
|
|
|
self.dirty = true;
|
|
|
|
|
self.refresh_mailbox(context);
|
|
|
|
|
} else if accounts_length > 0 && self.new_cursor_pos.0 < accounts_length - 1 {
|
|
|
|
|
self.new_cursor_pos.0 = self.cursor_pos.0 + 1;
|
|
|
|
|
self.new_cursor_pos.1 = 0;
|
|
|
|
|
self.dirty = true;
|
|
|
|
|
self.refresh_mailbox(context);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
'K' if self.cursor_pos.1 > 0 => {
|
|
|
|
|
'K' => {
|
|
|
|
|
if self.cursor_pos.1 > 0 {
|
|
|
|
|
self.new_cursor_pos.1 = self.cursor_pos.1 - 1;
|
|
|
|
|
self.dirty = true;
|
|
|
|
|
self.refresh_mailbox(context);
|
|
|
|
|
} else if self.cursor_pos.0 > 0 {
|
|
|
|
|
self.new_cursor_pos.0 = self.cursor_pos.0 - 1;
|
|
|
|
|
self.new_cursor_pos.1 = 0;
|
|
|
|
|
self.dirty = true;
|
|
|
|
|
self.refresh_mailbox(context);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
_ => {
|
|
|
|
|
},
|
|
|
|
@ -611,10 +626,8 @@ impl Component for MailListing {
|
|
|
|
|
self.dirty = true;
|
|
|
|
|
},
|
|
|
|
|
UIEventType::Action(ref action) => {
|
|
|
|
|
eprintln!("got action");
|
|
|
|
|
match action {
|
|
|
|
|
Action::MailListing(MailListingAction::ToggleThreaded) => {
|
|
|
|
|
eprintln!("toggled");
|
|
|
|
|
context.accounts[self.cursor_pos.0].runtime_settings.threaded = !context.accounts[self.cursor_pos.0].runtime_settings.threaded;
|
|
|
|
|
self.refresh_mailbox(context);
|
|
|
|
|
self.dirty = true;
|
|
|
|
@ -622,10 +635,7 @@ impl Component for MailListing {
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
_ => { unreachable!() },
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
_ => {
|
|
|
|
|
},
|
|
|
|
|