aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/ui
diff options
context:
space:
mode:
authorOstap Slyusar <linux.dev53@gmail.com>2019-05-01 11:58:12 +0300
committerJason A. Donenfeld <Jason@zx2c4.com>2019-05-01 11:03:13 +0200
commit82455180629f46da8cbf238be9774ac45caff8c6 (patch)
tree0d4b160dc6b18fb3429a371cb2a6ca7449de568f /ui
parentupdater: don't pass full paths to msiexec (diff)
downloadwireguard-windows-82455180629f46da8cbf238be9774ac45caff8c6.tar.xz
wireguard-windows-82455180629f46da8cbf238be9774ac45caff8c6.zip
ui: support clipboard copying for log items
Signed-off-by: Ostap Slyusar <linux.dev53@gmail.com>
Diffstat (limited to 'ui')
-rw-r--r--ui/logpage.go15
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 (*.*)|*.*",