pidgin/gtkprefs.c

branch
cpw.qulogic.gtk3-required
changeset 33146
1f729ff8cab4
parent 33141
2001ba1d6827
parent 32992
89f064bdd762
child 33170
ce4447562d64
equal deleted inserted replaced
33145:eca262aa23ff 33146:1f729ff8cab4
1106 GtkTreeIter iter; 1106 GtkTreeIter iter;
1107 gchar *name = NULL; 1107 gchar *name = NULL;
1108 1108
1109 if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(prefs_conv_themes_combo_box), &iter)) { 1109 if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(prefs_conv_themes_combo_box), &iter)) {
1110 gtk_tree_model_get(GTK_TREE_MODEL(prefs_conv_themes), &iter, 2, &name, -1); 1110 gtk_tree_model_get(GTK_TREE_MODEL(prefs_conv_themes), &iter, 2, &name, -1);
1111 theme = PIDGIN_CONV_THEME(purple_theme_manager_find_theme(name, "conversation")); 1111 if (name && *name)
1112 theme = PIDGIN_CONV_THEME(purple_theme_manager_find_theme(name, "conversation"));
1113 else
1114 theme = PIDGIN_CONV_THEME(pidgin_conversations_get_default_theme());
1112 g_free(name); 1115 g_free(name);
1113 1116
1114 if (gtk_combo_box_get_active_iter(combo_box, &iter)) { 1117 if (gtk_combo_box_get_active_iter(combo_box, &iter)) {
1115 gtk_tree_model_get(GTK_TREE_MODEL(prefs_conv_variants), &iter, 0, &name, -1); 1118 gtk_tree_model_get(GTK_TREE_MODEL(prefs_conv_variants), &iter, 0, &name, -1);
1116 pidgin_conversation_theme_set_variant(theme, name); 1119 pidgin_conversation_theme_set_variant(theme, name);
1125 { 1128 {
1126 GtkTreeIter iter; 1129 GtkTreeIter iter;
1127 1130
1128 if (gtk_combo_box_get_active_iter(combo_box, &iter)) { 1131 if (gtk_combo_box_get_active_iter(combo_box, &iter)) {
1129 gchar *name = NULL; 1132 gchar *name = NULL;
1133 PidginConvTheme *theme;
1134 const char *current_variant;
1135 const GList *variants;
1136 gboolean unset = TRUE;
1130 1137
1131 gtk_tree_model_get(GTK_TREE_MODEL(prefs_conv_themes), &iter, 2, &name, -1); 1138 gtk_tree_model_get(GTK_TREE_MODEL(prefs_conv_themes), &iter, 2, &name, -1);
1132 1139
1133 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/conversations/theme", name); 1140 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/conversations/theme", name);
1134 1141
1136 prefs_set_conv_variant_cb, NULL); 1143 prefs_set_conv_variant_cb, NULL);
1137 1144
1138 /* Update list of variants */ 1145 /* Update list of variants */
1139 gtk_list_store_clear(prefs_conv_variants); 1146 gtk_list_store_clear(prefs_conv_variants);
1140 1147
1141 if (name && *name) { 1148 if (name && *name)
1142 PidginConvTheme *theme;
1143 const char *current_variant;
1144 const GList *variants;
1145 gboolean unset = TRUE;
1146
1147 theme = PIDGIN_CONV_THEME(purple_theme_manager_find_theme(name, "conversation")); 1149 theme = PIDGIN_CONV_THEME(purple_theme_manager_find_theme(name, "conversation"));
1148 current_variant = pidgin_conversation_theme_get_variant(theme); 1150 else
1149 1151 theme = PIDGIN_CONV_THEME(pidgin_conversations_get_default_theme());
1150 variants = pidgin_conversation_theme_get_variants(theme); 1152
1151 for (; variants && current_variant; variants = g_list_next(variants)) { 1153 current_variant = pidgin_conversation_theme_get_variant(theme);
1152 gtk_list_store_append(prefs_conv_variants, &iter); 1154
1153 gtk_list_store_set(prefs_conv_variants, &iter, 0, variants->data, -1); 1155 variants = pidgin_conversation_theme_get_variants(theme);
1156 for (; variants && current_variant; variants = g_list_next(variants)) {
1157 gtk_list_store_append(prefs_conv_variants, &iter);
1158 gtk_list_store_set(prefs_conv_variants, &iter, 0, variants->data, -1);
1154 1159
1155 if (g_str_equal(variants->data, current_variant)) { 1160 if (g_str_equal(variants->data, current_variant)) {
1156 gtk_combo_box_set_active_iter(GTK_COMBO_BOX(prefs_conv_variants_combo_box), &iter); 1161 gtk_combo_box_set_active_iter(GTK_COMBO_BOX(prefs_conv_variants_combo_box), &iter);
1157 unset = FALSE; 1162 unset = FALSE;
1158 }
1159 } 1163 }
1160
1161 if (unset)
1162 gtk_combo_box_set_active(GTK_COMBO_BOX(prefs_conv_variants_combo_box), 0);
1163 } 1164 }
1165
1166 if (unset)
1167 gtk_combo_box_set_active(GTK_COMBO_BOX(prefs_conv_variants_combo_box), 0);
1164 1168
1165 g_signal_handlers_unblock_by_func(prefs_conv_variants_combo_box, 1169 g_signal_handlers_unblock_by_func(prefs_conv_variants_combo_box,
1166 prefs_set_conv_variant_cb, NULL); 1170 prefs_set_conv_variant_cb, NULL);
1167 g_free(name); 1171 g_free(name);
1168 } 1172 }

mercurial