comparison pidgin/gtkprefs.c @ 32807:fb8263d936e5

Add a conversation theme with no timestamps.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Mon, 28 May 2012 22:34:59 +0000
parents 8404c5b75e99
children
comparison
equal deleted inserted replaced
32806:0dd2cbee5b80 32807:fb8263d936e5
1105 GtkTreeIter iter; 1105 GtkTreeIter iter;
1106 gchar *name = NULL; 1106 gchar *name = NULL;
1107 1107
1108 if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(prefs_conv_themes_combo_box), &iter)) { 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); 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")); 1110 if (name && *name)
1111 theme = PIDGIN_CONV_THEME(purple_theme_manager_find_theme(name, "conversation"));
1112 else
1113 theme = PIDGIN_CONV_THEME(pidgin_conversations_get_default_theme());
1111 g_free(name); 1114 g_free(name);
1112 1115
1113 if (gtk_combo_box_get_active_iter(combo_box, &iter)) { 1116 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); 1117 gtk_tree_model_get(GTK_TREE_MODEL(prefs_conv_variants), &iter, 0, &name, -1);
1115 pidgin_conversation_theme_set_variant(theme, name); 1118 pidgin_conversation_theme_set_variant(theme, name);
1124 { 1127 {
1125 GtkTreeIter iter; 1128 GtkTreeIter iter;
1126 1129
1127 if (gtk_combo_box_get_active_iter(combo_box, &iter)) { 1130 if (gtk_combo_box_get_active_iter(combo_box, &iter)) {
1128 gchar *name = NULL; 1131 gchar *name = NULL;
1132 PidginConvTheme *theme;
1133 const char *current_variant;
1134 const GList *variants;
1135 gboolean unset = TRUE;
1129 1136
1130 gtk_tree_model_get(GTK_TREE_MODEL(prefs_conv_themes), &iter, 2, &name, -1); 1137 gtk_tree_model_get(GTK_TREE_MODEL(prefs_conv_themes), &iter, 2, &name, -1);
1131 1138
1132 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/conversations/theme", name); 1139 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/conversations/theme", name);
1133 1140
1135 prefs_set_conv_variant_cb, NULL); 1142 prefs_set_conv_variant_cb, NULL);
1136 1143
1137 /* Update list of variants */ 1144 /* Update list of variants */
1138 gtk_list_store_clear(prefs_conv_variants); 1145 gtk_list_store_clear(prefs_conv_variants);
1139 1146
1140 if (name && *name) { 1147 if (name && *name)
1141 PidginConvTheme *theme;
1142 const char *current_variant;
1143 const GList *variants;
1144 gboolean unset = TRUE;
1145
1146 theme = PIDGIN_CONV_THEME(purple_theme_manager_find_theme(name, "conversation")); 1148 theme = PIDGIN_CONV_THEME(purple_theme_manager_find_theme(name, "conversation"));
1147 current_variant = pidgin_conversation_theme_get_variant(theme); 1149 else
1148 1150 theme = PIDGIN_CONV_THEME(pidgin_conversations_get_default_theme());
1149 variants = pidgin_conversation_theme_get_variants(theme); 1151
1150 for (; variants && current_variant; variants = g_list_next(variants)) { 1152 current_variant = pidgin_conversation_theme_get_variant(theme);
1151 gtk_list_store_append(prefs_conv_variants, &iter); 1153
1152 gtk_list_store_set(prefs_conv_variants, &iter, 0, variants->data, -1); 1154 variants = pidgin_conversation_theme_get_variants(theme);
1155 for (; variants && current_variant; variants = g_list_next(variants)) {
1156 gtk_list_store_append(prefs_conv_variants, &iter);
1157 gtk_list_store_set(prefs_conv_variants, &iter, 0, variants->data, -1);
1153 1158
1154 if (g_str_equal(variants->data, current_variant)) { 1159 if (g_str_equal(variants->data, current_variant)) {
1155 gtk_combo_box_set_active_iter(GTK_COMBO_BOX(prefs_conv_variants_combo_box), &iter); 1160 gtk_combo_box_set_active_iter(GTK_COMBO_BOX(prefs_conv_variants_combo_box), &iter);
1156 unset = FALSE; 1161 unset = FALSE;
1157 }
1158 } 1162 }
1159
1160 if (unset)
1161 gtk_combo_box_set_active(GTK_COMBO_BOX(prefs_conv_variants_combo_box), 0);
1162 } 1163 }
1164
1165 if (unset)
1166 gtk_combo_box_set_active(GTK_COMBO_BOX(prefs_conv_variants_combo_box), 0);
1163 1167
1164 g_signal_handlers_unblock_by_func(prefs_conv_variants_combo_box, 1168 g_signal_handlers_unblock_by_func(prefs_conv_variants_combo_box,
1165 prefs_set_conv_variant_cb, NULL); 1169 prefs_set_conv_variant_cb, NULL);
1166 g_free(name); 1170 g_free(name);
1167 } 1171 }