--- a/ChangeLog.API Thu Aug 13 21:10:22 2020 -0500
+++ b/ChangeLog.API Thu Aug 13 22:03:41 2020 -0500
@@ -449,6 +449,38 @@
* purple_quotedp_decode. See the GMime library if needed.
* purple_request_certificate
* purple_request_field_list_add
+ * PURPLE_SOUND_STATUS_AVAILABLE + * PURPLE_SOUND_STATUS_AWAY + * PURPLE_SOUND_STATUS_ALWAYS + * PURPLE_SOUND_BUDDY_ARRIVE + * PURPLE_SOUND_BUDDY_LEAVE + * PURPLE_SOUND_FIRST_RECEIVE + * PURPLE_SOUND_CHAT_JOIN + * PURPLE_SOUND_CHAT_LEAVE + * PURPLE_SOUND_CHAT_YOU_SAY + * PURPLE_SOUND_CHAT_SAY + * PURPLE_SOUND_POUNCE_DEFAULT + * PURPLE_SOUND_CHAT_NICK + * PURPLE_SOUND_GOT_ATTENTION + * purple_sound_ui_ops_get_type + * purple_sound_play_file + * purple_sound_play_event + * purple_sound_set_ui_ops + * purple_sound_get_ui_ops + * purple_sounds_get_handle + * purple_sound_theme_get_type + * purple_sound_theme_get_file + * purple_sound_theme_get_file_full + * purple_sound_theme_set_file + * purple_sound_theme_loader_get_type * purple_srv_resolve_account
* purple_srv_txt_query_destroy
@@ -607,6 +639,11 @@
* pidgin_mini_dialog_links_supported
* pidgin_set_custom_buddy_icon
* pidgin_setup_screenname_autocomplete_with_filter
+ * pidgin_sound_get_event_label + * pidgin_sound_get_event_option + * pidgin_sound_get_handle + * pidgin_sound_get_ui_ops + * pidgin_sound_is_customized * pidgin_toggle_sensitive, pidgin_toggle_sensitive_array, and
pidgin_toggle_showhide; use g_object_bind_property instead
* struct _GtkIMHtmlAnimation
@@ -628,6 +665,14 @@
* gnt_ui_init renamed to finch_ui_init
* gnt_ui_uninit renamed to finch_ui_uninit
+ * finch_sound_get_active_profile + * finch_sound_get_profiles + * finch_sound_get_ui_ops + * finch_sound_is_enabled + * finch_sound_set_active_profile + * finch_sounds_show_all * ENTRY_CHAR renamed to GNT_ENTRY_CHAR
--- a/finch/gntconv.c Thu Aug 13 21:10:22 2020 -0500
+++ b/finch/gntconv.c Thu Aug 13 22:03:41 2020 -0500
@@ -39,7 +39,6 @@
@@ -70,13 +69,6 @@
static int color_message_action;
static int color_timestamp;
-find_buddy_for_conversation(PurpleConversation *conv)
- return purple_blist_find_buddy(purple_conversation_get_account(conv),
- purple_conversation_get_name(conv));
find_chat_for_conversation(PurpleConversation *conv)
@@ -84,21 +76,6 @@
purple_conversation_get_name(conv));
-static PurpleBlistNode *
-get_conversation_blist_node(PurpleConversation *conv)
- PurpleBlistNode *node = NULL;
- if (PURPLE_IS_IM_CONVERSATION(conv)) {
- node = (PurpleBlistNode*)find_buddy_for_conversation(conv);
- node = node ? purple_blist_node_get_parent(node) : NULL;
- } else if (PURPLE_IS_CHAT_CONVERSATION(conv)) {
- node = (PurpleBlistNode*)find_chat_for_conversation(conv);
send_typing_notification(GntWidget *w, FinchConv *ggconv)
@@ -502,16 +479,6 @@
-toggle_sound_cb(GntMenuItem *item, gpointer ggconv)
- FinchConv *fc = ggconv;
- PurpleBlistNode *node = get_conversation_blist_node(fc->active_conv);
- fc->flags ^= FINCH_CONV_NO_SOUND;
- purple_blist_node_set_bool(node, "gnt-mute-sound", !!(fc->flags & FINCH_CONV_NO_SOUND));
send_to_cb(GntMenuItem *m, gpointer n)
PurpleAccount *account = g_object_get_data(G_OBJECT(m), "purple_account");
@@ -693,12 +660,6 @@
gnt_menu_add_item(GNT_MENU(sub), item);
gnt_menuitem_set_callback(item, toggle_logging_cb, ggc);
- item = gnt_menuitem_check_new(_("Enable Sounds"));
- gnt_menuitem_check_set_checked(GNT_MENU_ITEM_CHECK(item),
- !(ggc->flags & FINCH_CONV_NO_SOUND));
- gnt_menu_add_item(GNT_MENU(sub), item);
- gnt_menuitem_set_callback(item, toggle_sound_cb, ggc);
item = gnt_menuitem_new(_("Plugins"));
gnt_menu_add_item(GNT_MENU(menu), item);
@@ -889,11 +850,6 @@
if (PURPLE_IS_IM_CONVERSATION(conv))
g_signal_connect(G_OBJECT(ggc->entry), "text_changed", G_CALLBACK(send_typing_notification), ggc);
- convnode = get_conversation_blist_node(conv);
- if ((convnode && purple_blist_node_get_bool(convnode, "gnt-mute-sound")) ||
- !finch_sound_is_enabled())
- ggc->flags |= FINCH_CONV_NO_SOUND;
gg_setup_commands(ggc, FALSE);
--- a/finch/gntpounce.c Thu Aug 13 21:10:22 2020 -0500
+++ b/finch/gntpounce.c Thu Aug 13 22:03:41 2020 -0500
@@ -78,7 +78,6 @@
GntWidget *send_msg_entry;
GntWidget *exec_cmd_entry;
@@ -250,8 +249,6 @@
gnt_check_box_get_checked(GNT_CHECK_BOX(dialog->send_msg)));
purple_pounce_action_set_enabled(dialog->pounce, "execute-command",
gnt_check_box_get_checked(GNT_CHECK_BOX(dialog->exec_cmd)));
- purple_pounce_action_set_enabled(dialog->pounce, "play-beep",
- gnt_check_box_get_checked(GNT_CHECK_BOX(dialog->play_sound)));
purple_pounce_action_set_attribute(dialog->pounce, "send-message",
@@ -269,8 +266,6 @@
gnt_check_box_get_checked(GNT_CHECK_BOX(dialog->send_msg)));
purple_prefs_set_bool("/finch/pounces/default_actions/execute-command",
gnt_check_box_get_checked(GNT_CHECK_BOX(dialog->exec_cmd)));
- purple_prefs_set_bool("/finch/pounces/default_actions/play-beep",
- gnt_check_box_get_checked(GNT_CHECK_BOX(dialog->play_sound)));
purple_pounce_set_save(dialog->pounce,
gnt_check_box_get_checked(GNT_CHECK_BOX(dialog->save_pounce)));
@@ -422,7 +417,6 @@
dialog->popup = gnt_check_box_new(_("Pop up a notification"));
dialog->send_msg = gnt_check_box_new(_("Send a message"));
dialog->exec_cmd = gnt_check_box_new(_("Execute a command"));
- dialog->play_sound = gnt_check_box_new(_("Play a sound"));
dialog->send_msg_entry = gnt_entry_new(NULL);
dialog->exec_cmd_entry = gnt_entry_new(NULL);
@@ -444,9 +438,6 @@
gnt_box_add_widget(GNT_BOX(hbox), dialog->exec_cmd);
gnt_box_add_widget(GNT_BOX(hbox), dialog->exec_cmd_entry);
gnt_box_add_widget(GNT_BOX(window), hbox);
- hbox = gnt_hbox_new(FALSE);
- gnt_box_add_widget(GNT_BOX(hbox), dialog->play_sound);
- gnt_box_add_widget(GNT_BOX(window), hbox);
gnt_box_add_widget(GNT_BOX(window), gnt_line_new(FALSE));
gnt_box_add_widget(GNT_BOX(window), gnt_label_new_with_format(_("Options"), GNT_TEXT_FLAG_BOLD));
@@ -517,8 +508,6 @@
purple_pounce_action_is_enabled(cur_pounce, "send-message"));
gnt_check_box_set_checked(GNT_CHECK_BOX(dialog->exec_cmd),
purple_pounce_action_is_enabled(cur_pounce, "execute-command"));
- gnt_check_box_set_checked(GNT_CHECK_BOX(dialog->play_sound),
- purple_pounce_action_is_enabled(cur_pounce, "play-beep"));
gnt_check_box_set_checked(GNT_CHECK_BOX(dialog->save_pounce),
purple_pounce_get_save(cur_pounce));
@@ -595,8 +584,6 @@
purple_prefs_get_bool("/finch/pounces/default_actions/send-message"));
gnt_check_box_set_checked(GNT_CHECK_BOX(dialog->exec_cmd),
purple_prefs_get_bool("/finch/pounces/default_actions/execute-command"));
- gnt_check_box_set_checked(GNT_CHECK_BOX(dialog->play_sound),
- purple_prefs_get_bool("/finch/pounces/default_actions/play-beep"));
--- a/libpurple/plugins/signals-test.c Thu Aug 13 21:10:22 2020 -0500
+++ b/libpurple/plugins/signals-test.c Thu Aug 13 22:03:41 2020 -0500
@@ -544,20 +544,6 @@
/**************************************************************************
- * Sound signal callbacks
- **************************************************************************/
-sound_playing_event_cb(PurpleSoundEventID event, PurpleAccount *account) {
- purple_debug_misc("signals test", "sound playing event: %d for account: %s\n",
- event, purple_account_get_username(account));
- purple_debug_misc("signals test", "sound playing event: %d\n", event);
-/**************************************************************************
* Notify signals callbacks
**************************************************************************/
@@ -674,7 +660,6 @@
void *conn_handle = purple_connections_get_handle();
void *conv_handle = purple_conversations_get_handle();
void *accounts_handle = purple_accounts_get_handle();
- void *sound_handle = purple_sounds_get_handle();
void *notify_handle = purple_notify_get_handle();
void *jabber_handle = purple_protocols_find("prpl-jabber");
@@ -790,10 +775,6 @@
purple_signal_connect(core_handle, "uri-handler",
plugin, PURPLE_CALLBACK(uri_handler), NULL);
- purple_signal_connect(sound_handle, "playing-sound-event", plugin,
- PURPLE_CALLBACK(sound_playing_event_cb), NULL);
purple_signal_connect(notify_handle, "displaying-email-notification",
plugin, PURPLE_CALLBACK(notify_email_cb), NULL);
--- a/pidgin/gtkconv.c Thu Aug 13 21:10:22 2020 -0500
+++ b/pidgin/gtkconv.c Thu Aug 13 22:03:41 2020 -0500
@@ -1128,28 +1128,6 @@
-menu_sounds_cb(GtkAction *action, gpointer data)
- PidginConvWindow *win = data;
- PurpleConversation *conv;
- PidginConversation *gtkconv;
- conv = pidgin_conv_window_get_active_conversation(win);
- gtkconv = PIDGIN_CONVERSATION(conv);
- gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
- node = get_conversation_blist_node(conv);
- purple_blist_node_set_bool(node, "gtk-mute-sound", !gtkconv->make_sound);
chat_do_im(PidginConversation *gtkconv, const char *who)
PurpleConversation *conv = gtkconv->active_conv;
@@ -2604,7 +2582,6 @@
static const GtkToggleActionEntry menu_toggle_entries[] = {
{ "EnableLogging", NULL, N_("Enable _Logging"), NULL, NULL, G_CALLBACK(menu_logging_cb), FALSE },
- { "EnableSounds", NULL, N_("Enable _Sounds"), NULL, NULL, G_CALLBACK(menu_sounds_cb), FALSE },
{ "ShowFormattingToolbars", NULL, N_("Show Formatting _Toolbars"), NULL, NULL, G_CALLBACK(menu_toolbar_cb), FALSE },
@@ -2647,37 +2624,12 @@
"<menu action='OptionsMenu'>"
"<menuitem action='EnableLogging'/>"
- "<menuitem action='EnableSounds'/>"
"<menuitem action='ShowFormattingToolbars'/>"
-sound_method_pref_changed_cb(const char *name, PurplePrefType type,
- gconstpointer value, gpointer data)
- PidginConvWindow *win = data;
- const char *method = value;
- if (purple_strequal(method, "none"))
- gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(win->menu->sounds),
- gtk_action_set_sensitive(win->menu->sounds, FALSE);
- PidginConversation *gtkconv = pidgin_conv_window_get_active_gtkconv(win);
- gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(win->menu->sounds),
- gtk_action_set_sensitive(win->menu->sounds, TRUE);
/* Returns TRUE if some items were added to the menu, FALSE otherwise */
populate_menu_with_options(GtkWidget *menu, PidginConversation *gtkconv, gboolean all)
@@ -3103,19 +3055,6 @@
gtk_ui_manager_get_action(win->menu->ui,
"/Conversation/OptionsMenu/EnableLogging");
- gtk_ui_manager_get_action(win->menu->ui,
- "/Conversation/OptionsMenu/EnableSounds");
- method = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/method");
- if (purple_strequal(method, "none"))
- gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(win->menu->sounds),
- gtk_action_set_sensitive(win->menu->sounds, FALSE);
- purple_prefs_connect_callback(win, PIDGIN_PREFS_ROOT "/sound/method",
- sound_method_pref_changed_cb, win);
win->menu->show_formatting_toolbar =
gtk_ui_manager_get_action(win->menu->ui,
"/Conversation/OptionsMenu/ShowFormattingToolbars");
@@ -4397,9 +4336,6 @@
convnode = get_conversation_blist_node(conv);
- if (convnode == NULL || !purple_blist_node_get_bool(convnode, "gtk-mute-sound"))
- gtkconv->make_sound = TRUE;
if (convnode != NULL && purple_blist_node_has_setting(convnode, "enable-logging")) {
gboolean logging = purple_blist_node_get_bool(convnode, "enable-logging");
purple_conversation_set_logging(conv, logging);
@@ -7667,7 +7603,6 @@
PurpleConversation *conv;
PidginConversation *gtkconv;
- const char *sound_method;
gtkconv = pidgin_conv_window_get_gtkconv_at_index(win, page_num);
@@ -7691,11 +7626,6 @@
pidgin_conv_switch_active_conversation(conv);
- sound_method = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/method");
- if (!purple_strequal(sound_method, "none"))
- gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(win->menu->sounds),
gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(win->menu->show_formatting_toolbar),
purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/show_formatting_toolbar"));
--- a/pidgin/gtkpounce.c Thu Aug 13 21:10:22 2020 -0500
+++ b/pidgin/gtkpounce.c Thu Aug 13 22:03:41 2020 -0500
@@ -91,11 +91,6 @@
GtkWidget *exec_cmd_entry;
GtkWidget *exec_cmd_browse;
- GtkWidget *play_sound_entry;
- GtkWidget *play_sound_browse;
- GtkWidget *play_sound_test;
- GtkWidget *play_sound_reset;
@@ -157,32 +152,6 @@
-pounce_test_sound(GtkWidget *w, GtkWidget *entry)
- temp_mute = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/sound/mute");
- if (temp_mute) purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/sound/mute", FALSE);
- filename = gtk_entry_get_text(GTK_ENTRY(entry));
- if (filename != NULL && *filename != '\0' && !purple_strequal(filename, _("(default)")))
- purple_sound_play_file(filename, NULL);
- purple_sound_play_event(PURPLE_SOUND_POUNCE_DEFAULT, NULL);
- if (temp_mute) purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/sound/mute", TRUE);
-pounce_reset_sound(GtkWidget *w, GtkWidget *entry)
- gtk_entry_set_text(GTK_ENTRY(entry), _("(default)"));
add_pounce_to_treeview(GtkListStore *model, PurplePounce *pounce)
@@ -247,7 +216,7 @@
save_pounce_cb(GtkWidget *w, PidginPounceDialog *dialog)
- const char *command, *sound, *reason;
+ const char *command, *reason; PurplePounceEvent events = PURPLE_POUNCE_NONE;
PurplePounceOption options = PURPLE_POUNCE_OPTION_NONE;
@@ -299,7 +268,6 @@
message = talkatu_markup_get_html(dialog->send_msg_buffer, NULL);
command = gtk_entry_get_text(GTK_ENTRY(dialog->exec_cmd_entry));
- sound = gtk_entry_get_text(GTK_ENTRY(dialog->play_sound_entry));
reason = gtk_entry_get_text(GTK_ENTRY(dialog->popup_entry));
if (*reason == '\0') reason = NULL;
@@ -308,7 +276,6 @@
if (*command == '\0') command = NULL;
- if (*sound == '\0' || purple_strequal(sound, _("(default)"))) sound = NULL;
/* If the pounce has already been triggered, let's pretend it is a new one */
if (dialog->pounce != NULL
@@ -338,15 +305,11 @@
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->send_msg)));
purple_pounce_action_set_enabled(dialog->pounce, "execute-command",
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->exec_cmd)));
- purple_pounce_action_set_enabled(dialog->pounce, "play-sound",
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->play_sound)));
purple_pounce_action_set_attribute(dialog->pounce, "send-message",
purple_pounce_action_set_attribute(dialog->pounce, "execute-command",
- purple_pounce_action_set_attribute(dialog->pounce, "play-sound",
purple_pounce_action_set_attribute(dialog->pounce, "popup-notify",
@@ -359,8 +322,6 @@
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->send_msg)));
purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/execute-command",
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->exec_cmd)));
- purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/play-sound",
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->play_sound)));
purple_pounce_set_save(dialog->pounce,
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->save_pounce)));
@@ -702,8 +663,6 @@
= gtk_check_button_new_with_mnemonic(_("Send a _message"));
= gtk_check_button_new_with_mnemonic(_("E_xecute a command"));
- = gtk_check_button_new_with_mnemonic(_("P_lay a sound"));
editor = talkatu_editor_new();
dialog->send_msg_entry = talkatu_editor_get_input(TALKATU_EDITOR(editor));
@@ -712,21 +671,11 @@
dialog->exec_cmd_entry = gtk_entry_new();
dialog->popup_entry = gtk_entry_new();
dialog->exec_cmd_browse = gtk_button_new_with_mnemonic(_("Brows_e..."));
- dialog->play_sound_entry = gtk_entry_new();
- gtk_entry_set_text(GTK_ENTRY(dialog->play_sound_entry), _("(default)"));
- gtk_editable_set_editable(GTK_EDITABLE(dialog->play_sound_entry), FALSE);
- dialog->play_sound_browse = gtk_button_new_with_mnemonic(_("Br_owse..."));
- dialog->play_sound_test = gtk_button_new_with_mnemonic(_("Pre_view"));
- dialog->play_sound_reset = gtk_button_new_with_mnemonic(_("Reset"));
gtk_widget_set_sensitive(editor, FALSE);
gtk_widget_set_sensitive(dialog->exec_cmd_entry, FALSE);
gtk_widget_set_sensitive(dialog->popup_entry, FALSE);
gtk_widget_set_sensitive(dialog->exec_cmd_browse, FALSE);
- gtk_widget_set_sensitive(dialog->play_sound_entry, FALSE);
- gtk_widget_set_sensitive(dialog->play_sound_browse, FALSE);
- gtk_widget_set_sensitive(dialog->play_sound_test, FALSE);
- gtk_widget_set_sensitive(dialog->play_sound_reset, FALSE);
@@ -737,11 +686,6 @@
gtk_size_group_add_widget(sg, dialog->exec_cmd);
gtk_size_group_add_widget(sg, dialog->exec_cmd_entry);
gtk_size_group_add_widget(sg, dialog->exec_cmd_browse);
- gtk_size_group_add_widget(sg, dialog->play_sound);
- gtk_size_group_add_widget(sg, dialog->play_sound_entry);
- gtk_size_group_add_widget(sg, dialog->play_sound_browse);
- gtk_size_group_add_widget(sg, dialog->play_sound_test);
- gtk_size_group_add_widget(sg, dialog->play_sound_reset);
@@ -755,14 +699,6 @@
gtk_widget_set_valign(dialog->exec_cmd_entry, GTK_ALIGN_CENTER);
gtk_widget_set_hexpand(dialog->exec_cmd_browse, TRUE);
gtk_widget_set_valign(dialog->exec_cmd_browse, GTK_ALIGN_CENTER);
- gtk_widget_set_valign(dialog->play_sound, GTK_ALIGN_CENTER);
- gtk_widget_set_valign(dialog->play_sound_entry, GTK_ALIGN_CENTER);
- gtk_widget_set_hexpand(dialog->play_sound_browse, TRUE);
- gtk_widget_set_valign(dialog->play_sound_browse, GTK_ALIGN_CENTER);
- gtk_widget_set_hexpand(dialog->play_sound_test, TRUE);
- gtk_widget_set_valign(dialog->play_sound_test, GTK_ALIGN_CENTER);
- gtk_widget_set_hexpand(dialog->play_sound_reset, TRUE);
- gtk_widget_set_valign(dialog->play_sound_reset, GTK_ALIGN_CENTER);
gtk_grid_attach(GTK_GRID(grid), dialog->open_win, 0, 0, 1, 1);
gtk_grid_attach(GTK_GRID(grid), dialog->popup, 0, 1, 1, 1);
@@ -772,11 +708,6 @@
gtk_grid_attach(GTK_GRID(grid), dialog->exec_cmd, 0, 4, 1, 1);
gtk_grid_attach(GTK_GRID(grid), dialog->exec_cmd_entry, 1, 4, 1, 1);
gtk_grid_attach(GTK_GRID(grid), dialog->exec_cmd_browse, 2, 4, 1, 1);
- gtk_grid_attach(GTK_GRID(grid), dialog->play_sound, 0, 5, 1, 1);
- gtk_grid_attach(GTK_GRID(grid), dialog->play_sound_entry, 1, 5, 1, 1);
- gtk_grid_attach(GTK_GRID(grid), dialog->play_sound_browse,2, 5, 1, 1);
- gtk_grid_attach(GTK_GRID(grid), dialog->play_sound_test, 3, 5, 1, 1);
- gtk_grid_attach(GTK_GRID(grid), dialog->play_sound_reset, 4, 5, 1, 1);
gtk_grid_set_row_spacing(GTK_GRID(grid), 3);
@@ -788,11 +719,6 @@
gtk_widget_show(dialog->exec_cmd);
gtk_widget_show(dialog->exec_cmd_entry);
gtk_widget_show(dialog->exec_cmd_browse);
- gtk_widget_show(dialog->play_sound);
- gtk_widget_show(dialog->play_sound_entry);
- gtk_widget_show(dialog->play_sound_browse);
- gtk_widget_show(dialog->play_sound_test);
- gtk_widget_show(dialog->play_sound_reset);
g_signal_connect(G_OBJECT(dialog->message_recv), "clicked",
G_CALLBACK(message_recv_toggle),
@@ -816,29 +742,6 @@
- g_object_bind_property(dialog->play_sound, "active",
- dialog->play_sound_entry, "sensitive",
- g_object_bind_property(dialog->play_sound, "active",
- dialog->play_sound_browse, "sensitive",
- g_object_bind_property(dialog->play_sound, "active",
- dialog->play_sound_test, "sensitive",
- g_object_bind_property(dialog->play_sound, "active",
- dialog->play_sound_reset, "sensitive",
- g_signal_connect(G_OBJECT(dialog->play_sound_browse), "clicked",
- dialog->play_sound_entry);
- g_signal_connect(G_OBJECT(dialog->play_sound_test), "clicked",
- G_CALLBACK(pounce_test_sound),
- dialog->play_sound_entry);
- g_signal_connect(G_OBJECT(dialog->play_sound_reset), "clicked",
- G_CALLBACK(pounce_reset_sound),
- dialog->play_sound_entry);
g_signal_connect_swapped(G_OBJECT(dialog->send_msg_entry), "format-cleared",
G_CALLBACK(reset_send_msg_entry), dialog);
g_signal_connect_swapped(G_OBJECT(dialog->account_menu), "changed",
@@ -948,8 +851,6 @@
purple_pounce_action_is_enabled(cur_pounce, "send-message"));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->exec_cmd),
purple_pounce_action_is_enabled(cur_pounce, "execute-command"));
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->play_sound),
- purple_pounce_action_is_enabled(cur_pounce, "play-sound"));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->save_pounce),
purple_pounce_get_save(cur_pounce));
@@ -974,14 +875,6 @@
gtk_entry_set_text(GTK_ENTRY(dialog->exec_cmd_entry), value);
- if ((value = purple_pounce_action_get_attribute(cur_pounce,
- gtk_entry_set_text(GTK_ENTRY(dialog->play_sound_entry),
- (*value != '\0') ? value : _("(default)"));
@@ -1040,8 +933,6 @@
purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/send-message"));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->exec_cmd),
purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/execute-command"));
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->play_sound),
- purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/play-sound"));
@@ -1527,19 +1418,6 @@
- if (purple_pounce_action_is_enabled(pounce, "play-sound"))
- sound = purple_pounce_action_get_attribute(pounce,
- "play-sound", "filename");
- purple_sound_play_file(sound, account);
- purple_sound_play_event(PURPLE_SOUND_POUNCE_DEFAULT, account);
@@ -1555,7 +1433,6 @@
purple_pounce_action_register(pounce, "popup-notify");
purple_pounce_action_register(pounce, "send-message");
purple_pounce_action_register(pounce, "execute-command");
- purple_pounce_action_register(pounce, "play-sound");
@@ -1583,8 +1460,6 @@
purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/execute-command",
- purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/play-sound",
purple_prefs_add_none(PIDGIN_PREFS_ROOT "/pounces/dialog");
purple_prefs_add_int(PIDGIN_PREFS_ROOT "/pounces/dialog/width", 520);
purple_prefs_add_int(PIDGIN_PREFS_ROOT "/pounces/dialog/height", 321);
--- a/pidgin/gtkprefs.c Thu Aug 13 21:10:22 2020 -0500
+++ b/pidgin/gtkprefs.c Thu Aug 13 22:03:41 2020 -0500
@@ -40,7 +40,6 @@
#include "gtksavedstatuses.h"
#include "gtksmiley-theme.h"
#include "gtkstatus-icon-theme.h"
@@ -191,22 +190,6 @@
- PidginPrefCombo method;
- GtkWidget *method_vbox;
- GtkWidget *command_hbox;
- PidginPrefCombo while_status;
PidginPrefCombo idle_reporting;
@@ -224,7 +207,6 @@
@@ -256,17 +238,11 @@
static PidginPrefsWindow *prefs = NULL;
-static GtkWidget *prefs_sound_themes_combo_box;
static GtkWidget *prefs_blist_themes_combo_box;
static GtkWidget *prefs_status_themes_combo_box;
static GtkWidget *prefs_smiley_themes_combo_box;
-/* Sound theme specific */
-static int sound_row_sel = 0;
-static gboolean prefs_sound_themes_loading;
/* These exist outside the lifetime of the prefs dialog */
-static GtkListStore *prefs_sound_themes;
static GtkListStore *prefs_blist_themes;
static GtkListStore *prefs_status_icon_themes;
static GtkListStore *prefs_smiley_themes;
@@ -865,7 +841,7 @@
delete_prefs(GtkWidget *asdf, void *gdsa)
- /* Close any "select sound" request dialogs */
+ /* Close any request dialogs */ purple_request_close_with_handle(prefs);
purple_notify_close_with_handle(prefs);
@@ -876,10 +852,6 @@
purple_prefs_disconnect_by_handle(prefs);
- prefs_sound_themes_loading = FALSE;
- prefs_sound_themes_combo_box = NULL;
prefs_blist_themes_combo_box = NULL;
prefs_status_themes_combo_box = NULL;
prefs_smiley_themes_combo_box = NULL;
@@ -934,47 +906,6 @@
-/* Rebuild the markup for the sound theme selection for "(Custom)" themes */
-pref_sound_generate_markup(void)
- gboolean print_custom, customized;
- const gchar *author, *description, *current_theme;
- PurpleSoundTheme *theme;
- customized = pidgin_sound_is_customized();
- current_theme = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/theme");
- if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(prefs_sound_themes), &iter)) {
- gtk_tree_model_get(GTK_TREE_MODEL(prefs_sound_themes), &iter, 2, &name, -1);
- print_custom = customized && name && purple_strequal(current_theme, name);
- if (!name || *name == '\0') {
- name = g_strdup(_("Default"));
- author = _("Penguin Pimps");
- description = _("The default Pidgin sound theme");
- theme = PURPLE_SOUND_THEME(purple_theme_manager_find_theme(name, "sound"));
- author = purple_theme_get_author(PURPLE_THEME(theme));
- description = purple_theme_get_description(PURPLE_THEME(theme));
- markup = get_theme_markup(name, print_custom, author, description);
- gtk_list_store_set(prefs_sound_themes, &iter, 1, markup, -1);
- } while (gtk_tree_model_iter_next(GTK_TREE_MODEL(prefs_sound_themes), &iter));
/* adds the themes to the theme list from the manager so they can be displayed in prefs */
prefs_themes_sort(PurpleTheme *theme)
@@ -984,22 +915,7 @@
gchar *image_full = NULL, *markup;
const gchar *name, *author, *description;
- if (PURPLE_IS_SOUND_THEME(theme)){
- image_full = purple_theme_get_image_full(theme);
- if (image_full != NULL){
- pixbuf = pidgin_pixbuf_new_from_file_at_scale(image_full, PREFS_OPTIMAL_ICON_SIZE, PREFS_OPTIMAL_ICON_SIZE, TRUE);
- gtk_list_store_append(prefs_sound_themes, &iter);
- gtk_list_store_set(prefs_sound_themes, &iter, 0, pixbuf, 2, purple_theme_get_name(theme), -1);
- g_object_unref(G_OBJECT(pixbuf));
- } else if (PIDGIN_IS_BLIST_THEME(theme) || PIDGIN_IS_STATUS_ICON_THEME(theme)){
+ if (PIDGIN_IS_BLIST_THEME(theme) || PIDGIN_IS_STATUS_ICON_THEME(theme)){ if (PIDGIN_IS_BLIST_THEME(theme))
@@ -1061,7 +977,6 @@
- prefs_sound_themes_loading = TRUE;
/* refresh the list of themes in the manager */
purple_theme_manager_refresh();
@@ -1070,11 +985,6 @@
pixbuf = pidgin_pixbuf_new_from_file_at_scale(tmp, PREFS_OPTIMAL_ICON_SIZE, PREFS_OPTIMAL_ICON_SIZE, TRUE);
- gtk_list_store_clear(prefs_sound_themes);
- gtk_list_store_append(prefs_sound_themes, &iter);
- gtk_list_store_set(prefs_sound_themes, &iter, 0, pixbuf, 2, "", -1);
gtk_list_store_clear(prefs_blist_themes);
gtk_list_store_append(prefs_blist_themes, &iter);
@@ -1097,23 +1007,18 @@
gtk_list_store_clear(prefs_smiley_themes);
purple_theme_manager_for_each_theme(prefs_themes_sort);
- pref_sound_generate_markup();
smileys_refresh_theme_list();
- prefs_set_active_theme_combo(prefs_sound_themes_combo_box, prefs_sound_themes, purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/theme"));
prefs_set_active_theme_combo(prefs_blist_themes_combo_box, prefs_blist_themes, purple_prefs_get_string(PIDGIN_PREFS_ROOT "/blist/theme"));
prefs_set_active_theme_combo(prefs_status_themes_combo_box, prefs_status_icon_themes, purple_prefs_get_string(PIDGIN_PREFS_ROOT "/status/icon-theme"));
prefs_set_active_theme_combo(prefs_smiley_themes_combo_box, prefs_smiley_themes, purple_prefs_get_string(PIDGIN_PREFS_ROOT "/smileys/theme"));
- prefs_sound_themes_loading = FALSE;
/* init all the theme variables so that the themes can be sorted later and used by pref pages */
- prefs_sound_themes = gtk_list_store_new(3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING);
prefs_blist_themes = gtk_list_store_new(3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING);
prefs_status_icon_themes = gtk_list_store_new(3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING);
@@ -1473,39 +1378,6 @@
g_signal_connect(G_OBJECT(combo_box), "drag_data_received", G_CALLBACK(theme_dnd_recv), (gpointer) type);
-/* sets the current sound theme */
-prefs_set_sound_theme_cb(GtkComboBox *combo_box, gpointer user_data)
- PidginPrefsWindow *win = PIDGIN_PREFS_WINDOW(user_data);
- if(gtk_combo_box_get_active_iter(combo_box, &new_iter) && !prefs_sound_themes_loading) {
- gtk_tree_model_get(GTK_TREE_MODEL(prefs_sound_themes), &new_iter, 2, &new_theme, -1);
- purple_prefs_set_string(PIDGIN_PREFS_ROOT "/sound/theme", new_theme);
- /* New theme removes all customization */
- for(i = 0; i < PURPLE_NUM_SOUNDS; i++){
- pref = g_strdup_printf(PIDGIN_PREFS_ROOT "/sound/file/%s",
- pidgin_sound_get_event_option(i));
- purple_prefs_set_path(pref, "");
- /* gets rid of the "(Custom)" from the last selection */
- pref_sound_generate_markup();
- gtk_entry_set_text(GTK_ENTRY(win->sound.entry), _("(default)"));
/* sets the current smiley theme */
prefs_set_smiley_theme_cb(GtkComboBox *combo_box, gpointer user_data)
@@ -1616,11 +1488,6 @@
prefs_status_themes_combo_box = win->theme.status;
- prefs_build_theme_combo_box(win->theme.sound, prefs_sound_themes,
- PIDGIN_PREFS_ROOT "/sound/theme", "sound");
- prefs_sound_themes_combo_box = win->theme.sound;
prefs_build_theme_combo_box(win->theme.smiley, prefs_smiley_themes,
PIDGIN_PREFS_ROOT "/smileys/theme",
@@ -2310,294 +2177,6 @@
/*** keyring page - end *************************************************/
-sound_method_filter(GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
- gboolean gstreamer = FALSE;
- gboolean win32 = FALSE;
- gtk_tree_model_get(model, iter, 2, &any, 3, &gstreamer, 4, &win32, -1);
-sound_cmd_yeah(GtkEntry *entry, gpointer d)
- purple_prefs_set_path(PIDGIN_PREFS_ROOT "/sound/command",
- gtk_entry_get_text(GTK_ENTRY(entry)));
-sound_changed1_cb(const char *name, PurplePrefType type,
- gconstpointer value, gpointer data)
- GtkWidget *hbox = data;
- const char *method = value;
- gtk_widget_set_sensitive(hbox, purple_strequal(method, "custom"));
-sound_changed2_cb(const char *name, PurplePrefType type,
- gconstpointer value, gpointer data)
- GtkWidget *vbox = data;
- const char *method = value;
- gtk_widget_set_sensitive(vbox, !purple_strequal(method, "none"));
-event_toggled(GtkCellRendererToggle *cell, gchar *pth, gpointer data)
- GtkTreeModel *model = (GtkTreeModel *)data;
- GtkTreePath *path = gtk_tree_path_new_from_string(pth);
- gtk_tree_model_get_iter (model, &iter, path);
- gtk_tree_model_get (model, &iter,
- purple_prefs_set_bool(pref, !gtk_cell_renderer_toggle_get_active(cell));
- gtk_list_store_set(GTK_LIST_STORE (model), &iter,
- 0, !gtk_cell_renderer_toggle_get_active(cell),
- gtk_tree_path_free(path);
-test_sound(GtkWidget *button, gpointer i_am_NULL)
- pref = g_strdup_printf(PIDGIN_PREFS_ROOT "/sound/enabled/%s",
- pidgin_sound_get_event_option(sound_row_sel));
- temp_enabled = purple_prefs_get_bool(pref);
- temp_mute = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/sound/mute");
- if (!temp_enabled) purple_prefs_set_bool(pref, TRUE);
- if (temp_mute) purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/sound/mute", FALSE);
- purple_sound_play_event(sound_row_sel, NULL);
- if (!temp_enabled) purple_prefs_set_bool(pref, FALSE);
- if (temp_mute) purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/sound/mute", TRUE);
- * Resets a sound file back to default.
-reset_sound(GtkWidget *button, gpointer data)
- PidginPrefsWindow *win = PIDGIN_PREFS_WINDOW(data);
- pref = g_strdup_printf(PIDGIN_PREFS_ROOT "/sound/file/%s",
- pidgin_sound_get_event_option(sound_row_sel));
- purple_prefs_set_path(pref, "");
- gtk_entry_set_text(GTK_ENTRY(win->sound.entry), _("(default)"));
- pref_sound_generate_markup();
-sound_chosen_cb(void *user_data, const char *filename)
- sound = GPOINTER_TO_INT(user_data);
- /* Set it -- and forget it */
- pref = g_strdup_printf(PIDGIN_PREFS_ROOT "/sound/file/%s",
- pidgin_sound_get_event_option(sound));
- purple_prefs_set_path(pref, filename);
- * If the sound we just changed is still the currently selected
- * sound, then update the box showing the file name.
- if (sound == sound_row_sel)
- gtk_entry_set_text(GTK_ENTRY(prefs->sound.entry), filename);
- pref_sound_generate_markup();
-select_sound(GtkWidget *button, gpointer being_NULL_is_fun)
- pref = g_strdup_printf(PIDGIN_PREFS_ROOT "/sound/file/%s",
- pidgin_sound_get_event_option(sound_row_sel));
- filename = purple_prefs_get_path(pref);
- purple_request_file(prefs, _("Sound Selection"), filename, FALSE,
- G_CALLBACK(sound_chosen_cb), NULL, NULL,
- GINT_TO_POINTER(sound_row_sel));
-prefs_sound_sel(GtkTreeSelection *sel, gpointer data)
- PidginPrefsWindow *win = PIDGIN_PREFS_WINDOW(data);
- if (! gtk_tree_selection_get_selected (sel, &model, &iter))
- gtk_tree_model_get_value (model, &iter, 3, &val);
- sound_row_sel = g_value_get_uint(&val);
- pref = g_strdup_printf(PIDGIN_PREFS_ROOT "/sound/file/%s",
- pidgin_sound_get_event_option(sound_row_sel));
- file = purple_prefs_get_path(pref);
- if (win->sound.entry) {
- gtk_entry_set_text(GTK_ENTRY(win->sound.entry),
- (file && *file != '\0') ? file
- pref_sound_generate_markup();
-bind_sound_page(PidginPrefsWindow *win)
- win->sound.method.type = PURPLE_PREF_STRING;
- win->sound.method.key = PIDGIN_PREFS_ROOT "/sound/method";
- pidgin_prefs_bind_dropdown(&win->sound.method);
- model = gtk_combo_box_get_model(GTK_COMBO_BOX(win->sound.method.combo));
- gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(model), sound_method_filter, NULL, NULL);
- gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(model));
- gtk_widget_set_sensitive(
- win->sound.method_vbox,
- !purple_strequal(purple_prefs_get_string(PIDGIN_PREFS_ROOT
- purple_prefs_connect_callback(prefs, PIDGIN_PREFS_ROOT "/sound/method",
- win->sound.method_vbox);
- gtk_widget_set_sensitive(
- win->sound.command_hbox,
- purple_strequal(purple_prefs_get_string(PIDGIN_PREFS_ROOT
- purple_prefs_connect_callback(prefs, PIDGIN_PREFS_ROOT "/sound/method",
- win->sound.command_hbox);
- cmd = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/sound/command");
- gtk_entry_set_text(GTK_ENTRY(win->sound.command), cmd);
- pidgin_prefs_bind_checkbox(PIDGIN_PREFS_ROOT "/sound/mute",
- pidgin_prefs_bind_checkbox(PIDGIN_PREFS_ROOT "/sound/conv_focus",
- win->sound.conv_focus);
- win->sound.while_status.type = PURPLE_PREF_INT;
- win->sound.while_status.key = "/purple/sound/while_status";
- pidgin_prefs_bind_dropdown(&win->sound.while_status);
- for (j=0; j < PURPLE_NUM_SOUNDS; j++) {
- char *pref = g_strdup_printf(PIDGIN_PREFS_ROOT "/sound/enabled/%s",
- pidgin_sound_get_event_option(j));
- const char *label = pidgin_sound_get_event_label(j);
- gtk_list_store_append(win->sound.event.store, &iter);
- gtk_list_store_set(win->sound.event.store, &iter,
- 0, purple_prefs_get_bool(pref),
- sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(win->sound.event.view));
- path = gtk_tree_path_new_first();
- gtk_tree_selection_select_path(sel, path);
- gtk_tree_path_free(path);
- pref = g_strdup_printf(PIDGIN_PREFS_ROOT "/sound/file/%s",
- pidgin_sound_get_event_option(0));
- file = purple_prefs_get_path(pref);
- gtk_entry_set_text(GTK_ENTRY(win->sound.entry),
- (file && *file != '\0') ? file : _("(default)"));
set_idle_away(PurpleSavedStatus *status)
@@ -3230,7 +2809,6 @@
@@ -3430,34 +3008,6 @@
gtk_widget_class_bind_template_child(
widget_class, PidginPrefsWindow, keyring.vbox);
- gtk_widget_class_bind_template_child(widget_class, PidginPrefsWindow,
- gtk_widget_class_bind_template_child(widget_class, PidginPrefsWindow,
- gtk_widget_class_bind_template_child(widget_class, PidginPrefsWindow,
- gtk_widget_class_bind_template_child(widget_class, PidginPrefsWindow,
- gtk_widget_class_bind_template_child(widget_class, PidginPrefsWindow,
- gtk_widget_class_bind_template_child(widget_class, PidginPrefsWindow,
- gtk_widget_class_bind_template_child(widget_class, PidginPrefsWindow,
- sound.while_status.combo);
- gtk_widget_class_bind_template_child(widget_class, PidginPrefsWindow,
- gtk_widget_class_bind_template_child(widget_class, PidginPrefsWindow,
- gtk_widget_class_bind_template_child(widget_class, PidginPrefsWindow,
- gtk_widget_class_bind_template_callback(widget_class, sound_cmd_yeah);
- gtk_widget_class_bind_template_callback(widget_class, prefs_sound_sel);
- gtk_widget_class_bind_template_callback(widget_class, event_toggled);
- gtk_widget_class_bind_template_callback(widget_class, select_sound);
- gtk_widget_class_bind_template_callback(widget_class, test_sound);
- gtk_widget_class_bind_template_callback(widget_class, reset_sound);
gtk_widget_class_bind_template_child(
widget_class, PidginPrefsWindow,
@@ -3486,16 +3036,12 @@
gtk_widget_class_bind_template_child(
widget_class, PidginPrefsWindow, theme.status);
gtk_widget_class_bind_template_child(
- widget_class, PidginPrefsWindow, theme.sound);
- gtk_widget_class_bind_template_child(
widget_class, PidginPrefsWindow, theme.smiley);
gtk_widget_class_bind_template_callback(widget_class,
prefs_set_blist_theme_cb);
gtk_widget_class_bind_template_callback(widget_class,
prefs_set_status_icon_theme_cb);
gtk_widget_class_bind_template_callback(widget_class,
- prefs_set_sound_theme_cb);
- gtk_widget_class_bind_template_callback(widget_class,
prefs_set_smiley_theme_cb);
@@ -3653,6 +3199,40 @@
purple_prefs_remove(PIDGIN_PREFS_ROOT "/logging/individual_logs");
purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/signon");
purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/silent_signon");
+ purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/command"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/conv_focus"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/enabled/chat_msg_recv"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/enabled/first_im_recv"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/enabled/got_attention"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/enabled/im_recv"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/enabled/join_chat"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/enabled/left_chat"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/enabled/login"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/enabled/logout"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/enabled/nick_said"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/enabled/pounce_default"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/enabled/send_chat_msg"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/enabled/send_im"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/enabled/sent_attention"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/enabled"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/file/chat_msg_recv"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/file/first_im_recv"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/file/got_attention"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/file/im_recv"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/file/join_chat"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/file/left_chat"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/file/login"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/file/logout"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/file/nick_said"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/file/pounce_default"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/file/send_chat_msg"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/file/send_im"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/file/sent_attention"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/file"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/method"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/mute"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/theme"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound"); /* Convert old queuing prefs to hide_new 3-way pref. */
if (purple_prefs_exists("/plugins/gtk/docklet/queue_messages") &&
--- a/pidgin/pidginactiongroup.c Thu Aug 13 21:10:22 2020 -0500
+++ b/pidgin/pidginactiongroup.c Thu Aug 13 22:03:41 2020 -0500
@@ -384,18 +384,6 @@
*****************************************************************************/
-pidgin_action_group_mute_sounds_callback(const gchar *name,
- PidginActionGroup *group = PIDGIN_ACTION_GROUP(data);
- pidgin_action_group_bool_pref_handler(group, PIDGIN_ACTION_MUTE_SOUNDS,
- (gboolean)GPOINTER_TO_INT(value));
pidgin_action_group_show_buddy_icons_callback(const gchar *name,
@@ -555,14 +543,6 @@
-pidgin_action_group_mute_sounds(GSimpleAction *action, GVariant *value,
- purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/sound/mute",
- g_variant_get_boolean(value));
pidgin_action_group_new_message(GSimpleAction *simple, GVariant *parameter,
@@ -717,10 +697,6 @@
.name = PIDGIN_ACTION_JOIN_CHAT,
.activate = pidgin_action_group_join_chat,
- .name = PIDGIN_ACTION_MUTE_SOUNDS,
- .change_state = pidgin_action_group_mute_sounds,
.name = PIDGIN_ACTION_NEW_MESSAGE,
.activate = pidgin_action_group_new_message,
@@ -781,9 +757,6 @@
/* now add some handlers for preference changes and set actions to the
- pidgin_action_group_setup_bool(group, PIDGIN_ACTION_MUTE_SOUNDS,
- PIDGIN_PREFS_ROOT "/sound/mute",
- pidgin_action_group_mute_sounds_callback);
pidgin_action_group_setup_bool(group, PIDGIN_ACTION_SHOW_BUDDY_ICONS,
PIDGIN_PREFS_ROOT "/blist/show_buddy_icons",
pidgin_action_group_show_buddy_icons_callback);
--- a/pidgin/resources/Prefs/prefs.ui Thu Aug 13 21:10:22 2020 -0500
+++ b/pidgin/resources/Prefs/prefs.ui Thu Aug 13 22:03:41 2020 -0500
@@ -280,115 +280,6 @@
- <object class="GtkListStore" id="sound.event.store">
- <!-- column-name active -->
- <column type="gboolean"/>
- <!-- column-name text -->
- <column type="gchararray"/>
- <!-- column-name pref -->
- <column type="gchararray"/>
- <!-- column-name id -->
- <object class="GtkListStore" id="sound.method.store_raw">
- <!-- column-name text -->
- <column type="gchararray"/>
- <!-- column-name value -->
- <column type="gchararray"/>
- <!-- column-name any -->
- <column type="gboolean"/>
- <!-- column-name gstreamer -->
- <column type="gboolean"/>
- <!-- column-name win32 -->
- <column type="gboolean"/>
- <col id="0" translatable="yes">Automatic</col>
- <col id="1">automatic</col>
- <col id="3">False</col>
- <col id="4">False</col>
- <col id="0" translatable="yes">DirectSound</col>
- <col id="1">directsound</col>
- <col id="2">False</col>
- <col id="0" translatable="yes">ESD</col>
- <col id="2">False</col>
- <col id="4">False</col>
- <col id="0" translatable="yes">ALSA</col>
- <col id="2">False</col>
- <col id="4">False</col>
- <col id="0" translatable="yes">PlaySound</col>
- <col id="1">playsoundw</col>
- <col id="2">False</col>
- <col id="3">False</col>
- <col id="0" translatable="yes">Console beep</col>
- <col id="2">False</col>
- <col id="3">False</col>
- <col id="4">False</col>
- <col id="0" translatable="yes">Command</col>
- <col id="1">custom</col>
- <col id="2">False</col>
- <col id="3">False</col>
- <col id="4">False</col>
- <col id="0" translatable="yes">No sounds</col>
- <col id="3">False</col>
- <col id="4">False</col>
- <object class="GtkTreeModelFilter" id="sound.method.store">
- <property name="child_model">sound.method.store_raw</property>
- <object class="GtkListStore" id="sound.while_status.store">
- <!-- column-name text -->
- <column type="gchararray"/>
- <!-- column-name value -->
- <col id="0" translatable="yes">Only when available</col>
- <col id="0" translatable="yes">Only when not available</col>
- <col id="0" translatable="yes">Always</col>
<template class="PidginPrefsWindow" parent="GtkDialog">
<property name="can_focus">False</property>
<property name="title" translatable="yes">Preferences</property>
@@ -2204,389 +2095,6 @@
- <object class="GtkBox" id="sound.page">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">12</property>
- <property name="orientation">vertical</property>
- <property name="spacing">18</property>
- <object class="GtkFrame">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <object class="GtkAlignment">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="left_padding">12</property>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
- <object class="GtkLabel" id="label15">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">_Method:</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- <object class="GtkComboBox" id="sound.method.combo">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="model">sound.method.store</property>
- <property name="id_column">1</property>
- <object class="GtkCellRendererText"/>
- <attribute name="text">0</attribute>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- <object class="GtkBox" id="sound.method_vbox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <object class="GtkBox" id="sound.command_hbox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
- <object class="GtkLabel" id="label17">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Sound c_ommand:
-(%s for filename)</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">sound.command</property>
- <property name="xalign">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- <object class="GtkEntry" id="sound.command">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <signal name="changed" handler="sound_cmd_yeah" swapped="no"/>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- <object class="GtkCheckButton" id="sound.mute">
- <property name="label" translatable="yes">M_ute sounds</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- <object class="GtkCheckButton" id="sound.conv_focus">
- <property name="label" translatable="yes">Sounds when conversation has _focus</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
- <object class="GtkLabel" id="label16">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">_Enable sounds:</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- <object class="GtkComboBox" id="sound.while_status.combo">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="model">sound.while_status.store</property>
- <object class="GtkCellRendererText"/>
- <attribute name="text">0</attribute>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_bottom">6</property>
- <property name="label" translatable="yes">Sound Options</property>
- <attribute name="weight" value="bold"/>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- <object class="GtkFrame">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <object class="GtkAlignment">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="left_padding">12</property>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <object class="GtkScrolledWindow">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
- <property name="min_content_height">100</property>
- <object class="GtkTreeView" id="sound.event.view">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="model">sound.event.store</property>
- <child internal-child="selection">
- <object class="GtkTreeSelection">
- <signal name="changed" handler="prefs_sound_sel" object="PidginPrefsWindow" swapped="no"/>
- <object class="GtkTreeViewColumn">
- <property name="title" translatable="yes">Play</property>
- <object class="GtkCellRendererToggle">
- <signal name="toggled" handler="event_toggled" object="sound.event.store" swapped="no"/>
- <attribute name="active">0</attribute>
- <object class="GtkTreeViewColumn">
- <property name="title" translatable="yes">Event</property>
- <object class="GtkCellRendererText"/>
- <attribute name="text">1</attribute>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
- <object class="GtkEntry" id="sound.entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">False</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- <object class="GtkButton">
- <property name="label" translatable="yes">_Browse...</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
- <signal name="clicked" handler="select_sound" swapped="no"/>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- <object class="GtkButton">
- <property name="label" translatable="yes">Pre_view</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
- <signal name="clicked" handler="test_sound" swapped="no"/>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- <object class="GtkButton">
- <property name="label" translatable="yes">_Reset</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
- <signal name="clicked" handler="reset_sound" object="PidginPrefsWindow" swapped="no"/>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_bottom">6</property>
- <property name="label" translatable="yes">Sound Events</property>
- <attribute name="weight" value="bold"/>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- <property name="name">sound</property>
- <property name="title" translatable="yes">Sounds</property>
- <property name="position">6</property>
<object class="GtkBox" id="away.page">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -2914,7 +2422,7 @@
<property name="name">away</property>
<property name="title" translatable="yes">Status / Idle</property>
- <property name="position">7</property>
+ <property name="position">6</property> @@ -3069,60 +2577,6 @@
<property name="can_focus">False</property>
<property name="spacing">6</property>
- <object class="GtkLabel" id="label21">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Sound Theme:</property>
- <property name="xalign">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- <object class="GtkComboBox" id="theme.sound">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <signal name="changed" handler="prefs_set_sound_theme_cb" object="PidginPrefsWindow" swapped="no"/>
- <object class="GtkCellRendererPixbuf">
- <property name="width">32</property>
- <property name="height">32</property>
- <attribute name="pixbuf">0</attribute>
- <object class="GtkCellRendererText">
- <property name="ellipsize">end</property>
- <attribute name="markup">1</attribute>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">3</property>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
<object class="GtkLabel" id="label18">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -3168,7 +2622,7 @@
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">4</property>
+ <property name="position">3</property> @@ -3197,7 +2651,7 @@
<property name="name">theme</property>
<property name="title" translatable="yes">Themes</property>
- <property name="position">8</property>
+ <property name="position">7</property> @@ -3241,18 +2695,10 @@
- <object class="GtkSizeGroup" id="sound.sg">
- <widget name="label15"/>
- <widget name="label16"/>
- <widget name="label17"/>
<object class="GtkSizeGroup" id="theme.combo_sg">
<widget name="theme.blist"/>
<widget name="theme.status"/>
- <widget name="theme.sound"/>
<widget name="theme.smiley"/>
@@ -3260,7 +2706,6 @@
- <widget name="label21"/>