X-Git-Url: http://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fui_newtask_diag.c;h=9f07511ab758bc2a8bf3232ad97e31c794b6bef1;hb=40e17edfc3ebcc989ff7f467bcbd524fae7e1a89;hp=96d02915cef7141bd8a377b016dbde8b75b1df11;hpb=c69aadceb8d1afc9ea16c2e8be2ae6aebc1f10ae;p=ptask.git diff --git a/src/ui_newtask_diag.c b/src/ui_newtask_diag.c index 96d0291..9f07511 100644 --- a/src/ui_newtask_diag.c +++ b/src/ui_newtask_diag.c @@ -17,21 +17,64 @@ * 02110-1301 USA */ +#include + #include #include #include #include +static const char *ui_get_priority(GtkComboBox *combo) +{ + int prio; + + prio = gtk_combo_box_get_active(combo); + + switch (prio) { + case 3: + return "H"; + case 2: + return "M"; + case 1: + return "L"; + default: + return ""; + } +} + +static void populate_project(GtkComboBoxText *w) +{ + struct task **tasks; + struct project **all_prjs, **prjs; + + tasks = tw_get_all_tasks("pending"); + + all_prjs = tw_get_projects(tasks); + + prjs = all_prjs; + while (*prjs) { + if (strcmp((*prjs)->name, "ALL")) + gtk_combo_box_text_append_text(w, (*prjs)->name); + + prjs++; + } + + tw_task_list_free(tasks); + tw_project_list_free(all_prjs); +} + void ui_newtask() { gint result; static GtkDialog *diag; GtkBuilder *builder; GtkEntry *entry; - const char *ctxt; + const char *desc, *prj, *prio; + GtkComboBox *combo; + GtkComboBoxText *w_prj; - log_debug("newtask_clicked_cbk"); + log_debug("ui_newtask()"); builder = gtk_builder_new(); gtk_builder_add_from_file @@ -41,20 +84,36 @@ void ui_newtask() diag = GTK_DIALOG(gtk_builder_get_object(builder, "diag_tasknew")); gtk_builder_connect_signals(builder, NULL); + w_prj = GTK_COMBO_BOX_TEXT(gtk_builder_get_object + (builder, "diag_tasknew_project")); + populate_project(w_prj); + result = gtk_dialog_run(diag); if (result == GTK_RESPONSE_ACCEPT) { - log_debug("ok"); + log_debug("ui_newtask(): ok"); + entry = GTK_ENTRY(gtk_builder_get_object (builder, "diag_tasknew_description")); - ctxt = gtk_entry_get_text(entry); + desc = gtk_entry_get_text(entry); + + w_prj = GTK_COMBO_BOX_TEXT(gtk_builder_get_object + (builder, "diag_tasknew_project")); + prj = gtk_combo_box_text_get_active_text(w_prj); + + combo = GTK_COMBO_BOX(gtk_builder_get_object + (builder, "diag_tasknew_priority")); + prio = ui_get_priority(combo); - log_debug("%s", ctxt); + log_debug("ui_newtask(): description=%s project=%s priority=%d", + desc, + prj, + prio); - tw_add(ctxt); + tw_add(desc, prj, prio); refresh(); } else { - log_debug("cancel"); + log_debug("ui_newtask(): cancel"); } g_object_unref(G_OBJECT(builder));