summaryrefslogtreecommitdiff
path: root/src/taskmanager.cc
diff options
context:
space:
mode:
authorJonas Suhr Christensen <jsc@umbraculum.org>2012-05-17 12:10:57 +0200
committerJonas Suhr Christensen <jsc@umbraculum.org>2012-05-17 12:10:57 +0200
commit69f1a4dfc0d3a7a1462d87a31b11197a638c5746 (patch)
treeeb4be65262797896b928ab01bd5d1b12644cbe1b /src/taskmanager.cc
parent2b542db3b553e73bdd58f54f657776715fd5472d (diff)
parentc2def65a701a973cde305d8c221d01beeb33eb84 (diff)
Merge branch 'master' of https://git.oftal.dk/munia
Conflicts: src/taskmanager.cc
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 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 {