Renamed stack children.
This commit is contained in:
parent
dcc541d832
commit
3fca086d14
@ -18,6 +18,8 @@ pub struct Content {
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
// TODO: find a way to wrap gtk::Stack into a State machine.
|
||||
pub enum ContentState {
|
||||
Widget(PodcastWidget),
|
||||
Empty(EmptyView),
|
||||
@ -49,12 +51,12 @@ impl Content {
|
||||
self.stack
|
||||
.set_transition_type(gtk::StackTransitionType::SlideLeftRight);
|
||||
|
||||
self.stack.add_named(&self.widget.container, "pdw"); // Rename into "widget"
|
||||
self.stack.add_named(&self.podcasts.container, "fb_parent"); // Rename into "podcasts"
|
||||
self.stack.add_named(&self.empty.container, "empty"); // Rename into "empty"
|
||||
self.stack.add_named(&self.widget.container, "widget");
|
||||
self.stack.add_named(&self.podcasts.container, "podcasts");
|
||||
self.stack.add_named(&self.empty.container, "empty");
|
||||
|
||||
// FIXME: needs actuall logic
|
||||
self.stack.set_visible_child_name("fb_parent")
|
||||
self.stack.set_visible_child_name("podcasts")
|
||||
}
|
||||
|
||||
fn init(&self) {
|
||||
|
||||
@ -62,8 +62,8 @@ impl Header {
|
||||
// and add a StackSwitcher when more views are added.
|
||||
self.home.connect_clicked(clone!(stack => move |_| {
|
||||
let vis = stack.get_visible_child_name().unwrap();
|
||||
stack.set_visible_child_name("fb_parent");
|
||||
if vis != "pdw" {
|
||||
stack.set_visible_child_name("podcasts");
|
||||
if vis != "widget" {
|
||||
update_podcasts_view(&stack);
|
||||
}
|
||||
}));
|
||||
|
||||
@ -132,13 +132,13 @@ impl PodcastChild {
|
||||
}
|
||||
|
||||
fn on_flowbox_child_activate(stack: >k::Stack, parent: &Podcast) {
|
||||
let old = stack.get_child_by_name("pdw").unwrap();
|
||||
let old = stack.get_child_by_name("widget").unwrap();
|
||||
let pdw = PodcastWidget::new();
|
||||
pdw.init(stack, parent);
|
||||
|
||||
stack.remove(&old);
|
||||
stack.add_named(&pdw.container, "pdw");
|
||||
stack.set_visible_child_name("pdw");
|
||||
stack.add_named(&pdw.container, "widget");
|
||||
stack.set_visible_child_name("widget");
|
||||
|
||||
// aggresive memory cleanup
|
||||
// probably not needed
|
||||
@ -147,17 +147,17 @@ fn on_flowbox_child_activate(stack: >k::Stack, parent: &Podcast) {
|
||||
|
||||
pub fn update_podcasts_view(stack: >k::Stack) {
|
||||
let vis = stack.get_visible_child_name().unwrap();
|
||||
let old = stack.get_child_by_name("fb_parent").unwrap();
|
||||
let old = stack.get_child_by_name("podcasts").unwrap();
|
||||
stack.remove(&old);
|
||||
|
||||
let pdw = PopulatedView::new();
|
||||
pdw.init(stack);
|
||||
stack.add_named(&pdw.container, "fb_parent");
|
||||
stack.add_named(&pdw.container, "podcasts");
|
||||
let flowbox = &pdw.flowbox;
|
||||
|
||||
if vis == "empty" && !flowbox.get_children().is_empty() {
|
||||
stack.set_visible_child_name("fb_parent");
|
||||
} else if vis == "fb_parent" && flowbox.get_children().is_empty() {
|
||||
stack.set_visible_child_name("podcasts");
|
||||
} else if vis == "podcasts" && flowbox.get_children().is_empty() {
|
||||
stack.set_visible_child_name("empty");
|
||||
} else {
|
||||
// preserve the visible widget
|
||||
|
||||
@ -103,7 +103,7 @@ fn on_unsub_button_clicked(stack: >k::Stack, pd: &Podcast, unsub_button: >k:
|
||||
}
|
||||
};
|
||||
}
|
||||
stack.set_visible_child_name("fb_parent");
|
||||
stack.set_visible_child_name("podcasts");
|
||||
update_podcasts_view(stack);
|
||||
}
|
||||
|
||||
@ -115,13 +115,13 @@ fn on_played_button_clicked(stack: >k::Stack, pd: &Podcast) {
|
||||
|
||||
// Note: Stack manipulation
|
||||
pub fn update_podcast_widget(stack: >k::Stack, pd: &Podcast) {
|
||||
let old = stack.get_child_by_name("pdw").unwrap();
|
||||
let old = stack.get_child_by_name("widget").unwrap();
|
||||
let pdw = PodcastWidget::new();
|
||||
pdw.init(stack, pd);
|
||||
let vis = stack.get_visible_child_name().unwrap();
|
||||
|
||||
stack.remove(&old);
|
||||
stack.add_named(&pdw.container, "pdw");
|
||||
stack.add_named(&pdw.container, "widget");
|
||||
stack.set_visible_child_name(&vis);
|
||||
old.destroy();
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user