Removed ListStore entirely.

This commit is contained in:
Jordan Petridis
2017-10-24 00:25:48 +03:00
parent 8a313c145b
commit e2a06fc074
6 changed files with 11 additions and 101 deletions
+4 -62
View File
@@ -24,65 +24,6 @@ macro_rules! clone {
);
}
// NOT IN USE.
// TRYING OUT STORELESS ATM.
pub fn populate_podcasts_flowbox(db: &Database, stack: &gtk::Stack, flowbox: &gtk::FlowBox) {
let tempdb = db.lock().unwrap();
let pd_model = podcast_liststore(&tempdb);
drop(tempdb);
// Get a ListStore iterator at the first element.
let iter = if let Some(it) = pd_model.get_iter_first() {
it
} else {
// stolen from gnome-news.
let builder = include_str!("../../gtk/empty_view.ui");
let builder = gtk::Builder::new_from_string(builder);
let view: gtk::Box = builder.get_object("empty_view").unwrap();
stack.add_named(&view, "empty");
stack.set_visible_child_name("empty");
info!("Empty view.");
return;
};
loop {
let title = pd_model
.get_value(&iter, 1)
.get::<String>()
.unwrap_or_default();
let description = pd_model.get_value(&iter, 2).get::<String>();
let image_uri = pd_model.get_value(&iter, 4).get::<String>();
let pixbuf = get_pixbuf_from_path(image_uri.as_ref().map(|s| s.as_str()), &title);
let f = create_flowbox_child(&title, pixbuf.clone());
f.connect_activate(clone!(stack, db => move |_| {
let old = stack.get_child_by_name("pdw").unwrap();
let pdw = podcast_widget(
&db,
Some(title.as_str()),
description.as_ref().map(|x| x.as_str()),
pixbuf.clone(),
);
stack.remove(&old);
stack.add_named(&pdw, "pdw");
stack.set_visible_child(&pdw);
// aggresive memory cleanup
// probably not needed
old.destroy();
println!("Hello World!, child activated");
}));
flowbox.add(&f);
if !pd_model.iter_next(&iter) {
break;
}
}
flowbox.show_all();
}
fn show_empty_view(stack: &gtk::Stack) {
let builder = include_str!("../../gtk/empty_view.ui");
let builder = gtk::Builder::new_from_string(builder);
@@ -93,7 +34,7 @@ fn show_empty_view(stack: &gtk::Stack) {
info!("Empty view.");
}
pub fn populate_flowbox_no_store(db: &Database, stack: &gtk::Stack, flowbox: &gtk::FlowBox) {
fn populate_flowbox(db: &Database, stack: &gtk::Stack, flowbox: &gtk::FlowBox) {
let podcasts = {
let db = db.lock().unwrap();
dbqueries::get_podcasts(&db)
@@ -114,6 +55,7 @@ pub fn populate_flowbox_no_store(db: &Database, stack: &gtk::Stack, flowbox: &gt
} else {
show_empty_view(stack);
}
flowbox.show_all();
}
fn setup_podcast_widget(db: &Database, stack: &gtk::Stack) {
@@ -133,7 +75,7 @@ fn setup_podcasts_grid(db: &Database, stack: &gtk::Stack) {
let flowbox: gtk::FlowBox = builder.get_object("flowbox").unwrap();
// Populate the flowbox with the Podcasts.
// populate_podcasts_flowbox(db, stack, &flowbox);
populate_flowbox_no_store(db, stack, &flowbox);
populate_flowbox(db, stack, &flowbox);
}
pub fn setup_stack(db: &Database) -> gtk::Stack {
@@ -150,7 +92,7 @@ pub fn update_podcasts_view(db: &Database, stack: &gtk::Stack) {
let flowbox: gtk::FlowBox = builder.get_object("flowbox").unwrap();
// Populate the flowbox with the Podcasts.
populate_podcasts_flowbox(db, stack, &flowbox);
populate_flowbox(db, stack, &flowbox);
let old = stack.get_child_by_name("pd_grid").unwrap();
let vis = stack.get_visible_child_name().unwrap();