Keyboard shortcuts for Project related actions added. Closes #13
This commit is contained in:
@@ -89,6 +89,9 @@ func setKeyboardShortcuts() *tview.Application {
|
|||||||
event = projectPane.handleShortcuts(event)
|
event = projectPane.handleShortcuts(event)
|
||||||
case taskPane.HasFocus():
|
case taskPane.HasFocus():
|
||||||
event = taskPane.handleShortcuts(event)
|
event = taskPane.handleShortcuts(event)
|
||||||
|
if event != nil && projectDetailPane.isShowing() {
|
||||||
|
event = projectDetailPane.handleShortcuts(event)
|
||||||
|
}
|
||||||
case taskDetailPane.HasFocus():
|
case taskDetailPane.HasFocus():
|
||||||
event = taskDetailPane.handleShortcuts(event)
|
event = taskDetailPane.handleShortcuts(event)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ func NewProjectDetailPane() *ProjectDetailPane {
|
|||||||
pane := ProjectDetailPane{
|
pane := ProjectDetailPane{
|
||||||
Flex: tview.NewFlex().SetDirection(tview.FlexRow),
|
Flex: tview.NewFlex().SetDirection(tview.FlexRow),
|
||||||
}
|
}
|
||||||
deleteBtn := makeButton("Delete Project", projectPane.RemoveActivateProject)
|
deleteBtn := makeButton("[::u]D[::-]elete Project", projectPane.RemoveActivateProject)
|
||||||
clearBtn := makeButton("Clear Completed Tasks", taskPane.ClearCompletedTasks)
|
clearBtn := makeButton("[::u]C[::-]lear Completed Tasks", taskPane.ClearCompletedTasks)
|
||||||
|
|
||||||
deleteBtn.SetBackgroundColor(tcell.ColorRed)
|
deleteBtn.SetBackgroundColor(tcell.ColorRed)
|
||||||
pane.
|
pane.
|
||||||
@@ -38,3 +38,20 @@ func (pd *ProjectDetailPane) SetProject(project *model.Project) {
|
|||||||
pd.project = project
|
pd.project = project
|
||||||
pd.SetTitle("[::b]" + pd.project.Title)
|
pd.SetTitle("[::b]" + pd.project.Title)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (pd *ProjectDetailPane) isShowing() bool {
|
||||||
|
return taskPane.activeTask == nil && projectPane.activeProject != nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pd *ProjectDetailPane) handleShortcuts(event *tcell.EventKey) *tcell.EventKey {
|
||||||
|
switch event.Rune() {
|
||||||
|
case 'd':
|
||||||
|
projectPane.RemoveActivateProject()
|
||||||
|
return nil
|
||||||
|
case 'c':
|
||||||
|
taskPane.ClearCompletedTasks()
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return event
|
||||||
|
}
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ func NewTaskPane(projectRepo repository.ProjectRepository, taskRepo repository.T
|
|||||||
func (pane *TaskPane) ClearList() {
|
func (pane *TaskPane) ClearList() {
|
||||||
pane.list.Clear()
|
pane.list.Clear()
|
||||||
pane.tasks = nil
|
pane.tasks = nil
|
||||||
|
pane.activeTask = nil
|
||||||
|
|
||||||
pane.RemoveItem(pane.newTask)
|
pane.RemoveItem(pane.newTask)
|
||||||
}
|
}
|
||||||
@@ -160,6 +161,8 @@ func (pane *TaskPane) LoadDynamicList(logic string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
projectPane.activeProject = nil
|
projectPane.activeProject = nil
|
||||||
|
taskPane.ClearList()
|
||||||
|
|
||||||
if err == storm.ErrNotFound {
|
if err == storm.ErrNotFound {
|
||||||
statusBar.showForSeconds("[yellow]No Task was scheduled for "+rangeDesc, 5)
|
statusBar.showForSeconds("[yellow]No Task was scheduled for "+rangeDesc, 5)
|
||||||
pane.SetList(tasks)
|
pane.SetList(tasks)
|
||||||
|
|||||||
Reference in New Issue
Block a user