static GtkEntry *w_description;
static GtkEntry *w_project;
static GtkTreeView *w_treeview;
-static GtkWidget *w_tasksave_btn;
static GtkWidget *w_taskdone_btn;
static GtkComboBox *w_status;
static GtkComboBox *w_priority;
return FALSE;
}
-static int tasksave_clicked_cbk(GtkButton *btn, gpointer data)
-{
- struct task *task;
- GtkTextBuffer *buf;
- char *txt, *pri;
- GtkTextIter sIter, eIter;
- const char *ctxt;
- int priority;
-
- task = get_selected_task(GTK_TREE_VIEW(w_treeview));
-
- log_debug("tasksave_clicked_cbk %d", task->id);
-
- buf = gtk_text_view_get_buffer(w_note);
-
- gtk_text_buffer_get_iter_at_offset(buf, &sIter, 0);
- gtk_text_buffer_get_iter_at_offset(buf, &eIter, -1);
- txt = gtk_text_buffer_get_text(buf, &sIter, &eIter, TRUE);
-
- log_debug("note=%s", txt);
-
- if (!task->note || strcmp(txt, task->note))
- note_put(task->uuid, txt);
-
- ctxt = gtk_entry_get_text(w_description);
- if (!task->description || strcmp(ctxt, task->description))
- tw_modify_description(task->uuid, ctxt);
-
- ctxt = gtk_entry_get_text(w_project);
- if (!task->project || strcmp(ctxt, task->project))
- tw_modify_project(task->uuid, ctxt);
-
- priority = gtk_combo_box_get_active(w_priority);
- log_debug("priority: %d", priority);
-
- switch (priority) {
- case 3:
- pri = "H";
- break;
- case 2:
- pri = "M";
- break;
- case 1:
- pri = "L";
- break;
- default:
- pri = "";
- }
-
- if (strcmp(task->priority, pri))
- tw_modify_priority(task->uuid, pri);
-
- refresh();
-
- return FALSE;
-}
-
int refresh_clicked_cbk(GtkButton *btn, gpointer data)
{
log_debug("refresh_clicked_cbk");
int main(int argc, char **argv)
{
GtkWindow *window;
- GtkWidget *btn;
GtkBuilder *builder;
int optc, cmdok, opti;
"changed", (GCallback)status_changed_cbk,
tasks);
- btn = GTK_WIDGET(gtk_builder_get_object(builder, "tasksave"));
- g_signal_connect(btn,
- "clicked", (GCallback)tasksave_clicked_cbk, tasks);
- gtk_widget_set_sensitive(btn, 0);
- w_tasksave_btn = btn;
-
w_taskdone_btn = GTK_WIDGET(gtk_builder_get_object(builder,
"taskdone"));
gtk_widget_set_sensitive(w_taskdone_btn, 0);
#include <string.h>
#include <log.h>
+#include <note.h>
+#include <tw.h>
+#include <ui.h>
#include <ui_taskpanel.h>
static GtkTextView *w_note;
static GtkButton *w_taskdone_btn;
static GtkButton *w_taskcancel_btn;
+static struct task *current_task;
+
static void enable(int enable)
{
GtkTextBuffer *buf;
gtk_widget_set_sensitive(GTK_WIDGET(w_priority), enable);
}
+static int tasksave_clicked_cbk(GtkButton *btn, gpointer data)
+{
+ struct task *task;
+ GtkTextBuffer *buf;
+ char *txt, *pri;
+ GtkTextIter sIter, eIter;
+ const char *ctxt;
+ int priority;
+
+ log_fct_enter();
+
+ task = current_task;
+
+ log_fct(__func__, "%d", task->id);
+
+ buf = gtk_text_view_get_buffer(w_note);
+
+ gtk_text_buffer_get_iter_at_offset(buf, &sIter, 0);
+ gtk_text_buffer_get_iter_at_offset(buf, &eIter, -1);
+ txt = gtk_text_buffer_get_text(buf, &sIter, &eIter, TRUE);
+
+ log_debug("note=%s", txt);
+
+ if (!task->note || strcmp(txt, task->note))
+ note_put(task->uuid, txt);
+
+ ctxt = gtk_entry_get_text(w_description);
+ if (!task->description || strcmp(ctxt, task->description))
+ tw_modify_description(task->uuid, ctxt);
+
+ ctxt = gtk_entry_get_text(w_project);
+ if (!task->project || strcmp(ctxt, task->project))
+ tw_modify_project(task->uuid, ctxt);
+
+ priority = gtk_combo_box_get_active(w_priority);
+ log_debug("priority: %d", priority);
+
+ switch (priority) {
+ case 3:
+ pri = "H";
+ break;
+ case 2:
+ pri = "M";
+ break;
+ case 1:
+ pri = "L";
+ break;
+ default:
+ pri = "";
+ }
+
+ if (strcmp(task->priority, pri))
+ tw_modify_priority(task->uuid, pri);
+
+ refresh();
+
+ return FALSE;
+}
+
void ui_taskpanel_init(GtkBuilder *builder)
{
log_fct(__func__, "ENTER");
w_tasksave_btn = GTK_BUTTON(gtk_builder_get_object(builder,
"tasksave"));
+ g_signal_connect(w_tasksave_btn,
+ "clicked",
+ (GCallback)tasksave_clicked_cbk,
+ NULL);
+
w_taskdone_btn = GTK_BUTTON(gtk_builder_get_object(builder,
"taskdone"));
w_taskcancel_btn = GTK_BUTTON(gtk_builder_get_object(builder,
int priority;
if (task) {
+ current_task = task;
+
buf = gtk_text_view_get_buffer(w_note);
if (task->note)
gtk_text_buffer_set_text(buf,
enable(1);
} else {
+ current_task = NULL;
enable(0);
}
}