Bug fixing

This commit is contained in:
Alexei Anoshenko 2025-07-06 19:11:34 +03:00
parent 55a86011cd
commit 7cc553176f
12 changed files with 21 additions and 45 deletions

View File

@ -161,7 +161,7 @@ func backgroundConicGradientSet(properties Properties, tag PropertyName, value a
return propertiesRemove(properties, tag) return propertiesRemove(properties, tag)
} }
if strings.Contains(value, ",") || strings.Contains(value, " ") { if strings.ContainsAny(value, ", ") {
if vector := parseGradientText(value); vector != nil { if vector := parseGradientText(value); vector != nil {
properties.setRaw(Gradient, vector) properties.setRaw(Gradient, vector)
return []PropertyName{tag} return []PropertyName{tag}

View File

@ -182,7 +182,7 @@ func setBoundsProperty(properties Properties, tag PropertyName, value any) []Pro
if !setSimpleProperty(properties, tag, value) { if !setSimpleProperty(properties, tag, value) {
switch value := value.(type) { switch value := value.(type) {
case string: case string:
if strings.Contains(value, ",") { if strings.ContainsRune(value, ',') {
values := split4Values(value) values := split4Values(value)
count := len(values) count := len(values)
switch count { switch count {

View File

@ -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 { func (canvas *canvasData) fontWithParams(name string, size SizeUnit, params FontParams) string {
buffer := allocStringBuilder() buffer := allocStringBuilder()
defer freeStringBuilder(buffer) defer freeStringBuilder(buffer)
@ -658,7 +636,7 @@ func (canvas *canvasData) fontWithParams(name string, size SizeUnit, params Font
font = strings.Trim(font, " \n\"'") font = strings.Trim(font, " \n\"'")
buffer.WriteString(lead) buffer.WriteString(lead)
lead = "," lead = ","
if strings.Contains(font, " ") { if strings.ContainsRune(font, ' ') {
buffer.WriteRune('"') buffer.WriteRune('"')
buffer.WriteString(font) buffer.WriteString(font)
buffer.WriteRune('"') buffer.WriteRune('"')

View File

@ -325,7 +325,7 @@ func (view *viewData) setDropEffect(value any) []PropertyName {
} }
func stringToDropEffectAllowed(text string) (int, bool) { func stringToDropEffectAllowed(text string) (int, bool) {
if strings.Contains(text, "|") { if strings.ContainsRune(text, '|') {
elements := strings.Split(text, "|") elements := strings.Split(text, "|")
result := 0 result := 0
for _, element := range elements { for _, element := range elements {

View File

@ -232,7 +232,7 @@ func acceptPropertyCSS(view View) string {
if buffer.Len() > 0 { if buffer.Len() > 0 {
buffer.WriteString(", ") buffer.WriteString(", ")
} }
if value[0] != '.' && !strings.Contains(value, "/") { if value[0] != '.' && !strings.ContainsRune(value, '/') {
buffer.WriteRune('.') buffer.WriteRune('.')
} }
buffer.WriteString(value) buffer.WriteString(value)

View File

@ -945,13 +945,11 @@ func (player *mediaPlayerData) htmlProperties(self View, buffer *strings.Builder
for tag, cssTag := range mediaPlayerEvents() { for tag, cssTag := range mediaPlayerEvents() {
if value := player.getRaw(tag); value != nil { if value := player.getRaw(tag); value != nil {
if listeners, ok := value.([]func(MediaPlayer)); ok && len(listeners) > 0 { buffer.WriteString(` `)
buffer.WriteString(` `) buffer.WriteString(cssTag)
buffer.WriteString(cssTag) buffer.WriteString(`="playerEvent(this, '`)
buffer.WriteString(`="playerEvent(this, '`) buffer.WriteString(string(tag))
buffer.WriteString(string(tag)) buffer.WriteString(`')"`)
buffer.WriteString(`')"`)
}
} }
} }

View File

@ -106,6 +106,7 @@ func (properties *propertyList) AllTags() []PropertyName {
return tags return tags
} }
/*
func (properties *propertyList) writeToBuffer(buffer *strings.Builder, func (properties *propertyList) writeToBuffer(buffer *strings.Builder,
indent string, objectTag string, tags []PropertyName) { indent string, objectTag string, tags []PropertyName) {
@ -130,6 +131,7 @@ func (properties *propertyList) writeToBuffer(buffer *strings.Builder,
buffer.WriteString(indent) buffer.WriteString(indent)
buffer.WriteString("}") buffer.WriteString("}")
} }
*/
func parseProperties(properties Properties, object DataObject) { func parseProperties(properties Properties, object DataObject) {
for node := range object.Properties() { for node := range object.Properties() {

View File

@ -649,7 +649,7 @@ func radiusPropertySet(radius Properties, tag PropertyName, value any) []Propert
deleteRadiusUnusedTags(radius, result) deleteRadiusUnusedTags(radius, result)
case string: case string:
if strings.Contains(value, "/") { if strings.ContainsRune(value, '/') {
if values := strings.Split(value, "/"); len(values) == 2 { if values := strings.Split(value, "/"); len(values) == 2 {
if result = radiusPropertySet(radius, tag+"-x", values[0]); result != nil { if result = radiusPropertySet(radius, tag+"-x", values[0]); result != nil {
if resultY := radiusPropertySet(radius, tag+"-y", values[1]); resultY != 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) properties.setRaw(Radius, radius)
case string: case string:
if strings.Contains(value, "/") { if strings.ContainsRune(value, '/') {
values := strings.Split(value, "/") values := strings.Split(value, "/")
if len(values) == 2 { if len(values) == 2 {
if setRadiusPropertyElement(properties, RadiusX, values[0]) { if setRadiusPropertyElement(properties, RadiusX, values[0]) {

View File

@ -21,7 +21,7 @@ func (r Range) String() string {
func (r *Range) setValue(value string) bool { func (r *Range) setValue(value string) bool {
var err error var err error
if strings.Contains(value, ":") { if strings.ContainsRune(value, ':') {
values := strings.Split(value, ":") values := strings.Split(value, ":")
if len(values) != 2 { if len(values) != 2 {
ErrorLog("Invalid range value: " + value) ErrorLog("Invalid range value: " + value)

View File

@ -174,7 +174,7 @@ func resizableSide(view View) int {
"all": AllSides, "all": AllSides,
} }
if strings.Contains(value, "|") { if strings.ContainsRune(value, '|') {
values := strings.Split(value, "|") values := strings.Split(value, "|")
sides := 0 sides := 0
for _, val := range values { for _, val := range values {
@ -226,7 +226,7 @@ func resizableSetSide(properties Properties, value any) []PropertyName {
"left": LeftSide, "left": LeftSide,
"all": AllSides, "all": AllSides,
} }
if strings.Contains(value, "|") { if strings.ContainsRune(value, '|') {
values := strings.Split(value, "|") values := strings.Split(value, "|")
sides := 0 sides := 0
hasConst := false hasConst := false

View File

@ -35,10 +35,8 @@ func (session *sessionData) constant(tag string, prevTags []string) (string, boo
return result, true return result, true
} }
for _, separator := range []string{",", " ", ":", ";", "|", "/"} { if strings.ContainsAny(result, ", :;|/") {
if strings.Contains(result, separator) { return session.resolveConstantsNext(result, tags)
return session.resolveConstantsNext(result, tags)
}
} }
if result[0] != '@' { if result[0] != '@' {

View File

@ -786,7 +786,7 @@ func (table *tableViewData) setFunc(tag PropertyName, value any) []PropertyName
} }
case string: case string:
if strings.Contains(value, ",") { if strings.ContainsRune(value, ',') {
if values := strings.Split(value, ","); len(values) == 2 { if values := strings.Split(value, ","); len(values) == 2 {
var n = []int{0, 0} var n = []int{0, 0}
for i := range 2 { for i := range 2 {
@ -1465,7 +1465,7 @@ func (table *tableViewData) cellPaddingFromStyle(style string) BoundsProperty {
case string: case string:
if value, ok := table.Session().resolveConstants(value); ok { if value, ok := table.Session().resolveConstants(value); ok {
if strings.Contains(value, ",") { if strings.ContainsRune(value, ',') {
values := split4Values(value) values := split4Values(value)
switch len(values) { switch len(values) {
case 1: case 1: