[Xfce4-commits] <parole:master> Added an option in the media chooser to chooer whether to start playing opened files directly or not (bug #6035).

Ali Abdallah noreply at xfce.org
Fri Nov 27 10:32:01 CET 2009


Updating branch refs/heads/master
         to e0de438ca161409bd6c2fbcc511d0a6910d3880a (commit)
       from 00aca75cbde884158d31da76857ddf402e42ceba (commit)

commit e0de438ca161409bd6c2fbcc511d0a6910d3880a
Author: Ali Abdallah <ali at ali-xfce.org>
Date:   Fri Nov 27 10:29:48 2009 +0100

    Added an option in the media chooser to chooer whether to start
    playing opened files directly or not (bug #6035).

 data/interfaces/mediachooser.ui |   17 ++++++++++++++++-
 src/gmarshal.list               |    2 +-
 src/parole-mediachooser.c       |   30 ++++++++++++++++++++++++++----
 src/parole-mediachooser.h       |    1 +
 src/parole-medialist.c          |   11 +++++++----
 5 files changed, 51 insertions(+), 10 deletions(-)

diff --git a/data/interfaces/mediachooser.ui b/data/interfaces/mediachooser.ui
index 95a1d19..e546f3d 100644
--- a/data/interfaces/mediachooser.ui
+++ b/data/interfaces/mediachooser.ui
@@ -50,6 +50,21 @@
       </packing>
     </child>
     <child>
+      <object class="GtkCheckButton" id="play-added-files">
+        <property name="label" translatable="yes">Start playing opened files</property>
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="receives_default">False</property>
+        <property name="draw_indicator">True</property>
+        <signal name="toggled" handler="start_playing_toggled_cb"/>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="fill">False</property>
+        <property name="position">3</property>
+      </packing>
+    </child>
+    <child>
       <object class="GtkHButtonBox" id="hbuttonbox1">
         <property name="visible">True</property>
         <property name="border_width">5</property>
@@ -87,7 +102,7 @@
       </object>
       <packing>
         <property name="expand">False</property>
-        <property name="position">3</property>
+        <property name="position">4</property>
       </packing>
     </child>
   </object>
diff --git a/src/gmarshal.list b/src/gmarshal.list
index 8f1d1ea..87ac80e 100644
--- a/src/gmarshal.list
+++ b/src/gmarshal.list
@@ -1,2 +1,2 @@
 VOID:STRING,STRING
-VOID:BOOL,POINTER
+VOID:BOOL,BOOL,POINTER
diff --git a/src/parole-mediachooser.c b/src/parole-mediachooser.c
index e2f251b..c51fb79 100644
--- a/src/parole-mediachooser.c
+++ b/src/parole-mediachooser.c
@@ -67,6 +67,9 @@ void	parole_media_chooser_recursive_toggled_cb (GtkToggleButton *recursive,
 void    parole_media_chooser_replace_toggled_cb (GtkToggleButton *button,
 						 gpointer data);    
 
+void    start_playing_toggled_cb (GtkToggleButton *button,
+				  gpointer data);
+
 enum
 {
     MEDIA_FILES_OPENED,
@@ -103,8 +106,10 @@ parole_media_chooser_add (ParoleMediaChooser *chooser, GtkWidget *file_chooser)
     GtkFileFilter *filter;
     GtkWidget *recursive;
     GtkWidget *replace;
+    GtkWidget *play_opened;
     gboolean scan_recursive;
     gboolean replace_playlist;
+    gboolean play;
     gchar *file;
     guint    i;
     guint len;
@@ -117,9 +122,11 @@ parole_media_chooser_add (ParoleMediaChooser *chooser, GtkWidget *file_chooser)
 	
     recursive = g_object_get_data (G_OBJECT (chooser), "recursive");
     replace = g_object_get_data (G_OBJECT (chooser), "replace-playlist");
+    play_opened = g_object_get_data (G_OBJECT (chooser), "play");
     
     scan_recursive = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (recursive));
     replace_playlist = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (replace));
+    play = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (play_opened));
     
     len = g_slist_length (files);
     
@@ -129,7 +136,7 @@ parole_media_chooser_add (ParoleMediaChooser *chooser, GtkWidget *file_chooser)
 	parole_get_media_files (filter, file, scan_recursive, &media_files);
     }
     
-    g_signal_emit (G_OBJECT (chooser), signals [MEDIA_FILES_OPENED], 0, replace_playlist, media_files);
+    g_signal_emit (G_OBJECT (chooser), signals [MEDIA_FILES_OPENED], 0, play, replace_playlist, media_files);
     g_slist_free (media_files);
     
     g_slist_foreach (files, (GFunc) g_free, NULL);
@@ -169,6 +176,14 @@ void    parole_media_chooser_replace_toggled_cb (GtkToggleButton *button,
 				gtk_toggle_button_get_active (button));
 }
 
