-
-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dependencies outdated #69
Comments
Also: And because graphx >=1.0.5 depends on http ^0.13.5, flutter_svg ^2.0.10+1 is incompatible with graphx >=1.0.5. |
I will try to update it later today, thanks for the report |
Thank you for your awesome work ❤️ |
Sorry to disappoint, but the effort is kinda big to upgrade flutter constraints to latest stable and the packages. Will keep you posted here @Ahmadre. |
I know.... I had to fix your svg_utils implementation. Here's my way to fix the breaking changes: import 'dart:ui';
import 'package:flutter_svg/flutter_svg.dart' as svg;
import '../../graphx.dart';
/// Utilities to work with `flutter_svg`.
///
class SvgUtils {
/// Factory constructor to ensure exception. Throws an exception if an attempt
/// is made to instantiate this class.
factory SvgUtils() {
throw UnsupportedError(
"Cannot instantiate SvgUtils. Use only static methods.",
);
}
// Private constructor to prevent instantiation
//SvgUtils._();
/// Parses a raw SVG string into a [SvgData] object.
///
/// The returned [SvgData] object contains information about the SVG content,
/// such as whether it contains drawable content and its size and viewBox.
/// To be used on [GSvgShape].
static Future<SvgData> svgDataFromString(String rawSvg) async {
final svgRoot = await svg.vg.loadPicture(svg.SvgStringLoader(rawSvg), null);
var obj = SvgData();
obj.hasContent = svgRoot.picture != null;
obj.picture = svgRoot.picture;
final image = await svgRoot.picture.toImage(svgRoot.size.width.toInt(), svgRoot.size.height.toInt());
obj.viewBox = GRect.fromNative(
Rect.fromCenter(center: Offset((image.width / 2).toDouble(), (image.height / 2).toDouble()), width: image.width.toDouble(), height: image.height.toDouble()),
);
obj.size = GRect(
0,
0,
image.width.toDouble(),
image.height.toDouble(),
);
return obj;
}
/// Parses a raw SVG string and draws it on a [Canvas].
///
/// The [scaleCanvas] parameter specifies whether the canvas should be scaled
/// to fit the SVG viewbox. The [clipCanvas] parameter specifies whether the
/// canvas should be clipped to the bounds of the viewBox attribute.
/// The [scaleCanvasSize] parameter is used to specify the size to which the
/// canvas should be scaled.
static void svgStringToCanvas(
String rawSvg,
Canvas canvas, {
bool scaleCanvas = true,
bool clipCanvas = true,
required Size scaleCanvasSize,
}) async {
final svgRoot = await svg.vg.loadPicture(svg.SvgStringLoader(rawSvg), null);
// if (scaleCanvas) {
// svgRoot.size = scaleCanvasSize;
// }
// if (clipCanvas) {
// svgRoot.clipCanvasToViewBox(canvas);
// }
canvas.drawPicture(svgRoot.picture);
}
/// Parses a raw SVG string into a [Picture] object.
///
/// The [size] parameter can be used to specify the size of the picture. The
/// [colorFilter] parameter can be used to apply a color filter to the picture.
/// If [clipToViewBox] is true, the picture will be clipped to the bounds of
/// the viewBox attribute.
static Future<Picture> svgStringToPicture(
String rawSvg, {
Size? size,
ColorFilter? colorFilter,
bool clipToViewBox = true,
}) async {
final svgRoot = await svg.vg.loadPicture(svg.SvgStringLoader(rawSvg), null);
return svgRoot.picture;
}
/// Parses a raw SVG string and returns the corresponding `DrawableRoot`.
static Future<svg.PictureInfo> svgStringToSvgDrawable(String rawSvg) async {
return await svg.vg.loadPicture(svg.SvgStringLoader(rawSvg), null);
}
} |
any update on this? |
Would be great if you generally check your package dependencies and update it :).
The text was updated successfully, but these errors were encountered: