Updating branch refs/heads/gber/improvements to 0ba34e52028d6e448151738ceaebe579e0cc72f9 (commit) from 9ebcc4e61a394cecf298f859810f2ae81b3df1fa (commit)
commit 0ba34e52028d6e448151738ceaebe579e0cc72f9 Author: Guido Berhoerster <guido+x...@berhoerster.name> Date: Fri Sep 21 12:00:36 2012 +0200 Remove UI for configuring the mixer command from the panel plugin Remove UI for configuring the mixer command from the panel plugin and assume xfce4-mixer, make the panel plugin context menu entry for running the mixer more meaningful. NEWS | 3 + panel-plugin/xfce-mixer-plugin.c | 22 ++---- panel-plugin/xfce-plugin-dialog.c | 168 +------------------------------------ 3 files changed, 10 insertions(+), 183 deletions(-) diff --git a/NEWS b/NEWS index 7cab556..4cb9822 100644 --- a/NEWS +++ b/NEWS @@ -34,6 +34,9 @@ - Make xfce4-mixer a singleton application, executing xfce4-mixer while another instance is already running brings the running instance to the foreground (bug #5676). +- Remove UI for configuring the mixer command from the panel plugin and assume + xfce4-mixer, make the panel plugin context menu entry for running the mixer + more meaningful. 4.8.0 diff --git a/panel-plugin/xfce-mixer-plugin.c b/panel-plugin/xfce-mixer-plugin.c index ca0166c..ec7e60b 100644 --- a/panel-plugin/xfce-mixer-plugin.c +++ b/panel-plugin/xfce-mixer-plugin.c @@ -247,6 +247,7 @@ xfce_mixer_plugin_construct (XfcePanelPlugin *plugin) { XfceMixerPlugin *mixer_plugin = XFCE_MIXER_PLUGIN (plugin); GtkWidget *command_menu_item; + GtkWidget *command_image; xfce_panel_plugin_menu_show_configure (plugin); @@ -257,7 +258,10 @@ xfce_mixer_plugin_construct (XfcePanelPlugin *plugin) gtk_widget_show (mixer_plugin->mute_menu_item); /* Add menu item for running the user-defined command */ - command_menu_item = gtk_menu_item_new_with_mnemonic (_("_Run command")); + command_image = gtk_image_new_from_icon_name ("multimedia-volume-control", GTK_ICON_SIZE_MENU); + gtk_widget_show (command_image); + command_menu_item = gtk_image_menu_item_new_with_mnemonic (_("_Run Audio Mixer")); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (command_menu_item), command_image); xfce_panel_plugin_menu_insert_item (plugin, GTK_MENU_ITEM (command_menu_item)); g_signal_connect_swapped (G_OBJECT (command_menu_item), "activate", G_CALLBACK (xfce_mixer_plugin_command_item_activated), mixer_plugin); gtk_widget_show (command_menu_item); @@ -620,26 +624,12 @@ xfce_mixer_plugin_command_item_activated (XfceMixerPlugin *mixer_plugin, GtkMenuItem *menuitem) { gchar *message; - gint response; g_return_if_fail (mixer_plugin != NULL); if (G_UNLIKELY (mixer_plugin->command == NULL || strlen (mixer_plugin->command) == 0)) { - /* Run error message dialog */ - response = xfce_message_dialog (NULL, - _("No command defined"), - GTK_STOCK_DIALOG_ERROR, - NULL, - _("No command defined yet. You can change this in the plugin properties."), - XFCE_BUTTON_TYPE_MIXED, _("Properties"), GTK_STOCK_PREFERENCES, GTK_RESPONSE_ACCEPT, - GTK_STOCK_CLOSE, GTK_RESPONSE_REJECT, - NULL); - - /* Configure the plugin if requested by the user */ - if (G_LIKELY (response == GTK_RESPONSE_ACCEPT)) - xfce_mixer_plugin_configure_plugin (XFCE_PANEL_PLUGIN (mixer_plugin)); - + xfce_dialog_show_error (NULL, NULL, _("No command defined")); return; } diff --git a/panel-plugin/xfce-plugin-dialog.c b/panel-plugin/xfce-plugin-dialog.c index 7167dd0..85a319a 100644 --- a/panel-plugin/xfce-plugin-dialog.c +++ b/panel-plugin/xfce-plugin-dialog.c @@ -45,24 +45,18 @@ static void xfce_plugin_dialog_init (XfcePluginDialog static void xfce_plugin_dialog_dispose (GObject *object); static void xfce_plugin_dialog_finalize (GObject *object); static void xfce_plugin_dialog_create_contents (XfcePluginDialog *dialog); -static void xfce_plugin_dialog_command_button_clicked (XfcePluginDialog *dialog); static void xfce_plugin_dialog_soundcard_changed (XfcePluginDialog *dialog, GstElement *card, XfceMixerCardCombo *combo); static void xfce_plugin_dialog_track_changed (XfcePluginDialog *dialog, GstMixerTrack *track, XfceMixerTrackCombo *combo); -static void xfce_plugin_dialog_command_entry_changed (XfcePluginDialog *dialog, - GtkEditable *editable); static void xfce_plugin_dialog_soundcard_property_changed (XfcePluginDialog *dialog, GParamSpec *pspec, GObject *object); static void xfce_plugin_dialog_track_property_changed (XfcePluginDialog *dialog, GParamSpec *pspec, GObject *object); -static void xfce_plugin_dialog_command_property_changed (XfcePluginDialog *dialog, - GParamSpec *pspec, - GObject *object); @@ -81,7 +75,6 @@ struct _XfcePluginDialog GtkWidget *card_combo; GtkWidget *track_combo; - GtkWidget *command_entry; }; @@ -139,7 +132,6 @@ xfce_plugin_dialog_init (XfcePluginDialog *dialog) { dialog->card_combo = NULL; dialog->track_combo = NULL; - dialog->command_entry = NULL; dialog->plugin = NULL; } @@ -152,7 +144,6 @@ xfce_plugin_dialog_dispose (GObject *object) g_signal_handlers_disconnect_by_func (G_OBJECT (dialog->plugin), G_CALLBACK (xfce_plugin_dialog_soundcard_property_changed), dialog); g_signal_handlers_disconnect_by_func (G_OBJECT (dialog->plugin), G_CALLBACK (xfce_plugin_dialog_track_property_changed), dialog); - g_signal_handlers_disconnect_by_func (G_OBJECT (dialog->plugin), G_CALLBACK (xfce_plugin_dialog_command_property_changed), dialog); (*G_OBJECT_CLASS (xfce_plugin_dialog_parent_class)->dispose) (object); } @@ -187,7 +178,6 @@ xfce_plugin_dialog_create_contents (XfcePluginDialog *dialog) { GtkWidget *alignment; GtkWidget *vbox; - GtkWidget *hbox; GtkWidget *button; GtkWidget *label; gchar *title; @@ -195,7 +185,7 @@ xfce_plugin_dialog_create_contents (XfcePluginDialog *dialog) gtk_window_set_icon_name (GTK_WINDOW (dialog), "multimedia-volume-control"); gtk_window_set_title (GTK_WINDOW (dialog), _("Audio Mixer Plugin")); - xfce_titled_dialog_set_subtitle (XFCE_TITLED_DIALOG (dialog), _("Configure the mixer track and command")); + xfce_titled_dialog_set_subtitle (XFCE_TITLED_DIALOG (dialog), _("Configure the sound card and mixer track")); button = gtk_button_new_from_stock (GTK_STOCK_CLOSE); gtk_dialog_add_action_widget (GTK_DIALOG (dialog), button, GTK_RESPONSE_CLOSE); @@ -240,127 +230,15 @@ xfce_plugin_dialog_create_contents (XfcePluginDialog *dialog) gtk_container_add (GTK_CONTAINER (alignment), dialog->track_combo); gtk_widget_show (dialog->track_combo); - label = gtk_label_new (NULL); - title = g_strdup_printf ("<span weight='bold'>%s</span>", _("Command")); - gtk_label_set_markup (GTK_LABEL (label), title); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); - gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); - gtk_widget_show (label); - g_free (title); - - alignment = gtk_alignment_new (0.0, 0.0, 1, 1); - gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 6, 12, 0); - gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, TRUE, 0); - gtk_widget_show (alignment); - - hbox = gtk_hbox_new (FALSE, 12); - gtk_container_add (GTK_CONTAINER (alignment), hbox); - gtk_widget_show (hbox); - - dialog->command_entry = gtk_entry_new (); - gtk_box_pack_start (GTK_BOX (hbox), dialog->command_entry, TRUE, TRUE, 0); - gtk_widget_show (dialog->command_entry); - - button = gtk_button_new_from_stock (GTK_STOCK_OPEN); - g_signal_connect_swapped (button, "clicked", G_CALLBACK (xfce_plugin_dialog_command_button_clicked), dialog); - gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0); - gtk_widget_show (button); - /* Hack to initialize the widget state */ xfce_plugin_dialog_soundcard_property_changed (dialog, g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (dialog->plugin)), "sound-card"), G_OBJECT (dialog->plugin)); xfce_plugin_dialog_track_property_changed (dialog, g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (dialog->plugin)), "track"), G_OBJECT (dialog->plugin)); - xfce_plugin_dialog_command_property_changed (dialog, g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (dialog->plugin)), "command"), G_OBJECT (dialog->plugin)); g_signal_connect_swapped (G_OBJECT (dialog->card_combo), "soundcard-changed", G_CALLBACK (xfce_plugin_dialog_soundcard_changed), dialog); g_signal_connect_swapped (G_OBJECT (dialog->track_combo), "track-changed", G_CALLBACK (xfce_plugin_dialog_track_changed), dialog); - g_signal_connect_swapped (G_OBJECT (dialog->command_entry), "changed", G_CALLBACK (xfce_plugin_dialog_command_entry_changed), dialog); g_signal_connect_swapped (G_OBJECT (dialog->plugin), "notify::sound-card", G_CALLBACK (xfce_plugin_dialog_soundcard_property_changed), dialog); g_signal_connect_swapped (G_OBJECT (dialog->plugin), "notify::track", G_CALLBACK (xfce_plugin_dialog_track_property_changed), dialog); - g_signal_connect_swapped (G_OBJECT (dialog->plugin), "notify::command", G_CALLBACK (xfce_plugin_dialog_command_property_changed), dialog); -} - - - -static void -xfce_plugin_dialog_command_button_clicked (XfcePluginDialog *dialog) -{ - GtkWidget *chooser; - GtkFileFilter *filter; - gchar *filename; - - g_return_if_fail (IS_XFCE_PLUGIN_DIALOG (dialog)); - - chooser = gtk_file_chooser_dialog_new (_("Select command"), - GTK_WINDOW (dialog), - GTK_FILE_CHOOSER_ACTION_OPEN, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_OPEN, GTK_RESPONSE_OK, NULL); - - /* Add file chooser filters */ - filter = gtk_file_filter_new (); - gtk_file_filter_set_name (filter, _("All Files")); - gtk_file_filter_add_pattern (filter, "*"); - gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter); - - filter = gtk_file_filter_new (); - gtk_file_filter_set_name (filter, _("Executable Files")); - gtk_file_filter_add_mime_type (filter, "application/x-csh"); - gtk_file_filter_add_mime_type (filter, "application/x-executable"); - gtk_file_filter_add_mime_type (filter, "application/x-perl"); - gtk_file_filter_add_mime_type (filter, "application/x-python"); - gtk_file_filter_add_mime_type (filter, "application/x-ruby"); - gtk_file_filter_add_mime_type (filter, "application/x-shellscript"); - gtk_file_filter_add_pattern (filter, "*.pl"); - gtk_file_filter_add_pattern (filter, "*.py"); - gtk_file_filter_add_pattern (filter, "*.rb"); - gtk_file_filter_add_pattern (filter, "*.sh"); - gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter); - gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (chooser), filter); - - filter = gtk_file_filter_new (); - gtk_file_filter_set_name (filter, _("Perl Scripts")); - gtk_file_filter_add_mime_type (filter, "application/x-perl"); - gtk_file_filter_add_pattern (filter, "*.pl"); - gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter); - - filter = gtk_file_filter_new (); - gtk_file_filter_set_name (filter, _("Python Scripts")); - gtk_file_filter_add_mime_type (filter, "application/x-python"); - gtk_file_filter_add_pattern (filter, "*.py"); - gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter); - - filter = gtk_file_filter_new (); - gtk_file_filter_set_name (filter, _("Ruby Scripts")); - gtk_file_filter_add_mime_type (filter, "application/x-ruby"); - gtk_file_filter_add_pattern (filter, "*.rb"); - gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter); - - filter = gtk_file_filter_new (); - gtk_file_filter_set_name (filter, _("Shell Scripts")); - gtk_file_filter_add_mime_type (filter, "application/x-csh"); - gtk_file_filter_add_mime_type (filter, "application/x-shellscript"); - gtk_file_filter_add_pattern (filter, "*.sh"); - gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter); - -#if 0 - /* Use bindir as default folder */ - gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (chooser), BINDIR); -#endif - - /* Use previous command as a starting point */ - gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (chooser), gtk_entry_get_text (GTK_ENTRY (dialog->command_entry))); - - /* Run the file chooser */ - if (G_LIKELY (gtk_dialog_run (GTK_DIALOG (chooser)) == GTK_RESPONSE_OK)) - { - filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser)); - gtk_entry_set_text (GTK_ENTRY (dialog->command_entry), filename); - g_free (filename); - } - - /* Destroy the dialog */ - gtk_widget_destroy (chooser); } @@ -404,23 +282,6 @@ xfce_plugin_dialog_track_changed (XfcePluginDialog *dialog, static void -xfce_plugin_dialog_command_entry_changed (XfcePluginDialog *dialog, - GtkEditable *editable) -{ - gchar *command; - - command = gtk_editable_get_chars (editable, 0, -1); - - g_signal_handlers_block_by_func (G_OBJECT (dialog->plugin), G_CALLBACK (xfce_plugin_dialog_command_property_changed), dialog); - g_object_set (G_OBJECT (dialog->plugin), "command", command, NULL); - g_signal_handlers_unblock_by_func (G_OBJECT (dialog->plugin), G_CALLBACK (xfce_plugin_dialog_command_property_changed), dialog); - - g_free (command); -} - - - -static void xfce_plugin_dialog_soundcard_property_changed (XfcePluginDialog *dialog, GParamSpec *pspec, GObject *object) @@ -497,30 +358,3 @@ xfce_plugin_dialog_track_property_changed (XfcePluginDialog *dialog, g_free (old_track_label); } - - -static void -xfce_plugin_dialog_command_property_changed (XfcePluginDialog *dialog, - GParamSpec *pspec, - GObject *object) -{ - gchar *command; - - g_return_if_fail (IS_XFCE_PLUGIN_DIALOG (dialog)); - g_return_if_fail (G_IS_OBJECT (object)); - - g_object_get (object, "command", &command, NULL); - - if (xfce_mixer_utf8_cmp (gtk_entry_get_text (GTK_ENTRY (dialog->command_entry)), command) != 0) - { - g_signal_handlers_block_by_func (object, G_CALLBACK (xfce_plugin_dialog_command_entry_changed), dialog); - if (command != NULL) - gtk_entry_set_text (GTK_ENTRY (dialog->command_entry), command); - else - gtk_entry_set_text (GTK_ENTRY (dialog->command_entry), ""); - g_signal_handlers_unblock_by_func (object, G_CALLBACK (xfce_plugin_dialog_command_entry_changed), dialog); - } - - g_free (command); -} - _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits