pidgin/plugins/xmppconsole.c

changeset 39003
37b2e13b2cfa
parent 39002
b97726e20bed
equal deleted inserted replaced
39002:b97726e20bed 39003:37b2e13b2cfa
96 96
97 return FALSE; 97 return FALSE;
98 } 98 }
99 99
100 static void 100 static void
101 purple_xmlnode_append_to_buffer(PurpleXmlNode *node, GtkTextIter *iter, GtkTextTag *tag) 101 purple_xmlnode_append_to_buffer(PurpleXmlNode *node, gint indent_level, GtkTextIter *iter, GtkTextTag *tag)
102 { 102 {
103 PurpleXmlNode *c; 103 PurpleXmlNode *c;
104 gboolean need_end = FALSE, pretty = TRUE; 104 gboolean need_end = FALSE, pretty = TRUE;
105 gint i;
105 106
106 g_return_if_fail(node != NULL); 107 g_return_if_fail(node != NULL);
108
109 for (i = 0; i < indent_level; i++) {
110 gtk_text_buffer_insert_with_tags(console->buffer, iter, "\t", 1, tag, NULL);
111 }
107 112
108 gtk_text_buffer_insert_with_tags(console->buffer, iter, "<", 1, 113 gtk_text_buffer_insert_with_tags(console->buffer, iter, "<", 1,
109 tag, console->tags.bracket, NULL); 114 tag, console->tags.bracket, NULL);
110 gtk_text_buffer_insert_with_tags(console->buffer, iter, node->name, -1, 115 gtk_text_buffer_insert_with_tags(console->buffer, iter, node->name, -1,
111 tag, console->tags.tag, NULL); 116 tag, console->tags.tag, NULL);
154 if (pretty) { 159 if (pretty) {
155 gtk_text_buffer_insert_with_tags(console->buffer, iter, "\n", 1, 160 gtk_text_buffer_insert_with_tags(console->buffer, iter, "\n", 1,
156 tag, NULL); 161 tag, NULL);
157 } 162 }
158 163
159 need_end = FALSE;
160 for (c = node->child; c; c = c->next) 164 for (c = node->child; c; c = c->next)
161 { 165 {
162 if (c->type == PURPLE_XMLNODE_TYPE_TAG) { 166 if (c->type == PURPLE_XMLNODE_TYPE_TAG) {
163 purple_xmlnode_append_to_buffer(c, iter, tag); 167 purple_xmlnode_append_to_buffer(c, indent_level + 1, iter, tag);
164 #if 0
165 if (!need_end) {
166 g_string_append(text, "<div class=tab>");
167 need_end = TRUE;
168 }
169 text = g_string_append_len(text, esc, esc_len);
170 #endif
171 } else if (c->type == PURPLE_XMLNODE_TYPE_DATA && c->data_sz > 0) { 168 } else if (c->type == PURPLE_XMLNODE_TYPE_DATA && c->data_sz > 0) {
172 gtk_text_buffer_insert_with_tags(console->buffer, iter, c->data, c->data_sz, 169 gtk_text_buffer_insert_with_tags(console->buffer, iter, c->data, c->data_sz,
173 tag, NULL); 170 tag, NULL);
174 } 171 }
175 } 172 }
176 173
174 if (pretty) {
175 for (i = 0; i < indent_level; i++) {
176 gtk_text_buffer_insert_with_tags(console->buffer, iter, "\t", 1, tag, NULL);
177 }
178 }
177 gtk_text_buffer_insert_with_tags(console->buffer, iter, "<", 1, 179 gtk_text_buffer_insert_with_tags(console->buffer, iter, "<", 1,
178 tag, console->tags.bracket, NULL); 180 tag, console->tags.bracket, NULL);
179 gtk_text_buffer_insert_with_tags(console->buffer, iter, "/", 1, 181 gtk_text_buffer_insert_with_tags(console->buffer, iter, "/", 1,
180 tag, NULL); 182 tag, NULL);
181 gtk_text_buffer_insert_with_tags(console->buffer, iter, node->name, -1, 183 gtk_text_buffer_insert_with_tags(console->buffer, iter, node->name, -1,
201 203
202 if (!console || console->gc != gc) 204 if (!console || console->gc != gc)
203 return; 205 return;
204 206
205 gtk_text_buffer_get_end_iter(console->buffer, &iter); 207 gtk_text_buffer_get_end_iter(console->buffer, &iter);
206 purple_xmlnode_append_to_buffer(*packet, &iter, console->tags.incoming); 208 purple_xmlnode_append_to_buffer(*packet, 0, &iter, console->tags.incoming);
207 } 209 }
208 210
209 static void 211 static void
210 purple_xmlnode_sent_cb(PurpleConnection *gc, char **packet, gpointer null) 212 purple_xmlnode_sent_cb(PurpleConnection *gc, char **packet, gpointer null)
211 { 213 {
218 220
219 if (!node) 221 if (!node)
220 return; 222 return;
221 223
222 gtk_text_buffer_get_end_iter(console->buffer, &iter); 224 gtk_text_buffer_get_end_iter(console->buffer, &iter);
223 purple_xmlnode_append_to_buffer(node, &iter, console->tags.outgoing); 225 purple_xmlnode_append_to_buffer(node, 0, &iter, console->tags.outgoing);
224 purple_xmlnode_free(node); 226 purple_xmlnode_free(node);
225 } 227 }
226 228
227 static gboolean 229 static gboolean
228 message_send_cb(GtkWidget *widget, GdkEventKey *event, gpointer p) 230 message_send_cb(GtkWidget *widget, GdkEventKey *event, gpointer p)

mercurial