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)
+}