[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