Updating branch refs/heads/bluesabre/gtk3 to ed4fe2eca1abc79fc568cd8623e735a1a12af7af (commit) from 5e2fffef8e7aba5889f8906a4a458f6bc546a7ca (commit)
commit ed4fe2eca1abc79fc568cd8623e735a1a12af7af Author: Sean Davis <smd.seanda...@gmail.com> Date: Mon Sep 9 23:44:25 2013 -0400 Use GtkAction for Repeat/Shuffle data/interfaces/parole.ui | 44 +++++++++-------- data/interfaces/playlist.ui | 24 ---------- src/parole-medialist.c | 110 ++++--------------------------------------- src/parole-medialist.h | 22 ++++----- src/parole-player.c | 91 ++++++++++++----------------------- 5 files changed, 68 insertions(+), 223 deletions(-) diff --git a/data/interfaces/parole.ui b/data/interfaces/parole.ui index 56bc136..a9b4d8c 100644 --- a/data/interfaces/parole.ui +++ b/data/interfaces/parole.ui @@ -6,6 +6,20 @@ <property name="step_increment">1</property> <property name="page_increment">10</property> </object> + <object class="GtkImage" id="image_disc"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="pixel_size">16</property> + <property name="icon_name">media-optical-symbolic</property> + <property name="use_fallback">True</property> + </object> + <object class="GtkImage" id="image_help_reportbug"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="pixel_size">16</property> + <property name="icon_name">face-sick-symbolic</property> + <property name="use_fallback">True</property> + </object> <object class="GtkImage" id="image_media_fullscreen"> <property name="visible">True</property> <property name="can_focus">False</property> @@ -34,27 +48,6 @@ <property name="icon_name">media-skip-backward-symbolic</property> <property name="use_fallback">True</property> </object> - <object class="GtkImage" id="image_about"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="pixel_size">16</property> - <property name="icon_name">gtk-about-symbolic</property> - <property name="use_fallback">True</property> - </object> - <object class="GtkImage" id="image_disc"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="pixel_size">16</property> - <property name="icon_name">media-optical-symbolic</property> - <property name="use_fallback">True</property> - </object> - <object class="GtkImage" id="image_help_reportbug"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="pixel_size">16</property> - <property name="icon_name">face-sick-symbolic</property> - <property name="use_fallback">True</property> - </object> <object class="GtkImage" id="image_menu_fullscreen"> <property name="visible">True</property> <property name="can_focus">False</property> @@ -133,6 +126,13 @@ <property name="icon_name">audio-volume-high-symbolic</property> <property name="use_fallback">True</property> </object> + <object class="GtkImage" id="image_about"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="pixel_size">16</property> + <property name="icon_name">gtk-about-symbolic</property> + <property name="use_fallback">True</property> + </object> <object class="GtkWindow" id="main-window"> <property name="can_focus">False</property> <property name="title" translatable="yes">Parole Media Player</property> @@ -263,7 +263,6 @@ <property name="can_focus">False</property> <property name="label" translatable="yes">_Repeat</property> <property name="use_underline">True</property> - <signal name="toggled" handler="parole_player_repeat_toggled_cb" swapped="no"/> </object> </child> <child> @@ -272,7 +271,6 @@ <property name="can_focus">False</property> <property name="label" translatable="yes">_Shuffle</property> <property name="use_underline">True</property> - <signal name="toggled" handler="parole_player_shuffle_toggled_cb" swapped="no"/> </object> </child> <child> diff --git a/data/interfaces/playlist.ui b/data/interfaces/playlist.ui index 2158a69..18c0716 100644 --- a/data/interfaces/playlist.ui +++ b/data/interfaces/playlist.ui @@ -149,7 +149,6 @@ <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> @@ -164,7 +163,6 @@ <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> @@ -213,28 +211,6 @@ <property name="visible">True</property> <property name="can_focus">False</property> <child> - <object class="GtkCheckMenuItem" id="menu-repeat"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes">Repeat</property> - <property name="use_underline">True</property> - </object> - </child> - <child> - <object class="GtkCheckMenuItem" id="menu-shuffle"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes">Shuffle</property> - <property name="use_underline">True</property> - </object> - </child> - <child> - <object class="GtkSeparatorMenuItem" id="menuitem1"> - <property name="visible">True</property> - <property name="can_focus">False</property> - </object> - </child> - <child> <object class="GtkCheckMenuItem" id="menu-replace"> <property name="visible">True</property> <property name="can_focus">False</property> diff --git a/src/parole-medialist.c b/src/parole-medialist.c index 2acc4bc..9b08729 100644 --- a/src/parole-medialist.c +++ b/src/parole-medialist.c @@ -109,12 +109,6 @@ void parole_media_list_remove_clicked_cb (GtkButton *button, void parole_media_list_clear_clicked_cb (GtkButton *button, ParoleMediaList *list); - -void parole_media_list_repeat_toggled_cb (GtkToggleToolButton *button, - ParoleMediaList *list); - -void parole_media_list_shuffle_toggled_cb (GtkToggleToolButton *button, - ParoleMediaList *list); void parole_media_list_move_up_clicked_cb (GtkButton *button, ParoleMediaList *list); @@ -189,6 +183,7 @@ struct ParoleMediaListPrivate GtkWidget *remove_button; GtkWidget *clear_button; + GtkWidget *repeat_button; GtkWidget *shuffle_button; @@ -200,8 +195,6 @@ enum MEDIA_ACTIVATED, MEDIA_CURSOR_CHANGED, URI_OPENED, - SHUFFLE_TOGGLED, - REPEAT_TOGGLED, SHOW_PLAYLIST, ISO_OPENED, LAST_SIGNAL @@ -555,28 +548,6 @@ parole_media_list_clear_clicked_cb (GtkButton *button, ParoleMediaList *list) parole_media_list_clear_list (list); } -/* Callback for the repeat togglebutton */ -void -parole_media_list_repeat_toggled_cb (GtkToggleToolButton *button, ParoleMediaList *list) -{ - gboolean toggled; - - toggled = gtk_toggle_tool_button_get_active (button); - - g_signal_emit (G_OBJECT (list), signals [REPEAT_TOGGLED], 0, toggled); -} - -/* Callback for the shuffle togglebutton */ -void -parole_media_list_shuffle_toggled_cb (GtkToggleToolButton *button, ParoleMediaList *list) -{ - gboolean toggled; - - toggled = gtk_toggle_tool_button_get_active (button); - - g_signal_emit (G_OBJECT (list), signals [SHUFFLE_TOGGLED], 0, toggled); -} - /** * parole_media_list_get_first_selected_row: * @list: a #ParoleMediaList @@ -1280,20 +1251,6 @@ remember_playlist_activated_cb (GtkWidget *mi, ParoleConf *conf) } } -static void -repeat_activated_cb (GtkWidget *mi, ParoleMediaList *list) -{ - gboolean active = gtk_check_menu_item_get_active( GTK_CHECK_MENU_ITEM( mi ) ); - gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON( list->priv->repeat_button ), active); -} - -static void -shuffle_activated_cb (GtkWidget *mi, ParoleMediaList *list) -{ - gboolean active = gtk_check_menu_item_get_active( GTK_CHECK_MENU_ITEM( mi ) ); - gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON( list->priv->shuffle_button ), active); -} - void parole_media_list_menu_pos (GtkMenu *menu, gint *px, gint *py, gboolean *push_in, gpointer data) { @@ -1343,35 +1300,18 @@ parole_media_list_show_menu (ParoleMediaList *list, GdkEventButton *ev) GtkMenu *menu; GtkMenuItem *clear; - GtkCheckMenuItem *repeat_menu, *shuffle_menu, *replace, *play_opened; + GtkCheckMenuItem *replace, *play_opened; GtkCheckMenuItem *remember; builder = parole_builder_new_from_string (playlist_ui, playlist_ui_length); menu = GTK_MENU (gtk_builder_get_object (builder, "playlist-menu")); - repeat_menu = GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menu-repeat")); - shuffle_menu = GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menu-shuffle")); replace = GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menu-replace")); play_opened = GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menu-play-opened")); remember = GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menu-remember")); clear = GTK_MENU_ITEM (gtk_builder_get_object (builder, "menu-clear")); parole_media_list_add_open_containing_folder (list, GTK_WIDGET(menu), (gint)ev->x, (gint)ev->y); - - g_object_get (G_OBJECT (list->priv->conf), - "repeat", &val, - NULL); - gtk_check_menu_item_set_active (repeat_menu, val); - g_signal_connect (repeat_menu, "activate", - G_CALLBACK (repeat_activated_cb), list); - - g_object_get (G_OBJECT (list->priv->conf), - "shuffle", &val, - NULL); - - gtk_check_menu_item_set_active (shuffle_menu, val); - g_signal_connect (shuffle_menu, "activate", - G_CALLBACK (shuffle_activated_cb), list); g_object_get (G_OBJECT (list->priv->conf), "replace-playlist", &val, @@ -1497,24 +1437,6 @@ parole_media_list_class_init (ParoleMediaListClass *klass) g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING); - signals[SHUFFLE_TOGGLED] = - g_signal_new ("shuffle-toggled", - PAROLE_TYPE_MEDIA_LIST, - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (ParoleMediaListClass, shuffle_toggled), - NULL, NULL, - g_cclosure_marshal_VOID__BOOLEAN, - G_TYPE_NONE, 1, G_TYPE_BOOLEAN); - - signals[REPEAT_TOGGLED] = - g_signal_new ("repeat-toggled", - PAROLE_TYPE_MEDIA_LIST, - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (ParoleMediaListClass, repeat_toggled), - NULL, NULL, - g_cclosure_marshal_VOID__BOOLEAN, - G_TYPE_NONE, 1, G_TYPE_BOOLEAN); - signals[SHOW_PLAYLIST] = g_signal_new ("show-playlist", PAROLE_TYPE_MEDIA_LIST, @@ -2183,30 +2105,14 @@ void parole_media_list_grab_focus (ParoleMediaList *list) gtk_widget_grab_focus (list->priv->view); } -void -parole_media_list_set_repeat_toggled (ParoleMediaList *list, - gboolean repeat_toggled) +void parole_media_list_connect_repeat_action (ParoleMediaList *list, GtkAction *action) { - gboolean toggled; - - toggled = gtk_toggle_tool_button_get_active (GTK_TOGGLE_TOOL_BUTTON (list->priv->repeat_button)); - - if (toggled != repeat_toggled) - { - gtk_toggle_tool_button_set_active( GTK_TOGGLE_TOOL_BUTTON (list->priv->repeat_button), repeat_toggled ); - } + gtk_activatable_set_use_action_appearance(GTK_ACTIVATABLE(list->priv->repeat_button), TRUE); + gtk_activatable_set_related_action(GTK_ACTIVATABLE(list->priv->repeat_button), action); } -void -parole_media_list_set_shuffle_toggled (ParoleMediaList *list, - gboolean shuffle_toggled) +void parole_media_list_connect_shuffle_action (ParoleMediaList *list, GtkAction *action) { - gboolean toggled; - - toggled = gtk_toggle_tool_button_get_active (GTK_TOGGLE_TOOL_BUTTON (list->priv->shuffle_button)); - - if (toggled != shuffle_toggled) - { - gtk_toggle_tool_button_set_active( GTK_TOGGLE_TOOL_BUTTON (list->priv->shuffle_button), shuffle_toggled ); - } + gtk_activatable_set_use_action_appearance(GTK_ACTIVATABLE(list->priv->shuffle_button), TRUE); + gtk_activatable_set_related_action(GTK_ACTIVATABLE(list->priv->shuffle_button), action); } diff --git a/src/parole-medialist.h b/src/parole-medialist.h index c5e700a..7d7fa1b 100644 --- a/src/parole-medialist.h +++ b/src/parole-medialist.h @@ -70,12 +70,6 @@ typedef struct void (*uri_opened) (ParoleMediaList *list, const gchar *uri); - void (*shuffle_toggled) (ParoleMediaList *list, - gboolean shuffle_toggled); - - void (*repeat_toggled) (ParoleMediaList *list, - gboolean repeat_toggled); - void (*show_playlist) (ParoleMediaList *list, gboolean show_playlist); @@ -181,14 +175,14 @@ void parole_media_list_save_cb (GtkWidget *widget, ParoleMediaList *list); void parole_media_list_grab_focus (ParoleMediaList *list); - -void -parole_media_list_set_repeat_toggled (ParoleMediaList *list, - gboolean repeat_toggled); - -void -parole_media_list_set_shuffle_toggled (ParoleMediaList *list, - gboolean shuffle_toggled); + +void +parole_media_list_connect_repeat_action (ParoleMediaList *list, + GtkAction *action); + +void +parole_media_list_connect_shuffle_action (ParoleMediaList *list, + GtkAction *action); void parole_media_list_add_dvd (ParoleMediaList *list, gchar *dvd_name); diff --git a/src/parole-player.c b/src/parole-player.c index 34b4ce1..51a5c4f 100644 --- a/src/parole-player.c +++ b/src/parole-player.c @@ -212,10 +212,10 @@ gboolean parole_player_volume_scroll_event_cb (GtkWidget *widget, GdkEventScroll *ev, ParolePlayer *player); -void parole_player_shuffle_toggled_cb (GtkWidget *widget, +void parole_player_toggle_shuffle_action_cb (GtkToggleAction *action, ParolePlayer *player); -void parole_player_repeat_toggled_cb (GtkWidget *widget, +void parole_player_toggle_repeat_action_cb (GtkToggleAction *action, ParolePlayer *player); static void parole_player_clear_subtitles (ParolePlayer *player); @@ -329,8 +329,6 @@ struct ParolePlayerPrivate GtkWidget *window; GtkWidget *recent_menu; GtkWidget *playlist_nt; - GtkWidget *shuffle_menu_item; - GtkWidget *repeat_menu_item; GtkWidget *range; GtkWidget *progressbar_buffering; @@ -400,6 +398,8 @@ struct ParolePlayerPrivate GtkAction *media_previous_action; GtkAction *media_fullscreen_action; GtkToggleAction *toggle_playlist_action; + GtkToggleAction *toggle_repeat_action; + GtkToggleAction *toggle_shuffle_action; }; @@ -1218,32 +1218,6 @@ parole_player_media_cursor_changed_cb (ParoleMediaList *list, gboolean media_sel } static void -parole_player_media_list_shuffle_toggled_cb (ParoleMediaList *list, gboolean shuffle_toggled, ParolePlayer *player) -{ - gboolean toggled; - - toggled = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM(player->priv->shuffle_menu_item)); - - if (toggled != shuffle_toggled) - { - gtk_check_menu_item_set_active ( GTK_CHECK_MENU_ITEM(player->priv->shuffle_menu_item), shuffle_toggled); - } -} - -static void -parole_player_media_list_repeat_toggled_cb (ParoleMediaList *list, gboolean repeat_toggled, ParolePlayer *player) -{ - gboolean toggled; - - toggled = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM(player->priv->repeat_menu_item)); - - if (toggled != repeat_toggled) - { - gtk_check_menu_item_set_active ( GTK_CHECK_MENU_ITEM(player->priv->repeat_menu_item), repeat_toggled); - } -} - -static void parole_player_media_list_show_playlist_cb (ParoleMediaList *list, gboolean show_playlist, ParolePlayer *player) { parole_media_list_set_playlist_view(player->priv->list, @@ -2148,30 +2122,18 @@ parole_player_menu_exit_cb (GtkWidget *widget, ParolePlayer *player) } -void parole_player_shuffle_toggled_cb (GtkWidget *widget, ParolePlayer *player) +void parole_player_toggle_shuffle_action_cb (GtkToggleAction *action, ParolePlayer *player) { - gboolean toggled; - - toggled = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); - g_object_set (G_OBJECT (player->priv->conf), - "shuffle", toggled, + "shuffle", gtk_toggle_action_get_active (action), NULL); - - parole_media_list_set_shuffle_toggled(player->priv->list, toggled); } -void parole_player_repeat_toggled_cb (GtkWidget *widget, ParolePlayer *player) +void parole_player_toggle_repeat_action_cb (GtkToggleAction *action, ParolePlayer *player) { - gboolean toggled; - - toggled = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); - g_object_set (G_OBJECT (player->priv->conf), - "repeat", toggled, + "repeat", gtk_toggle_action_get_active (action), NULL); - - parole_media_list_set_repeat_toggled(player->priv->list, toggled); } static void @@ -2972,6 +2934,18 @@ parole_player_init (ParolePlayer *player) g_signal_connect(G_OBJECT(player->priv->toggle_playlist_action), "activate", G_CALLBACK(parole_player_toggle_playlist_action_cb), player); gtk_action_set_sensitive(GTK_ACTION(player->priv->toggle_playlist_action), TRUE); + /* Toggle Repeat */ + player->priv->toggle_repeat_action = gtk_toggle_action_new("toggle_repeat_action", _("Repeat"), _("Repeat"), NULL); + gtk_action_set_icon_name(GTK_ACTION(player->priv->toggle_repeat_action), "media-playlist-repeat-symbolic"); + g_signal_connect(G_OBJECT(player->priv->toggle_repeat_action), "activate", G_CALLBACK(parole_player_toggle_repeat_action_cb), player); + gtk_action_set_sensitive(GTK_ACTION(player->priv->toggle_repeat_action), TRUE); + + /* Toggle Shuffle */ + player->priv->toggle_shuffle_action = gtk_toggle_action_new("toggle_shuffle_action", _("Shuffle"), _("Shuffle"), NULL); + gtk_action_set_icon_name(GTK_ACTION(player->priv->toggle_shuffle_action), "media-playlist-shuffle-symbolic"); + g_signal_connect(G_OBJECT(player->priv->toggle_shuffle_action), "activate", G_CALLBACK(parole_player_toggle_shuffle_action_cb), player); + gtk_action_set_sensitive(GTK_ACTION(player->priv->toggle_shuffle_action), TRUE); + /* * GTK Widgets @@ -3078,8 +3052,15 @@ parole_player_init (ParolePlayer *player) gtk_activatable_set_use_action_appearance(GTK_ACTIVATABLE(action_widget), TRUE); gtk_activatable_set_related_action(GTK_ACTIVATABLE(action_widget), GTK_ACTION(player->priv->toggle_playlist_action)); - player->priv->shuffle_menu_item = GTK_WIDGET (gtk_builder_get_object (builder, "shuffle")); - player->priv->repeat_menu_item = GTK_WIDGET (gtk_builder_get_object (builder, "repeat")); + action_widget = GTK_WIDGET (gtk_builder_get_object (builder, "shuffle")); + gtk_activatable_set_use_action_appearance(GTK_ACTIVATABLE(action_widget), TRUE); + gtk_activatable_set_related_action(GTK_ACTIVATABLE(action_widget), GTK_ACTION(player->priv->toggle_shuffle_action)); + parole_media_list_connect_shuffle_action(player->priv->list, GTK_ACTION(player->priv->toggle_shuffle_action)); + + action_widget = GTK_WIDGET (gtk_builder_get_object (builder, "repeat")); + gtk_activatable_set_use_action_appearance(GTK_ACTIVATABLE(action_widget), TRUE); + gtk_activatable_set_related_action(GTK_ACTIVATABLE(action_widget), GTK_ACTION(player->priv->toggle_repeat_action)); + parole_media_list_connect_repeat_action(player->priv->list, GTK_ACTION(player->priv->toggle_repeat_action)); bug_report = GTK_WIDGET (gtk_builder_get_object (builder, "bug-report")); g_signal_connect (bug_report, "activate", G_CALLBACK(on_bug_report_clicked), player); @@ -3299,12 +3280,6 @@ parole_player_init (ParolePlayer *player) g_signal_connect (player->priv->list, "uri-opened", G_CALLBACK (parole_player_uri_opened_cb), player); - g_signal_connect (player->priv->list, "repeat-toggled", - G_CALLBACK (parole_player_media_list_repeat_toggled_cb), player); - - g_signal_connect (player->priv->list, "shuffle-toggled", - G_CALLBACK (parole_player_media_list_shuffle_toggled_cb), player); - g_signal_connect (player->priv->list, "show-playlist", G_CALLBACK (parole_player_media_list_show_playlist_cb), player); @@ -3321,13 +3296,9 @@ parole_player_init (ParolePlayer *player) "shuffle", &shuffle, NULL); - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "repeat")), repeat); - - parole_media_list_set_repeat_toggled(player->priv->list, repeat); + gtk_toggle_action_set_active (player->priv->toggle_repeat_action, repeat); - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "shuffle")), shuffle); - - parole_media_list_set_shuffle_toggled(player->priv->list, shuffle); + gtk_toggle_action_set_active (player->priv->toggle_shuffle_action, shuffle); parole_gst_set_default_aspect_ratio (player, builder); _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits