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)
|
||||
case taskPane.HasFocus():
|
||||
event = taskPane.handleShortcuts(event)
|
||||
if event != nil && projectDetailPane.isShowing() {
|
||||
event = projectDetailPane.handleShortcuts(event)
|
||||
}
|
||||
case taskDetailPane.HasFocus():
|
||||
event = taskDetailPane.handleShortcuts(event)
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ func NewProjectDetailPane() *ProjectDetailPane {
|
||||
pane := ProjectDetailPane{
|
||||
Flex: tview.NewFlex().SetDirection(tview.FlexRow),
|
||||
}
|
||||
deleteBtn := makeButton("Delete Project", projectPane.RemoveActivateProject)
|
||||
clearBtn := makeButton("Clear Completed Tasks", taskPane.ClearCompletedTasks)
|
||||
deleteBtn := makeButton("[::u]D[::-]elete Project", projectPane.RemoveActivateProject)
|
||||
clearBtn := makeButton("[::u]C[::-]lear Completed Tasks", taskPane.ClearCompletedTasks)
|
||||
|
||||
deleteBtn.SetBackgroundColor(tcell.ColorRed)
|
||||
pane.
|
||||
@@ -38,3 +38,20 @@ func (pd *ProjectDetailPane) SetProject(project *model.Project) {
|
||||
pd.project = project
|
||||
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() {
|
||||
pane.list.Clear()
|
||||
pane.tasks = nil
|
||||
pane.activeTask = nil
|
||||
|
||||
pane.RemoveItem(pane.newTask)
|
||||
}
|
||||
@@ -160,6 +161,8 @@ func (pane *TaskPane) LoadDynamicList(logic string) {
|
||||
}
|
||||
|
||||
projectPane.activeProject = nil
|
||||
taskPane.ClearList()
|
||||
|
||||
if err == storm.ErrNotFound {
|
||||
statusBar.showForSeconds("[yellow]No Task was scheduled for "+rangeDesc, 5)
|
||||
pane.SetList(tasks)
|
||||
|
||||
Reference in New Issue
Block a user