diff --git a/ocarina/songlist/fill.cpp b/ocarina/songlist/fill.cpp new file mode 100644 index 00000000..35a01803 --- /dev/null +++ b/ocarina/songlist/fill.cpp @@ -0,0 +1,44 @@ + +#include + +void SongList::freeze() +{ + gtk_widget_freeze_child_notify(treeview); + gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), NULL); +} + +void SongList::thaw() +{ + gtk_widget_thaw_child_notify(treeview); + gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), GTK_TREE_MODEL(liststore)); +} + +void SongList::clear() +{ + freeze(); + gtk_list_store_clear(liststore); + thaw(); +} + +void SongList::insert(Track &track) +{ + gtk_list_store_insert_with_values(liststore, NULL, ins_next, + 0, track.get_inode(), + 1, track.get_track(), + 2, track.get_title().c_str(), + 3, track.get_lenstr().c_str(), + 4, track.get_artist().c_str(), + 5, track.get_album().c_str(), + 6, track.get_year(), + -1); + ins_next++; +} + +void SongList::fill() +{ + freeze(); + ins_next = 0; + list_funcs->for_each(list_funcs->insert_track); + thaw(); + set_label_text(); +} diff --git a/ocarina/songlist/songlist.cpp b/ocarina/songlist/songlist.cpp index 5840442e..35da3933 100644 --- a/ocarina/songlist/songlist.cpp +++ b/ocarina/songlist/songlist.cpp @@ -42,45 +42,3 @@ void SongList::set_label_text() gtk_label_set_text(GTK_LABEL(label), res.c_str()); } - -void SongList::freeze() -{ - gtk_widget_freeze_child_notify(treeview); - gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), NULL); -} - -void SongList::thaw() -{ - gtk_widget_thaw_child_notify(treeview); - gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), GTK_TREE_MODEL(liststore)); -} - -void SongList::clear() -{ - freeze(); - gtk_list_store_clear(liststore); - thaw(); -} - -void SongList::insert(Track &track) -{ - gtk_list_store_insert_with_values(liststore, NULL, ins_next, - 0, track.get_inode(), - 1, track.get_track(), - 2, track.get_title().c_str(), - 3, track.get_lenstr().c_str(), - 4, track.get_artist().c_str(), - 5, track.get_album().c_str(), - 6, track.get_year(), - -1); - ins_next++; -} - -void SongList::fill() -{ - freeze(); - ins_next = 0; - list_funcs->for_each(list_funcs->insert_track); - thaw(); - set_label_text(); -}