[Xfce4-commits] <parole:master> Respect user privacy with recent items history.

Sean Davis noreply at xfce.org
Sat Dec 1 14:24:01 CET 2012


Updating branch refs/heads/master
         to 5375b375849c21a164e57240fd57503704c0996e (commit)
       from afee1cddfc94e4bf99d07980e787a85d8b5a4414 (commit)

commit 5375b375849c21a164e57240fd57503704c0996e
Author: Sean Davis <smd.seandavis at gmail.com>
Date:   Sat Dec 1 08:23:14 2012 -0500

    Respect user privacy with recent items history.

 src/parole-player.c |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 47 insertions(+), 0 deletions(-)

diff --git a/src/parole-player.c b/src/parole-player.c
index 9821167..5481a38 100644
--- a/src/parole-player.c
+++ b/src/parole-player.c
@@ -1004,6 +1004,41 @@ parole_player_uri_opened_cb (ParoleMediaList *list, const gchar *uri, ParolePlay
 }
 
 static void
+parole_player_recent_menu_clear_activated_cb (GtkWidget *widget, ParolePlayer *player)
+{
+    GtkWidget *dlg;
+    GtkWidget *clear_button;
+    gint response;
+    
+    dlg = gtk_message_dialog_new (GTK_WINDOW(player->priv->window),
+                                  GTK_DIALOG_DESTROY_WITH_PARENT,
+                                  GTK_MESSAGE_QUESTION,
+                                  GTK_BUTTONS_NONE,
+                                  NULL);
+                                  
+    gtk_message_dialog_set_markup  (GTK_MESSAGE_DIALOG(dlg), 
+                                    g_strdup_printf("<big><b>%s</b></big>", 
+                                    _("Clear Recent Items")));
+    gtk_message_dialog_format_secondary_text ( GTK_MESSAGE_DIALOG(dlg), 
+    _("Are you sure you wish to clear your recent items history?  This cannot be undone."));
+    
+    gtk_dialog_add_button (GTK_DIALOG(dlg), GTK_STOCK_CANCEL, 0);
+    clear_button = gtk_dialog_add_button(GTK_DIALOG(dlg),
+                                         GTK_STOCK_CLEAR,
+                                         1);
+    gtk_button_set_label( GTK_BUTTON(clear_button), _("Clear Recent Items") );
+    
+    gtk_widget_show_all(dlg);
+    
+    response = gtk_dialog_run(GTK_DIALOG(dlg));
+    if (response == 1)
+    {
+        gtk_recent_manager_purge_items(player->priv->recent, NULL);
+    }
+    gtk_widget_destroy(dlg);
+}
+
+static void
 parole_player_recent_menu_item_activated_cb (GtkWidget *widget, ParolePlayer *player)
 {
     gchar *uri;
@@ -2562,6 +2597,8 @@ parole_player_init (ParolePlayer *player)
     
     GtkWidget *recent_menu;
     GtkRecentFilter *recent_filter;
+    GtkWidget *clear_recent;
+    GtkWidget *recent_separator;
     
     gboolean repeat, shuffle;
     
@@ -2657,6 +2694,16 @@ parole_player_init (ParolePlayer *player)
     gtk_recent_filter_add_application( recent_filter, "parole" );
     gtk_recent_chooser_set_filter( GTK_RECENT_CHOOSER(player->priv->recent_menu), recent_filter);
     
+    recent_separator = gtk_separator_menu_item_new();
+    clear_recent = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLEAR, NULL);
+    gtk_menu_item_set_label (GTK_MENU_ITEM(clear_recent), _("Clear recent items..."));
+    
+    gtk_menu_shell_append(GTK_MENU_SHELL(player->priv->recent_menu), recent_separator);
+    gtk_menu_shell_append(GTK_MENU_SHELL(player->priv->recent_menu), clear_recent);
+    
+    g_signal_connect (clear_recent, "activate",
+		      G_CALLBACK (parole_player_recent_menu_clear_activated_cb), player);
+    
     gtk_menu_item_set_submenu( GTK_MENU_ITEM(recent_menu), player->priv->recent_menu );
     
     g_signal_connect (player->priv->recent_menu, "item-activated",


More information about the Xfce4-commits mailing list