From 8d3953183afeac47e998fcdf76261bcb2745dec4 Mon Sep 17 00:00:00 2001 From: "Dustin J. Mitchell" Date: Thu, 16 Dec 2021 02:41:16 +0000 Subject: [PATCH] Only set contextTask if not adding a new task When adding a new task, the current task is empty, so there is no context in which to evaluate DOM references. #2683 will address this in a more robust fashion. --- src/columns/ColProject.cpp | 4 +++- src/columns/ColRecur.cpp | 4 +++- src/columns/ColTags.cpp | 4 +++- src/columns/ColTypeDate.cpp | 4 +++- src/columns/ColTypeDuration.cpp | 4 +++- src/columns/ColTypeNumeric.cpp | 4 +++- src/columns/ColTypeString.cpp | 4 +++- 7 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/columns/ColProject.cpp b/src/columns/ColProject.cpp index f414ea3a0..bef8ec723 100644 --- a/src/columns/ColProject.cpp +++ b/src/columns/ColProject.cpp @@ -121,7 +121,9 @@ void ColumnProject::modify (Task& task, const std::string& value) { Eval e; e.addSource (domSource); - contextTask = &task; + if (!task.is_empty ()) { + contextTask = &task; + } Variant v; e.evaluateInfixExpression (value, v); diff --git a/src/columns/ColRecur.cpp b/src/columns/ColRecur.cpp index 22623cdce..8168770ed 100644 --- a/src/columns/ColRecur.cpp +++ b/src/columns/ColRecur.cpp @@ -108,7 +108,9 @@ void ColumnRecur::modify (Task& task, const std::string& value) { Eval e; e.addSource (domSource); - contextTask = &task; + if (!task.is_empty ()) { + contextTask = &task; + } e.evaluateInfixExpression (value, evaluatedValue); } diff --git a/src/columns/ColTags.cpp b/src/columns/ColTags.cpp index 16fea0e86..4680f4fed 100644 --- a/src/columns/ColTags.cpp +++ b/src/columns/ColTags.cpp @@ -162,7 +162,9 @@ void ColumnTags::modify (Task& task, const std::string& value) { Eval e; e.addSource (domSource); - contextTask = &task; + if (!task.is_empty ()) { + contextTask = &task; + } Variant v; e.evaluateInfixExpression (value, v); diff --git a/src/columns/ColTypeDate.cpp b/src/columns/ColTypeDate.cpp index af8ea1e25..fc63f4c66 100644 --- a/src/columns/ColTypeDate.cpp +++ b/src/columns/ColTypeDate.cpp @@ -213,7 +213,9 @@ void ColumnTypeDate::modify (Task& task, const std::string& value) { Eval e; e.addSource (domSource); - contextTask = &task; + if (!task.is_empty ()) { + contextTask = &task; + } e.evaluateInfixExpression (value, evaluatedValue); } diff --git a/src/columns/ColTypeDuration.cpp b/src/columns/ColTypeDuration.cpp index 126d7adc9..f305686e5 100644 --- a/src/columns/ColTypeDuration.cpp +++ b/src/columns/ColTypeDuration.cpp @@ -55,7 +55,9 @@ void ColumnTypeDuration::modify (Task& task, const std::string& value) { Eval e; e.addSource (domSource); - contextTask = &task; + if (!task.is_empty ()) { + contextTask = &task; + } e.evaluateInfixExpression (value, evaluatedValue); } diff --git a/src/columns/ColTypeNumeric.cpp b/src/columns/ColTypeNumeric.cpp index 986470b4c..ea04891e7 100644 --- a/src/columns/ColTypeNumeric.cpp +++ b/src/columns/ColTypeNumeric.cpp @@ -55,7 +55,9 @@ void ColumnTypeNumeric::modify (Task& task, const std::string& value) { Eval e; e.addSource (domSource); - contextTask = &task; + if (!task.is_empty ()) { + contextTask = &task; + } e.evaluateInfixExpression (value, evaluatedValue); } diff --git a/src/columns/ColTypeString.cpp b/src/columns/ColTypeString.cpp index 89552ce14..8f46abb1f 100644 --- a/src/columns/ColTypeString.cpp +++ b/src/columns/ColTypeString.cpp @@ -67,7 +67,9 @@ void ColumnTypeString::modify (Task& task, const std::string& value) { Eval e; e.addSource (domSource); - contextTask = &task; + if (!task.is_empty ()) { + contextTask = &task; + } Variant v; e.evaluateInfixExpression (value, v);