void refresh()
{
GtkWidget *dialog;
+ const char *current_prj, *current_uuid;
+ struct task **old_tasks;
log_fct_enter();
ui_taskpanel_update(NULL);
if (tasks) {
+ old_tasks = tasks;
+ current_prj = ui_projecttree_get_project();
+ current_uuid = ui_tasktree_get_task_uuid();
ui_tasktree_update(NULL, NULL);
- tw_task_list_free(tasks);
+ } else {
+ old_tasks = NULL;
+ current_prj = NULL;
+ current_uuid = NULL;
}
tasks = tw_get_all_tasks(ui_get_status_filter());
if (tasks) {
ui_projecttree_update(tasks);
- ui_tasktree_update(tasks, NULL);
+ ui_tasktree_update(tasks, current_prj);
+ if (current_uuid)
+ ui_tasktree_set_selected_task(current_uuid);
} else {
dialog = gtk_message_dialog_new(NULL,
GTK_DIALOG_DESTROY_WITH_PARENT,
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
}
- log_fct(__func__, "EXIT");
-}
-static int cursor_changed_cbk(GtkTreeView *treeview, gpointer data)
-{
- log_fct_enter();
-
- ui_taskpanel_update(ui_tasktree_get_selected_task());
+ if (old_tasks)
+ tw_task_list_free(old_tasks);
log_fct_exit();
-
- return FALSE;
}
static void log_init()
gtk_builder_connect_signals(builder, NULL);
- g_signal_connect(w_treeview,
- "cursor-changed", (GCallback)cursor_changed_cbk,
- tasks);
-
g_object_unref(G_OBJECT(builder));
refresh();