diff options
author | Ostap Slyusar <linux.dev53@gmail.com> | 2019-05-01 11:58:12 +0300 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-05-01 11:03:13 +0200 |
commit | 82455180629f46da8cbf238be9774ac45caff8c6 (patch) | |
tree | 0d4b160dc6b18fb3429a371cb2a6ca7449de568f | |
parent | updater: don't pass full paths to msiexec (diff) | |
download | wireguard-windows-82455180629f46da8cbf238be9774ac45caff8c6.tar.xz wireguard-windows-82455180629f46da8cbf238be9774ac45caff8c6.zip |
ui: support clipboard copying for log items
Signed-off-by: Ostap Slyusar <linux.dev53@gmail.com>
-rw-r--r-- | ui/logpage.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/ui/logpage.go b/ui/logpage.go index d2eb6798..b41d56c4 100644 --- a/ui/logpage.go +++ b/ui/logpage.go @@ -47,6 +47,7 @@ func NewLogPage() (*LogPage, error) { } lp.logView.SetAlternatingRowBGColor(walk.Color(win.GetSysColor(win.COLOR_BTNFACE))) lp.logView.SetLastColumnStretched(true) + lp.logView.KeyPress().Attach(lp.onCopyLogLines) stampCol := walk.NewTableViewColumn() stampCol.SetName("Stamp") @@ -98,6 +99,20 @@ func (lp *LogPage) scrollToBottom() { lp.logView.EnsureItemVisible(len(lp.model.items) - 1) } +func (lp *LogPage) onCopyLogLines(key walk.Key) { + if key != walk.KeyC || !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)) + } + walk.Clipboard().SetText(logLines.String()) +} + func (lp *LogPage) onSaveButtonClicked() { fd := walk.FileDialog{ Filter: "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", |