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
This commit is contained in:
Patrick Euerle
2021-10-07 10:57:55 +02:00
committed by GitHub
parent 0208277ce1
commit eaba2373d3
2 changed files with 29 additions and 17 deletions

View File

@@ -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:**

View File

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