Skip to content

Commit 1828ca0

Browse files
committed
Vector inspection
1 parent cea314b commit 1828ca0

File tree

1 file changed

+34
-4
lines changed

1 file changed

+34
-4
lines changed

OpenTimelineIO-Sample/OpenTimelineIO-Sample/Views/ItemInspectorView.swift

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,21 @@ struct ItemInspectorView: View
263263
return safeMetadata
264264
}
265265

266+
func safeVector(vector: OpenTimelineIO.Metadata.Vector) -> [SwiftUISafeKeyAndMetadataValueType]
267+
{
268+
var safeVector: [ SwiftUISafeKeyAndMetadataValueType ] = []
269+
270+
for (index, vector) in vector.enumerated()
271+
{
272+
let id = "\(index)"
273+
let key = "\(index)"
274+
275+
safeVector.append( SwiftUISafeKeyAndMetadataValueType(id:id, key: key, value: vector))
276+
}
277+
278+
return safeVector
279+
}
280+
266281
func safeEffects(effects: OpenTimelineIO.SerializableObject.Vector<OpenTimelineIO.Effect>) -> [SwiftUISafeKeyAndMetadataValueType]
267282
{
268283
var safeEffects: [ SwiftUISafeKeyAndMetadataValueType ] = []
@@ -293,6 +308,21 @@ struct ItemInspectorView: View
293308
)
294309
}
295310

311+
func resursiveMetadataViewBuilder(vector: OpenTimelineIO.Metadata.Vector, title:String = "Vector" ) -> AnyView
312+
{
313+
let safeVector = self.safeVector(vector: vector)
314+
315+
return AnyView (
316+
DisclosureGroup(title)
317+
{
318+
ForEach(safeVector, id:\.self) { workAround in
319+
320+
self.resursiveMetadataViewBuilder(workAround: workAround)
321+
}
322+
}
323+
)
324+
}
325+
296326
func resursiveEffectViewBuilder(effects: OpenTimelineIO.SerializableObject.Vector<OpenTimelineIO.Effect>, title:String = "Effects" ) -> AnyView
297327
{
298328
let safeMetadata = self.safeEffects(effects: effects)
@@ -359,10 +389,10 @@ struct ItemInspectorView: View
359389
return self.resursiveMetadataViewBuilder(metadata: dictionary, title: key)
360390
}
361391

362-
// case .vector:
363-
// if let vector = value as? Metadata.Vector {
364-
// return self.resursiveMetadataViewBuilder(metadata: dictionary, title: key)
365-
// }
392+
case .vector:
393+
if let vector = value as? Metadata.Vector {
394+
return self.resursiveMetadataViewBuilder(vector: vector, title: key)
395+
}
366396

367397
// case .unknown:
368398
// return AnyView (Text("Unknown)"))

0 commit comments

Comments
 (0)