/// <summary> /// Remove the task from the line specified by the TextIter. This /// will remove the TextTag and also the "todo:" portion of the line /// so it will no longer be a task. The task summary text will be /// left on the line. /// <param name="iter">The TextIter specifying the line where the /// task should be removed.</param> /// <returns>True if a task was removed, otherwise False.</returns> /// </summary> bool RemoveTaskFromLine (ref Gtk.TextIter iter) { if (RemoveTaskTagFromLine (iter) == false) return false; while (iter.StartsLine () == false) { iter.BackwardChar (); } Gtk.TextIter line_end = iter; while (line_end.EndsLine () == false) { line_end.ForwardChar (); } // line_end.ForwardToLineEnd (); string text = iter.GetText (line_end); Buffer.Delete (ref iter, ref line_end); text = GetTaskSummaryFromLine (text); if (text.Length > 0) Buffer.Insert (ref iter, text); return true; }
TaskTag GetTaskTagFromLineIter (ref Gtk.TextIter line_iter) { TaskTag task_tag = null; while (line_iter.StartsLine () == false) { line_iter.BackwardChar (); } task_tag = (TaskTag) Buffer.GetDynamicTag ("task", line_iter); return task_tag; }