gui/sidebar: Change notebook page through the sidebar
And make sure other sidebar views are deselected. Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
6c653c6a79
commit
eb137c4339
|
@ -28,6 +28,22 @@ void __sidebar_resize(GtkPaned *pane, GParamSpec *pspec, gpointer data)
|
||||||
gui_settings_set(SIDEBAR_SETTING, gtk_paned_get_position(pane));
|
gui_settings_set(SIDEBAR_SETTING, gtk_paned_get_position(pane));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void __sidebar_selection_changed(GtkTreeSelection *selection, gpointer data)
|
||||||
|
{
|
||||||
|
GtkNotebook *notebook = GTK_NOTEBOOK(gui_builder_widget("o_notebook"));
|
||||||
|
GtkTreeModel *model = GTK_TREE_MODEL(sb_store);
|
||||||
|
GtkTreeIter iter;
|
||||||
|
|
||||||
|
if (gtk_tree_selection_get_selected(selection, &model, &iter)) {
|
||||||
|
GtkTreePath *path = gtk_tree_model_get_path(model, &iter);
|
||||||
|
unsigned int page = gtk_tree_path_get_indices(path)[0];
|
||||||
|
|
||||||
|
gtk_notebook_set_current_page(notebook, page);
|
||||||
|
gui_sidebar_selected(SB_SIDEBAR);
|
||||||
|
gtk_tree_path_free(path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void __sidebar_deselect(const gchar *widget)
|
void __sidebar_deselect(const gchar *widget)
|
||||||
{
|
{
|
||||||
GtkTreeView *treeview = GTK_TREE_VIEW(gui_builder_widget(widget));
|
GtkTreeView *treeview = GTK_TREE_VIEW(gui_builder_widget(widget));
|
||||||
|
@ -70,4 +86,6 @@ void gui_sidebar_selected(enum sidebar_selection_t selected)
|
||||||
__sidebar_deselect("o_collection_view");
|
__sidebar_deselect("o_collection_view");
|
||||||
if (selected != SB_PLAYLIST)
|
if (selected != SB_PLAYLIST)
|
||||||
__sidebar_deselect("o_playlist_view");
|
__sidebar_deselect("o_playlist_view");
|
||||||
|
if (selected != SB_SIDEBAR)
|
||||||
|
__sidebar_deselect("o_sidebar_view");
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
enum sidebar_selection_t {
|
enum sidebar_selection_t {
|
||||||
SB_COLLECTION,
|
SB_COLLECTION,
|
||||||
SB_PLAYLIST,
|
SB_PLAYLIST,
|
||||||
|
SB_SIDEBAR,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Called to initialize the sidebar. */
|
/* Called to initialize the sidebar. */
|
||||||
|
|
|
@ -13,6 +13,7 @@ void __audio_seek() {}
|
||||||
|
|
||||||
#ifdef TEST_NEED_SIDEBAR
|
#ifdef TEST_NEED_SIDEBAR
|
||||||
void __sidebar_resize() {}
|
void __sidebar_resize() {}
|
||||||
|
void __sidebar_selection_changed() {}
|
||||||
#endif /* TEST_NEED_SIDEBAR */
|
#endif /* TEST_NEED_SIDEBAR */
|
||||||
|
|
||||||
#ifdef TEST_NEED_COLLECTION
|
#ifdef TEST_NEED_COLLECTION
|
||||||
|
|
|
@ -666,7 +666,9 @@
|
||||||
<property name="level_indentation">10</property>
|
<property name="level_indentation">10</property>
|
||||||
<property name="enable_tree_lines">True</property>
|
<property name="enable_tree_lines">True</property>
|
||||||
<child internal-child="selection">
|
<child internal-child="selection">
|
||||||
<object class="GtkTreeSelection" id="treeview-selection4"/>
|
<object class="GtkTreeSelection" id="treeview-selection4">
|
||||||
|
<signal name="changed" handler="__sidebar_selection_changed" swapped="no"/>
|
||||||
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkTreeViewColumn" id="treeviewcolumn6">
|
<object class="GtkTreeViewColumn" id="treeviewcolumn6">
|
||||||
|
|
Loading…
Reference in New Issue