comparison pidgin/gtklog.c @ 18495:64391b1e860e

Make the "Browse Logs Folder" button open the folder containing the log currently being displayed. Fixes #2115
author Richard Laager <rlaager@wiktel.com>
date Thu, 12 Jul 2007 04:34:02 +0000
parents 08db93bbd798
children 5733c0691c25 44b4e8bd759b 9a6d429d7aed
comparison
equal deleted inserted replaced
18494:dc98087bd97c 18495:64391b1e860e
170 static void destroy_cb(GtkWidget *w, gint resp, struct log_viewer_hash_t *ht) { 170 static void destroy_cb(GtkWidget *w, gint resp, struct log_viewer_hash_t *ht) {
171 PidginLogViewer *lv = syslog_viewer; 171 PidginLogViewer *lv = syslog_viewer;
172 172
173 #ifdef _WIN32 173 #ifdef _WIN32
174 if (resp == GTK_RESPONSE_HELP) { 174 if (resp == GTK_RESPONSE_HELP) {
175 char *logdir = g_build_filename(purple_user_dir(), "logs", NULL); 175 GtkTreeSelection *sel;
176 GtkTreeIter iter;
177 GtkTreeModel *model;
178 PurpleLog *log = NULL;
179 char *logdir;
180
181 if (ht != NULL)
182 lv = g_hash_table_lookup(log_viewers, ht);
183 model = GTK_TREE_MODEL(lv->treestore);
184
185 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(lv->treeview));
186 if (gtk_tree_selection_get_selected(sel, &model, &iter)) {
187 GValue val;
188
189 val.g_type = 0;
190 gtk_tree_model_get_value (model, &iter, 1, &val);
191 log = g_value_get_pointer(&val);
192 g_value_unset(&val);
193 }
194
195
196 if (log == NULL)
197 logdir = g_build_filename(purple_user_dir(), "logs", NULL);
198 else
199 logdir = purple_log_get_log_dir(log->type, log->name, log->account);
200
176 winpidgin_shell_execute(logdir, "explore", NULL); 201 winpidgin_shell_execute(logdir, "explore", NULL);
177 g_free(logdir); 202 g_free(logdir);
178 return; 203 return;
179 } 204 }
180 #endif 205 #endif
366 GValue val; 391 GValue val;
367 PurpleLog *log; 392 PurpleLog *log;
368 gpointer *data; 393 gpointer *data;
369 394
370 iter = g_new(GtkTreeIter, 1); 395 iter = g_new(GtkTreeIter, 1);
371 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(lv)); 396 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(lv->treeview));
372 if (!gtk_tree_selection_get_selected(sel, NULL, iter)) 397 if (!gtk_tree_selection_get_selected(sel, NULL, iter))
373 { 398 {
374 return FALSE; 399 return FALSE;
375 } 400 }
376 401