diff --git a/main_windows.go b/main_windows.go index 72c8276..30bab8c 100644 --- a/main_windows.go +++ b/main_windows.go @@ -27,8 +27,8 @@ var ( dlg *mainDialog dlgOriginalTitle string - - history []string + + history []string 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) { dlg = new(mainDialog) if err := dlg.init(); err != nil { @@ -132,30 +142,30 @@ func runGraphicalUi() (err error) { if len(history) == 0 { return } - + if key == walk.KeyUp { - if historyIndex == 0 { + if historyIndex == 0 { return } - + historyIndex -= 1 dlg.ui.rconInput.SetText(history[historyIndex]) - }else{ + } else { if (historyIndex + 1) >= len(history) { return } - + historyIndex += 1 dlg.ui.rconInput.SetText(history[historyIndex]) } - + return } - + if key != walk.KeyReturn { return } - + if address == nil { uiLogError("No server configured.") return @@ -166,10 +176,9 @@ func runGraphicalUi() (err error) { uiLog(address.String() + "> " + cmd) sendRcon(cmd) - + // add to history - history = append(history, cmd) - historyIndex = len(history) + addToHistory(cmd) }) // When window is initialized we can let a secondary routine print all