feat: add navigation keys configuration for guilds tree and messages text widget
This commit is contained in:
parent
e372cf4bc0
commit
9f15a63424
3 changed files with 30 additions and 25 deletions
|
|
@ -224,14 +224,14 @@ func (gt *GuildsTree) onSelected(n *tview.TreeNode) {
|
|||
|
||||
func (gt *GuildsTree) onInputCapture(event *tcell.EventKey) *tcell.EventKey {
|
||||
switch event.Name() {
|
||||
case gt.cfg.Keys.SelectPrevious:
|
||||
case gt.cfg.Keys.GuildsTree.SelectPrevious:
|
||||
return tcell.NewEventKey(tcell.KeyUp, 0, tcell.ModNone)
|
||||
case gt.cfg.Keys.SelectNext:
|
||||
case gt.cfg.Keys.GuildsTree.SelectNext:
|
||||
return tcell.NewEventKey(tcell.KeyDown, 0, tcell.ModNone)
|
||||
case gt.cfg.Keys.SelectFirst:
|
||||
case gt.cfg.Keys.GuildsTree.SelectFirst:
|
||||
gt.Move(gt.GetRowCount() * -1)
|
||||
// return tcell.NewEventKey(tcell.KeyHome, 0, tcell.ModNone)
|
||||
case gt.cfg.Keys.SelectLast:
|
||||
case gt.cfg.Keys.GuildsTree.SelectLast:
|
||||
gt.Move(gt.GetRowCount())
|
||||
// return tcell.NewEventKey(tcell.KeyEnd, 0, tcell.ModNone)
|
||||
|
||||
|
|
|
|||
|
|
@ -197,24 +197,18 @@ func (mt *MessagesText) getSelectedMessageIndex() (int, error) {
|
|||
|
||||
func (mt *MessagesText) onInputCapture(event *tcell.EventKey) *tcell.EventKey {
|
||||
switch event.Name() {
|
||||
case mt.cfg.Keys.SelectPrevious, mt.cfg.Keys.SelectNext, mt.cfg.Keys.SelectFirst, mt.cfg.Keys.SelectLast, mt.cfg.Keys.MessagesText.SelectReply, mt.cfg.Keys.MessagesText.SelectPin:
|
||||
case mt.cfg.Keys.MessagesText.SelectPrevious, mt.cfg.Keys.MessagesText.SelectNext, mt.cfg.Keys.MessagesText.SelectFirst, mt.cfg.Keys.MessagesText.SelectLast, mt.cfg.Keys.MessagesText.SelectReply, mt.cfg.Keys.MessagesText.SelectPin:
|
||||
mt._select(event.Name())
|
||||
return nil
|
||||
case mt.cfg.Keys.MessagesText.Yank:
|
||||
mt.yank()
|
||||
return nil
|
||||
case mt.cfg.Keys.MessagesText.Open:
|
||||
mt.open()
|
||||
return nil
|
||||
case mt.cfg.Keys.MessagesText.Reply:
|
||||
mt.reply(false)
|
||||
return nil
|
||||
case mt.cfg.Keys.MessagesText.ReplyMention:
|
||||
mt.reply(true)
|
||||
return nil
|
||||
case mt.cfg.Keys.MessagesText.Delete:
|
||||
mt.delete()
|
||||
return nil
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
@ -234,7 +228,7 @@ func (mt *MessagesText) _select(name string) {
|
|||
}
|
||||
|
||||
switch name {
|
||||
case mt.cfg.Keys.SelectPrevious:
|
||||
case mt.cfg.Keys.MessagesText.SelectPrevious:
|
||||
// If no message is currently selected, select the latest message.
|
||||
if len(mt.GetHighlights()) == 0 {
|
||||
mt.selectedMessageID = ms[0].ID
|
||||
|
|
@ -245,7 +239,7 @@ func (mt *MessagesText) _select(name string) {
|
|||
return
|
||||
}
|
||||
}
|
||||
case mt.cfg.Keys.SelectNext:
|
||||
case mt.cfg.Keys.MessagesText.SelectNext:
|
||||
// If no message is currently selected, select the latest message.
|
||||
if len(mt.GetHighlights()) == 0 {
|
||||
mt.selectedMessageID = ms[0].ID
|
||||
|
|
@ -256,9 +250,9 @@ func (mt *MessagesText) _select(name string) {
|
|||
return
|
||||
}
|
||||
}
|
||||
case mt.cfg.Keys.SelectFirst:
|
||||
case mt.cfg.Keys.MessagesText.SelectFirst:
|
||||
mt.selectedMessageID = ms[len(ms)-1].ID
|
||||
case mt.cfg.Keys.SelectLast:
|
||||
case mt.cfg.Keys.MessagesText.SelectLast:
|
||||
mt.selectedMessageID = ms[0].ID
|
||||
case mt.cfg.Keys.MessagesText.SelectReply:
|
||||
if mt.selectedMessageID == 0 {
|
||||
|
|
|
|||
|
|
@ -1,17 +1,19 @@
|
|||
package config
|
||||
|
||||
type (
|
||||
NavigationKeys struct {
|
||||
SelectPrevious string `toml:"select_previous"`
|
||||
SelectNext string `toml:"select_next"`
|
||||
SelectFirst string `toml:"select_first"`
|
||||
SelectLast string `toml:"select_last"`
|
||||
}
|
||||
|
||||
Keys struct {
|
||||
FocusGuildsTree string `toml:"focus_guilds_tree"`
|
||||
FocusMessagesText string `toml:"focus_messages_text"`
|
||||
FocusMessageInput string `toml:"focus_message_input"`
|
||||
ToggleGuildsTree string `toml:"toggle_guilds_tree"`
|
||||
|
||||
SelectPrevious string `toml:"select_previous"`
|
||||
SelectNext string `toml:"select_next"`
|
||||
SelectFirst string `toml:"select_first"`
|
||||
SelectLast string `toml:"select_last"`
|
||||
|
||||
GuildsTree GuildsTreeKeys `toml:"guilds_tree"`
|
||||
MessagesText MessagesTextKeys `toml:"messages_text"`
|
||||
MessageInput MessageInputKeys `toml:"message_input"`
|
||||
|
|
@ -21,10 +23,12 @@ type (
|
|||
}
|
||||
|
||||
GuildsTreeKeys struct {
|
||||
NavigationKeys
|
||||
SelectCurrent string `toml:"select_current"`
|
||||
}
|
||||
|
||||
MessagesTextKeys struct {
|
||||
NavigationKeys
|
||||
SelectReply string `toml:"select_reply"`
|
||||
SelectPin string `toml:"select_pin"`
|
||||
Reply string `toml:"reply"`
|
||||
|
|
@ -52,16 +56,23 @@ func defaultKeys() Keys {
|
|||
Logout: "Ctrl+D",
|
||||
Quit: "Ctrl+C",
|
||||
|
||||
SelectPrevious: "Rune[k]",
|
||||
SelectNext: "Rune[j]",
|
||||
SelectFirst: "Rune[g]",
|
||||
SelectLast: "Rune[G]",
|
||||
|
||||
GuildsTree: GuildsTreeKeys{
|
||||
NavigationKeys: NavigationKeys{
|
||||
SelectPrevious: "Rune[k]",
|
||||
SelectNext: "Rune[j]",
|
||||
SelectFirst: "Rune[g]",
|
||||
SelectLast: "Rune[G]",
|
||||
},
|
||||
SelectCurrent: "Enter",
|
||||
},
|
||||
|
||||
MessagesText: MessagesTextKeys{
|
||||
NavigationKeys: NavigationKeys{
|
||||
SelectPrevious: "Rune[k]",
|
||||
SelectNext: "Rune[j]",
|
||||
SelectFirst: "Rune[g]",
|
||||
SelectLast: "Rune[G]",
|
||||
},
|
||||
SelectReply: "Rune[s]",
|
||||
SelectPin: "Rune[p]",
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue