info: improved xmp display

This commit is contained in:
Thibault Deckers 2022-03-07 11:46:07 +09:00
parent f6a04371f1
commit b80290528e
2 changed files with 29 additions and 0 deletions

View file

@ -10,6 +10,7 @@ import 'package:aves/widgets/viewer/info/metadata/xmp_ns/dwc.dart';
import 'package:aves/widgets/viewer/info/metadata/xmp_ns/exif.dart'; import 'package:aves/widgets/viewer/info/metadata/xmp_ns/exif.dart';
import 'package:aves/widgets/viewer/info/metadata/xmp_ns/google.dart'; import 'package:aves/widgets/viewer/info/metadata/xmp_ns/google.dart';
import 'package:aves/widgets/viewer/info/metadata/xmp_ns/iptc.dart'; import 'package:aves/widgets/viewer/info/metadata/xmp_ns/iptc.dart';
import 'package:aves/widgets/viewer/info/metadata/xmp_ns/iptc4xmpExt.dart';
import 'package:aves/widgets/viewer/info/metadata/xmp_ns/mwg.dart'; import 'package:aves/widgets/viewer/info/metadata/xmp_ns/mwg.dart';
import 'package:aves/widgets/viewer/info/metadata/xmp_ns/photoshop.dart'; import 'package:aves/widgets/viewer/info/metadata/xmp_ns/photoshop.dart';
import 'package:aves/widgets/viewer/info/metadata/xmp_ns/tiff.dart'; import 'package:aves/widgets/viewer/info/metadata/xmp_ns/tiff.dart';
@ -51,6 +52,8 @@ class XmpNamespace extends Equatable {
return XmpGImageNamespace(rawProps); return XmpGImageNamespace(rawProps);
case XmpIptcCoreNamespace.ns: case XmpIptcCoreNamespace.ns:
return XmpIptcCoreNamespace(rawProps); return XmpIptcCoreNamespace(rawProps);
case XmpIptc4xmpExtNamespace.ns:
return XmpIptc4xmpExtNamespace(rawProps);
case XmpMgwRegionsNamespace.ns: case XmpMgwRegionsNamespace.ns:
return XmpMgwRegionsNamespace(rawProps); return XmpMgwRegionsNamespace(rawProps);
case XmpMMNamespace.ns: case XmpMMNamespace.ns:
@ -97,6 +100,7 @@ class XmpNamespace extends Equatable {
'lr': 'Lightroom', 'lr': 'Lightroom',
'MicrosoftPhoto': 'Microsoft Photo', 'MicrosoftPhoto': 'Microsoft Photo',
'mwg-rs': 'Regions', 'mwg-rs': 'Regions',
'nga': 'National Gallery of Art',
'panorama': 'Panorama', 'panorama': 'Panorama',
'PanoStudioXMP': 'PanoramaStudio', 'PanoStudioXMP': 'PanoramaStudio',
'pdf': 'PDF', 'pdf': 'PDF',

View file

@ -0,0 +1,25 @@
import 'package:aves/widgets/viewer/info/metadata/xmp_namespaces.dart';
import 'package:aves/widgets/viewer/info/metadata/xmp_structs.dart';
import 'package:flutter/material.dart';
class XmpIptc4xmpExtNamespace extends XmpNamespace {
static const ns = 'Iptc4xmpExt';
static final aooPattern = RegExp(ns + r':ArtworkOrObject\[(\d+)\]/(.*)');
final aoo = <int, Map<String, String>>{};
XmpIptc4xmpExtNamespace(Map<String, String> rawProps) : super(ns, rawProps);
@override
bool extractData(XmpProp prop) => extractIndexedStruct(prop, aooPattern, aoo);
@override
List<Widget> buildFromExtractedData() => [
if (aoo.isNotEmpty)
XmpStructArrayCard(
title: 'Artwork or Object',
structByIndex: aoo,
),
];
}