Skip to content
This repository was archived by the owner on Dec 23, 2021. It is now read-only.

Commit f5c3d7f

Browse files
committed
- improvement read from line
- add arrow keys in search images panel
1 parent d19255b commit f5c3d7f

File tree

8 files changed

+32
-25
lines changed

8 files changed

+32
-25
lines changed

README.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ $ bash build.sh
6262
| all | change panel | <kbd>Tab</kbd> |
6363
| all | quit | <kbd>Ctrl</kbd> + <kbd>q</kbd> |
6464
| all | quit | <kbd>q</kbd> |
65+
| list panels | next entry | <kbd>j</kbd> / <kbd>↓</kbd> |
66+
| list panels | previous entry | <kbd>k</kbd> / <kbd>↑</kbd> |
6567
| image list | pull image | <kbd>p</kbd> |
6668
| image list | search images | <kbd>Ctrl</kbd> + <kbd>f</kbd> |
6769
| image list | remove image | <kbd>d</kbd> |
@@ -70,15 +72,11 @@ $ bash build.sh
7072
| image list | save image | <kbd>s</kbd> |
7173
| image list | import image | <kbd>i</kbd> |
7274
| image list | load image | <kbd>Ctrl</kbd> + <kbd>l</kbd> |
73-
| image list | next image | <kbd>j</kbd> |
74-
| image list | previous image | <kbd>k</kbd> |
7575
| image list | remove dangling images | <kbd>Ctrl</kbd> + <kbd>d</kbd> |
7676
| image list | refresh image list | <kbd>Ctrl</kbd> + <kbd>r</kbd> |
7777
| image list | filter image | <kbd>f</kbd> |
7878
| container list | inspect container | <kbd>Enter</kbd> / <kbd>o</kbd> |
7979
| container list | remove container | <kbd>d</kbd> |
80-
| container list | next container | <kbd>j</kbd> |
81-
| container list | previous container | <kbd>k</kbd> |
8280
| container list | start container | <kbd>u</kbd> |
8381
| container list | stop container | <kbd>s</kbd> |
8482
| container list | export container | <kbd>e</kbd> |
@@ -94,8 +92,6 @@ $ bash build.sh
9492
| volume list | filter image | <kbd>f</kbd> |
9593
| network list | inspect network | <kbd>Enter</kbd> / <kbd>o</kbd> |
9694
| network list | remove network | <kbd>d</kbd> |
97-
| network list | next netowrk | <kbd>j</kbd> |
98-
| network list | previous network | <kbd>k</kbd> |
9995
| pull image | pull image | <kbd>Enter</kbd> |
10096
| pull image | close panel | <kbd>Esc</kbd> |
10197
| create container | next input box | <kbd>↓</kbd> / <kbd>Tab</kbd> |
@@ -107,8 +103,8 @@ $ bash build.sh
107103
| detail | page up | <kbd>u</kbd> |
108104
| search images | search image | <kbd>Enter</kbd> |
109105
| search images | close panel | <kbd>Esc</kbd> |
110-
| images | next image | <kbd>j</kbd> |
111-
| images | previous image | <kbd>k</kbd> |
106+
| images | next image | <kbd>j</kbd> / <kbd>↓</kbd> |
107+
| images | previous image | <kbd>k</kbd> / <kbd>↑</kbd> |
112108
| images | pull image | <kbd>Enter</kbd> |
113109
| images | close panel | <kbd>Esc</kbd> |
114110
| create volume | close panel | <kbd>Esc</kbd> |

panel/containerPanel.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func (c *ContainerList) Edit(v *gocui.View, key gocui.Key, ch rune, mod gocui.Mo
5959
return
6060
}
6161

62-
c.filter = ReadLine(v, nil)
62+
c.filter = ReadViewBuffer(v)
6363

