Mercurial > pidgin.yaz
comparison src/away.c @ 1775:9ca22174da76
[gaim-migrate @ 1785]
cleaning up some stuff of rob's
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Mon, 30 Apr 2001 08:33:25 +0000 |
parents | 9d0c91c705b7 |
children | 0da2a831c0ae |
comparison
equal
deleted
inserted
replaced
1774:9d0c91c705b7 | 1775:9ca22174da76 |
---|---|
58 } | 58 } |
59 | 59 |
60 void purge_away_queue() | 60 void purge_away_queue() |
61 { | 61 { |
62 struct conversation *cnv; | 62 struct conversation *cnv; |
63 GSList *templist = message_queue; | |
64 | 63 |
65 gtk_clist_freeze(GTK_CLIST(clistqueue)); | 64 gtk_clist_freeze(GTK_CLIST(clistqueue)); |
66 gtk_clist_clear(GTK_CLIST(clistqueue)); | 65 gtk_clist_clear(GTK_CLIST(clistqueue)); |
67 | 66 |
68 while (templist) | 67 while (message_queue) { |
69 { | 68 struct queued_message *qm = message_queue->data; |
70 struct queued_message *qm = (struct queued_message *)templist->data; | |
71 | 69 |
72 cnv = find_conversation(qm->name); | 70 cnv = find_conversation(qm->name); |
73 | |
74 if (!cnv) | 71 if (!cnv) |
75 cnv = new_conversation(qm->name); | 72 cnv = new_conversation(qm->name); |
76 | 73 if (g_slist_index(connections, qm->gc) >= 0) { |
77 cnv->gc = qm->gc; | 74 cnv->gc = qm->gc; |
78 | 75 gtk_option_menu_set_history(GTK_OPTION_MENU(cnv->menu), |
79 write_to_conv(cnv, qm->message, WFLAG_RECV, NULL, qm->tm); | 76 g_slist_index(connections, qm->gc)); |
80 | 77 update_buttons_by_protocol(cnv); |
81 free(qm->message); | 78 } |
82 | 79 |
83 templist = g_slist_remove(templist, qm); | 80 write_to_conv(cnv, qm->message, qm->flags, NULL, qm->tm); |
84 | 81 |
82 message_queue = g_slist_remove(message_queue, qm); | |
83 | |
84 g_free(qm->message); | |
85 g_free(qm); | 85 g_free(qm); |
86 } | 86 } |
87 | 87 |
88 templist = away_time_queue; | |
89 | |
90 while (templist) | |
91 { | |
92 struct queued_away_response *qar = (struct queued_away_response *)templist->data; | |
93 | |
94 templist = g_slist_remove(templist, qar); | |
95 g_free(qar); | |
96 } | |
97 | |
98 gtk_clist_thaw(GTK_CLIST(clistqueue)); | 88 gtk_clist_thaw(GTK_CLIST(clistqueue)); |
99 | |
100 message_queue = NULL; | |
101 away_time_queue = NULL; | |
102 } | 89 } |
103 | 90 |
104 void toggle_away_queue() | 91 void toggle_away_queue() |
105 { | 92 { |
106 if (!clistqueue || !clistqueuesw) | 93 if (!clistqueue || !clistqueuesw) |
107 return; | 94 return; |
108 | 95 |
109 if (general_options & OPT_GEN_QUEUE_WHEN_AWAY) | 96 if (general_options & OPT_GEN_QUEUE_WHEN_AWAY) { |
110 { | |
111 gtk_widget_show(clistqueue); | 97 gtk_widget_show(clistqueue); |
112 gtk_widget_show(clistqueuesw); | 98 gtk_widget_show(clistqueuesw); |
113 } | 99 } else { |
114 else | |
115 { | |
116 gtk_widget_hide(clistqueue); | 100 gtk_widget_hide(clistqueue); |
117 gtk_widget_hide(clistqueuesw); | 101 gtk_widget_hide(clistqueuesw); |
118 purge_away_queue(); | 102 purge_away_queue(); |
119 } | 103 } |
120 | |
121 } | 104 } |
122 | 105 |
123 void do_im_back(GtkWidget *w, GtkWidget *x) | 106 void do_im_back(GtkWidget *w, GtkWidget *x) |
124 { | 107 { |
125 if (imaway) { | 108 if (imaway) { |
129 | 112 |
130 imaway = NULL; | 113 imaway = NULL; |
131 gtk_widget_destroy(tmp); | 114 gtk_widget_destroy(tmp); |
132 if (w != tmp) | 115 if (w != tmp) |
133 return; | 116 return; |
117 } | |
118 | |
119 while (away_time_queue) { | |
120 struct queued_away_response *qar = away_time_queue->data; | |
121 away_time_queue = g_slist_remove(away_time_queue, qar); | |
122 g_free(qar); | |
134 } | 123 } |
135 | 124 |
136 serv_set_away_all(NULL); | 125 serv_set_away_all(NULL); |
137 awaymessage = NULL; | 126 awaymessage = NULL; |
138 #ifdef USE_APPLET | 127 #ifdef USE_APPLET |
206 /* Handle closes right */ | 195 /* Handle closes right */ |
207 gtk_signal_connect(GTK_OBJECT(imaway), "destroy", GTK_SIGNAL_FUNC(do_im_back), imaway); | 196 gtk_signal_connect(GTK_OBJECT(imaway), "destroy", GTK_SIGNAL_FUNC(do_im_back), imaway); |
208 gtk_signal_connect(GTK_OBJECT(back), "clicked", GTK_SIGNAL_FUNC(do_im_back), imaway); | 197 gtk_signal_connect(GTK_OBJECT(back), "clicked", GTK_SIGNAL_FUNC(do_im_back), imaway); |
209 | 198 |
210 /* Finish up */ | 199 /* Finish up */ |
211 if (general_options & OPT_GEN_QUEUE_WHEN_AWAY) | 200 if (general_options & OPT_GEN_QUEUE_WHEN_AWAY) { |
212 { | |
213 gtk_widget_show(clistqueuesw); | 201 gtk_widget_show(clistqueuesw); |
214 gtk_widget_show(clistqueue); | 202 gtk_widget_show(clistqueue); |
215 } | 203 } |
216 | 204 |
217 gtk_widget_show(back); | 205 gtk_widget_show(back); |
236 "away", _("Back"), (AppletCallbackFunc)do_im_back, NULL); | 224 "away", _("Back"), (AppletCallbackFunc)do_im_back, NULL); |
237 set_user_state(away); | 225 set_user_state(away); |
238 #endif | 226 #endif |
239 | 227 |
240 /* New away message... Clear out the old sent_aways */ | 228 /* New away message... Clear out the old sent_aways */ |
241 while (cnv) { | 229 while (away_time_queue) { |
242 c = (struct conversation *)cnv->data; | 230 struct queued_away_response *qar = away_time_queue->data; |
243 c->sent_away = 0; | 231 away_time_queue = g_slist_remove(away_time_queue, qar); |
244 cnv = cnv->next; | 232 g_free(qar); |
245 } | 233 } |
246 | |
247 | 234 |
248 buf2 = g_malloc(strlen(awaymessage->message) * 4 + 1); | 235 buf2 = g_malloc(strlen(awaymessage->message) * 4 + 1); |
249 strncpy_withhtml(buf2, awaymessage->message, strlen(awaymessage->message) * 4 + 1); | 236 strncpy_withhtml(buf2, awaymessage->message, strlen(awaymessage->message) * 4 + 1); |
250 serv_set_away_all(buf2); | 237 serv_set_away_all(buf2); |
251 g_free(buf2); | 238 g_free(buf2); |