From 22c6e5641ce0db49a71d4fc39c4302a06e0578b5 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Sun, 10 Oct 2021 11:50:05 +0900 Subject: [PATCH] info: improved some xmp display --- .../info/metadata/xmp_ns/photoshop.dart | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/lib/widgets/viewer/info/metadata/xmp_ns/photoshop.dart b/lib/widgets/viewer/info/metadata/xmp_ns/photoshop.dart index a0665146d..bb0d56cdd 100644 --- a/lib/widgets/viewer/info/metadata/xmp_ns/photoshop.dart +++ b/lib/widgets/viewer/info/metadata/xmp_ns/photoshop.dart @@ -1,11 +1,31 @@ // cf photoshop:ColorMode // cf https://github.com/adobe/xmp-docs/blob/master/XMPNamespaces/photoshop.md import 'package:aves/widgets/viewer/info/metadata/xmp_namespaces.dart'; +import 'package:aves/widgets/viewer/info/metadata/xmp_structs.dart'; +import 'package:flutter/widgets.dart'; class XmpPhotoshopNamespace extends XmpNamespace { static const ns = 'photoshop'; - const XmpPhotoshopNamespace(Map rawProps) : super(ns, rawProps); + static final textLayersPattern = RegExp(ns + r':TextLayers\[(\d+)\]/(.*)'); + + final textLayers = >{}; + + XmpPhotoshopNamespace(Map rawProps) : super(ns, rawProps); + + @override + bool extractData(XmpProp prop) { + return extractIndexedStruct(prop, textLayersPattern, textLayers); + } + + @override + List buildFromExtractedData() => [ + if (textLayers.isNotEmpty) + XmpStructArrayCard( + title: 'Text Layers', + structByIndex: textLayers, + ), + ]; @override String formatValue(XmpProp prop) {