Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 89eb69a

Browse files
committed
fix toString in various classes
1 parent 2cb7e5a commit 89eb69a

File tree

13 files changed

+428
-129
lines changed

13 files changed

+428
-129
lines changed

lib/web_ui/lib/src/engine/canvaskit/image_filter.dart

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -120,19 +120,6 @@ class _CkBlurImageFilter extends CkImageFilter {
120120
borrow(_ref.nativeObject);
121121
}
122122

123-
String get _modeString {
124-
switch (tileMode) {
125-
case ui.TileMode.clamp:
126-
return 'clamp';
127-
case ui.TileMode.mirror:
128-
return 'mirror';
129-
case ui.TileMode.repeated:
130-
return 'repeated';
131-
case ui.TileMode.decal:
132-
return 'decal';
133-
}
134-
}
135-
136123
@override
137124
bool operator ==(Object other) {
138125
if (runtimeType != other.runtimeType) {
@@ -149,7 +136,7 @@ class _CkBlurImageFilter extends CkImageFilter {
149136

150137
@override
151138
String toString() {
152-
return 'ImageFilter.blur($sigmaX, $sigmaY, $_modeString)';
139+
return 'ImageFilter.blur($sigmaX, $sigmaY, ${tileModeString(tileMode)})';
153140
}
154141
}
155142

lib/web_ui/lib/src/engine/canvaskit/painting.dart

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,85 @@ class CkPaint implements ui.Paint {
296296
void dispose() {
297297
_ref.dispose();
298298
}
299+
300+
// Must be kept in sync with the default in paint.cc.
301+
static const double _kStrokeMiterLimitDefault = 4.0;
302+
303+
// Must be kept in sync with the default in paint.cc.
304+
static const int _kColorDefault = 0xFF000000;
305+
306+
// Must be kept in sync with the default in paint.cc.
307+
static final int _kBlendModeDefault = ui.BlendMode.srcOver.index;
308+
309+
@override
310+
String toString() {
311+
String resultString = 'Paint()';
312+
313+
assert(() {
314+
final StringBuffer result = StringBuffer();
315+
String semicolon = '';
316+
result.write('Paint(');
317+
if (style == ui.PaintingStyle.stroke) {
318+
result.write('$style');
319+
if (strokeWidth != 0.0) {
320+
result.write(' ${strokeWidth.toStringAsFixed(1)}');
321+
} else {
322+
result.write(' hairline');
323+
}
324+
if (strokeCap != ui.StrokeCap.butt) {
325+
result.write(' $strokeCap');
326+
}
327+
if (strokeJoin == ui.StrokeJoin.miter) {
328+
if (strokeMiterLimit != _kStrokeMiterLimitDefault) {
329+
result.write(' $strokeJoin up to ${strokeMiterLimit.toStringAsFixed(1)}');
330+
}
331+
} else {
332+
result.write(' $strokeJoin');
333+
}
334+
semicolon = '; ';
335+
}
336+
if (!isAntiAlias) {
337+
result.write('${semicolon}antialias off');
338+
semicolon = '; ';
339+
}
340+
if (color != const ui.Color(_kColorDefault)) {
341+
result.write('$semicolon$color');
342+
semicolon = '; ';
343+
}
344+
if (blendMode.index != _kBlendModeDefault) {
345+
result.write('$semicolon$blendMode');
346+
semicolon = '; ';
347+
}
348+
if (colorFilter != null) {
349+
result.write('${semicolon}colorFilter: $colorFilter');
350+
semicolon = '; ';
351+
}
352+
if (maskFilter != null) {
353+
result.write('${semicolon}maskFilter: $maskFilter');
354+
semicolon = '; ';
355+
}
356+
if (filterQuality != ui.FilterQuality.none) {
357+
result.write('${semicolon}filterQuality: $filterQuality');
358+
semicolon = '; ';
359+
}
360+
if (shader != null) {
361+
result.write('${semicolon}shader: $shader');
362+
semicolon = '; ';
363+
}
364+
if (imageFilter != null) {
365+
result.write('${semicolon}imageFilter: $imageFilter');
366+
semicolon = '; ';
367+
}
368+
if (invertColors) {
369+
result.write('${semicolon}invert: $invertColors');
370+
}
371+
result.write(')');
372+
resultString = result.toString();
373+
return true;
374+
}());
375+
376+
return resultString;
377+
}
299378
}
300379

301380
final Float32List _invertColorMatrix = Float32List.fromList(const <double>[

lib/web_ui/lib/src/engine/canvaskit/shader.dart

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ abstract class SimpleCkShader implements CkShader {
5454
void dispose() {
5555
_ref.dispose();
5656
}
57+
58+
@override
59+
String toString() => 'Gradient()';
5760
}
5861

5962
class CkGradientSweep extends SimpleCkShader implements ui.Gradient {
@@ -133,6 +136,9 @@ class CkGradientLinear extends SimpleCkShader implements ui.Gradient {
133136
matrix4 != null ? toSkMatrixFromFloat32(matrix4!) : null,
134137
);
135138
}
139+
140+
@override
141+
String toString() => 'Gradient()';
136142
}
137143

138144
class CkGradientRadial extends SimpleCkShader implements ui.Gradient {
@@ -161,6 +167,9 @@ class CkGradientRadial extends SimpleCkShader implements ui.Gradient {
161167
0,
162168
);
163169
}
170+
171+
@override
172+
String toString() => 'Gradient()';
164173
}
165174

166175
class CkGradientConical extends SimpleCkShader implements ui.Gradient {

lib/web_ui/lib/src/engine/canvaskit/text.dart

Lines changed: 52 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class CkParagraphStyle implements ui.ParagraphStyle {
100100
skTextStyle.heightMultiplier = height;
101101
}
102102

103-
skTextStyle.fontFamilies = _getEffectiveFontFamilies(fontFamily);
103+
skTextStyle.fontFamilies = _computeCombinedFontFamilies(fontFamily);
104104

105105
return skTextStyle;
106106
}
@@ -110,7 +110,7 @@ class CkParagraphStyle implements ui.ParagraphStyle {
110110
final CkStrutStyle style = value as CkStrutStyle;
111111
final SkStrutStyleProperties skStrutStyle = SkStrutStyleProperties();
112112
skStrutStyle.fontFamilies =
113-
_getEffectiveFontFamilies(style._fontFamily, style._fontFamilyFallback);
113+
_computeCombinedFontFamilies(style._fontFamily, style._fontFamilyFallback);
114114

115115
if (style._fontSize != null) {
116116
skStrutStyle.fontSize = style._fontSize;
@@ -222,7 +222,8 @@ class CkParagraphStyle implements ui.ParagraphStyle {
222222
decorationStyle: null,
223223
decorationThickness: null,
224224
textBaseline: null,
225-
fontFamilyFallback: null,
225+
originalFontFamilyFallback: null,
226+
effectiveFontFamilyFallback: null,
226227
letterSpacing: null,
227228
wordSpacing: null,
228229
locale: null,
@@ -344,7 +345,8 @@ class CkTextStyle implements ui.TextStyle {
344345
textBaseline: textBaseline,
345346
originalFontFamily: fontFamily,
346347
effectiveFontFamily: _computeEffectiveFontFamily(fontFamily),
347-
fontFamilyFallback: ui_web.debugEmulateFlutterTesterEnvironment ? null : fontFamilyFallback,
348+
originalFontFamilyFallback: fontFamilyFallback,
349+
effectiveFontFamilyFallback: ui_web.debugEmulateFlutterTesterEnvironment ? null : fontFamilyFallback,
348350
fontSize: fontSize,
349351
letterSpacing: letterSpacing,
350352
wordSpacing: wordSpacing,
@@ -370,7 +372,8 @@ class CkTextStyle implements ui.TextStyle {
370372
required this.textBaseline,
371373
required this.originalFontFamily,
372374
required this.effectiveFontFamily,
373-
required this.fontFamilyFallback,
375+
required this.originalFontFamilyFallback,
376+
required this.effectiveFontFamilyFallback,
374377
required this.fontSize,
375378
required this.letterSpacing,
376379
required this.wordSpacing,
@@ -394,7 +397,8 @@ class CkTextStyle implements ui.TextStyle {
394397
final ui.TextBaseline? textBaseline;
395398
final String? originalFontFamily;
396399
final String? effectiveFontFamily;
397-
final List<String>? fontFamilyFallback;
400+
final List<String>? originalFontFamilyFallback;
401+
final List<String>? effectiveFontFamilyFallback;
398402
final double? fontSize;
399403
final double? letterSpacing;
400404
final double? wordSpacing;
@@ -423,7 +427,8 @@ class CkTextStyle implements ui.TextStyle {
423427
textBaseline: other.textBaseline ?? textBaseline,
424428
originalFontFamily: other.originalFontFamily ?? originalFontFamily,
425429
effectiveFontFamily: other.effectiveFontFamily ?? effectiveFontFamily,
426-
fontFamilyFallback: other.fontFamilyFallback ?? fontFamilyFallback,
430+
originalFontFamilyFallback: other.originalFontFamilyFallback ?? originalFontFamilyFallback,
431+
effectiveFontFamilyFallback: other.effectiveFontFamilyFallback ?? effectiveFontFamilyFallback,
427432
fontSize: other.fontSize ?? fontSize,
428433
letterSpacing: other.letterSpacing ?? letterSpacing,
429434
wordSpacing: other.wordSpacing ?? wordSpacing,
@@ -438,9 +443,9 @@ class CkTextStyle implements ui.TextStyle {
438443
);
439444
}
440445

441-
/// Lazy-initialized list of font families sent to Skia.
442-
late final List<String> effectiveFontFamilies =
443-
_getEffectiveFontFamilies(effectiveFontFamily, fontFamilyFallback);
446+
/// Lazy-initialized combination of font family and font family fallback sent to Skia.
447+
late final List<String> combinedFontFamilies =
448+
_computeCombinedFontFamilies(effectiveFontFamily, effectiveFontFamilyFallback);
444449

445450
/// Lazy-initialized Skia style used to pass the style to Skia.
446451
///
@@ -536,7 +541,7 @@ class CkTextStyle implements ui.TextStyle {
536541
properties.locale = locale.toLanguageTag();
537542
}
538543

539-
properties.fontFamilies = effectiveFontFamilies;
544+
properties.fontFamilies = combinedFontFamilies;
540545

541546
if (fontWeight != null || fontStyle != null) {
542547
properties.fontStyle = toSkFontStyle(fontWeight, fontStyle);
@@ -607,7 +612,7 @@ class CkTextStyle implements ui.TextStyle {
607612
&& other.background == background
608613
&& other.foreground == foreground
609614
&& listEquals<ui.Shadow>(other.shadows, shadows)
610-
&& listEquals<String>(other.fontFamilyFallback, fontFamilyFallback)
615+
&& listEquals<String>(other.originalFontFamilyFallback, originalFontFamilyFallback)
611616
&& listEquals<ui.FontFeature>(other.fontFeatures, fontFeatures)
612617
&& listEquals<ui.FontVariation>(other.fontVariations, fontVariations);
613618
}
@@ -617,7 +622,7 @@ class CkTextStyle implements ui.TextStyle {
617622
final List<ui.Shadow>? shadows = this.shadows;
618623
final List<ui.FontFeature>? fontFeatures = this.fontFeatures;
619624
final List<ui.FontVariation>? fontVariations = this.fontVariations;
620-
final List<String>? fontFamilyFallback = this.fontFamilyFallback;
625+
final List<String>? fontFamilyFallback = originalFontFamilyFallback;
621626
return Object.hash(
622627
color,
623628
decoration,
@@ -648,31 +653,37 @@ class CkTextStyle implements ui.TextStyle {
648653

649654
@override
650655
String toString() {
651-
final List<String>? fontFamilyFallback = this.fontFamilyFallback;
652-
final String? originalFontFamily = this.originalFontFamily;
653-
return 'TextStyle('
654-
'color: ${color ?? "unspecified"}, '
655-
'decoration: ${decoration ?? "unspecified"}, '
656-
'decorationColor: ${decorationColor ?? "unspecified"}, '
657-
'decorationStyle: ${decorationStyle ?? "unspecified"}, '
658-
'decorationThickness: ${decorationThickness ?? "unspecified"}, '
659-
'fontWeight: ${fontWeight ?? "unspecified"}, '
660-
'fontStyle: ${fontStyle ?? "unspecified"}, '
661-
'textBaseline: ${textBaseline ?? "unspecified"}, '
662-
'fontFamily: ${originalFontFamily != null && originalFontFamily.isNotEmpty ? originalFontFamily : "unspecified"}, '
663-
'fontFamilyFallback: ${fontFamilyFallback != null && fontFamilyFallback.isNotEmpty ? fontFamilyFallback : "unspecified"}, '
664-
'fontSize: ${fontSize ?? "unspecified"}, '
665-
'letterSpacing: ${letterSpacing != null ? "${letterSpacing}x" : "unspecified"}, '
666-
'wordSpacing: ${wordSpacing != null ? "${wordSpacing}x" : "unspecified"}, '
667-
'height: ${height != null ? "${height}x" : "unspecified"}, '
668-
'leadingDistribution: ${leadingDistribution ?? "unspecified"}, '
669-
'locale: ${locale ?? "unspecified"}, '
670-
'background: ${background ?? "unspecified"}, '
671-
'foreground: ${foreground ?? "unspecified"}, '
672-
'shadows: ${shadows ?? "unspecified"}, '
673-
'fontFeatures: ${fontFeatures ?? "unspecified"}, '
674-
'fontVariations: ${fontVariations ?? "unspecified"}'
675-
')';
656+
String result = super.toString();
657+
assert(() {
658+
final List<String>? fontFamilyFallback = originalFontFamilyFallback;
659+
final double? fontSize = this.fontSize;
660+
final double? height = this.height;
661+
result = 'TextStyle('
662+
'color: ${color ?? "unspecified"}, '
663+
'decoration: ${decoration ?? "unspecified"}, '
664+
'decorationColor: ${decorationColor ?? "unspecified"}, '
665+
'decorationStyle: ${decorationStyle ?? "unspecified"}, '
666+
'decorationThickness: ${decorationThickness ?? "unspecified"}, '
667+
'fontWeight: ${fontWeight ?? "unspecified"}, '
668+
'fontStyle: ${fontStyle ?? "unspecified"}, '
669+
'textBaseline: ${textBaseline ?? "unspecified"}, '
670+
'fontFamily: ${originalFontFamily ?? "unspecified"}, '
671+
'fontFamilyFallback: ${fontFamilyFallback != null && fontFamilyFallback.isNotEmpty ? fontFamilyFallback : "unspecified"}, '
672+
'fontSize: ${fontSize != null ? fontSize.toStringAsFixed(1) : "unspecified"}, '
673+
'letterSpacing: ${letterSpacing != null ? "${letterSpacing}x" : "unspecified"}, '
674+
'wordSpacing: ${wordSpacing != null ? "${wordSpacing}x" : "unspecified"}, '
675+
'height: ${height != null ? "${height.toStringAsFixed(1)}x" : "unspecified"}, '
676+
'leadingDistribution: ${leadingDistribution ?? "unspecified"}, '
677+
'locale: ${locale ?? "unspecified"}, '
678+
'background: ${background ?? "unspecified"}, '
679+
'foreground: ${foreground ?? "unspecified"}, '
680+
'shadows: ${shadows ?? "unspecified"}, '
681+
'fontFeatures: ${fontFeatures ?? "unspecified"}, '
682+
'fontVariations: ${fontVariations ?? "unspecified"}'
683+
')';
684+
return true;
685+
}());
686+
return result;
676687
}
677688
}
678689

@@ -1107,8 +1118,8 @@ class CkParagraphBuilder implements ui.ParagraphBuilder {
11071118
if (style.effectiveFontFamily != null) {
11081119
fontFamilies.add(style.effectiveFontFamily!);
11091120
}
1110-
if (style.fontFamilyFallback != null) {
1111-
fontFamilies.addAll(style.fontFamilyFallback!);
1121+
if (style.effectiveFontFamilyFallback != null) {
1122+
fontFamilies.addAll(style.effectiveFontFamilyFallback!);
11121123
}
11131124
renderer.fontCollection.fontFallbackManager!.ensureFontsSupportText(text, fontFamilies);
11141125
_paragraphBuilder.addText(text);
@@ -1210,7 +1221,7 @@ class _CkParagraphPlaceholder {
12101221
final double offset;
12111222
}
12121223

1213-
List<String> _getEffectiveFontFamilies(String? fontFamily,
1224+
List<String> _computeCombinedFontFamilies(String? fontFamily,
12141225
[List<String>? fontFamilyFallback]) {
12151226
final List<String> fontFamilies = <String>[];
12161227
if (fontFamily != null) {

0 commit comments

Comments
 (0)