Flowbox polish.
This commit is contained in:
parent
0e2d8ffd37
commit
27c73e3d30
@ -12,11 +12,21 @@
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="shadow_type">in</property>
|
<property name="shadow_type">in</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkViewport" id="view">
|
<object class="GtkViewport">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<placeholder/>
|
<object class="GtkFlowBox" id="flowbox">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">start</property>
|
||||||
|
<property name="homogeneous">True</property>
|
||||||
|
<property name="column_spacing">5</property>
|
||||||
|
<property name="row_spacing">2</property>
|
||||||
|
<property name="max_children_per_line">20</property>
|
||||||
|
<property name="selection_mode">none</property>
|
||||||
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
|||||||
@ -97,10 +97,9 @@ fn on_flowbox_child_activate(db: &Database, stack: >k::Stack, parent: &Podcast
|
|||||||
fn setup_podcasts_flowbox(db: &Database, stack: >k::Stack) {
|
fn setup_podcasts_flowbox(db: &Database, stack: >k::Stack) {
|
||||||
let builder = gtk::Builder::new_from_string(include_str!("../../gtk/podcasts_view.ui"));
|
let builder = gtk::Builder::new_from_string(include_str!("../../gtk/podcasts_view.ui"));
|
||||||
let fb_parent: gtk::Box = builder.get_object("fb_parent").unwrap();
|
let fb_parent: gtk::Box = builder.get_object("fb_parent").unwrap();
|
||||||
let view: gtk::Viewport = builder.get_object("view").unwrap();
|
|
||||||
|
|
||||||
let flowbox = init_flowbox(db, stack);
|
let flowbox: gtk::FlowBox = builder.get_object("flowbox").unwrap();
|
||||||
view.add(&flowbox);
|
init_flowbox(db, stack, &flowbox);
|
||||||
|
|
||||||
stack.add_named(&fb_parent, "fb_parent");
|
stack.add_named(&fb_parent, "fb_parent");
|
||||||
stack.set_visible_child(&fb_parent);
|
stack.set_visible_child(&fb_parent);
|
||||||
@ -117,10 +116,9 @@ pub fn setup_stack(db: &Database) -> gtk::Stack {
|
|||||||
pub fn update_podcasts_view(db: &Database, stack: >k::Stack) {
|
pub fn update_podcasts_view(db: &Database, stack: >k::Stack) {
|
||||||
let builder = gtk::Builder::new_from_string(include_str!("../../gtk/podcasts_view.ui"));
|
let builder = gtk::Builder::new_from_string(include_str!("../../gtk/podcasts_view.ui"));
|
||||||
let fb_parent: gtk::Box = builder.get_object("fb_parent").unwrap();
|
let fb_parent: gtk::Box = builder.get_object("fb_parent").unwrap();
|
||||||
let view: gtk::Viewport = builder.get_object("view").unwrap();
|
|
||||||
|
|
||||||
let flowbox = init_flowbox(db, stack);
|
let flowbox: gtk::FlowBox = builder.get_object("flowbox").unwrap();
|
||||||
view.add(&flowbox);
|
init_flowbox(db, stack, &flowbox);
|
||||||
|
|
||||||
let old = stack.get_child_by_name("fb_parent").unwrap();
|
let old = stack.get_child_by_name("fb_parent").unwrap();
|
||||||
let vis = stack.get_visible_child_name().unwrap();
|
let vis = stack.get_visible_child_name().unwrap();
|
||||||
@ -135,9 +133,7 @@ pub fn update_podcasts_view(db: &Database, stack: >k::Stack) {
|
|||||||
old.destroy();
|
old.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn init_flowbox(db: &Database, stack: >k::Stack) -> gtk::FlowBox {
|
fn init_flowbox(db: &Database, stack: >k::Stack, flowbox: >k::FlowBox) {
|
||||||
let flowbox = gtk::FlowBox::new();
|
|
||||||
|
|
||||||
// TODO: handle unwraps.
|
// TODO: handle unwraps.
|
||||||
flowbox.connect_child_activated(clone!(db, stack => move |_, child| {
|
flowbox.connect_child_activated(clone!(db, stack => move |_, child| {
|
||||||
// This is such an ugly hack...
|
// This is such an ugly hack...
|
||||||
@ -150,5 +146,4 @@ fn init_flowbox(db: &Database, stack: >k::Stack) -> gtk::FlowBox {
|
|||||||
}));
|
}));
|
||||||
// Populate the flowbox with the Podcasts.
|
// Populate the flowbox with the Podcasts.
|
||||||
populate_flowbox(db, stack, &flowbox);
|
populate_flowbox(db, stack, &flowbox);
|
||||||
flowbox
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user