6464
if v, err := c.View(c.name); err == nil {
6565
c.GetContainerList(v)
@@ -571,7 +571,7 @@ func (c *ContainerList) Filter(g *gocui.Gui, lv *gocui.View) error {
571571
c.filter = ""
572572
} else {
573573
lv.SetCursor(0, 0)
574-
c.filter = ReadLine(v, nil)
574+
c.filter = ReadViewBuffer(v)
575575
}
576576
if v, err := c.View(c.name); err == nil {
577577
c.GetContainerList(v)

panel/gui.go

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,15 @@ func (gui *Gui) SetKeyBindingToPanel(panel string) {
9999
if err := gui.SetKeybinding(panel, 'h', gocui.ModNone, gui.prePanel); err != nil {
100100
panic(err)
101101
}
102+
if err := gui.SetKeybinding(panel, gocui.KeyArrowLeft, gocui.ModNone, gui.prePanel); err != nil {
103+
panic(err)
104+
}
102105
if err := gui.SetKeybinding(panel, 'l', gocui.ModNone, gui.nextPanel); err != nil {
103106
panic(err)
104107
}
108+
if err := gui.SetKeybinding(panel, gocui.KeyArrowRight, gocui.ModNone, gui.nextPanel); err != nil {
109+
panic(err)
110+
}
105111
if err := gui.SetKeybinding(panel, gocui.KeyTab, gocui.ModNone, gui.nextPanel); err != nil {
106112
panic(err)
107113
}
@@ -369,7 +375,7 @@ func CursorDown(g *gocui.Gui, v *gocui.View) error {
369375
cx, cy := v.Cursor()
370376
nexty := cy + 1
371377

372-
line := ReadLine(v, &nexty)
378+
line := ReadLineY(v, nexty)
373379
if line == "" {
374380
return nil
375381
}
@@ -430,17 +436,16 @@ func PageUp(g *gocui.Gui, v *gocui.View) error {
430436
return nil
431437
}
432438

433-
func ReadLine(v *gocui.View, y *int) string {
434-
if y == nil {
435-
_, ny := v.Cursor()
436-
y = &ny
437-
}
438-
439-
str, err := v.Line(*y)
439+
func ReadLineY(v *gocui.View, y int) string {
440+
str, err := v.Line(y)
440441

441442
if err != nil {
442443
return ""
443444
}
444445

445446
return strings.Trim(str, " ")
446447
}
448+
449+
func ReadViewBuffer(v *gocui.View) string {
450+
return strings.Replace(v.ViewBuffer(), "\n", "", -1)
451+
}

panel/imagePanel.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ func (i *ImageList) Edit(v *gocui.View, key gocui.Key, ch rune, mod gocui.Modifi
6060
return
6161
}
6262

63-
i.filter = ReadLine(v, nil)
63+
i.filter = ReadViewBuffer(v)
6464

6565
if v, err := i.View(i.name); err == nil {
6666
i.GetImageList(v)
@@ -692,7 +692,7 @@ func (i *ImageList) Filter(g *gocui.Gui, lv *gocui.View) error {
692692
i.filter = ""
693693
} else {
694694
lv.SetCursor(0, 0)
695-
i.filter = ReadLine(v, nil)
695+
i.filter = ReadViewBuffer(v)
696696
}
697697
if v, err := i.View(i.name); err == nil {
698698
i.GetImageList(v)

panel/networkPanel.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func (n *NetworkList) Edit(v *gocui.View, key gocui.Key, ch rune, mod gocui.Modi
5757
return
5858
}
5959

60-
n.filter = ReadLine(v, nil)
60+
n.filter = ReadViewBuffer(v)
6161

6262
if v, err := n.View(n.name); err == nil {
6363
n.GetNetworkList(v)
@@ -164,7 +164,7 @@ func (n *NetworkList) Filter(g *gocui.Gui, nv *gocui.View) error {
164164
n.filter = ""
165165
} else {
166166
nv.SetCursor(0, 0)
167-
n.filter = ReadLine(v, nil)
167+
n.filter = ReadViewBuffer(v)
168168
}
169169
if v, err := n.View(n.name); err == nil {
170170
n.GetNetworkList(v)

panel/searchImagePanel.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ func (s *SearchImage) SwitchToResult(g *gocui.Gui, v *gocui.View) error {
8989
}
9090

9191
func (s *SearchImage) SearchImage(g *gocui.Gui, v *gocui.View) error {
92-
name := ReadLine(v, nil)
92+
name := ReadViewBuffer(v)
9393

9494
if name != "" {
9595
g.Update(func(g *gocui.Gui) error {

panel/searchImageResultPanel.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,15 @@ func (s *SearchImageResult) SetKeyBinding() {
9696
if err := s.SetKeybinding(s.name, 'j', gocui.ModNone, CursorDown); err != nil {
9797
panic(err)
9898
}
99+
if err := s.SetKeybinding(s.name, gocui.KeyArrowDown, gocui.ModNone, CursorDown); err != nil {
100+
panic(err)
101+
}
99102
if err := s.SetKeybinding(s.name, 'k', gocui.ModNone, CursorUp); err != nil {
100103
panic(err)
101104
}
105+
if err := s.SetKeybinding(s.name, gocui.KeyArrowUp, gocui.ModNone, CursorUp); err != nil {
106+
panic(err)
107+
}
102108
}
103109

104110
func (s *SearchImageResult) SwitchToSearch(g *gocui.Gui, v *gocui.View) error {

panel/volumePanel.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func (vl *VolumeList) Edit(v *gocui.View, key gocui.Key, ch rune, mod gocui.Modi
5757
return
5858
}
5959

60-
vl.filter = ReadLine(v, nil)
60+
vl.filter = ReadViewBuffer(v)
6161

6262
if v, err := vl.View(vl.name); err == nil {
6363
vl.GetVolumeList(v)
@@ -337,7 +337,7 @@ func (vl *VolumeList) Filter(g *gocui.Gui, lv *gocui.View) error {
337337
vl.filter = ""
338338
} else {
339339
lv.SetCursor(0, 0)
340-
vl.filter = ReadLine(v, nil)
340+
vl.filter = ReadViewBuffer(v)
341341
}
342342
if v, err := vl.View(vl.name); err == nil {
343343
vl.GetVolumeList(v)

0 commit comments

Comments
 (0)