comparison finch/gntlog.c @ 22790:946f1bb22adb

Always top-align the logs in the log-viewer.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Tue, 29 Apr 2008 21:44:54 +0000
parents 864c82371181
children adde385c7904
comparison
equal deleted inserted replaced
22789:4457e6a99d13 22790:946f1bb22adb
137 g_free(read); 137 g_free(read);
138 } 138 }
139 139
140 } 140 }
141 141
142 static void destroy_cb(GntWidget *w, struct log_viewer_hash_t *ht) { 142 static void destroy_cb(GntWidget *w, struct log_viewer_hash_t *ht)
143 {
143 FinchLogViewer *lv = syslog_viewer; 144 FinchLogViewer *lv = syslog_viewer;
144 145
145 if (ht != NULL) { 146 if (ht != NULL) {
146 lv = g_hash_table_lookup(log_viewers, ht); 147 lv = g_hash_table_lookup(log_viewers, ht);
147 g_hash_table_remove(log_viewers, ht); 148 g_hash_table_remove(log_viewers, ht);
160 g_free(lv); 161 g_free(lv);
161 162
162 gnt_widget_destroy(w); 163 gnt_widget_destroy(w);
163 } 164 }
164 165
165 static void log_select_cb(GntWidget *w, gpointer old, gpointer new, FinchLogViewer *viewer) { 166 static void log_select_cb(GntWidget *w, gpointer old, gpointer new, FinchLogViewer *viewer)
167 {
166 GntTree *tree = GNT_TREE(w); 168 GntTree *tree = GNT_TREE(w);
167 PurpleLog *log = NULL; 169 PurpleLog *log = NULL;
168 PurpleLogReadFlags flags; 170 PurpleLogReadFlags flags;
169 char *read = NULL, *strip, *newline; 171 char *read = NULL, *strip, *newline;
170 int h;
171 172
172 if (!viewer->search && !gnt_tree_get_parent_key(tree, new)) 173 if (!viewer->search && !gnt_tree_get_parent_key(tree, new))
173 return; 174 return;
174 175
175 log = (PurpleLog *)new; 176 log = (PurpleLog *)new;
202 203
203 purple_signal_emit(finch_log_get_handle(), "log-displaying", viewer, log); 204 purple_signal_emit(finch_log_get_handle(), "log-displaying", viewer, log);
204 205
205 gnt_text_view_clear(GNT_TEXT_VIEW(viewer->text)); 206 gnt_text_view_clear(GNT_TEXT_VIEW(viewer->text));
206 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(viewer->text), strip, GNT_TEXT_FLAG_NORMAL); 207 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(viewer->text), strip, GNT_TEXT_FLAG_NORMAL);
207 gnt_widget_get_size(viewer->text, NULL, &h);
208 gnt_text_view_scroll(GNT_TEXT_VIEW(viewer->text), h - 2);
209 g_free(read); 208 g_free(read);
210 g_free(strip); 209 g_free(strip);
211 } 210 }
212 211
213 /* I want to make this smarter, but haven't come up with a cool algorithm to do so, yet. 212 /* I want to make this smarter, but haven't come up with a cool algorithm to do so, yet.
319 gnt_box_add_widget(GNT_BOX(hbox), lv->tree); 318 gnt_box_add_widget(GNT_BOX(hbox), lv->tree);
320 319
321 /* Viewer ************/ 320 /* Viewer ************/
322 lv->text = gnt_text_view_new(); 321 lv->text = gnt_text_view_new();
323 gnt_box_add_widget(GNT_BOX(hbox), lv->text); 322 gnt_box_add_widget(GNT_BOX(hbox), lv->text);
323 gnt_text_view_set_flag(GNT_TEXT_VIEW(lv->text), GNT_TEXT_VIEW_TOP_ALIGN);
324 324
325 hbox = gnt_hbox_new(FALSE); 325 hbox = gnt_hbox_new(FALSE);
326 gnt_box_add_widget(GNT_BOX(vbox), hbox); 326 gnt_box_add_widget(GNT_BOX(vbox), hbox);
327 /* Log size ************/ 327 /* Log size ************/
328 if (log_size) { 328 if (log_size) {