summaryrefslogtreecommitdiffstats
path: root/src/file_browser.rs
diff options
context:
space:
mode:
authorrabite <rabite@posteo.de>2019-02-18 21:19:50 +0100
committerrabite <rabite@posteo.de>2019-02-18 21:19:50 +0100
commitfe542047c231cff6c1959fe05cb51e177ddfbcc6 (patch)
tree6aa62fe09c1906fbc7416cd5330f9db3a84aa3b5 /src/file_browser.rs
parent52c4a1586ea8d8023329f272bc0d1f76de60ab58 (diff)
traitified(er) tabview
Diffstat (limited to 'src/file_browser.rs')
-rw-r--r--src/file_browser.rs28
1 files changed, 23 insertions, 5 deletions
diff --git a/src/file_browser.rs b/src/file_browser.rs
index f5809a5..322137c 100644
--- a/src/file_browser.rs
+++ b/src/file_browser.rs
@@ -8,20 +8,38 @@ use crate::files::{File, Files};
use crate::listview::ListView;
use crate::miller_columns::MillerColumns;
use crate::widget::Widget;
-use crate::tabview::Tabbable;
+use crate::tabview::{TabView, Tabbable};
#[derive(PartialEq)]
pub struct FileBrowser {
pub columns: MillerColumns<ListView<Files>>,
}
-impl Tabbable<FileBrowser> for FileBrowser {
- fn new_tab(&self) -> FileBrowser {
- FileBrowser::new().unwrap()
+impl Tabbable for TabView<FileBrowser> {
+ fn new_tab(&mut self) {
+ let tab = FileBrowser::new().unwrap();
+ self.push_widget(tab);
+ self.active += 1;
+ }
+
+ fn close_tab(&mut self) {
+ self.close_tab_();
+ }
+
+ fn next_tab(&mut self) {
+ self.next_tab_();
+ }
+
+ fn active_tab(& self) -> & dyn Widget {
+ self.active_tab_()
+ }
+
+ fn active_tab_mut(&mut self) -> &mut dyn Widget {
+ self.active_tab_mut_()
}
fn on_next_tab(&mut self) {
- self.update_preview();
+ self.active_tab_mut().refresh();
}
}