diff options
Diffstat (limited to 'src/taskmanager.cc')
-rw-r--r-- | src/taskmanager.cc | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/taskmanager.cc b/src/taskmanager.cc index 60b01d6..89de0b3 100644 --- a/src/taskmanager.cc +++ b/src/taskmanager.cc @@ -39,6 +39,11 @@ TaskManager task_manager; #define PROJECTS_ID 4 #define FIRST_TASK_ID 10 +static bool isProtected(taskid_t id) +{ + return id < FIRST_TASK_ID; +} + TaskManager::TaskManager() { idCount = FIRST_TASK_ID; @@ -80,7 +85,10 @@ taskid_t TaskManager::createId() { TaskIdListPair TaskManager::moveTask(taskid_t id, taskid_t to) throw (std::exception) { + if(isProtected(id)) return TaskIdListPair(); + /* + TaskIdList affectedTasks; try { @@ -91,11 +99,11 @@ TaskIdListPair TaskManager::moveTask(taskid_t id, taskid_t to) } */ - task_t t = data(id); + task_t t = tree.data(id); t.parentid = to; - TaskIdListRemove tilremove = tree.remove(id); - TaskIdListCreate tilcreate = tree.create(to, id, t); + TaskIdList tilremove = tree.remove(id); + TaskIdList tilcreate = tree.insertAsChild(to, id, t); TaskIdListPair tilpair; tilpair.first = tilremove; @@ -106,6 +114,9 @@ TaskIdListPair TaskManager::moveTask(taskid_t id, taskid_t to) TaskIdList TaskManager::removeTask(taskid_t id) throw (std::exception) { + + if(isProtected(id)) return TaskIdList(); + TaskIdList affectedTasks; if(tree.bfs(id).size() > 1) throw std::exception(); @@ -123,6 +134,8 @@ TaskIdList TaskManager::removeTask(taskid_t id) TaskIdList TaskManager::updateTask(taskid_t id, task_t t) throw (std::exception) { + if(isProtected(id)) return TaskIdList(); + TaskIdList affectedTasks; try { |