From 7cc553176f193b8c86324c146c5a5beea5455fc8 Mon Sep 17 00:00:00 2001 From: Alexei Anoshenko <2277098+anoshenko@users.noreply.github.com> Date: Sun, 6 Jul 2025 19:11:34 +0300 Subject: [PATCH] Bug fixing --- backgroundConicGradient.go | 2 +- bounds.go | 2 +- canvas.go | 24 +----------------------- dragAndDrop.go | 2 +- filePicker.go | 2 +- mediaPlayer.go | 12 +++++------- properties.go | 2 ++ radius.go | 4 ++-- range.go | 2 +- resizable.go | 4 ++-- sessionTheme.go | 6 ++---- tableView.go | 4 ++-- 12 files changed, 21 insertions(+), 45 deletions(-) diff --git a/backgroundConicGradient.go b/backgroundConicGradient.go index 48e56e4..fdca691 100644 --- a/backgroundConicGradient.go +++ b/backgroundConicGradient.go @@ -161,7 +161,7 @@ func backgroundConicGradientSet(properties Properties, tag PropertyName, value a return propertiesRemove(properties, tag) } - if strings.Contains(value, ",") || strings.Contains(value, " ") { + if strings.ContainsAny(value, ", ") { if vector := parseGradientText(value); vector != nil { properties.setRaw(Gradient, vector) return []PropertyName{tag} diff --git a/bounds.go b/bounds.go index 379497d..d7a288b 100644 --- a/bounds.go +++ b/bounds.go @@ -182,7 +182,7 @@ func setBoundsProperty(properties Properties, tag PropertyName, value any) []Pro if !setSimpleProperty(properties, tag, value) { switch value := value.(type) { case string: - if strings.Contains(value, ",") { + if strings.ContainsRune(value, ',') { values := split4Values(value) count := len(values) switch count { diff --git a/canvas.go b/canvas.go index 2b3af5a..a97bdb9 100644 --- a/canvas.go +++ b/canvas.go @@ -587,28 +587,6 @@ func (canvas *canvasData) SetLineDash(dash []float64, offset float64) { } } -/* - func (canvas *canvasData) convertFont(name string) string { - buffer := allocStringBuilder() - defer freeStringBuilder(buffer) - - for i, font := range strings.Split(name, ",") { - font = strings.Trim(font, " \n\"'") - if i > 0 { - buffer.WriteRune(',') - } - if strings.Contains(font, " ") { - buffer.WriteRune('"') - buffer.WriteString(font) - buffer.WriteRune('"') - } else { - buffer.WriteString(font) - } - } - - return buffer.String() - } -*/ func (canvas *canvasData) fontWithParams(name string, size SizeUnit, params FontParams) string { buffer := allocStringBuilder() defer freeStringBuilder(buffer) @@ -658,7 +636,7 @@ func (canvas *canvasData) fontWithParams(name string, size SizeUnit, params Font font = strings.Trim(font, " \n\"'") buffer.WriteString(lead) lead = "," - if strings.Contains(font, " ") { + if strings.ContainsRune(font, ' ') { buffer.WriteRune('"') buffer.WriteString(font) buffer.WriteRune('"') diff --git a/dragAndDrop.go b/dragAndDrop.go index 6e9d751..f0a0c2e 100644 --- a/dragAndDrop.go +++ b/dragAndDrop.go @@ -325,7 +325,7 @@ func (view *viewData) setDropEffect(value any) []PropertyName { } func stringToDropEffectAllowed(text string) (int, bool) { - if strings.Contains(text, "|") { + if strings.ContainsRune(text, '|') { elements := strings.Split(text, "|") result := 0 for _, element := range elements { diff --git a/filePicker.go b/filePicker.go index 85327cc..2853a06 100644 --- a/filePicker.go +++ b/filePicker.go @@ -232,7 +232,7 @@ func acceptPropertyCSS(view View) string { if buffer.Len() > 0 { buffer.WriteString(", ") } - if value[0] != '.' && !strings.Contains(value, "/") { + if value[0] != '.' && !strings.ContainsRune(value, '/') { buffer.WriteRune('.') } buffer.WriteString(value) diff --git a/mediaPlayer.go b/mediaPlayer.go index a6f1976..b0271db 100644 --- a/mediaPlayer.go +++ b/mediaPlayer.go @@ -945,13 +945,11 @@ func (player *mediaPlayerData) htmlProperties(self View, buffer *strings.Builder for tag, cssTag := range mediaPlayerEvents() { if value := player.getRaw(tag); value != nil { - if listeners, ok := value.([]func(MediaPlayer)); ok && len(listeners) > 0 { - buffer.WriteString(` `) - buffer.WriteString(cssTag) - buffer.WriteString(`="playerEvent(this, '`) - buffer.WriteString(string(tag)) - buffer.WriteString(`')"`) - } + buffer.WriteString(` `) + buffer.WriteString(cssTag) + buffer.WriteString(`="playerEvent(this, '`) + buffer.WriteString(string(tag)) + buffer.WriteString(`')"`) } } diff --git a/properties.go b/properties.go index 79e685e..2595a44 100644 --- a/properties.go +++ b/properties.go @@ -106,6 +106,7 @@ func (properties *propertyList) AllTags() []PropertyName { return tags } +/* func (properties *propertyList) writeToBuffer(buffer *strings.Builder, indent string, objectTag string, tags []PropertyName) { @@ -130,6 +131,7 @@ func (properties *propertyList) writeToBuffer(buffer *strings.Builder, buffer.WriteString(indent) buffer.WriteString("}") } +*/ func parseProperties(properties Properties, object DataObject) { for node := range object.Properties() { diff --git a/radius.go b/radius.go index fe26f14..6e148e1 100644 --- a/radius.go +++ b/radius.go @@ -649,7 +649,7 @@ func radiusPropertySet(radius Properties, tag PropertyName, value any) []Propert deleteRadiusUnusedTags(radius, result) case string: - if strings.Contains(value, "/") { + if strings.ContainsRune(value, '/') { if values := strings.Split(value, "/"); len(values) == 2 { if result = radiusPropertySet(radius, tag+"-x", values[0]); result != nil { if resultY := radiusPropertySet(radius, tag+"-y", values[1]); resultY != nil { @@ -973,7 +973,7 @@ func setRadiusProperty(properties Properties, value any) []PropertyName { properties.setRaw(Radius, radius) case string: - if strings.Contains(value, "/") { + if strings.ContainsRune(value, '/') { values := strings.Split(value, "/") if len(values) == 2 { if setRadiusPropertyElement(properties, RadiusX, values[0]) { diff --git a/range.go b/range.go index 913c518..68b90d0 100644 --- a/range.go +++ b/range.go @@ -21,7 +21,7 @@ func (r Range) String() string { func (r *Range) setValue(value string) bool { var err error - if strings.Contains(value, ":") { + if strings.ContainsRune(value, ':') { values := strings.Split(value, ":") if len(values) != 2 { ErrorLog("Invalid range value: " + value) diff --git a/resizable.go b/resizable.go index 69d9497..6bd1dd1 100644 --- a/resizable.go +++ b/resizable.go @@ -174,7 +174,7 @@ func resizableSide(view View) int { "all": AllSides, } - if strings.Contains(value, "|") { + if strings.ContainsRune(value, '|') { values := strings.Split(value, "|") sides := 0 for _, val := range values { @@ -226,7 +226,7 @@ func resizableSetSide(properties Properties, value any) []PropertyName { "left": LeftSide, "all": AllSides, } - if strings.Contains(value, "|") { + if strings.ContainsRune(value, '|') { values := strings.Split(value, "|") sides := 0 hasConst := false diff --git a/sessionTheme.go b/sessionTheme.go index c0590bf..9f66113 100644 --- a/sessionTheme.go +++ b/sessionTheme.go @@ -35,10 +35,8 @@ func (session *sessionData) constant(tag string, prevTags []string) (string, boo return result, true } - for _, separator := range []string{",", " ", ":", ";", "|", "/"} { - if strings.Contains(result, separator) { - return session.resolveConstantsNext(result, tags) - } + if strings.ContainsAny(result, ", :;|/") { + return session.resolveConstantsNext(result, tags) } if result[0] != '@' { diff --git a/tableView.go b/tableView.go index b67a7c4..a88955d 100644 --- a/tableView.go +++ b/tableView.go @@ -786,7 +786,7 @@ func (table *tableViewData) setFunc(tag PropertyName, value any) []PropertyName } case string: - if strings.Contains(value, ",") { + if strings.ContainsRune(value, ',') { if values := strings.Split(value, ","); len(values) == 2 { var n = []int{0, 0} for i := range 2 { @@ -1465,7 +1465,7 @@ func (table *tableViewData) cellPaddingFromStyle(style string) BoundsProperty { case string: if value, ok := table.Session().resolveConstants(value); ok { - if strings.Contains(value, ",") { + if strings.ContainsRune(value, ',') { values := split4Values(value) switch len(values) { case 1: