refactoring
[ptask.git] / src / main.c
index 4b0153e..757ac46 100644 (file)
 
 static const char *program_name;
 static struct task **tasks;
-static GtkTextView *w_note;
-static GtkEntry *w_description;
-static GtkEntry *w_project;
 static GtkTreeView *w_treeview;
-static GtkWidget *w_taskdone_btn;
-static GtkComboBox *w_status;
-static GtkComboBox *w_priority;
 static GSettings *settings;
 
 enum {
@@ -98,37 +92,6 @@ static void print_help()
        printf(_("%s home page: <%s>\n"), PACKAGE_NAME, PACKAGE_URL);
 }
 
-static struct task *get_selected_task(GtkTreeView *treeview)
-{
-       GtkTreePath *path;
-       GtkTreeViewColumn *cols;
-       struct task **tasks_cur;
-       GtkTreeIter iter;
-       GtkTreeModel *model;
-       GValue value = {0,};
-       const char *uuid;
-
-       log_debug("get_selected_task");
-
-       gtk_tree_view_get_cursor(treeview, &path, &cols);
-
-       if (path) {
-               model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview));
-               gtk_tree_model_get_iter(model, &iter, path);
-               gtk_tree_model_get_value(model, &iter, COL_UUID, &value);
-
-               uuid = g_value_get_string(&value);
-
-               for (tasks_cur = tasks; *tasks_cur; tasks_cur++)
-                       if (!strcmp((*tasks_cur)->uuid, uuid))
-                               return *tasks_cur;
-
-               gtk_tree_path_free(path);
-       }
-
-       return NULL;
-}
-
 void refresh()
 {
        GtkWidget *dialog;
@@ -137,29 +100,18 @@ void refresh()
        struct task *task;
        int i;
        GtkTreeIter iter;
-       int status;
        const char *project;
 
        log_fct_enter();
        ui_taskpanel_update(NULL);
 
-       status = gtk_combo_box_get_active(w_status);
-       log_debug("status: %d", status);
-
-       if (tasks)
+       if (tasks) {
+               ui_tasktree_update(NULL);
                tw_task_list_free(tasks);
-
-       switch (status) {
-       case 0:
-               tasks = tw_get_all_tasks("pending");
-               break;
-       case 1:
-               tasks = tw_get_all_tasks("completed");
-               break;
-       default:
-               tasks = tw_get_all_tasks("pending");
        }
 
+       tasks = tw_get_all_tasks(ui_get_status_filter());
+
        model = gtk_tree_view_get_model(GTK_TREE_VIEW(w_treeview));
        gtk_list_store_clear(GTK_LIST_STORE(model));
 
@@ -185,6 +137,7 @@ void refresh()
                                           -1);
                }
                ui_projecttree_update(tasks);
+               ui_tasktree_update(tasks);
        } else {
                dialog = gtk_message_dialog_new(NULL,
                                                GTK_DIALOG_DESTROY_WITH_PARENT,
@@ -199,38 +152,11 @@ void refresh()
        log_fct(__func__, "EXIT");
 }
 
-int taskdone_clicked_cbk(GtkButton *btn, gpointer data)
-{
-       struct task *task;
-
-       task = get_selected_task(GTK_TREE_VIEW(w_treeview));
-       tw_done(task->uuid);
-       refresh();
-
-       return FALSE;
-}
-
-int refresh_clicked_cbk(GtkButton *btn, gpointer data)
-{
-       log_debug("refresh_clicked_cbk");
-       refresh();
-
-       return FALSE;
-}
-
-static int status_changed_cbk(GtkComboBox *w, gpointer data)
-{
-       log_debug("status_changed_cbk");
-       refresh();
-
-       return FALSE;
-}
-
 static int cursor_changed_cbk(GtkTreeView *treeview, gpointer data)
 {
        log_fct_enter();
 
-       ui_taskpanel_update(get_selected_task(treeview));
+       ui_taskpanel_update(ui_tasktree_get_selected_task());
 
        log_fct_exit();
 
@@ -319,27 +245,11 @@ int main(int argc, char **argv)
 
        w_treeview = GTK_TREE_VIEW(gtk_builder_get_object(builder, "tasktree"));
 
-       w_note = GTK_TEXT_VIEW(gtk_builder_get_object(builder, "tasknote"));
-
-       w_description = GTK_ENTRY(gtk_builder_get_object(builder,
-                                                        "taskdescription"));
-       w_project = GTK_ENTRY(gtk_builder_get_object(builder, "taskproject"));
-       w_status = GTK_COMBO_BOX(gtk_builder_get_object(builder, "status"));
-       w_priority = GTK_COMBO_BOX(gtk_builder_get_object(builder,
-                                                         "taskpriority"));
-
        gtk_builder_connect_signals(builder, NULL);
 
        g_signal_connect(w_treeview,
                         "cursor-changed", (GCallback)cursor_changed_cbk,
                         tasks);
-       g_signal_connect(w_status,
-                        "changed", (GCallback)status_changed_cbk,
-                        tasks);
-
-       w_taskdone_btn = GTK_WIDGET(gtk_builder_get_object(builder,
-                                                          "taskdone"));
-       gtk_widget_set_sensitive(w_taskdone_btn, 0);
 
        g_object_unref(G_OBJECT(builder));