comparison pidgin/gtkprefs.c @ 32737:2efee7ca90be

Fix some boring asserts when using the Default conversation theme.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sun, 04 Mar 2012 03:49:49 +0000
parents cc361e897c41
children 8404c5b75e99
comparison
equal deleted inserted replaced
32736:cc361e897c41 32737:2efee7ca90be
1095 1095
1096 pidgin_blist_set_theme(theme); 1096 pidgin_blist_set_theme(theme);
1097 } 1097 }
1098 } 1098 }
1099 1099
1100 /* sets the current conversation theme variant */
1101 static void
1102 prefs_set_conv_variant_cb(GtkComboBox *combo_box, gpointer user_data)
1103 {
1104 PidginConvTheme *theme = NULL;
1105 GtkTreeIter iter;
1106 gchar *name = NULL;
1107
1108 if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(prefs_conv_themes_combo_box), &iter)) {
1109 gtk_tree_model_get(GTK_TREE_MODEL(prefs_conv_themes), &iter, 2, &name, -1);
1110 theme = PIDGIN_CONV_THEME(purple_theme_manager_find_theme(name, "conversation"));
1111 g_free(name);
1112
1113 if (gtk_combo_box_get_active_iter(combo_box, &iter)) {
1114 gtk_tree_model_get(GTK_TREE_MODEL(prefs_conv_variants), &iter, 0, &name, -1);
1115 pidgin_conversation_theme_set_variant(theme, name);
1116 g_free(name);
1117 }
1118 }
1119 }
1120
1100 /* sets the current conversation theme */ 1121 /* sets the current conversation theme */
1101 static void 1122 static void
1102 prefs_set_conv_theme_cb(GtkComboBox *combo_box, gpointer user_data) 1123 prefs_set_conv_theme_cb(GtkComboBox *combo_box, gpointer user_data)
1103 { 1124 {
1104 GtkTreeIter iter; 1125 GtkTreeIter iter;
1107 gchar *name = NULL; 1128 gchar *name = NULL;
1108 1129
1109 gtk_tree_model_get(GTK_TREE_MODEL(prefs_conv_themes), &iter, 2, &name, -1); 1130 gtk_tree_model_get(GTK_TREE_MODEL(prefs_conv_themes), &iter, 2, &name, -1);
1110 1131
1111 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/conversations/theme", name); 1132 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/conversations/theme", name);
1133
1134 g_signal_handlers_block_by_func(prefs_conv_variants_combo_box,
1135 prefs_set_conv_variant_cb, NULL);
1112 1136
1113 /* Update list of variants */ 1137 /* Update list of variants */
1114 gtk_list_store_clear(prefs_conv_variants); 1138 gtk_list_store_clear(prefs_conv_variants);
1115 1139
1116 if (name && *name) { 1140 if (name && *name) {
1135 1159
1136 if (unset) 1160 if (unset)
1137 gtk_combo_box_set_active(GTK_COMBO_BOX(prefs_conv_variants_combo_box), 0); 1161 gtk_combo_box_set_active(GTK_COMBO_BOX(prefs_conv_variants_combo_box), 0);
1138 } 1162 }
1139 1163
1164 g_signal_handlers_unblock_by_func(prefs_conv_variants_combo_box,
1165 prefs_set_conv_variant_cb, NULL);
1140 g_free(name); 1166 g_free(name);
1141 }
1142 }
1143
1144 /* sets the current conversation theme variant */
1145 static void
1146 prefs_set_conv_variant_cb(GtkComboBox *combo_box, gpointer user_data)
1147 {
1148 PidginConvTheme *theme = NULL;
1149 GtkTreeIter iter;
1150 gchar *name = NULL;
1151
1152 if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(prefs_conv_themes_combo_box), &iter)) {
1153 gtk_tree_model_get(GTK_TREE_MODEL(prefs_conv_themes), &iter, 2, &name, -1);
1154 theme = PIDGIN_CONV_THEME(purple_theme_manager_find_theme(name, "conversation"));
1155 g_free(name);
1156
1157 if (gtk_combo_box_get_active_iter(combo_box, &iter)) {
1158 gtk_tree_model_get(GTK_TREE_MODEL(prefs_conv_variants), &iter, 0, &name, -1);
1159 pidgin_conversation_theme_set_variant(theme, name);
1160 g_free(name);
1161 }
1162 } 1167 }
1163 } 1168 }
1164 1169
1165 /* sets the current icon theme */ 1170 /* sets the current icon theme */
1166 static void 1171 static void