added history limit and fixed formatting

pull/10/head
Indra 2018-10-04 23:09:01 +02:00
parent d11db9738f
commit cb9facd9cc
1 changed files with 22 additions and 13 deletions

View File

@ -27,8 +27,8 @@ var (
dlg *mainDialog dlg *mainDialog
dlgOriginalTitle string dlgOriginalTitle string
history []string history []string
historyIndex = 0 historyIndex = 0
) )
@ -74,6 +74,16 @@ func uiUpdateAddress() {
} }
} }
func addToHistory(command string) {
// limit history to 20 items
if len(history) > 20 {
history = append(history[:0], history[0+1:]...)
}
history = append(history, command)
historyIndex = len(history)
}
func runGraphicalUi() (err error) { func runGraphicalUi() (err error) {
dlg = new(mainDialog) dlg = new(mainDialog)
if err := dlg.init(); err != nil { if err := dlg.init(); err != nil {
@ -132,30 +142,30 @@ func runGraphicalUi() (err error) {
if len(history) == 0 { if len(history) == 0 {
return return
} }
if key == walk.KeyUp { if key == walk.KeyUp {
if historyIndex == 0 { if historyIndex == 0 {
return return
} }
historyIndex -= 1 historyIndex -= 1
dlg.ui.rconInput.SetText(history[historyIndex]) dlg.ui.rconInput.SetText(history[historyIndex])
}else{ } else {
if (historyIndex + 1) >= len(history) { if (historyIndex + 1) >= len(history) {
return return
} }
historyIndex += 1 historyIndex += 1
dlg.ui.rconInput.SetText(history[historyIndex]) dlg.ui.rconInput.SetText(history[historyIndex])
} }
return return
} }
if key != walk.KeyReturn { if key != walk.KeyReturn {
return return
} }
if address == nil { if address == nil {
uiLogError("No server configured.") uiLogError("No server configured.")
return return
@ -166,10 +176,9 @@ func runGraphicalUi() (err error) {
uiLog(address.String() + "> " + cmd) uiLog(address.String() + "> " + cmd)
sendRcon(cmd) sendRcon(cmd)
// add to history // add to history
history = append(history, cmd) addToHistory(cmd)
historyIndex = len(history)
}) })
// When window is initialized we can let a secondary routine print all // When window is initialized we can let a secondary routine print all