[Xfce4-commits] <parole:master> Initial recent files menu.
Sean Davis
noreply at xfce.org
Sat Dec 1 06:20:01 CET 2012
Updating branch refs/heads/master
to 27150b0f60966778020e742eff6860477277a1fd (commit)
from 949d5e8567888610168f50e3168a49d9326bad05 (commit)
commit 27150b0f60966778020e742eff6860477277a1fd
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Sat Dec 1 00:18:49 2012 -0500
Initial recent files menu.
data/interfaces/parole.ui | 17 +++++++++++++----
src/misc/parole-filters.c | 34 ++++++++++++++++++++++++++++++++++
src/misc/parole-filters.h | 4 ++++
src/parole-player.c | 43 +++++++++++++++++++++++++++++++++++++++++++
4 files changed, 94 insertions(+), 4 deletions(-)
diff --git a/data/interfaces/parole.ui b/data/interfaces/parole.ui
index 6c8265c..e909416 100644
--- a/data/interfaces/parole.ui
+++ b/data/interfaces/parole.ui
@@ -107,7 +107,7 @@
</child>
<child>
<object class="GtkImageMenuItem" id="menu-open-location">
- <property name="label" translatable="yes">Open _location</property>
+ <property name="label" translatable="yes">Open _Location</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_action_appearance">False</property>
@@ -119,6 +119,15 @@
</object>
</child>
<child>
+ <object class="GtkMenuItem" id="recent_menu">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="label" translatable="yes">Open Recent</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
<object class="GtkSeparatorMenuItem" id="separatormenuitem1">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -463,9 +472,9 @@
<property name="use_underline">True</property>
<property name="image">image_volume_up</property>
<property name="use_stock">False</property>
- <accelerator key="plus" signal="activate"/>
- <accelerator key="equal" signal="activate"/>
<accelerator key="KP_Add" signal="activate"/>
+ <accelerator key="equal" signal="activate"/>
+ <accelerator key="plus" signal="activate"/>
<signal name="activate" handler="parole_player_volume_up" swapped="no"/>
</object>
</child>
@@ -478,8 +487,8 @@
<property name="use_underline">True</property>
<property name="image">image_volume_down</property>
<property name="use_stock">False</property>
- <accelerator key="KP_Subtract" signal="activate"/>
<accelerator key="minus" signal="activate"/>
+ <accelerator key="KP_Subtract" signal="activate"/>
<signal name="activate" handler="parole_player_volume_down" swapped="no"/>
</object>
</child>
diff --git a/src/misc/parole-filters.c b/src/misc/parole-filters.c
index 7c33346..dc18628 100644
--- a/src/misc/parole-filters.c
+++ b/src/misc/parole-filters.c
@@ -123,6 +123,24 @@ GtkFileFilter *parole_get_supported_media_filter (void)
return filter;
}
+GtkRecentFilter *parole_get_supported_recent_media_filter (void)
+{
+ GtkRecentFilter *filter;
+ guint i;
+
+ filter = gtk_recent_filter_new ();
+
+ gtk_recent_filter_set_name (filter, _("Audio and video"));
+
+ for ( i = 0; i < G_N_ELEMENTS (audio_mime_types); i++)
+ gtk_recent_filter_add_mime_type (filter, audio_mime_types[i]);
+
+ for ( i = 0; i < G_N_ELEMENTS (video_mime_types); i++)
+ gtk_recent_filter_add_mime_type (filter, video_mime_types[i]);
+
+ return filter;
+}
+
/**
* parole_get_supported_files_filter:
*
@@ -150,6 +168,22 @@ GtkFileFilter *parole_get_supported_files_filter (void)
}
+GtkRecentFilter *parole_get_supported_recent_files_filter (void)
+{
+ GtkRecentFilter *filter;
+ guint i;
+
+ filter = parole_get_supported_recent_media_filter ();
+
+ gtk_recent_filter_set_name (filter, _("All supported files"));
+
+ for ( i = 0; i < G_N_ELEMENTS (playlist_mime_types); i++)
+ gtk_recent_filter_add_mime_type (filter, playlist_mime_types[i]);
+
+ return filter;
+
+}
+
/**
* parole_get_supported_playlist_filter:
*
diff --git a/src/misc/parole-filters.h b/src/misc/parole-filters.h
index ab7ae0f..39bb2e0 100644
--- a/src/misc/parole-filters.h
+++ b/src/misc/parole-filters.h
@@ -37,8 +37,12 @@ GtkFileFilter *parole_get_supported_video_filter (void);
GtkFileFilter *parole_get_supported_media_filter (void);
+GtkRecentFilter *parole_get_supported_recent_media_filter (void);
+
GtkFileFilter *parole_get_supported_files_filter (void);
+GtkRecentFilter *parole_get_supported_recent_files_filter (void);
+
GtkFileFilter *parole_get_supported_playlist_filter (void);
gboolean parole_file_filter (GtkFileFilter *filter,
diff --git a/src/parole-player.c b/src/parole-player.c
index b597716..10a0682 100644
--- a/src/parole-player.c
+++ b/src/parole-player.c
@@ -294,6 +294,7 @@ struct ParolePlayerPrivate
ParoleMediaType current_media_type;
GtkWidget *window;
+ GtkWidget *recent_menu;
GtkWidget *playlist_nt;
GtkWidget *main_nt; /*Main notebook*/
GtkWidget *show_hide_playlist;
@@ -1003,6 +1004,33 @@ parole_player_uri_opened_cb (ParoleMediaList *list, const gchar *uri, ParolePlay
}
static void
+parole_player_recent_menu_item_activated_cb (GtkWidget *widget, ParolePlayer *player)
+{
+ gchar *uri;
+ gchar *filename;
+ gchar *filenames[1];
+ ParoleMediaList *list;
+
+ uri = gtk_recent_chooser_get_current_uri(GTK_RECENT_CHOOSER(widget));
+
+ filename = g_filename_from_uri(uri, NULL, NULL);
+
+ if (g_file_test (filename, G_FILE_TEST_EXISTS))
+ {
+ filenames[0] = g_strdup(filename);
+ filenames[1] = NULL;
+
+ list = parole_player_get_media_list (player);
+ parole_media_list_add_files (list, filenames, FALSE);
+
+ g_free(filenames[0]);
+ }
+
+ g_free(filename);
+ g_free(uri);
+}
+
+static void
parole_player_media_cursor_changed_cb (ParoleMediaList *list, gboolean media_selected, ParolePlayer *player)
{
if (player->priv->state < PAROLE_STATE_PAUSED)
@@ -2530,6 +2558,9 @@ parole_player_init (ParolePlayer *player)
gboolean showhide;
GdkColor background;
+ GtkWidget *recent_menu;
+ GtkRecentFilter *recent_filter;
+
gboolean repeat, shuffle;
GtkWidget *infobar_contents;
@@ -2613,6 +2644,18 @@ parole_player_init (ParolePlayer *player)
player->priv->window = GTK_WIDGET (gtk_builder_get_object (builder, "main-window"));
+ recent_menu = GTK_WIDGET (gtk_builder_get_object (builder, "recent_menu"));
+
+ player->priv->recent_menu = gtk_recent_chooser_menu_new_for_manager (player->priv->recent);
+ gtk_recent_chooser_menu_set_show_numbers (GTK_RECENT_CHOOSER_MENU(player->priv->recent_menu), TRUE);
+ recent_filter = parole_get_supported_recent_media_filter ();
+ gtk_recent_chooser_set_filter( GTK_RECENT_CHOOSER(player->priv->recent_menu), recent_filter);
+
+ gtk_menu_item_set_submenu( GTK_MENU_ITEM(recent_menu), player->priv->recent_menu );
+
+ g_signal_connect (player->priv->recent_menu, "item-activated",
+ G_CALLBACK (parole_player_recent_menu_item_activated_cb), player);
+
player->priv->subtitles_menu = GTK_WIDGET (gtk_builder_get_object (builder, "subtitles-menu"));
player->priv->languages_menu = GTK_WIDGET (gtk_builder_get_object (builder, "languages-menu"));
More information about the Xfce4-commits
mailing list