mirror of https://github.com/bobwen-dev/hunter
crash fix
This commit is contained in:
parent
e1a9d62b16
commit
9fcc12f464
|
@ -172,10 +172,9 @@ impl ListView<Vec<Process>> {
|
|||
Ok(format!(
|
||||
"{}{}{}{}{}{}",
|
||||
termion::cursor::Save,
|
||||
format!("{}{}{:padding$}{}",
|
||||
format!("{}{:padding$}{}",
|
||||
term::normal_color(),
|
||||
&sized_string,
|
||||
" ",
|
||||
term::normal_color(),
|
||||
padding = padding as usize),
|
||||
termion::cursor::Restore,
|
||||
|
@ -271,6 +270,7 @@ impl ProcView {
|
|||
}
|
||||
|
||||
pub fn remove_proc(&mut self) -> HResult<()> {
|
||||
if self.get_listview().content.len() == 0 { return Ok(()) }
|
||||
self.get_listview().remove_proc()?;
|
||||
self.get_textview().change_to(Box::new(move |_, core| {
|
||||
let mut textview = TextView::new_blank(&core);
|
||||
|
|
|
@ -43,15 +43,28 @@ impl<T> TabView<T> where T: Widget, TabView<T>: Tabbable {
|
|||
|
||||
pub fn push_widget(&mut self, widget: T) -> HResult<()> {
|
||||
self.widgets.push(widget);
|
||||
self.refresh()
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn pop_widget(&mut self) -> HResult<T> {
|
||||
let widget = self.widgets.pop()?;
|
||||
self.refresh()?;
|
||||
if self.widgets.len() <= self.active {
|
||||
self.active -= 1;
|
||||
}
|
||||
Ok(widget)
|
||||
}
|
||||
|
||||
pub fn remove_widget(&mut self, index: usize) -> HResult<()> {
|
||||
let len = self.widgets.len();
|
||||
if len > 1 {
|
||||
self.widgets.remove(index);
|
||||
if index+1 == len {
|
||||
self.active -= 1;
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn active_tab_(&self) -> &T {
|
||||
&self.widgets[self.active]
|
||||
}
|
||||
|
@ -61,8 +74,7 @@ impl<T> TabView<T> where T: Widget, TabView<T>: Tabbable {
|
|||
}
|
||||
|
||||
pub fn close_tab_(&mut self) -> HResult<()> {
|
||||
self.pop_widget()?;
|
||||
self.active -= 1;
|
||||
self.remove_widget(self.active).log();
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue