Index: src/ch/MiniViewDlg.cpp =================================================================== diff -u -N -r814b694086d5dc450efb6a5e5c6902145ddc07fd -r68bbff6670ec7d7010ced69f600493a0ae0c687c --- src/ch/MiniViewDlg.cpp (.../MiniViewDlg.cpp) (revision 814b694086d5dc450efb6a5e5c6902145ddc07fd) +++ src/ch/MiniViewDlg.cpp (.../MiniViewDlg.cpp) (revision 68bbff6670ec7d7010ced69f600493a0ae0c687c) @@ -25,6 +25,7 @@ #include "../libchengine/TTaskManager.h" #include "../libchengine/TTask.h" #include "GuiOptions.h" +#include "RuleEditDlg.h" #ifdef _DEBUG #define new DEBUG_NEW @@ -341,6 +342,7 @@ case ID_TASK_MENU_CANCEL: case ID_TASK_MENU_REMOVE: case ID_TASK_MENU_RESET_FEEDBACK: + case ID_TASK_MENU_EDIT_FEEDBACK: ExecTaskCommand(iMenuItem); break; @@ -411,9 +413,37 @@ case ID_TASK_MENU_RESET_FEEDBACK: spTask->RestoreFeedbackDefaults(); break; + case ID_TASK_MENU_EDIT_FEEDBACK: + OnEditUserFeedback(); + break; } } +void CMiniViewDlg::OnEditUserFeedback() +{ + taskid_t taskID = m_currentTaskId; + TTaskPtr spTask = m_pTasks->GetTaskByTaskID(taskID); + if(!spTask) + return; + + if(spTask) + { + FeedbackRules rules = spTask->GetFeedbackRules(); + spTask.reset(); + + RuleEditDlg dlg(rules); + if(dlg.DoModal() == IDOK) + { + rules = dlg.GetRules(); + + // re-try searching for specific task to ensure it was not deleted in the meantime + spTask = m_pTasks->GetTaskByTaskID(taskID); + if(spTask) + spTask->SetFeedbackRules(rules); + } + } +} + void CMiniViewDlg::OnLanguageChanged() { ResizeDialog();