From 68b8233d2d1858c5e723ebf31e09813d9d62d65f Mon Sep 17 00:00:00 2001 From: Lukas Batelka Date: Thu, 25 Sep 2025 21:26:03 +0200 Subject: [PATCH] feature/ui bugfix - oprava premazani schranky --- ui.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/ui.go b/ui.go index 5e073b8..a3dfae2 100644 --- a/ui.go +++ b/ui.go @@ -692,11 +692,18 @@ func buildContactsTab(parts *uiParts, svc ServiceFacade) fyne.CanvasObject { certEntry.SetMinRowsVisible(8) certEntry.Wrapping = fyne.TextWrapWord // Detail toolbar + pasteAction := widget.NewToolbarAction(theme.ContentPasteIcon(), func() { + clip := fyne.CurrentApp().Clipboard().Content() + if strings.TrimSpace(clip) == "" { + parts.showToast("Schránka prázdná") + return + } + certEntry.SetText(clip) + parts.showToast("Vloženo ze schránky") + }) certToolbar := widget.NewToolbar( widget.NewToolbarAction(theme.ContentCopyIcon(), func() { copyClip(certEntry.Text, parts) }), - widget.NewToolbarAction(theme.ContentPasteIcon(), func() { - certEntry.SetText(fyne.CurrentApp().Clipboard().Content()) - }), + pasteAction, widget.NewToolbarAction(theme.ContentClearIcon(), func() { certEntry.SetText("") }), ) // helper pro generování default názvu @@ -831,6 +838,10 @@ func buildContactsTab(parts *uiParts, svc ServiceFacade) fyne.CanvasObject { draft = &Contact{ID: "__draft__", Name: makeDefaultName(), Cert: ""} nameEntry.SetText(draft.Name) certEntry.SetText("") + // Pokud je ve schránce PEM / CERT, automaticky ho vlož + if clip := fyne.CurrentApp().Clipboard().Content(); strings.Contains(clip, "BEGIN ") && strings.Contains(clip, "PUBLIC") || strings.Contains(clip, "CERTIFICATE") { + certEntry.SetText(clip) + } // auto select all text in name so user can immediately přepsat fyne.CurrentApp().Driver().CanvasForObject(nameEntry).Focus(nameEntry) nameEntry.TypedShortcut(&fyne.ShortcutSelectAll{})