diff --git a/gui/collection.cpp b/gui/collection.cpp index 61478b46..807e453c 100644 --- a/gui/collection.cpp +++ b/gui/collection.cpp @@ -90,7 +90,7 @@ static struct FilterDesc filter_desc; * Basic tab setup */ -struct TabType *init_collection_tab() +void init_collection_tab() { model = Glib::RefPtr(new PlayqueueModel(library_pq())); @@ -102,5 +102,5 @@ struct TabType *init_collection_tab() get_random_button()->signal_toggled().connect(sigc::ptr_fun(on_random_toggled)); - return &collection_funcs; + register_tab_type(&collection_funcs); } diff --git a/gui/history.cpp b/gui/history.cpp index 7bb3d4ad..bd736d34 100644 --- a/gui/history.cpp +++ b/gui/history.cpp @@ -81,7 +81,7 @@ static struct FilterDesc filter_desc; * Basic tab setup */ -struct TabType *init_history_tab() +void init_history_tab() { model = Glib::RefPtr(new PlayqueueModel(history_pq())); @@ -91,5 +91,5 @@ struct TabType *init_history_tab() get_widget("o_history_treeview")->set_model(filter_desc.filter); - return &history_funcs; + register_tab_type(&history_funcs); } diff --git a/gui/playlist.cpp b/gui/playlist.cpp index 7eafa998..e0c1eaf5 100644 --- a/gui/playlist.cpp +++ b/gui/playlist.cpp @@ -100,7 +100,7 @@ static struct TabType playlist_funcs = { * Basic tab setup */ -struct TabType *init_playlist_tab() +void init_playlist_tab() { Gtk::TreeView *playlist = get_playlist_treeview(); @@ -111,5 +111,5 @@ struct TabType *init_playlist_tab() playlist->signal_button_press_event().connect(sigc::ptr_fun(on_playlist_clicked)); playlist->set_cursor(Gtk::TreePath("0")); - return &playlist_funcs; + register_tab_type(&playlist_funcs); } diff --git a/gui/tabs.cpp b/gui/tabs.cpp index 6beec7ea..467c8064 100644 --- a/gui/tabs.cpp +++ b/gui/tabs.cpp @@ -829,15 +829,20 @@ void init_tabs() init_menu_item("o_pq_8", 8); init_menu_item("o_pq_9", 9);*/ - tab_types.push_back(init_collection_tab()); - tab_types.push_back(init_history_tab()); - tab_types.push_back(init_playlist_tab()); + init_collection_tab(); + init_history_tab(); + init_playlist_tab(); notebook->signal_switch_page().connect(sigc::ptr_fun(on_switch_page)); notebook->signal_page_reordered().connect(sigc::ptr_fun(on_page_reordered)); notebook->set_current_page(0); } +void register_tab_type(struct TabType *tab) +{ + tab_types.push_back(tab); +} + void init_tabs2() { std::map::iterator it; diff --git a/include/tabs.h b/include/tabs.h index b50e1685..03e6eaf2 100644 --- a/include/tabs.h +++ b/include/tabs.h @@ -41,17 +41,17 @@ static inline std::string itoa(unsigned int i) /* collection.cpp */ -struct TabType *init_collection_tab(); +void init_collection_tab(); /* history.cpp */ -struct TabType *init_history_tab(); +void init_history_tab(); /* playlist.cpp */ -struct TabType *init_playlist_tab(); +void init_playlist_tab(); /* tabs.cpp */ - void init_filter(struct FilterDesc *); +void register_tab_type(struct TabType *);