GitHub

@@ -7,9 +7,8 @@ import (

77

"sync"

88

"time"

9910-

tview "code.rocketnine.space/tslocum/cview"

1110

"github.com/gdamore/tcell/v2"

12-11+

"github.com/rivo/tview"

1312

"github.com/zrepl/zrepl/internal/client/status/viewmodel"

1413

)

1514

@@ -29,7 +28,6 @@ func interactive(c Client, flag statusFlags) error {

2928

jobMenuRoot.SetSelectable(true)

3029

jobMenu.SetRoot(jobMenuRoot)

3130

jobMenu.SetCurrentNode(jobMenuRoot)

32-

jobMenu.SetSelectedTextColor(tcell.ColorGreen)

3331

jobTextDetail := tview.NewTextView()

3432

jobTextDetail.SetWrap(false)

3533

@@ -110,10 +108,8 @@ func interactive(c Client, flag statusFlags) error {

110108

}

111109

app.SetRoot(toolbarSplit, true)

112110

app.SetFocus(preModalFocus)

113-

app.Draw()

114111

})

115112

app.SetRoot(m, true)

116-

app.Draw()

117113

}

118114119115

app.SetRoot(toolbarSplit, true)

@@ -170,12 +166,14 @@ func interactive(c Client, flag statusFlags) error {

170166

redrawJobsList = true

171167

}

172168

if redrawJobsList {

169+

selectedTextStyle := tcell.StyleDefault.Bold(true)

173170

selectedJobN = nil

174171

children := make([]*tview.TreeNode, len(jobs))

175172

for i := range jobs {

176173

jobN := tview.NewTreeNode(jobs[i].JobTreeTitle())

177174

jobN.SetReference(jobs[i])

178175

jobN.SetSelectable(true)

176+

jobN.SetSelectedTextStyle(selectedTextStyle)

179177

children[i] = jobN

180178

jobN.SetSelectedFunc(func() {

181179

viewmodelupdate(func(p *viewmodel.Params) {

@@ -187,6 +185,7 @@ func interactive(c Client, flag statusFlags) error {

187185

}

188186

}

189187

jobMenuRoot.SetChildren(children)

188+

jobMenuRoot.SetSelectedTextStyle(selectedTextStyle)

190189

}

191190192191

if selectedJobN != nil && jobMenu.GetCurrentNode() != selectedJobN {

@@ -207,9 +206,6 @@ func interactive(c Client, flag statusFlags) error {

207206

bottombar.ResizeItem(bottombarDateView, len(bottombardatestring), 0)

208207209208

bottomBarStatus.SetText(m.BottomBarStatus())

210-211-

app.Draw()

212-213209

}

214210215211

go func() {

@@ -252,6 +248,7 @@ func interactive(c Client, flag statusFlags) error {

252248253249

app.SetInputCapture(func(e *tcell.EventKey) *tcell.EventKey {

254250

if e.Key() == tcell.KeyTab {

251+

// TODO: only if there's no modal showing (long-time bug in zrepl status)

255252

tabbableCycle()

256253

return nil

257254

}

@@ -284,9 +281,8 @@ func interactive(c Client, flag statusFlags) error {

284281

signals := []string{"wakeup", "reset"}

285282

clientFuncs := []func(job string) error{c.SignalWakeup, c.SignalReset}

286283

sigMod := tview.NewModal()

287-

sigMod.SetBackgroundColor(tcell.ColorDefault)

288284

sigMod.SetBorder(true)

289-

sigMod.GetForm().SetButtonTextColorFocused(tcell.ColorGreen)

285+

sigMod.SetButtonActivatedStyle(tcell.StyleDefault.Bold(true).Reverse(true))

290286

sigMod.AddButtons(signals)

291287

sigMod.SetText(fmt.Sprintf("Send a signal to job %q", job.Name()))

292288

showModal(sigMod, func(idx int, _ string) {

Read the original on github.com ↗