+void start_playing_toggled_cb (GtkToggleButton *button,
+			       gpointer data)
+{
+    parole_rc_write_entry_bool ("play-opened-files", 
+			        PAROLE_RC_GROUP_GENERAL, 
+				gtk_toggle_button_get_active (button));
+}
+
 static void
 parole_media_chooser_open_internal (GtkWidget *chooser)
 {
@@ -180,8 +195,10 @@ parole_media_chooser_open_internal (GtkWidget *chooser)
     GtkWidget   *img;
     GtkWidget   *recursive;
     GtkWidget   *replace;
+    GtkWidget   *play_opened;
     gboolean     scan_recursive;
     gboolean     replace_playlist;
+    gboolean     play;
     const gchar *folder;
 
     media_chooser = PAROLE_MEDIA_CHOOSER (chooser);
@@ -212,12 +229,15 @@ parole_media_chooser_open_internal (GtkWidget *chooser)
     
     recursive = GTK_WIDGET (gtk_builder_get_object (builder, "recursive"));
     replace = GTK_WIDGET (gtk_builder_get_object (builder, "replace"));
+    play_opened = GTK_WIDGET (gtk_builder_get_object (builder, "play-added-files"));
     
     scan_recursive = parole_rc_read_entry_bool ("scan-recursive", PAROLE_RC_GROUP_GENERAL, TRUE);
     replace_playlist = parole_rc_read_entry_bool ("replace-playlist", PAROLE_RC_GROUP_GENERAL, FALSE);
-     
+    play = parole_rc_read_entry_bool ("play-opened-files", PAROLE_RC_GROUP_GENERAL, TRUE);
+    
     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (recursive), scan_recursive);
     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (replace), replace_playlist);
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (play_opened), play);
     
     img = gtk_image_new_from_stock (GTK_STOCK_ADD, GTK_ICON_SIZE_BUTTON);
     
@@ -229,6 +249,7 @@ parole_media_chooser_open_internal (GtkWidget *chooser)
     g_object_set_data (G_OBJECT (chooser), "file-chooser", file_chooser);
     g_object_set_data (G_OBJECT (chooser), "recursive", recursive);
     g_object_set_data (G_OBJECT (chooser), "replace-playlist", replace);
+    g_object_set_data (G_OBJECT (chooser), "play", play_opened);
     
     gtk_container_add (GTK_CONTAINER (GTK_DIALOG (media_chooser)->vbox), vbox);
     gtk_builder_connect_signals (builder, chooser);
@@ -255,8 +276,9 @@ parole_media_chooser_class_init (ParoleMediaChooserClass *klass)
                       G_SIGNAL_RUN_LAST,
                       G_STRUCT_OFFSET (ParoleMediaChooserClass, media_files_opened),
                       NULL, NULL,
-		      _gmarshal_VOID__BOOLEAN_POINTER,
-                      G_TYPE_NONE, 2, 
+		      _gmarshal_VOID__BOOLEAN_BOOLEAN_POINTER,
+                      G_TYPE_NONE, 3, 
+		      G_TYPE_BOOLEAN,
 		      G_TYPE_BOOLEAN,
 		      G_TYPE_POINTER);
 
diff --git a/src/parole-mediachooser.h b/src/parole-mediachooser.h
index da57a88..46718f0 100644
--- a/src/parole-mediachooser.h
+++ b/src/parole-mediachooser.h
@@ -43,6 +43,7 @@ typedef struct
     GtkDialogClass 		 parent_class;
     
     void			 (*media_files_opened)		    (ParoleMediaChooser *chooser,
+								     gboolean play,
 								     gboolean replace,
 								     GSList *list);
 								     
diff --git a/src/parole-medialist.c b/src/parole-medialist.c
index 14d1b06..eeafeed 100644
--- a/src/parole-medialist.c
+++ b/src/parole-medialist.c
@@ -260,10 +260,13 @@ parole_media_list_files_open (ParoleMediaList *list, GSList *files,
 }
 
 static void
-parole_media_list_files_opened_cb (ParoleMediaChooser *chooser, gboolean replace,
-				   GSList *files, ParoleMediaList *list)
+parole_media_list_files_opened_cb (ParoleMediaChooser *chooser, 
+				   gboolean play,
+				   gboolean replace,
+				   GSList *files, 
+				   ParoleMediaList *list)
 {
-    parole_media_list_files_open (list, files, replace, TRUE);
+    parole_media_list_files_open (list, files, replace, play);
 }
 
 static void
@@ -1086,7 +1089,7 @@ void parole_media_list_load (ParoleMediaList *list)
 	    fileslist = parole_pl_parser_parse_from_file_by_extension (playlist_file);
 	    g_free (playlist_file);
 	    
-	    parole_media_list_files_opened_cb (NULL, FALSE, fileslist, list);
+	    parole_media_list_files_opened_cb (NULL, FALSE, FALSE, fileslist, list);
 	    g_slist_free (fileslist);
 	}
     }



More information about the Xfce4-commits mailing list