Tasks now have their beginning date
This commit is contained in:
parent
e1f56a618d
commit
18f160e97e
29
src/task.c
29
src/task.c
|
@ -16,6 +16,7 @@
|
|||
|
||||
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <System.h>
|
||||
|
@ -55,6 +56,7 @@ Task * task_new(void)
|
|||
task_delete(task);
|
||||
return NULL;
|
||||
}
|
||||
task_set_start(task, time(NULL));
|
||||
return task;
|
||||
}
|
||||
|
||||
|
@ -108,6 +110,17 @@ char const * task_get_priority(Task * task)
|
|||
}
|
||||
|
||||
|
||||
/* task_get_start */
|
||||
time_t task_get_start(Task * task)
|
||||
{
|
||||
char const * start;
|
||||
|
||||
if((start = config_get(task->config, NULL, "start")) == NULL)
|
||||
return 0;
|
||||
return atoi(start);
|
||||
}
|
||||
|
||||
|
||||
/* task_get_title */
|
||||
char const * task_get_title(Task * task)
|
||||
{
|
||||
|
@ -128,7 +141,7 @@ int task_set_filename(Task * task, char const * filename)
|
|||
char * p;
|
||||
|
||||
if((p = strdup(filename)) == NULL)
|
||||
return 1; /* XXX set error */
|
||||
return -1; /* XXX set error */
|
||||
free(task->filename);
|
||||
task->filename = p;
|
||||
return 0;
|
||||
|
@ -142,6 +155,16 @@ int task_set_priority(Task * task, char const * priority)
|
|||
}
|
||||
|
||||
|
||||
/* task_set_start */
|
||||
int task_set_start(Task * task, time_t start)
|
||||
{
|
||||
char buf[16];
|
||||
|
||||
snprintf(buf, sizeof(buf), "%u", start);
|
||||
return config_set(task->config, NULL, "start", buf);
|
||||
}
|
||||
|
||||
|
||||
/* task_set_title */
|
||||
int task_set_title(Task * task, char const * title)
|
||||
{
|
||||
|
@ -162,7 +185,7 @@ int task_load(Task * task)
|
|||
int task_save(Task * task)
|
||||
{
|
||||
if(task->filename == NULL)
|
||||
return 1; /* XXX set error */
|
||||
return -1; /* XXX set error */
|
||||
return config_save(task->config, task->filename);
|
||||
}
|
||||
|
||||
|
@ -171,7 +194,7 @@ int task_save(Task * task)
|
|||
int task_unlink(Task * task)
|
||||
{
|
||||
if(task->filename == NULL)
|
||||
return 1; /* XXX set error */
|
||||
return -1; /* XXX set error */
|
||||
return unlink(task->filename);
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
#ifndef TODO_TASK_H
|
||||
# define TODO_TASK_H
|
||||
|
||||
# include <time.h>
|
||||
|
||||
|
||||
/* Task */
|
||||
/* types */
|
||||
|
@ -34,11 +36,13 @@ void task_delete(Task * task);
|
|||
int task_get_done(Task * task);
|
||||
char const * task_get_filename(Task * task);
|
||||
char const * task_get_priority(Task * task);
|
||||
time_t task_get_start(Task * task);
|
||||
char const * task_get_title(Task * task);
|
||||
|
||||
int task_set_done(Task * task, int done);
|
||||
int task_set_filename(Task * task, char const * filename);
|
||||
int task_set_priority(Task * task, char const * priority);
|
||||
int task_set_start(Task * task, time_t start);
|
||||
int task_set_title(Task * task, char const * title);
|
||||
|
||||
|
||||
|
|
13
src/todo.c
13
src/todo.c
|
@ -21,7 +21,9 @@ static char const _license[] =
|
|||
#include <dirent.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <errno.h>
|
||||
#include <libintl.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
@ -84,6 +86,7 @@ static struct
|
|||
{ TODO_PRIORITY_LOW, N_("Low") },
|
||||
{ TODO_PRIORITY_MEDIUM, N_("Medium") },
|
||||
{ TODO_PRIORITY_HIGH, N_("High") },
|
||||
{ TODO_PRIORITY_URGENT, N_("Urgent") },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
@ -369,6 +372,9 @@ Task * todo_task_add(Todo * todo, Task * task)
|
|||
{
|
||||
GtkTreeIter iter;
|
||||
char * filename;
|
||||
time_t start;
|
||||
struct tm t;
|
||||
char beginning[32] = "";
|
||||
char const * priority;
|
||||
TodoPriority tp = TODO_PRIORITY_UNKNOWN;
|
||||
size_t i;
|
||||
|
@ -388,6 +394,11 @@ Task * todo_task_add(Todo * todo, Task * task)
|
|||
task_set_title(task, _("New task"));
|
||||
}
|
||||
gtk_list_store_insert(todo->store, &iter, 0);
|
||||
if((start = task_get_start(task)) != 0)
|
||||
{
|
||||
localtime_r(&start, &t);
|
||||
strftime(beginning, sizeof(beginning), "%c", &t);
|
||||
}
|
||||
priority = task_get_priority(task);
|
||||
for(i = 0; priority != NULL && _todo_priorities[i].title != NULL; i++)
|
||||
if(strcmp(_(_todo_priorities[i].title), priority) == 0)
|
||||
|
@ -398,6 +409,8 @@ Task * todo_task_add(Todo * todo, Task * task)
|
|||
gtk_list_store_set(todo->store, &iter, TD_COL_TASK, task,
|
||||
TD_COL_DONE, task_get_done(task) > 0 ? TRUE : FALSE,
|
||||
TD_COL_TITLE, task_get_title(task),
|
||||
TD_COL_START, start,
|
||||
TD_COL_DISPLAY_START, beginning,
|
||||
TD_COL_PRIORITY, tp,
|
||||
TD_COL_DISPLAY_PRIORITY, priority, -1);
|
||||
return task;
|
||||
|
|
|
@ -31,7 +31,8 @@ typedef enum _TodoPriority
|
|||
TODO_PRIORITY_UNKNOWN,
|
||||
TODO_PRIORITY_LOW,
|
||||
TODO_PRIORITY_MEDIUM,
|
||||
TODO_PRIORITY_HIGH
|
||||
TODO_PRIORITY_HIGH,
|
||||
TODO_PRIORITY_URGENT
|
||||
} TodoPriority;
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user