* 02110-1301 USA
*/
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <log.h>
#include <ui_projecttree.h>
+#include <ui_tasktree.h>
enum {
COL_NAME,
static GtkTreeView *w_treeview;
+static int cursor_changed_cbk(GtkTreeView *treeview, gpointer data)
+{
+ const char *prj;
+
+ log_fct_enter();
+
+ prj = ui_projecttree_get_project();
+
+ ui_tasktree_update_filter(prj);
+
+ log_fct_exit();
+
+ return FALSE;
+}
+
void ui_projecttree_init(GtkBuilder *builder)
{
w_treeview = GTK_TREE_VIEW(gtk_builder_get_object(builder,
"projecttree"));
+ g_signal_connect(w_treeview,
+ "cursor-changed", (GCallback)cursor_changed_cbk,
+ NULL);
}
const char *ui_projecttree_get_project()
gtk_tree_model_get_value(model, &iter, COL_NAME, &value);
prj = g_value_get_string(&value);
+
+ if (!strcmp(prj, "ALL"))
+ prj = NULL;
} else {
prj = NULL;
}
struct project **prjs, **cur;
GtkTreeModel *model;
GtkTreeIter iter;
+ GtkTreePath *p;
+ const char *current_prj;
log_fct_enter();
model = gtk_tree_view_get_model(GTK_TREE_VIEW(w_treeview));
+
+ current_prj = ui_projecttree_get_project();
+
gtk_list_store_clear(GTK_LIST_STORE(model));
prjs = tw_get_projects(ts);
COL_NAME, (*cur)->name,
COL_COUNT, (*cur)->count,
-1);
+
+ if (current_prj) {
+ if (!strcmp((*cur)->name, current_prj)) {
+ p = gtk_tree_model_get_path(model, &iter);
+ if (p) {
+ gtk_tree_view_set_cursor(w_treeview,
+ p,
+ NULL,
+ FALSE);
+ }
+ }
+ }
}
tw_project_list_free(prjs);