[Xfce4-commits] <parole:master> Better playlist count showing
Sean Davis
noreply at xfce.org
Fri Oct 11 11:51:41 CEST 2013
Updating branch refs/heads/master
to 29dd056eff2a4ade5ec867471d40799f210c6f01 (commit)
from 0ed70cda2d529eabf80ed1d832446a229d651100 (commit)
commit 29dd056eff2a4ade5ec867471d40799f210c6f01
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Mon Sep 2 23:09:53 2013 -0400
Better playlist count showing
data/interfaces/playlist.ui | 201 +++++++++++++++++++------------------------
src/parole-medialist.c | 61 ++++++-------
2 files changed, 114 insertions(+), 148 deletions(-)
diff --git a/data/interfaces/playlist.ui b/data/interfaces/playlist.ui
index fb1d6bc..387462a 100644
--- a/data/interfaces/playlist.ui
+++ b/data/interfaces/playlist.ui
@@ -67,7 +67,6 @@
<object class="GtkTreeView" id="media-list">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="headers_visible">False</property>
<property name="rules_hint">True</property>
<signal name="drag-data-received" handler="parole_media_list_drag_data_received_cb" swapped="no"/>
<signal name="row-activated" handler="parole_media_list_row_activated_cb" swapped="no"/>
@@ -101,7 +100,6 @@
<object class="GtkTreeView" id="disc-list">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="headers_visible">False</property>
<property name="rules_hint">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection2"/>
@@ -132,139 +130,114 @@
</packing>
</child>
<child>
- <object class="GtkBox" id="box1">
+ <object class="GtkToolbar" id="playlist_controls">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="show_arrow">False</property>
+ <property name="icon_size">1</property>
+ <style>
+ <class name="inline-toolbar"/>
+ </style>
<child>
- <object class="GtkToolbar" id="playlist_controls">
+ <object class="GtkToolButton" id="add-media">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="show_arrow">False</property>
- <property name="icon_size">1</property>
- <style>
- <class name="inline-toolbar"/>
- </style>
- <child>
- <object class="GtkToolButton" id="add-media">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Add</property>
- <property name="use_underline">True</property>
- <property name="icon_name">list-add-symbolic</property>
- <signal name="clicked" handler="parole_media_list_add_clicked_cb" swapped="no"/>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="remove-media">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Remove</property>
- <property name="use_underline">True</property>
- <property name="icon_name">list-remove-symbolic</property>
- <signal name="clicked" handler="parole_media_list_remove_clicked_cb" swapped="no"/>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="clear-media">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Clear</property>
- <property name="use_underline">True</property>
- <property name="icon_name">list-remove-all-symbolic</property>
- <signal name="clicked" handler="parole_media_list_clear_clicked_cb" swapped="no"/>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkSeparatorToolItem" id="toolbutton7">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToggleToolButton" id="repeat-media">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Repeat</property>
- <property name="use_underline">True</property>
- <property name="icon_name">media-playlist-repeat-symbolic</property>
- <signal name="toggled" handler="parole_media_list_repeat_toggled_cb" swapped="no"/>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToggleToolButton" id="shuffle-media">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Shuffle</property>
- <property name="use_underline">True</property>
- <property name="icon_name">media-playlist-shuffle-symbolic</property>
- <signal name="toggled" handler="parole_media_list_shuffle_toggled_cb" swapped="no"/>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToggleToolButton" id="settings">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Options</property>
- <property name="use_underline">True</property>
- <property name="icon_name">document-properties-symbolic</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Add</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">list-add-symbolic</property>
+ <signal name="clicked" handler="parole_media_list_add_clicked_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="n_items">
+ <object class="GtkToolButton" id="remove-media">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Remove</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">list-remove-symbolic</property>
+ <signal name="clicked" handler="parole_media_list_remove_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="clear-media">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Clear</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">list-remove-all-symbolic</property>
+ <signal name="clicked" handler="parole_media_list_clear_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparatorToolItem" id="toolbutton7">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label" translatable="yes">Playlist empty</property>
</object>
<packing>
<property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">6</property>
- <property name="pack_type">end</property>
- <property name="position">1</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleToolButton" id="repeat-media">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Repeat</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">media-playlist-repeat-symbolic</property>
+ <signal name="toggled" handler="parole_media_list_repeat_toggled_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleToolButton" id="shuffle-media">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Shuffle</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">media-playlist-shuffle-symbolic</property>
+ <signal name="toggled" handler="parole_media_list_shuffle_toggled_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleToolButton" id="settings">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Options</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">document-properties-symbolic</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">3</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
diff --git a/src/parole-medialist.c b/src/parole-medialist.c
index 6d05f7a..0b87ffd 100644
--- a/src/parole-medialist.c
+++ b/src/parole-medialist.c
@@ -178,6 +178,7 @@ struct ParoleMediaListPrivate
GtkListStore *disc_store;
GtkTreeSelection *sel;
GtkTreeSelection *disc_sel;
+ GtkTreeViewColumn *col, *disc_col;
GtkWidget *playlist_controls;
@@ -188,7 +189,6 @@ struct ParoleMediaListPrivate
GtkWidget *repeat_button;
GtkWidget *shuffle_button;
GtkWidget *settings_button;
- GtkWidget *n_items;
char *history[3];
};
@@ -281,11 +281,11 @@ parole_media_list_add (ParoleMediaList *list, ParoleFile *file, gboolean disc, g
gtk_widget_set_sensitive (list->priv->clear_button, TRUE);
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(list->priv->playlist_notebook)) == 0)
{
- gtk_label_set_text (GTK_LABEL(list->priv->n_items),g_strdup_printf (_("%i item"),nch));
+ gtk_tree_view_column_set_title (list->priv->col, g_strdup_printf(_("Playlist (%i item)"), nch));
}
else
{
- gtk_label_set_text (GTK_LABEL(list->priv->n_items),g_strdup_printf (_("%i chapter"),nch));
+ gtk_tree_view_column_set_title (list->priv->disc_col, g_strdup_printf(_("Playlist (%i chapter)"), nch));
}
}
else
@@ -293,16 +293,13 @@ parole_media_list_add (ParoleMediaList *list, ParoleFile *file, gboolean disc, g
parole_media_list_set_widget_sensitive (list, TRUE);
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(list->priv->playlist_notebook)) == 0)
{
- gtk_label_set_text (GTK_LABEL(list->priv->n_items),g_strdup_printf (_("%i items"),nch));
+ gtk_tree_view_column_set_title (list->priv->col, g_strdup_printf(_("Playlist (%i items)"), nch));
}
else
{
- gtk_label_set_text (GTK_LABEL(list->priv->n_items),g_strdup_printf (_("%i chapters"),nch));
+ gtk_tree_view_column_set_title (list->priv->disc_col, g_strdup_printf(_("Playlist (%i chapters)"), nch));
}
}
- gtk_widget_show (list->priv->n_items);
- if ( nch == 0 )
- gtk_widget_hide (list->priv->n_items);
}
/**
@@ -1002,8 +999,7 @@ parole_media_list_remove_clicked_cb (GtkButton *button, ParoleMediaList *list)
if ( nch == 0)
{
parole_media_list_set_widget_sensitive (list, FALSE);
- gtk_label_set_text (GTK_LABEL(list->priv->n_items),_("Playlist empty"));
- gtk_widget_hide (list->priv->n_items);
+ gtk_tree_view_column_set_title (list->priv->col, g_strdup_printf(_("Playlist (%i items)"), nch));
/*
* Will emit the signal media_cursor_changed with FALSE because there is no any
* row remaining, so the player can disable click on the play button.
@@ -1011,9 +1007,9 @@ parole_media_list_remove_clicked_cb (GtkButton *button, ParoleMediaList *list)
g_signal_emit (G_OBJECT (list), signals [MEDIA_CURSOR_CHANGED], 0, FALSE);
}
else if ( nch == 1 )
- gtk_label_set_text (GTK_LABEL(list->priv->n_items),g_strdup_printf (_("%i item"),nch));
+ gtk_tree_view_column_set_title (list->priv->col, g_strdup_printf(_("Playlist (%i item)"), nch));
else
- gtk_label_set_text (GTK_LABEL(list->priv->n_items),g_strdup_printf (_("%i items"),nch));
+ gtk_tree_view_column_set_title (list->priv->col, g_strdup_printf(_("Playlist (%i items)"), nch));
}
/**
@@ -1141,8 +1137,7 @@ parole_media_list_clear_list (ParoleMediaList *list)
TRACE("CLEAR START");
gtk_list_store_clear (GTK_LIST_STORE (list->priv->store));
parole_media_list_set_widget_sensitive (list, FALSE);
- gtk_label_set_text (GTK_LABEL(list->priv->n_items),_("Playlist empty"));
- gtk_widget_hide (list->priv->n_items);
+ gtk_tree_view_column_set_title (list->priv->col, g_strdup_printf(_("Playlist (%i items)"), 0));
TRACE("CLEAR END");
}
@@ -1534,7 +1529,6 @@ parole_media_list_setup_view (ParoleMediaList *list)
{
GtkTreeSelection *sel, *disc_sel;
GtkListStore *list_store, *disc_list_store;
- GtkTreeViewColumn *col, *disc_col;
GtkCellRenderer *renderer, *disc_renderer;
list_store = gtk_list_store_new (COL_NUMBERS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_OBJECT);
@@ -1545,16 +1539,16 @@ parole_media_list_setup_view (ParoleMediaList *list)
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (list->priv->view), TRUE);
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (list->priv->disc_view), TRUE);
- col = gtk_tree_view_column_new ();
- disc_col = gtk_tree_view_column_new ();
+ list->priv->col = gtk_tree_view_column_new ();
+ list->priv->disc_col = gtk_tree_view_column_new ();
renderer = gtk_cell_renderer_pixbuf_new ();
disc_renderer = gtk_cell_renderer_pixbuf_new ();
- gtk_tree_view_column_pack_start(col, renderer, FALSE);
- gtk_tree_view_column_pack_start(disc_col, disc_renderer, FALSE);
- gtk_tree_view_column_set_attributes(col, renderer, "pixbuf", PIXBUF_COL, NULL);
- gtk_tree_view_column_set_attributes(disc_col, disc_renderer, "pixbuf", PIXBUF_COL, NULL);
+ gtk_tree_view_column_pack_start(list->priv->col, renderer, FALSE);
+ gtk_tree_view_column_pack_start(list->priv->disc_col, disc_renderer, FALSE);
+ gtk_tree_view_column_set_attributes(list->priv->col, renderer, "pixbuf", PIXBUF_COL, NULL);
+ gtk_tree_view_column_set_attributes(list->priv->disc_col, disc_renderer, "pixbuf", PIXBUF_COL, NULL);
/**
* Name col
@@ -1563,14 +1557,14 @@ parole_media_list_setup_view (ParoleMediaList *list)
renderer = gtk_cell_renderer_text_new();
disc_renderer = gtk_cell_renderer_text_new();
- gtk_tree_view_column_pack_start (col, renderer, TRUE);
- gtk_tree_view_column_set_attributes (col, renderer, "text", NAME_COL, NULL);
+ gtk_tree_view_column_pack_start (list->priv->col, renderer, TRUE);
+ gtk_tree_view_column_set_attributes (list->priv->col, renderer, "text", NAME_COL, NULL);
g_object_set (renderer,
"ellipsize", PANGO_ELLIPSIZE_END,
NULL);
- gtk_tree_view_column_pack_start (disc_col, disc_renderer, TRUE);
- gtk_tree_view_column_set_attributes (disc_col, disc_renderer, "text", NAME_COL, NULL);
+ gtk_tree_view_column_pack_start (list->priv->disc_col, disc_renderer, TRUE);
+ gtk_tree_view_column_set_attributes (list->priv->disc_col, disc_renderer, "text", NAME_COL, NULL);
g_object_set (disc_renderer,
"ellipsize", PANGO_ELLIPSIZE_END,
NULL);
@@ -1582,15 +1576,15 @@ parole_media_list_setup_view (ParoleMediaList *list)
renderer = gtk_cell_renderer_text_new();
disc_renderer = gtk_cell_renderer_text_new();
- gtk_tree_view_column_pack_start (col, renderer, FALSE);
- gtk_tree_view_column_pack_start (disc_col, disc_renderer, FALSE);
- gtk_tree_view_column_set_attributes (col, renderer, "text", LENGTH_COL, NULL);
- gtk_tree_view_column_set_attributes (disc_col, disc_renderer, "text", LENGTH_COL, NULL);
+ gtk_tree_view_column_pack_start (list->priv->col, renderer, FALSE);
+ gtk_tree_view_column_pack_start (list->priv->disc_col, disc_renderer, FALSE);
+ gtk_tree_view_column_set_attributes (list->priv->col, renderer, "text", LENGTH_COL, NULL);
+ gtk_tree_view_column_set_attributes (list->priv->disc_col, disc_renderer, "text", LENGTH_COL, NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (list->priv->view), col);
- gtk_tree_view_append_column (GTK_TREE_VIEW (list->priv->disc_view), disc_col);
- gtk_tree_view_column_set_title (col, _("Media list"));
- gtk_tree_view_column_set_title (disc_col, _("Chapter list"));
+ gtk_tree_view_append_column (GTK_TREE_VIEW (list->priv->view), list->priv->col);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (list->priv->disc_view), list->priv->disc_col);
+ gtk_tree_view_column_set_title (list->priv->col, g_strdup_printf(_("Playlist (%i items)"), 0));
+ gtk_tree_view_column_set_title (list->priv->disc_col, g_strdup_printf(_("Playlist (%i chapters)"), 0));
gtk_drag_dest_set (list->priv->view, GTK_DEST_DEFAULT_ALL, target_entry, G_N_ELEMENTS (target_entry),
GDK_ACTION_COPY | GDK_ACTION_MOVE);
@@ -1639,7 +1633,6 @@ parole_media_list_init (ParoleMediaList *list)
list->priv->repeat_button = GTK_WIDGET (gtk_builder_get_object (builder, "repeat-media"));
list->priv->shuffle_button = GTK_WIDGET (gtk_builder_get_object (builder, "shuffle-media"));
list->priv->settings_button = GTK_WIDGET (gtk_builder_get_object (builder, "settings"));
- list->priv->n_items = GTK_WIDGET (gtk_builder_get_object (builder, "n_items"));
g_signal_connect (GTK_TOGGLE_TOOL_BUTTON(list->priv->settings_button), "toggled",
G_CALLBACK (parole_media_list_show_button_menu), list);
More information about the Xfce4-commits
mailing list