From eaba2373d3596a57967eab9cf4581fb8557b45d6 Mon Sep 17 00:00:00 2001 From: Patrick Euerle Date: Thu, 7 Oct 2021 10:57:55 +0200 Subject: [PATCH] Added shortcuts '+', '-' and 'o' for date selection shortcuts, underlining for those and 'e' (#26) * added shortcuts '+', '-' and 'o' for date selection shortcut * underlining shortcut key for those and 'e' (Edit description) * Moved set due date logic in separate functions --- README.md | 5 ++++- app/task_detail.go | 41 +++++++++++++++++++++++++---------------- 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index b21f312..5e97457 100644 --- a/README.md +++ b/README.md @@ -102,11 +102,14 @@ In case writing in a text input (e,g, new project/task, due date), you have to ` | Task Detail | `Esc`/`h` | Go back to Tasks Pane | | Task Detail | `Space` | Toggle task as done/pending | | Task Detail | `d` | Set Due date | +| Task Detail | `o` | Set Due date to today | +| Task Detail | `+` | Due date plus 1 | +| Task Detail | `-` | Due date minus 1 | | Task Detail | `↓`/`↑` | Scroll Up/Down the note editor | | Task Detail | `e` | Activate note editor for modification | | Task Detail | `v` | Edit task details in external editor (default `vim`) | | Task Detail | `r` | Rename Task Title | -| Task Detail | `x` | Export Task to clipboard | +| Task Detail | `x` | Export Task to clipboard | | Active Note Editor | `Esc` | Deactivate note editor and save content | **Tips about using shortcuts efficiently:** diff --git a/app/task_detail.go b/app/task_detail.go index 2387f9e..adbe042 100644 --- a/app/task_detail.go +++ b/app/task_detail.go @@ -56,7 +56,7 @@ func NewTaskDetailPane(taskRepo repository.TaskRepository) *TaskDetailPane { // Prepare static (no external interaction) elements editorLabel := tview.NewFlex(). AddItem(tview.NewTextView().SetText("Task Not[::u]e[::-]:").SetDynamicColors(true), 0, 1, false). - AddItem(makeButton("edit", func() { pane.activateEditor() }), 6, 0, false) + AddItem(makeButton("[::u]e[::-]dit", func() { pane.activateEditor() }), 6, 0, false) editorHelp := tview.NewFlex(). AddItem(pane.editorHint, 0, 1, false). AddItem(tview.NewTextView().SetTextAlign(tview.AlignRight). @@ -111,27 +111,15 @@ func (td *TaskDetailPane) makeDateRow() *tview.Flex { app.SetFocus(td) }) - todaySelector := func() { - td.setTaskDate(parseDateInputOrCurrent("").Unix(), true) - } - - nextDaySelector := func() { - td.setTaskDate(parseDateInputOrCurrent(td.taskDate.GetText()).AddDate(0, 0, 1).Unix(), true) - } - - prevDaySelector := func() { - td.setTaskDate(parseDateInputOrCurrent(td.taskDate.GetText()).AddDate(0, 0, -1).Unix(), true) - } - return tview.NewFlex(). AddItem(td.taskDateDisplay, 0, 2, true). AddItem(td.taskDate, 14, 0, true). AddItem(blankCell, 1, 0, false). - AddItem(makeButton("today", todaySelector), 8, 1, false). + AddItem(makeButton("t[::u]o[::-]day", td.todaySelector), 8, 1, false). AddItem(blankCell, 1, 0, false). - AddItem(makeButton("+1", nextDaySelector), 4, 1, false). + AddItem(makeButton("[::u]+[::-]1", td.nextDaySelector), 4, 1, false). AddItem(blankCell, 1, 0, false). - AddItem(makeButton("-1", prevDaySelector), 4, 1, false) + AddItem(makeButton("[::u]-[::-]1", td.prevDaySelector), 4, 1, false) } func (td *TaskDetailPane) updateToggleDisplay() { @@ -328,6 +316,15 @@ func (td *TaskDetailPane) handleShortcuts(event *tcell.EventKey) *tcell.EventKey case 'x': td.Export() return nil + case 'o': + td.todaySelector() + return nil + case '+': + td.nextDaySelector() + return nil + case '-': + td.prevDaySelector() + return nil } } @@ -346,3 +343,15 @@ func (td *TaskDetailPane) SetTask(task *model.Task) { td.updateToggleDisplay() td.deactivateEditor() } + +func (td *TaskDetailPane) todaySelector() { + td.setTaskDate(parseDateInputOrCurrent("").Unix(), true) +} + +func (td *TaskDetailPane) nextDaySelector() { + td.setTaskDate(parseDateInputOrCurrent(td.taskDate.GetText()).AddDate(0, 0, 1).Unix(), true) +} + +func (td *TaskDetailPane) prevDaySelector() { + td.setTaskDate(parseDateInputOrCurrent(td.taskDate.GetText()).AddDate(0, 0, -1).Unix(), true) +}