From 7acb0b3b859e3d17469d1fe377d6409e54f3b077 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Wed, 1 May 2019 12:23:24 +0200 Subject: ui: allow selecting all on log page --- ui/logpage.go | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'ui') diff --git a/ui/logpage.go b/ui/logpage.go index b41d56c4..d99ce5ff 100644 --- a/ui/logpage.go +++ b/ui/logpage.go @@ -100,17 +100,25 @@ func (lp *LogPage) scrollToBottom() { } func (lp *LogPage) onCopyLogLines(key walk.Key) { - if key != walk.KeyC || !walk.ControlDown() { + if !walk.ControlDown() { return } - var logLines strings.Builder - selectedItemIndexes := lp.logView.SelectedIndexes() - for i := 0; i < len(selectedItemIndexes); i++ { - logItem := lp.model.items[selectedItemIndexes[i]] - logLines.WriteString(fmt.Sprintf("%s: %s\r\n", logItem.Stamp.Format("2006-01-02 15:04:05.000"), logItem.Line)) + switch key { + case walk.KeyC: + var logLines strings.Builder + selectedItemIndexes := lp.logView.SelectedIndexes() + if len(selectedItemIndexes) == 0 { + return + } + for i := 0; i < len(selectedItemIndexes); i++ { + logItem := lp.model.items[selectedItemIndexes[i]] + logLines.WriteString(fmt.Sprintf("%s: %s\r\n", logItem.Stamp.Format("2006-01-02 15:04:05.000"), logItem.Line)) + } + walk.Clipboard().SetText(logLines.String()) + case walk.KeyA: + lp.logView.SetSelectedIndexes([]int{-1}) } - walk.Clipboard().SetText(logLines.String()) } func (lp *LogPage) onSaveButtonClicked() { @@ -161,7 +169,7 @@ func newLogModel(lp *LogPage) *logModel { continue } mdl.lp.Synchronize(func() { - isAtBottom := mdl.lp.isAtBottom() + isAtBottom := mdl.lp.isAtBottom() && len(lp.logView.SelectedIndexes()) <= 1 mdl.items = append(mdl.items, items...) if len(mdl.items) > maxLogLinesDisplayed { -- cgit v1.2.3-59-g8ed1b