[totem] grilo: Add back button
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [totem] grilo: Add back button
- Date: Wed, 8 May 2013 10:36:21 +0000 (UTC)
commit 3b304197bb1d3ad65c5af0371f461a8ca88d8ecb
Author: Bastien Nocera <hadess hadess net>
Date: Mon May 6 14:51:07 2013 +0200
grilo: Add back button
configure.ac | 1 +
src/plugins/grilo/totem-grilo.c | 79 +++++++++++++++++++++++++++++++--------
2 files changed, 64 insertions(+), 16 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 658f14d..8d8c9a9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -249,6 +249,7 @@ PKG_CHECK_MODULES(PROPERTIES, gtk+-3.0 >= $GTK_REQS)
LIBGD_INIT([
tagged-entry
main-icon-view
+ header-bar
static
])
diff --git a/src/plugins/grilo/totem-grilo.c b/src/plugins/grilo/totem-grilo.c
index ab30ad0..a8dad5d 100644
--- a/src/plugins/grilo/totem-grilo.c
+++ b/src/plugins/grilo/totem-grilo.c
@@ -105,6 +105,10 @@ typedef struct {
gint search_remaining;
gchar *search_text;
+ /* Toolbar widgets */
+ GtkWidget *header;
+ GtkWidget *back_button;
+
/* Browser widgets */
GtkWidget *browser;
GtkTreeModel *browser_model;
@@ -733,6 +737,9 @@ set_browser_filter_model_for_path (TotemGriloPlugin *self,
gtk_icon_view_set_model (GTK_ICON_VIEW (self->priv->browser),
self->priv->browser_filter_model);
+
+ gtk_widget_set_visible (self->priv->back_button,
+ path != NULL);
}
static void
@@ -1175,13 +1182,67 @@ get_more_browse_results_cb (GtkAdjustment *adjustment,
}
static void
+back_button_clicked_cb (GtkButton *button,
+ TotemGriloPlugin *self)
+{
+ GtkTreePath *path;
+
+ g_assert (self->priv->browser_filter_model);
+ g_object_get (G_OBJECT (self->priv->browser_filter_model), "virtual-root", &path, NULL);
+ g_assert (path);
+
+ gtk_tree_path_up (path);
+ if (gtk_tree_path_get_depth (path) == 0)
+ set_browser_filter_model_for_path (self, NULL);
+ else
+ set_browser_filter_model_for_path (self, path);
+ gtk_tree_path_free (path);
+}
+
+static void
setup_sidebar_browse (TotemGriloPlugin *self,
GtkBuilder *builder)
{
+ GtkWidget *button;
+ AtkObject *accessible;
+
+ /* Search */
+ self->priv->revealer = GTK_WIDGET (gtk_builder_get_object (builder, "gw_revealer"));
+ self->priv->search_results_model = GTK_TREE_MODEL (gtk_builder_get_object (builder,
"gw_search_store_results"));
+ self->priv->search_sources_list = GTK_WIDGET (gtk_builder_get_object (builder,
"gw_search_select_source"));
+ self->priv->search_entry = GTK_WIDGET (gtk_builder_get_object (builder, "gw_search_text"));
+
+ g_signal_connect (self->priv->search_entry, "activate",
+ G_CALLBACK (search_entry_activate_cb),
+ self);
+ //FIXME also setup a timeout for that
+ g_signal_connect (self->priv->search_entry, "notify::selected-id",
+ G_CALLBACK (search_entry_source_changed_cb), self);
+
+ /* Toolbar */
+ self->priv->header = GTK_WIDGET (gtk_builder_get_object (builder, "gw_headerbar"));
+ self->priv->back_button = button = gd_header_simple_button_new ();
+ gd_header_button_set_symbolic_icon_name (GD_HEADER_BUTTON (button),
+ "go-previous-symbolic");
+ gtk_widget_set_no_show_all (button, TRUE);
+ accessible = gtk_widget_get_accessible (button);
+ atk_object_set_name (accessible, _("Back"));
+ gtk_header_bar_pack_start (GTK_HEADER_BAR (self->priv->header), button);
+ g_signal_connect (button, "clicked", G_CALLBACK (back_button_clicked_cb), self);
+
+#if 0
+ self->priv->search_button = button = gd_header_simple_button_new ();
+ gd_header_button_set_symbolic_icon_name (GD_HEADER_BUTTON (button),
+ "go-previous-symbolic");
+ gtk_widget_set_no_show_all (button, TRUE);
+ accessible = gtk_widget_get_accessible (button);
+ atk_object_set_name (accessible, _("Back"));
+ gtk_header_bar_pack_start (GTK_HEADER_BAR (self->priv->header), button);
+ g_signal_connect (button, "clicked", G_CALLBACK (back_button_clicked_cb), self);
+#endif
+ /* Main view */
self->priv->browser_model = GTK_TREE_MODEL (gtk_builder_get_object (builder,
"gw_browse_store_results"));
self->priv->browser = GTK_WIDGET (gtk_builder_get_object (builder, "gw_browse"));
- //FIXME put revealer in a toolbar
- self->priv->revealer = GTK_WIDGET (gtk_builder_get_object (builder, "gw_revealer"));
g_signal_connect (self->priv->browser, "item-activated",
G_CALLBACK (item_activated_cb), self);
@@ -1205,16 +1266,6 @@ static void
setup_sidebar_search (TotemGriloPlugin *self,
GtkBuilder *builder)
{
- self->priv->search_results_model = GTK_TREE_MODEL (gtk_builder_get_object (builder,
"gw_search_store_results"));
- self->priv->search_sources_list = GTK_WIDGET (gtk_builder_get_object (builder,
"gw_search_select_source"));
- self->priv->search_entry = GTK_WIDGET (gtk_builder_get_object (builder, "gw_search_text"));
-
- g_signal_connect (self->priv->search_entry, "activate",
- G_CALLBACK (search_entry_activate_cb),
- self);
- //FIXME also setup a timeout for that
- g_signal_connect (self->priv->search_entry, "notify::selected-id",
- G_CALLBACK (search_entry_source_changed_cb), self);
#if 0
g_signal_connect (gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (gtk_builder_get_object
(builder,
"gw_search_results_window"))),
@@ -1227,10 +1278,6 @@ setup_sidebar_search (TotemGriloPlugin *self,
"changed",
G_CALLBACK (adjustment_changed_cb),
self);
-
- totem_object_add_sidebar_page (self->priv->totem,
- "grilo-search", _("Search"),
- GTK_WIDGET (gtk_builder_get_object (builder, "gw_search")));
#endif
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]