summaryrefslogtreecommitdiff
path: root/src/taskmanager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/taskmanager.cc')
-rw-r--r--src/taskmanager.cc19
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)