From bf4dce6df44a461de9bb73f5d34604ff222afa8c Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Thu, 18 May 2023 08:56:55 -0700 Subject: [PATCH] add more restrictions to year entry field in album filters --- ui/widgets/albumfilterbutton.go | 3 ++- ui/widgets/textrestrictedentry.go | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ui/widgets/albumfilterbutton.go b/ui/widgets/albumfilterbutton.go index e1cb468..c2fd783 100644 --- a/ui/widgets/albumfilterbutton.go +++ b/ui/widgets/albumfilterbutton.go @@ -88,7 +88,8 @@ func NewAlbumFilterPopup(filter *AlbumFilterButton) *AlbumFilterPopup { // setup min and max year filters yearValidator := func(curText, selText string, r rune) bool { - return unicode.IsDigit(r) && (len(selText) > 0 || len(curText) <= 3) + l := len(curText) - len(selText) + return unicode.IsDigit(r) && l <= 3 && (l > 0 || r != '0') } minYear := NewTextRestrictedEntry(yearValidator) minYear.SetMinCharWidth(4) diff --git a/ui/widgets/textrestrictedentry.go b/ui/widgets/textrestrictedentry.go index 3df4a6d..fc6aa2b 100644 --- a/ui/widgets/textrestrictedentry.go +++ b/ui/widgets/textrestrictedentry.go @@ -32,6 +32,13 @@ func (e *TextRestrictedEntry) TypedRune(r rune) { } } +func (e *TextRestrictedEntry) TypedShortcut(s fyne.Shortcut) { + if s.ShortcutName() == (&fyne.ShortcutPaste{}).ShortcutName() { + return + } + e.TypedShortcut(s) +} + func (e *TextRestrictedEntry) SetMinCharWidth(numChars int) { e.minWidth = theme.Padding()*2 + fyne.MeasureText(strings.Repeat("W", numChars), fyne.CurrentApp().Settings().Theme().Size(theme.SizeNameText), e.TextStyle).Width