Mercurial > pidgin
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 } |