From d3ed1a0d8e6b04b146b822880cb988a02c814727 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Fri, 18 Mar 2022 09:24:28 +0900 Subject: [PATCH] minor fixes --- lib/model/settings/defaults.dart | 1 - .../viewer/info/metadata/xmp_namespaces.dart | 5 +++- .../info/metadata/xmp_ns/microsoft.dart | 25 +++++++++++++++++++ .../viewer/info/metadata/xmp_structs.dart | 3 +++ 4 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 lib/widgets/viewer/info/metadata/xmp_ns/microsoft.dart diff --git a/lib/model/settings/defaults.dart b/lib/model/settings/defaults.dart index cf06d1c38..7f39bca08 100644 --- a/lib/model/settings/defaults.dart +++ b/lib/model/settings/defaults.dart @@ -63,7 +63,6 @@ class SettingsDefaults { EntryAction.rotateScreen, EntryAction.toggleFavourite, EntryAction.share, - EntryAction.edit, EntryAction.delete, ]; static const showOverlayOnOpening = true; diff --git a/lib/widgets/viewer/info/metadata/xmp_namespaces.dart b/lib/widgets/viewer/info/metadata/xmp_namespaces.dart index 0fbbc0f5b..9752f011f 100644 --- a/lib/widgets/viewer/info/metadata/xmp_namespaces.dart +++ b/lib/widgets/viewer/info/metadata/xmp_namespaces.dart @@ -12,6 +12,7 @@ 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/iptc.dart'; import 'package:aves/widgets/viewer/info/metadata/xmp_ns/iptc4xmpext.dart'; +import 'package:aves/widgets/viewer/info/metadata/xmp_ns/microsoft.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/tiff.dart'; @@ -60,6 +61,8 @@ class XmpNamespace extends Equatable { return XmpMgwRegionsNamespace(rawProps); case XmpMMNamespace.ns: return XmpMMNamespace(rawProps); + case XmpMPNamespace.ns: + return XmpMPNamespace(rawProps); case XmpNoteNamespace.ns: return XmpNoteNamespace(rawProps); case XmpPhotoshopNamespace.ns: @@ -151,7 +154,7 @@ class XmpNamespace extends Equatable { ? [ if (displayTitle.isNotEmpty) Padding( - padding: const EdgeInsets.only(top: 8), + padding: const EdgeInsets.only(top: 8, bottom: 4), child: HighlightTitle( title: displayTitle, color: context.select((v) => v.fromBrandColor(BrandColors.get(displayTitle))), diff --git a/lib/widgets/viewer/info/metadata/xmp_ns/microsoft.dart b/lib/widgets/viewer/info/metadata/xmp_ns/microsoft.dart new file mode 100644 index 000000000..78366c98f --- /dev/null +++ b/lib/widgets/viewer/info/metadata/xmp_ns/microsoft.dart @@ -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/widgets.dart'; + +class XmpMPNamespace extends XmpNamespace { + static const ns = 'MP'; + + static final regionListPattern = RegExp(ns + r':RegionInfo/MPRI:Regions\[(\d+)\]/(.*)'); + + final regionList = >{}; + + XmpMPNamespace(Map rawProps) : super(ns, rawProps); + + @override + bool extractData(XmpProp prop) => extractIndexedStruct(prop, regionListPattern, regionList); + + @override + List buildFromExtractedData() => [ + if (regionList.isNotEmpty) + XmpStructArrayCard( + title: 'Regions', + structByIndex: regionList, + ), + ]; +} diff --git a/lib/widgets/viewer/info/metadata/xmp_structs.dart b/lib/widgets/viewer/info/metadata/xmp_structs.dart index e447e45cc..372d9d2a7 100644 --- a/lib/widgets/viewer/info/metadata/xmp_structs.dart +++ b/lib/widgets/viewer/info/metadata/xmp_structs.dart @@ -2,6 +2,7 @@ import 'dart:math'; import 'package:aves/theme/durations.dart'; import 'package:aves/theme/icons.dart'; +import 'package:aves/theme/themes.dart'; import 'package:aves/utils/constants.dart'; import 'package:aves/widgets/common/basic/multi_cross_fader.dart'; import 'package:aves/widgets/common/extensions/build_context.dart'; @@ -50,6 +51,7 @@ class _XmpStructArrayCardState extends State { } return Card( + color: Themes.thirdLayerColor(context), margin: XmpStructCard.cardMargin, child: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -120,6 +122,7 @@ class XmpStructCard extends StatelessWidget { @override Widget build(BuildContext context) { return Card( + color: Themes.thirdLayerColor(context), margin: cardMargin, child: Padding( padding: const EdgeInsets.all(8),