ocarina: Move some songlist functions to a new file

This splits out more functions, and makes the songlist more maintainable
overall.
This commit is contained in:
Bryan Schumaker 2011-10-28 13:59:53 -04:00
parent 6c5412a3d5
commit 1fee8e50b3
2 changed files with 44 additions and 42 deletions

44
ocarina/songlist/fill.cpp Normal file
View File

@ -0,0 +1,44 @@
#include <ocarina/songlist.h>
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();
}

View File

@ -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();
}