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 87cf2b0..89de0b3 100644 --- a/src/taskmanager.cc +++ b/src/taskmanager.cc @@ -82,10 +82,12 @@ taskid_t TaskManager::createId() { return idCount++; } -TaskIdList TaskManager::moveTask(taskid_t id, taskid_t to) +TaskIdListPair TaskManager::moveTask(taskid_t id, taskid_t to) throw (std::exception) { - if(isProtected(id)) return TaskIdList(); + if(isProtected(id)) return TaskIdListPair(); + + /* TaskIdList affectedTasks; @@ -95,8 +97,19 @@ TaskIdList TaskManager::moveTask(taskid_t id, taskid_t to) catch (std::exception& e) { throw e; } + */ - return affectedTasks; + task_t t = tree.data(id); + t.parentid = to; + + TaskIdList tilremove = tree.remove(id); + TaskIdList tilcreate = tree.insertAsChild(to, id, t); + + TaskIdListPair tilpair; + tilpair.first = tilremove; + tilpair.second = tilcreate; + + return tilpair; } TaskIdList TaskManager::removeTask(taskid_t id) |