startupcheck signal seems to be causing redraws

closes #33
embed
Manos Pitsidianakis 2018-08-15 15:32:30 +03:00
parent 832d1243de
commit f033463db9
Signed by: Manos Pitsidianakis
GPG Key ID: 73627C2F690DF710
6 changed files with 15 additions and 9 deletions

View File

@ -122,10 +122,10 @@ impl Account {
};
}
pub fn status(&mut self, index: usize) -> result::Result<(), usize> {
pub fn status(&mut self, index: usize) -> result::Result<bool, usize> {
match self.workers[index].as_mut() {
None => {
return Ok(());
return Ok(false);
}
Some(ref mut w) => match w.poll() {
Ok(AsyncStatus::NoUpdate) => {
@ -144,7 +144,7 @@ impl Account {
let m = self.workers[index].take().unwrap().extract();
self.load_mailbox(index, m);
self.workers[index] = None;
Ok(())
Ok(true)
}
}

View File

@ -191,11 +191,15 @@ fn main() {
}
ThreadEvent::UIEvent(UIEventType::StartupCheck) => {
let mut flag = false;
let mut render_flag = false;
for account in &mut state.context.accounts {
let len = account.len();
for i in 0..len {
match account.status(i) {
Ok(()) => { },
Ok(true) => {
render_flag = true;
},
Ok(false) => {},
Err(_) => {
flag |= true;
}
@ -205,7 +209,9 @@ fn main() {
if !flag {
state.finish_startup();
}
state.render();
if render_flag {
state.render();
}
}
ThreadEvent::UIEvent(e) => {
state.rcv_event(UIEvent { id: 0, event_type: e});

View File

@ -86,7 +86,7 @@ impl CompactMailListing {
//
loop {
// TODO: Show progress visually
if let Ok(()) = context.accounts[self.cursor_pos.0].status(self.cursor_pos.1) {
if let Ok(_) = context.accounts[self.cursor_pos.0].status(self.cursor_pos.1) {
break;
}
}

View File

@ -106,7 +106,7 @@ impl MailListing {
//
loop {
// TODO: Show progress visually
if let Ok(()) = context.accounts[self.cursor_pos.0].status(self.cursor_pos.1) {
if let Ok(_) = context.accounts[self.cursor_pos.0].status(self.cursor_pos.1) {
break;
}
}

View File

@ -136,7 +136,7 @@ impl AccountMenu {
) -> () {
let len = s.len();
match context.accounts[index].status(root) {
Ok(()) => {}
Ok(_) => {}
Err(_) => {
return;
// TODO: Show progress visually

View File

@ -474,7 +474,7 @@ impl Component for StatusBar {
match &event.event_type {
UIEventType::RefreshMailbox((ref idx_a, ref idx_f)) => {
match context.accounts[*idx_a].status(*idx_f) {
Ok(()) => {}
Ok(_) => {}
Err(_) => {
return;
}