diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2012-03-23 15:25:08 +0100 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2012-03-23 15:25:08 +0100 |
commit | 924de64f8d4cbaba3b6ff728907656929d092f05 (patch) | |
tree | 8dc06cc0e3cda3cf3338007038abe8457b18a944 /src/task.h | |
parent | 0ac826ad5a15d5b7b350959762181aa8cacacf0b (diff) | |
parent | f7dc7c17af52e8300cb188c4fb3e4a8b1638e8f9 (diff) |
Merge branch 'master' of https://git.oftal.dk/munia
Diffstat (limited to 'src/task.h')
-rw-r--r-- | src/task.h | 73 |
1 files changed, 72 insertions, 1 deletions
@@ -30,6 +30,9 @@ #include <list> #include <string> +#include <stdio.h> +#include <assert.h> +//#include <queue> /* Task: @@ -86,10 +89,78 @@ typedef struct { } task_t; -typedef std::list<task_t> TaskList; +//typedef std::list<task_t> TaskList; + +class CompareByParentid { +public: + bool operator()(const task_t &a, const task_t &b) const { + return a.parent_id < b.parent_id; + } +}; + + + + +class TaskList : public std::list<task_t>{ +public: + TaskList() {} + ~TaskList(){} + + void insert(task_t t) { + printf("inserting task %d with parent %d\n", t.id, t.parent_id); + + if(t.parent_id == -1) { + std::list<task_t>::push_front(t); + return; + } + + std::list<task_t>::iterator it; + for(it = begin(); it != end(); ++it) { + printf("\tcomparing %d and %d\n", t.parent_id, it->id); + if(t.parent_id == it->id) { + break; + } + } + assert(it != end()); + + std::list<task_t>::insert(++it, t); + +// std::list<task_t>::push_back(t); +// std::list<task_t>::sort(CompareByParentid()); + + } + + void move(task_t t) { + std::list<task_t>::iterator it; + for(it = begin(); it != end(); it++) { + if(t.id == it->id) { + break; + } + } + assert(it != end()); + // if(it != end()) { + std::list<task_t>::erase(it); + // } + insert(t); + } + + void push_back(task_t t) { + insert(t); + } + +private: + std::list<task_t> list; +}; + + extern TaskList tasklist; +//typedef std::priority_queue<task_t, std::vector<task_t>, CompareByParentid> TaskList; + task_t create_task(std::string title, std::string desc, /*int x, int y*/ int parent_id); +TaskList load_tasklist_from_file(std::string file); +bool save_tasklist_to_file(TaskList t, std::string file); + #endif/*__MUNIA_TASK_H__*/ |