@@ -23,21 +23,22 @@ const dateLayoutHuman = "02 Jan, Monday"
2323// TaskDetailPane displays detailed info of a Task
2424type TaskDetailPane struct {
2525 * tview.Flex
26- taskName , taskDateDisplay * tview.TextView
27- editorHint * tview.TextView
28- taskDate * tview.InputField
29- taskStatusToggle * tview.Button
30- taskDetailView * femto.View
31- colorScheme femto.Colorscheme
32- taskRepo repository.TaskRepository
33- task * model.Task
26+ header * TaskDetailHeader
27+ taskDateDisplay * tview.TextView
28+ editorHint * tview.TextView
29+ taskDate * tview.InputField
30+ taskStatusToggle * tview.Button
31+ taskDetailView * femto.View
32+ colorScheme femto.Colorscheme
33+ taskRepo repository.TaskRepository
34+ task * model.Task
3435}
3536
3637// NewTaskDetailPane initializes and configures a TaskDetailPane
3738func NewTaskDetailPane (taskRepo repository.TaskRepository ) * TaskDetailPane {
3839 pane := TaskDetailPane {
3940 Flex : tview .NewFlex ().SetDirection (tview .FlexRow ),
40- taskName : tview . NewTextView (). SetDynamicColors ( true ),
41+ header : NewTaskDetailHeader ( taskRepo ),
4142 taskDateDisplay : tview .NewTextView ().SetDynamicColors (true ),
4243 taskStatusToggle : makeButton ("Complete" , nil ).SetLabelColor (tcell .ColorLightGray ),
4344 taskRepo : taskRepo ,
@@ -61,8 +62,7 @@ func NewTaskDetailPane(taskRepo repository.TaskRepository) *TaskDetailPane {
6162 SetTextColor (tcell .ColorDimGray ), 0 , 1 , false )
6263
6364 pane .
64- AddItem (pane .taskName , 2 , 1 , true ).
65- AddItem (makeHorizontalLine (tcell .RuneS3 , tcell .ColorGray ), 1 , 1 , false ).
65+ AddItem (pane .header , 4 , 1 , true ).
6666 AddItem (blankCell , 1 , 1 , false ).
6767 AddItem (pane .makeDateRow (), 1 , 1 , true ).
6868 AddItem (blankCell , 1 , 1 , false ).
@@ -130,8 +130,7 @@ func (td *TaskDetailPane) toggleTaskStatus() {
130130 status := ! td .task .Completed
131131 if taskRepo .UpdateField (td .task , "Completed" , status ) == nil {
132132 td .task .Completed = status
133- td .SetTask (td .task )
134- taskPane .list .SetItemText (taskPane .list .GetCurrentItem (), makeTaskListingTitle (* td .task ), "" )
133+ taskPane .ReloadCurrentTask ()
135134 }
136135}
137136
@@ -299,12 +298,11 @@ func (td *TaskDetailPane) handleShortcuts(event *tcell.EventKey) *tcell.EventKey
299298 td .editInExternalEditor ()
300299 case 'd' :
301300 app .SetFocus (td .taskDate )
302- case 'h ' :
303- app . SetFocus ( taskPane )
301+ case 'r ' :
302+ td . header . ShowRename ( )
304303 case ' ' :
305304 td .toggleTaskStatus ()
306305 }
307-
308306 }
309307
310308 return event
@@ -314,7 +312,7 @@ func (td *TaskDetailPane) handleShortcuts(event *tcell.EventKey) *tcell.EventKey
314312func (td * TaskDetailPane ) SetTask (task * model.Task ) {
315313 td .task = task
316314
317- td .taskName . SetText ( fmt . Sprintf ( "[%s::b]# %s" , getTaskTitleColor ( * td . task ), td . task . Title ) )
315+ td .header . SetTask ( task )
318316 td .taskDetailView .Buf = makeBufferFromString (td .task .Details )
319317 td .taskDetailView .SetColorscheme (td .colorScheme )
320318 td .taskDetailView .Start ()
0 commit comments