info: improved xmp display
This commit is contained in:
parent
f6a04371f1
commit
b80290528e
2 changed files with 29 additions and 0 deletions
|
@ -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',
|
||||||
|
|
25
lib/widgets/viewer/info/metadata/xmp_ns/iptc4xmpExt.dart
Normal file
25
lib/widgets/viewer/info/metadata/xmp_ns/iptc4xmpExt.dart
Normal 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,
|
||||||
|
),
|
||||||
|
];
|
||||||
|
}
|
Loading…
Reference in a new issue