diff --git a/src/Task.cpp b/src/Task.cpp index a99e14eac..8d657e34b 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -2009,29 +2009,7 @@ void Task::modify (modType type, bool text_required /* = false */) // Dependencies are specified as IDs. if (name == "depends") { - // Parse IDs - std::vector deps; - split (deps, value, ','); - - // Apply or remove dendencies in turn. - for (auto& dep : deps) - { - if (dep[0] == '-') - { - if (dep.length () == 37) - removeDependency (dep.substr (1)); - else - removeDependency (strtol (dep.substr (1).c_str (), NULL, 10)); - } - else - { - if (dep.length () == 36) - addDependency (dep); - else - addDependency (strtol (dep.c_str (), NULL, 10)); - } - } - + column->modify (*this, value); ++modCount; } diff --git a/src/columns/ColDepends.cpp b/src/columns/ColDepends.cpp index 4a2bb49b5..ffc6cca63 100644 --- a/src/columns/ColDepends.cpp +++ b/src/columns/ColDepends.cpp @@ -32,6 +32,7 @@ #include #include #include +#include extern Context context; @@ -147,3 +148,30 @@ void ColumnDepends::render ( } //////////////////////////////////////////////////////////////////////////////// +void ColumnDepends::modify (Task& task, const std::string& value) +{ + // Parse IDs + std::vector deps; + split (deps, value, ','); + + // Apply or remove dendencies in turn. + for (auto& dep : deps) + { + if (dep[0] == '-') + { + if (dep.length () == 37) + task.removeDependency (dep.substr (1)); + else + task.removeDependency (strtol (dep.substr (1).c_str (), NULL, 10)); + } + else + { + if (dep.length () == 36) + task.addDependency (dep); + else + task.addDependency (strtol (dep.c_str (), NULL, 10)); + } + } +} + +//////////////////////////////////////////////////////////////////////////////// diff --git a/src/columns/ColDepends.h b/src/columns/ColDepends.h index c41416730..c46a82610 100644 --- a/src/columns/ColDepends.h +++ b/src/columns/ColDepends.h @@ -37,6 +37,7 @@ public: void setStyle (const std::string&); void measure (Task&, unsigned int&, unsigned int&); void render (std::vector &, Task&, int, Color&); + void modify (Task&, const std::string&); private: bool _hyphenate;