Compare commits
2 Commits
f3d52a23f7
...
fb7dd47a96
Author | SHA1 | Date |
---|---|---|
|
fb7dd47a96 | |
|
9550790a17 |
|
@ -1,3 +1,5 @@
|
||||||
xcuserdata/
|
xcuserdata/
|
||||||
build/
|
build/
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
.fdignore
|
||||||
|
.rgignore
|
||||||
|
|
|
@ -9,24 +9,23 @@
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
8514D5BC299EFB780054F185 /* store.db in Resources */ = {isa = PBXBuildFile; fileRef = 8514D5BB299EFB780054F185 /* store.db */; };
|
8514D5BC299EFB780054F185 /* store.db in Resources */ = {isa = PBXBuildFile; fileRef = 8514D5BB299EFB780054F185 /* store.db */; };
|
||||||
8514D5BF299F04710054F185 /* GRDB in Frameworks */ = {isa = PBXBuildFile; productRef = 8514D5BE299F04710054F185 /* GRDB */; };
|
8514D5BF299F04710054F185 /* GRDB in Frameworks */ = {isa = PBXBuildFile; productRef = 8514D5BE299F04710054F185 /* GRDB */; };
|
||||||
8514D5C2299F04A20054F185 /* GRDBQuery in Frameworks */ = {isa = PBXBuildFile; productRef = 8514D5C1299F04A20054F185 /* GRDBQuery */; };
|
|
||||||
852774C129A150B100458CA7 /* Line.swift in Sources */ = {isa = PBXBuildFile; fileRef = 852774C029A150B100458CA7 /* Line.swift */; };
|
852774C129A150B100458CA7 /* Line.swift in Sources */ = {isa = PBXBuildFile; fileRef = 852774C029A150B100458CA7 /* Line.swift */; };
|
||||||
8528897529B2B86B003F2E16 /* CrownOfThorns.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8528897429B2B86B003F2E16 /* CrownOfThorns.swift */; };
|
8528897529B2B86B003F2E16 /* CrownOfThorns.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8528897429B2B86B003F2E16 /* CrownOfThorns.swift */; };
|
||||||
8528897C29BD69B2003F2E16 /* VisibilityTrackingScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8528897929BD69B1003F2E16 /* VisibilityTrackingScrollView.swift */; };
|
8528897C29BD69B2003F2E16 /* VisibilityTrackingScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8528897929BD69B1003F2E16 /* VisibilityTrackingScrollView.swift */; };
|
||||||
8528897D29BD69B2003F2E16 /* VisibilityTrackingModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8528897A29BD69B1003F2E16 /* VisibilityTrackingModifier.swift */; };
|
8528897D29BD69B2003F2E16 /* VisibilityTrackingModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8528897A29BD69B1003F2E16 /* VisibilityTrackingModifier.swift */; };
|
||||||
8528897E29BD69B2003F2E16 /* VisibilityTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8528897B29BD69B2003F2E16 /* VisibilityTracker.swift */; };
|
8528897E29BD69B2003F2E16 /* VisibilityTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8528897B29BD69B2003F2E16 /* VisibilityTracker.swift */; };
|
||||||
|
854207E22BF3E6110027A2E7 /* SwiftUIIntrospect in Frameworks */ = {isa = PBXBuildFile; productRef = 854207E12BF3E6110027A2E7 /* SwiftUIIntrospect */; };
|
||||||
|
854207E82BF50C310027A2E7 /* WrappingHStack in Frameworks */ = {isa = PBXBuildFile; productRef = 854207E72BF50C310027A2E7 /* WrappingHStack */; };
|
||||||
85431A892905F4F500EE0760 /* glossApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85431A882905F4F500EE0760 /* glossApp.swift */; };
|
85431A892905F4F500EE0760 /* glossApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85431A882905F4F500EE0760 /* glossApp.swift */; };
|
||||||
85431A8B2905F4F500EE0760 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85431A8A2905F4F500EE0760 /* ContentView.swift */; };
|
85431A8B2905F4F500EE0760 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85431A8A2905F4F500EE0760 /* ContentView.swift */; };
|
||||||
85431A8D2905F4F600EE0760 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 85431A8C2905F4F600EE0760 /* Assets.xcassets */; };
|
85431A8D2905F4F600EE0760 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 85431A8C2905F4F600EE0760 /* Assets.xcassets */; };
|
||||||
85431A902905F4F600EE0760 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 85431A8F2905F4F600EE0760 /* Preview Assets.xcassets */; };
|
85431A902905F4F600EE0760 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 85431A8F2905F4F600EE0760 /* Preview Assets.xcassets */; };
|
||||||
85431A922905F4F600EE0760 /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85431A912905F4F600EE0760 /* Persistence.swift */; };
|
85431A922905F4F600EE0760 /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85431A912905F4F600EE0760 /* Persistence.swift */; };
|
||||||
85431A952905F4F600EE0760 /* gloss.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 85431A932905F4F600EE0760 /* gloss.xcdatamodeld */; };
|
|
||||||
85431A9C2905F5D800EE0760 /* SwiftUIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85431A9B2905F5D800EE0760 /* SwiftUIView.swift */; };
|
85431A9C2905F5D800EE0760 /* SwiftUIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85431A9B2905F5D800EE0760 /* SwiftUIView.swift */; };
|
||||||
8590D96729A183EE001EF84F /* AppDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8590D96629A183EE001EF84F /* AppDatabase.swift */; };
|
8590D96729A183EE001EF84F /* AppDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8590D96629A183EE001EF84F /* AppDatabase.swift */; };
|
||||||
8590D96929A18A6D001EF84F /* LineRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8590D96829A18A6C001EF84F /* LineRequest.swift */; };
|
8590D96929A18A6D001EF84F /* LineRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8590D96829A18A6C001EF84F /* LineRequest.swift */; };
|
||||||
8590D96C29A92146001EF84F /* JsonImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8590D96B29A92146001EF84F /* JsonImport.swift */; };
|
8590D96C29A92146001EF84F /* JsonImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8590D96B29A92146001EF84F /* JsonImport.swift */; };
|
||||||
85942EE429ACF54A00307621 /* ScrollableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EE329ACF54A00307621 /* ScrollableView.swift */; };
|
85942EE429ACF54A00307621 /* ScrollableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EE329ACF54A00307621 /* ScrollableView.swift */; };
|
||||||
85942EE729AD083600307621 /* Introspect in Frameworks */ = {isa = PBXBuildFile; productRef = 85942EE629AD083600307621 /* Introspect */; };
|
|
||||||
85942EE929AD51A100307621 /* Ribbon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EE829AD51A100307621 /* Ribbon.swift */; };
|
85942EE929AD51A100307621 /* Ribbon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EE829AD51A100307621 /* Ribbon.swift */; };
|
||||||
85942EEB29AD55A400307621 /* RibbonRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EEA29AD55A400307621 /* RibbonRequest.swift */; };
|
85942EEB29AD55A400307621 /* RibbonRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EEA29AD55A400307621 /* RibbonRequest.swift */; };
|
||||||
85942EED29AEA04200307621 /* SelectedRibbon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EEC29AEA04200307621 /* SelectedRibbon.swift */; };
|
85942EED29AEA04200307621 /* SelectedRibbon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EEC29AEA04200307621 /* SelectedRibbon.swift */; };
|
||||||
|
@ -36,12 +35,11 @@
|
||||||
85942EF929B1150B00307621 /* SegDenorm.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EF829B1150B00307621 /* SegDenorm.swift */; };
|
85942EF929B1150B00307621 /* SegDenorm.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EF829B1150B00307621 /* SegDenorm.swift */; };
|
||||||
85942EFE29B11C0B00307621 /* john_export.json in Resources */ = {isa = PBXBuildFile; fileRef = 85942EFC29B11C0A00307621 /* john_export.json */; };
|
85942EFE29B11C0B00307621 /* john_export.json in Resources */ = {isa = PBXBuildFile; fileRef = 85942EFC29B11C0A00307621 /* john_export.json */; };
|
||||||
85942EFF29B11C0B00307621 /* mark_export.json in Resources */ = {isa = PBXBuildFile; fileRef = 85942EFD29B11C0B00307621 /* mark_export.json */; };
|
85942EFF29B11C0B00307621 /* mark_export.json in Resources */ = {isa = PBXBuildFile; fileRef = 85942EFD29B11C0B00307621 /* mark_export.json */; };
|
||||||
85B267192A780FA60028FDD1 /* ReordableViews in Frameworks */ = {isa = PBXBuildFile; productRef = 85B267182A780FA60028FDD1 /* ReordableViews */; };
|
|
||||||
85B2671C2A7813950028FDD1 /* SwiftUIReorderableForEach in Frameworks */ = {isa = PBXBuildFile; productRef = 85B2671B2A7813950028FDD1 /* SwiftUIReorderableForEach */; };
|
|
||||||
85E00E7C29F34D2D00FF9E78 /* ScrollState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85E00E7B29F34D2D00FF9E78 /* ScrollState.swift */; };
|
85E00E7C29F34D2D00FF9E78 /* ScrollState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85E00E7B29F34D2D00FF9E78 /* ScrollState.swift */; };
|
||||||
85E00E7E29F34D3700FF9E78 /* ScrollStateRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85E00E7D29F34D3700FF9E78 /* ScrollStateRequest.swift */; };
|
85E00E7E29F34D3700FF9E78 /* ScrollStateRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85E00E7D29F34D3700FF9E78 /* ScrollStateRequest.swift */; };
|
||||||
85F01DF82978787800F317B4 /* AveriaSerifLibre-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 85F01DF72978787800F317B4 /* AveriaSerifLibre-Regular.ttf */; };
|
85F01DF82978787800F317B4 /* AveriaSerifLibre-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 85F01DF72978787800F317B4 /* AveriaSerifLibre-Regular.ttf */; };
|
||||||
85F01DFB2978790400F317B4 /* xe-Dogma-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 85F01DFA2978790400F317B4 /* xe-Dogma-Bold.ttf */; };
|
85F01DFB2978790400F317B4 /* xe-Dogma-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 85F01DFA2978790400F317B4 /* xe-Dogma-Bold.ttf */; };
|
||||||
|
85FE3EAB2B08181600666A3A /* GRDBQuery in Frameworks */ = {isa = PBXBuildFile; productRef = 85FE3EAA2B08181600666A3A /* GRDBQuery */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
|
@ -57,7 +55,6 @@
|
||||||
85431A8C2905F4F600EE0760 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
85431A8C2905F4F600EE0760 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||||
85431A8F2905F4F600EE0760 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
|
85431A8F2905F4F600EE0760 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
|
||||||
85431A912905F4F600EE0760 /* Persistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Persistence.swift; sourceTree = "<group>"; };
|
85431A912905F4F600EE0760 /* Persistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Persistence.swift; sourceTree = "<group>"; };
|
||||||
85431A942905F4F600EE0760 /* gloss.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = gloss.xcdatamodel; sourceTree = "<group>"; };
|
|
||||||
85431A9B2905F5D800EE0760 /* SwiftUIView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftUIView.swift; sourceTree = "<group>"; };
|
85431A9B2905F5D800EE0760 /* SwiftUIView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftUIView.swift; sourceTree = "<group>"; };
|
||||||
8590D96629A183EE001EF84F /* AppDatabase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDatabase.swift; sourceTree = "<group>"; };
|
8590D96629A183EE001EF84F /* AppDatabase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDatabase.swift; sourceTree = "<group>"; };
|
||||||
8590D96829A18A6C001EF84F /* LineRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LineRequest.swift; sourceTree = "<group>"; };
|
8590D96829A18A6C001EF84F /* LineRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LineRequest.swift; sourceTree = "<group>"; };
|
||||||
|
@ -79,7 +76,6 @@
|
||||||
85F01DFC29787B3500F317B4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
85F01DFC29787B3500F317B4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||||
85F01DFD297A4EEA00F317B4 /* gloss.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = gloss.entitlements; sourceTree = "<group>"; };
|
85F01DFD297A4EEA00F317B4 /* gloss.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = gloss.entitlements; sourceTree = "<group>"; };
|
||||||
85F01DFF297A4EEA00F317B4 /* AuthenticationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AuthenticationServices.framework; path = System/Library/Frameworks/AuthenticationServices.framework; sourceTree = SDKROOT; };
|
85F01DFF297A4EEA00F317B4 /* AuthenticationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AuthenticationServices.framework; path = System/Library/Frameworks/AuthenticationServices.framework; sourceTree = SDKROOT; };
|
||||||
A7BAAF4EF300457DE01C135B /* Pods_gloss.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_gloss.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
@ -87,11 +83,10 @@
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
85B267192A780FA60028FDD1 /* ReordableViews in Frameworks */,
|
854207E82BF50C310027A2E7 /* WrappingHStack in Frameworks */,
|
||||||
|
854207E22BF3E6110027A2E7 /* SwiftUIIntrospect in Frameworks */,
|
||||||
8514D5BF299F04710054F185 /* GRDB in Frameworks */,
|
8514D5BF299F04710054F185 /* GRDB in Frameworks */,
|
||||||
85B2671C2A7813950028FDD1 /* SwiftUIReorderableForEach in Frameworks */,
|
85FE3EAB2B08181600666A3A /* GRDBQuery in Frameworks */,
|
||||||
85942EE729AD083600307621 /* Introspect in Frameworks */,
|
|
||||||
8514D5C2299F04A20054F185 /* GRDBQuery in Frameworks */,
|
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -153,7 +148,6 @@
|
||||||
85431A9B2905F5D800EE0760 /* SwiftUIView.swift */,
|
85431A9B2905F5D800EE0760 /* SwiftUIView.swift */,
|
||||||
85431A8C2905F4F600EE0760 /* Assets.xcassets */,
|
85431A8C2905F4F600EE0760 /* Assets.xcassets */,
|
||||||
85431A912905F4F600EE0760 /* Persistence.swift */,
|
85431A912905F4F600EE0760 /* Persistence.swift */,
|
||||||
85431A932905F4F600EE0760 /* gloss.xcdatamodeld */,
|
|
||||||
85431A8E2905F4F600EE0760 /* Preview Content */,
|
85431A8E2905F4F600EE0760 /* Preview Content */,
|
||||||
852774C029A150B100458CA7 /* Line.swift */,
|
852774C029A150B100458CA7 /* Line.swift */,
|
||||||
);
|
);
|
||||||
|
@ -190,7 +184,6 @@
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
85F01DFF297A4EEA00F317B4 /* AuthenticationServices.framework */,
|
85F01DFF297A4EEA00F317B4 /* AuthenticationServices.framework */,
|
||||||
A7BAAF4EF300457DE01C135B /* Pods_gloss.framework */,
|
|
||||||
);
|
);
|
||||||
name = Frameworks;
|
name = Frameworks;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -213,10 +206,9 @@
|
||||||
name = gloss;
|
name = gloss;
|
||||||
packageProductDependencies = (
|
packageProductDependencies = (
|
||||||
8514D5BE299F04710054F185 /* GRDB */,
|
8514D5BE299F04710054F185 /* GRDB */,
|
||||||
8514D5C1299F04A20054F185 /* GRDBQuery */,
|
85FE3EAA2B08181600666A3A /* GRDBQuery */,
|
||||||
85942EE629AD083600307621 /* Introspect */,
|
854207E12BF3E6110027A2E7 /* SwiftUIIntrospect */,
|
||||||
85B267182A780FA60028FDD1 /* ReordableViews */,
|
854207E72BF50C310027A2E7 /* WrappingHStack */,
|
||||||
85B2671B2A7813950028FDD1 /* SwiftUIReorderableForEach */,
|
|
||||||
);
|
);
|
||||||
productName = gloss;
|
productName = gloss;
|
||||||
productReference = 85431A852905F4F500EE0760 /* gloss.app */;
|
productReference = 85431A852905F4F500EE0760 /* gloss.app */;
|
||||||
|
@ -230,7 +222,7 @@
|
||||||
attributes = {
|
attributes = {
|
||||||
BuildIndependentTargetsInParallel = 1;
|
BuildIndependentTargetsInParallel = 1;
|
||||||
LastSwiftUpdateCheck = 1320;
|
LastSwiftUpdateCheck = 1320;
|
||||||
LastUpgradeCheck = 1420;
|
LastUpgradeCheck = 1430;
|
||||||
TargetAttributes = {
|
TargetAttributes = {
|
||||||
85431A842905F4F500EE0760 = {
|
85431A842905F4F500EE0760 = {
|
||||||
CreatedOnToolsVersion = 13.2.1;
|
CreatedOnToolsVersion = 13.2.1;
|
||||||
|
@ -249,9 +241,8 @@
|
||||||
packageReferences = (
|
packageReferences = (
|
||||||
8514D5BD299F04710054F185 /* XCRemoteSwiftPackageReference "GRDB.swift" */,
|
8514D5BD299F04710054F185 /* XCRemoteSwiftPackageReference "GRDB.swift" */,
|
||||||
8514D5C0299F04A20054F185 /* XCRemoteSwiftPackageReference "GRDBQuery" */,
|
8514D5C0299F04A20054F185 /* XCRemoteSwiftPackageReference "GRDBQuery" */,
|
||||||
85942EE529AD083600307621 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */,
|
854207E02BF3E6110027A2E7 /* XCRemoteSwiftPackageReference "swiftui-introspect" */,
|
||||||
85B267172A780FA60028FDD1 /* XCRemoteSwiftPackageReference "ReordableViews" */,
|
854207E62BF50C310027A2E7 /* XCRemoteSwiftPackageReference "WrappingHStack" */,
|
||||||
85B2671A2A7813950028FDD1 /* XCRemoteSwiftPackageReference "swiftui-reorderable-foreach" */,
|
|
||||||
);
|
);
|
||||||
productRefGroup = 85431A862905F4F500EE0760 /* Products */;
|
productRefGroup = 85431A862905F4F500EE0760 /* Products */;
|
||||||
projectDirPath = "";
|
projectDirPath = "";
|
||||||
|
@ -290,7 +281,6 @@
|
||||||
85942EF529B108C600307621 /* Seg.swift in Sources */,
|
85942EF529B108C600307621 /* Seg.swift in Sources */,
|
||||||
85E00E7C29F34D2D00FF9E78 /* ScrollState.swift in Sources */,
|
85E00E7C29F34D2D00FF9E78 /* ScrollState.swift in Sources */,
|
||||||
8528897529B2B86B003F2E16 /* CrownOfThorns.swift in Sources */,
|
8528897529B2B86B003F2E16 /* CrownOfThorns.swift in Sources */,
|
||||||
85431A952905F4F600EE0760 /* gloss.xcdatamodeld in Sources */,
|
|
||||||
85E00E7E29F34D3700FF9E78 /* ScrollStateRequest.swift in Sources */,
|
85E00E7E29F34D3700FF9E78 /* ScrollStateRequest.swift in Sources */,
|
||||||
85942EE929AD51A100307621 /* Ribbon.swift in Sources */,
|
85942EE929AD51A100307621 /* Ribbon.swift in Sources */,
|
||||||
8590D96729A183EE001EF84F /* AppDatabase.swift in Sources */,
|
8590D96729A183EE001EF84F /* AppDatabase.swift in Sources */,
|
||||||
|
@ -424,7 +414,6 @@
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SWIFT_COMPILATION_MODE = wholemodule;
|
SWIFT_COMPILATION_MODE = wholemodule;
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||||
|
@ -439,10 +428,11 @@
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||||
CODE_SIGN_ENTITLEMENTS = gloss/gloss.entitlements;
|
CODE_SIGN_ENTITLEMENTS = gloss/gloss.entitlements;
|
||||||
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_ASSET_PATHS = "\"gloss/Preview Content\"";
|
DEVELOPMENT_ASSET_PATHS = "\"gloss/Preview Content\"";
|
||||||
DEVELOPMENT_TEAM = C8XWX9329P;
|
DEVELOPMENT_TEAM = V8B2B34W7R;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = gloss/Info.plist;
|
INFOPLIST_FILE = gloss/Info.plist;
|
||||||
|
@ -451,14 +441,15 @@
|
||||||
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||||
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||||
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0;
|
MARKETING_VERSION = 1.0;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.emily.gloss;
|
PRODUCT_BUNDLE_IDENTIFIER = com.aingel.gloss;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||||
SUPPORTS_MACCATALYST = NO;
|
SUPPORTS_MACCATALYST = NO;
|
||||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
|
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
|
||||||
|
@ -475,10 +466,11 @@
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||||
CODE_SIGN_ENTITLEMENTS = gloss/gloss.entitlements;
|
CODE_SIGN_ENTITLEMENTS = gloss/gloss.entitlements;
|
||||||
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_ASSET_PATHS = "\"gloss/Preview Content\"";
|
DEVELOPMENT_ASSET_PATHS = "\"gloss/Preview Content\"";
|
||||||
DEVELOPMENT_TEAM = C8XWX9329P;
|
DEVELOPMENT_TEAM = V8B2B34W7R;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = gloss/Info.plist;
|
INFOPLIST_FILE = gloss/Info.plist;
|
||||||
|
@ -487,14 +479,15 @@
|
||||||
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||||
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||||
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0;
|
MARKETING_VERSION = 1.0;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.emily.gloss;
|
PRODUCT_BUNDLE_IDENTIFIER = com.aingel.gloss;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||||
SUPPORTS_MACCATALYST = NO;
|
SUPPORTS_MACCATALYST = NO;
|
||||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
|
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
|
||||||
|
@ -544,30 +537,22 @@
|
||||||
minimumVersion = 0.5.1;
|
minimumVersion = 0.5.1;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
85942EE529AD083600307621 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */ = {
|
854207E02BF3E6110027A2E7 /* XCRemoteSwiftPackageReference "swiftui-introspect" */ = {
|
||||||
isa = XCRemoteSwiftPackageReference;
|
isa = XCRemoteSwiftPackageReference;
|
||||||
repositoryURL = "https://github.com/siteline/SwiftUI-Introspect.git";
|
repositoryURL = "https://github.com/siteline/swiftui-introspect";
|
||||||
requirement = {
|
|
||||||
kind = upToNextMajorVersion;
|
|
||||||
minimumVersion = 0.2.3;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
85B267172A780FA60028FDD1 /* XCRemoteSwiftPackageReference "ReordableViews" */ = {
|
|
||||||
isa = XCRemoteSwiftPackageReference;
|
|
||||||
repositoryURL = "https://github.com/gadirom/ReordableViews";
|
|
||||||
requirement = {
|
|
||||||
branch = main;
|
|
||||||
kind = branch;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
85B2671A2A7813950028FDD1 /* XCRemoteSwiftPackageReference "swiftui-reorderable-foreach" */ = {
|
|
||||||
isa = XCRemoteSwiftPackageReference;
|
|
||||||
repositoryURL = "https://github.com/globulus/swiftui-reorderable-foreach";
|
|
||||||
requirement = {
|
requirement = {
|
||||||
kind = upToNextMajorVersion;
|
kind = upToNextMajorVersion;
|
||||||
minimumVersion = 1.0.0;
|
minimumVersion = 1.0.0;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
854207E62BF50C310027A2E7 /* XCRemoteSwiftPackageReference "WrappingHStack" */ = {
|
||||||
|
isa = XCRemoteSwiftPackageReference;
|
||||||
|
repositoryURL = "https://github.com/ksemianov/WrappingHStack";
|
||||||
|
requirement = {
|
||||||
|
kind = upToNextMajorVersion;
|
||||||
|
minimumVersion = 0.2.0;
|
||||||
|
};
|
||||||
|
};
|
||||||
/* End XCRemoteSwiftPackageReference section */
|
/* End XCRemoteSwiftPackageReference section */
|
||||||
|
|
||||||
/* Begin XCSwiftPackageProductDependency section */
|
/* Begin XCSwiftPackageProductDependency section */
|
||||||
|
@ -576,40 +561,22 @@
|
||||||
package = 8514D5BD299F04710054F185 /* XCRemoteSwiftPackageReference "GRDB.swift" */;
|
package = 8514D5BD299F04710054F185 /* XCRemoteSwiftPackageReference "GRDB.swift" */;
|
||||||
productName = GRDB;
|
productName = GRDB;
|
||||||
};
|
};
|
||||||
8514D5C1299F04A20054F185 /* GRDBQuery */ = {
|
854207E12BF3E6110027A2E7 /* SwiftUIIntrospect */ = {
|
||||||
|
isa = XCSwiftPackageProductDependency;
|
||||||
|
package = 854207E02BF3E6110027A2E7 /* XCRemoteSwiftPackageReference "swiftui-introspect" */;
|
||||||
|
productName = SwiftUIIntrospect;
|
||||||
|
};
|
||||||
|
854207E72BF50C310027A2E7 /* WrappingHStack */ = {
|
||||||
|
isa = XCSwiftPackageProductDependency;
|
||||||
|
package = 854207E62BF50C310027A2E7 /* XCRemoteSwiftPackageReference "WrappingHStack" */;
|
||||||
|
productName = WrappingHStack;
|
||||||
|
};
|
||||||
|
85FE3EAA2B08181600666A3A /* GRDBQuery */ = {
|
||||||
isa = XCSwiftPackageProductDependency;
|
isa = XCSwiftPackageProductDependency;
|
||||||
package = 8514D5C0299F04A20054F185 /* XCRemoteSwiftPackageReference "GRDBQuery" */;
|
package = 8514D5C0299F04A20054F185 /* XCRemoteSwiftPackageReference "GRDBQuery" */;
|
||||||
productName = GRDBQuery;
|
productName = GRDBQuery;
|
||||||
};
|
};
|
||||||
85942EE629AD083600307621 /* Introspect */ = {
|
|
||||||
isa = XCSwiftPackageProductDependency;
|
|
||||||
package = 85942EE529AD083600307621 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */;
|
|
||||||
productName = Introspect;
|
|
||||||
};
|
|
||||||
85B267182A780FA60028FDD1 /* ReordableViews */ = {
|
|
||||||
isa = XCSwiftPackageProductDependency;
|
|
||||||
package = 85B267172A780FA60028FDD1 /* XCRemoteSwiftPackageReference "ReordableViews" */;
|
|
||||||
productName = ReordableViews;
|
|
||||||
};
|
|
||||||
85B2671B2A7813950028FDD1 /* SwiftUIReorderableForEach */ = {
|
|
||||||
isa = XCSwiftPackageProductDependency;
|
|
||||||
package = 85B2671A2A7813950028FDD1 /* XCRemoteSwiftPackageReference "swiftui-reorderable-foreach" */;
|
|
||||||
productName = SwiftUIReorderableForEach;
|
|
||||||
};
|
|
||||||
/* End XCSwiftPackageProductDependency section */
|
/* End XCSwiftPackageProductDependency section */
|
||||||
|
|
||||||
/* Begin XCVersionGroup section */
|
|
||||||
85431A932905F4F600EE0760 /* gloss.xcdatamodeld */ = {
|
|
||||||
isa = XCVersionGroup;
|
|
||||||
children = (
|
|
||||||
85431A942905F4F600EE0760 /* gloss.xcdatamodel */,
|
|
||||||
);
|
|
||||||
currentVersion = 85431A942905F4F600EE0760 /* gloss.xcdatamodel */;
|
|
||||||
path = gloss.xcdatamodeld;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
versionGroupType = wrapper.xcdatamodel;
|
|
||||||
};
|
|
||||||
/* End XCVersionGroup section */
|
|
||||||
};
|
};
|
||||||
rootObject = 85431A7D2905F4F500EE0760 /* Project object */;
|
rootObject = 85431A7D2905F4F500EE0760 /* Project object */;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,30 +1,12 @@
|
||||||
{
|
{
|
||||||
"pins" : [
|
"pins" : [
|
||||||
{
|
|
||||||
"identity" : "cgmath",
|
|
||||||
"kind" : "remoteSourceControl",
|
|
||||||
"location" : "https://github.com/gadirom/CGMath",
|
|
||||||
"state" : {
|
|
||||||
"revision" : "ed3125a2d6d9a98f4a7d58a4f79fc9c159498650",
|
|
||||||
"version" : "1.0.4"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"identity" : "containergeometry",
|
|
||||||
"kind" : "remoteSourceControl",
|
|
||||||
"location" : "https://github.com/gadirom/ContainerGeometry",
|
|
||||||
"state" : {
|
|
||||||
"revision" : "4e6a5916da407e48ef4458bb970508527b9e05cc",
|
|
||||||
"version" : "1.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"identity" : "grdb.swift",
|
"identity" : "grdb.swift",
|
||||||
"kind" : "remoteSourceControl",
|
"kind" : "remoteSourceControl",
|
||||||
"location" : "https://github.com/groue/GRDB.swift.git",
|
"location" : "https://github.com/groue/GRDB.swift.git",
|
||||||
"state" : {
|
"state" : {
|
||||||
"branch" : "master",
|
"branch" : "master",
|
||||||
"revision" : "ba68e3b02d9ed953a0c9ff43183f856f20c9b7ce"
|
"revision" : "f1f8e8438ad815086b48660ddf87c788f9abe966"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -32,17 +14,8 @@
|
||||||
"kind" : "remoteSourceControl",
|
"kind" : "remoteSourceControl",
|
||||||
"location" : "https://github.com/groue/GRDBQuery",
|
"location" : "https://github.com/groue/GRDBQuery",
|
||||||
"state" : {
|
"state" : {
|
||||||
"revision" : "df514f2bd74548f94e082f3233022190e594fce4",
|
"revision" : "be64298b4f9d70510226fa7e698aef84f41cec02",
|
||||||
"version" : "0.5.1"
|
"version" : "0.7.0"
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"identity" : "reordableviews",
|
|
||||||
"kind" : "remoteSourceControl",
|
|
||||||
"location" : "https://github.com/gadirom/ReordableViews",
|
|
||||||
"state" : {
|
|
||||||
"branch" : "main",
|
|
||||||
"revision" : "636703c4f4aba60bfac7c09115516db82ea354d3"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -50,17 +23,17 @@
|
||||||
"kind" : "remoteSourceControl",
|
"kind" : "remoteSourceControl",
|
||||||
"location" : "https://github.com/siteline/SwiftUI-Introspect.git",
|
"location" : "https://github.com/siteline/SwiftUI-Introspect.git",
|
||||||
"state" : {
|
"state" : {
|
||||||
"revision" : "c18951c747ab62af7c15e17a81bd37d4fd5a9979",
|
"revision" : "7dc5b287f8040e4ad5038739850b758e78f77808",
|
||||||
"version" : "0.2.3"
|
"version" : "1.1.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"identity" : "swiftui-reorderable-foreach",
|
"identity" : "wrappinghstack",
|
||||||
"kind" : "remoteSourceControl",
|
"kind" : "remoteSourceControl",
|
||||||
"location" : "https://github.com/globulus/swiftui-reorderable-foreach",
|
"location" : "https://github.com/ksemianov/WrappingHStack",
|
||||||
"state" : {
|
"state" : {
|
||||||
"revision" : "47f6ca1ad906ef2ae1f872ed34a10cc615ad99ca",
|
"revision" : "3300f68b6bf5f8a75ee7ca8a40f136a558053d10",
|
||||||
"version" : "1.0.0"
|
"version" : "0.2.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Scheme
|
<Scheme
|
||||||
LastUpgradeVersion = "1420"
|
LastUpgradeVersion = "1430"
|
||||||
version = "1.3">
|
version = "1.3">
|
||||||
<BuildAction
|
<BuildAction
|
||||||
parallelizeBuildables = "YES"
|
parallelizeBuildables = "YES"
|
||||||
|
|
|
@ -1,72 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Bucket
|
|
||||||
uuid = "2FEB6A3D-6E5D-4217-8815-CC53223502A6"
|
|
||||||
type = "1"
|
|
||||||
version = "2.0">
|
|
||||||
<Breakpoints>
|
|
||||||
<BreakpointProxy
|
|
||||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
|
||||||
<BreakpointContent
|
|
||||||
uuid = "19620363-AF5F-4353-862D-4E40746274F5"
|
|
||||||
shouldBeEnabled = "No"
|
|
||||||
ignoreCount = "0"
|
|
||||||
continueAfterRunningActions = "No"
|
|
||||||
filePath = "gloss/ContentView.swift"
|
|
||||||
startingColumnNumber = "9223372036854775807"
|
|
||||||
endingColumnNumber = "9223372036854775807"
|
|
||||||
startingLineNumber = "572"
|
|
||||||
endingLineNumber = "572"
|
|
||||||
landmarkName = "body"
|
|
||||||
landmarkType = "24">
|
|
||||||
</BreakpointContent>
|
|
||||||
</BreakpointProxy>
|
|
||||||
<BreakpointProxy
|
|
||||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
|
||||||
<BreakpointContent
|
|
||||||
uuid = "A3202903-6BE5-4879-8970-4CE7B825E6DD"
|
|
||||||
shouldBeEnabled = "No"
|
|
||||||
ignoreCount = "0"
|
|
||||||
continueAfterRunningActions = "No"
|
|
||||||
filePath = "gloss/ContentView.swift"
|
|
||||||
startingColumnNumber = "9223372036854775807"
|
|
||||||
endingColumnNumber = "9223372036854775807"
|
|
||||||
startingLineNumber = "574"
|
|
||||||
endingLineNumber = "574"
|
|
||||||
landmarkName = "body"
|
|
||||||
landmarkType = "24">
|
|
||||||
</BreakpointContent>
|
|
||||||
</BreakpointProxy>
|
|
||||||
<BreakpointProxy
|
|
||||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
|
||||||
<BreakpointContent
|
|
||||||
uuid = "DCBFFF14-138E-43D2-BA78-A5265A13CD4F"
|
|
||||||
shouldBeEnabled = "Yes"
|
|
||||||
ignoreCount = "0"
|
|
||||||
continueAfterRunningActions = "No"
|
|
||||||
filePath = "gloss/ContentView.swift"
|
|
||||||
startingColumnNumber = "9223372036854775807"
|
|
||||||
endingColumnNumber = "9223372036854775807"
|
|
||||||
startingLineNumber = "465"
|
|
||||||
endingLineNumber = "465"
|
|
||||||
landmarkName = "body"
|
|
||||||
landmarkType = "24">
|
|
||||||
</BreakpointContent>
|
|
||||||
</BreakpointProxy>
|
|
||||||
<BreakpointProxy
|
|
||||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
|
||||||
<BreakpointContent
|
|
||||||
uuid = "1FDEB1B0-A696-4F5A-86AB-30728070E82F"
|
|
||||||
shouldBeEnabled = "No"
|
|
||||||
ignoreCount = "0"
|
|
||||||
continueAfterRunningActions = "No"
|
|
||||||
filePath = "gloss/ContentView.swift"
|
|
||||||
startingColumnNumber = "9223372036854775807"
|
|
||||||
endingColumnNumber = "9223372036854775807"
|
|
||||||
startingLineNumber = "433"
|
|
||||||
endingLineNumber = "433"
|
|
||||||
landmarkName = "body"
|
|
||||||
landmarkType = "24">
|
|
||||||
</BreakpointContent>
|
|
||||||
</BreakpointProxy>
|
|
||||||
</Breakpoints>
|
|
||||||
</Bucket>
|
|
|
@ -1,106 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>SchemeUserState</key>
|
|
||||||
<dict>
|
|
||||||
<key>Associations (Playground) 1.xcscheme</key>
|
|
||||||
<dict>
|
|
||||||
<key>isShown</key>
|
|
||||||
<false/>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>12</integer>
|
|
||||||
</dict>
|
|
||||||
<key>Associations (Playground) 2.xcscheme</key>
|
|
||||||
<dict>
|
|
||||||
<key>isShown</key>
|
|
||||||
<false/>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>13</integer>
|
|
||||||
</dict>
|
|
||||||
<key>Associations (Playground).xcscheme</key>
|
|
||||||
<dict>
|
|
||||||
<key>isShown</key>
|
|
||||||
<false/>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>11</integer>
|
|
||||||
</dict>
|
|
||||||
<key>MyPlayground (Playground) 1.xcscheme</key>
|
|
||||||
<dict>
|
|
||||||
<key>isShown</key>
|
|
||||||
<false/>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>9</integer>
|
|
||||||
</dict>
|
|
||||||
<key>MyPlayground (Playground) 2.xcscheme</key>
|
|
||||||
<dict>
|
|
||||||
<key>isShown</key>
|
|
||||||
<false/>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
</dict>
|
|
||||||
<key>MyPlayground (Playground).xcscheme</key>
|
|
||||||
<dict>
|
|
||||||
<key>isShown</key>
|
|
||||||
<false/>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>8</integer>
|
|
||||||
</dict>
|
|
||||||
<key>Tour (Playground) 1.xcscheme</key>
|
|
||||||
<dict>
|
|
||||||
<key>isShown</key>
|
|
||||||
<false/>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>6</integer>
|
|
||||||
</dict>
|
|
||||||
<key>Tour (Playground) 2.xcscheme</key>
|
|
||||||
<dict>
|
|
||||||
<key>isShown</key>
|
|
||||||
<false/>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>7</integer>
|
|
||||||
</dict>
|
|
||||||
<key>Tour (Playground).xcscheme</key>
|
|
||||||
<dict>
|
|
||||||
<key>isShown</key>
|
|
||||||
<false/>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>5</integer>
|
|
||||||
</dict>
|
|
||||||
<key>TransactionObserver (Playground) 1.xcscheme</key>
|
|
||||||
<dict>
|
|
||||||
<key>isShown</key>
|
|
||||||
<false/>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>3</integer>
|
|
||||||
</dict>
|
|
||||||
<key>TransactionObserver (Playground) 2.xcscheme</key>
|
|
||||||
<dict>
|
|
||||||
<key>isShown</key>
|
|
||||||
<false/>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>4</integer>
|
|
||||||
</dict>
|
|
||||||
<key>TransactionObserver (Playground).xcscheme</key>
|
|
||||||
<dict>
|
|
||||||
<key>isShown</key>
|
|
||||||
<false/>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
</dict>
|
|
||||||
<key>gloss.xcscheme_^#shared#^_</key>
|
|
||||||
<dict>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>SuppressBuildableAutocreation</key>
|
|
||||||
<dict>
|
|
||||||
<key>85431A842905F4F500EE0760</key>
|
|
||||||
<dict>
|
|
||||||
<key>primary</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
|
@ -5,13 +5,12 @@
|
||||||
// Created by Saint on 10/23/22.
|
// Created by Saint on 10/23/22.
|
||||||
//
|
//
|
||||||
|
|
||||||
import SwiftUI
|
|
||||||
import GRDB
|
import GRDB
|
||||||
import GRDBQuery
|
import GRDBQuery
|
||||||
import Introspect
|
import SwiftUIIntrospect
|
||||||
import os
|
import os
|
||||||
import SwiftUIReorderableForEach
|
import SwiftUI
|
||||||
|
import WrappingHStack
|
||||||
let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "network")
|
let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "network")
|
||||||
|
|
||||||
var currentId: String?
|
var currentId: String?
|
||||||
|
@ -24,8 +23,8 @@ var disableDrop = false
|
||||||
|
|
||||||
// var curBook = "John"
|
// var curBook = "John"
|
||||||
|
|
||||||
extension UserDefaults {
|
public extension UserDefaults {
|
||||||
public func optionalInt(forKey defaultName: String) -> Int? {
|
func optionalInt(forKey defaultName: String) -> Int? {
|
||||||
let defaults = self
|
let defaults = self
|
||||||
if let value = defaults.value(forKey: defaultName) {
|
if let value = defaults.value(forKey: defaultName) {
|
||||||
return value as? Int
|
return value as? Int
|
||||||
|
@ -33,7 +32,7 @@ extension UserDefaults {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
public func optionalBool(forKey defaultName: String) -> Bool? {
|
func optionalBool(forKey defaultName: String) -> Bool? {
|
||||||
let defaults = self
|
let defaults = self
|
||||||
if let value = defaults.value(forKey: defaultName) {
|
if let value = defaults.value(forKey: defaultName) {
|
||||||
return value as? Bool
|
return value as? Bool
|
||||||
|
@ -49,10 +48,8 @@ func goToRibbon(selectedRibbon: Ribbon,
|
||||||
refresh: Binding<Bool>,
|
refresh: Binding<Bool>,
|
||||||
showOverlay: Binding<Bool>,
|
showOverlay: Binding<Bool>,
|
||||||
appDatabase: AppDatabase,
|
appDatabase: AppDatabase,
|
||||||
loading: Bool
|
loading: Bool)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
Task {
|
Task {
|
||||||
// print("SELECTED RIBBON", selectedRibbon)
|
// print("SELECTED RIBBON", selectedRibbon)
|
||||||
var scrollOffsetToSave = currentOffset
|
var scrollOffsetToSave = currentOffset
|
||||||
|
@ -60,14 +57,15 @@ func goToRibbon(selectedRibbon: Ribbon,
|
||||||
|
|
||||||
var updatedRibbon = selectedRibbon
|
var updatedRibbon = selectedRibbon
|
||||||
|
|
||||||
if (selectedRibbon.id != destRibbon.id! || loading) {
|
if selectedRibbon.id != destRibbon.id! || loading {
|
||||||
print("switching ribbons")
|
print("switching ribbons")
|
||||||
|
|
||||||
// withAnimation(.spring(response: 0.05)) {
|
// withAnimation(.spring(response: 0.05)) {
|
||||||
|
// showOverlay.wrappedValue = true
|
||||||
showOverlay.wrappedValue = true
|
showOverlay.wrappedValue = true
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if (loading) {
|
if loading {
|
||||||
currentId = destRibbon.scrollId
|
currentId = destRibbon.scrollId
|
||||||
// currentOffset = CGFloat(destRibbon.scrollOffset)
|
// currentOffset = CGFloat(destRibbon.scrollOffset)
|
||||||
}
|
}
|
||||||
|
@ -79,7 +77,6 @@ func goToRibbon(selectedRibbon: Ribbon,
|
||||||
// print("end setting scroll offset")
|
// print("end setting scroll offset")
|
||||||
refresh.wrappedValue.toggle()
|
refresh.wrappedValue.toggle()
|
||||||
|
|
||||||
|
|
||||||
var updateSelectRibbon = SelectedRibbon(id: Int64(1), ribbonId: destRibbon.id!)
|
var updateSelectRibbon = SelectedRibbon(id: Int64(1), ribbonId: destRibbon.id!)
|
||||||
// print("Saving selected ribbon")
|
// print("Saving selected ribbon")
|
||||||
// print(updateSelectRibbon)
|
// print(updateSelectRibbon)
|
||||||
|
@ -90,7 +87,7 @@ func goToRibbon(selectedRibbon: Ribbon,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!loading) {
|
if !loading {
|
||||||
print("not loading")
|
print("not loading")
|
||||||
updatedRibbon.scrollOffset = Int(floor(scrollOffsetToSave!))
|
updatedRibbon.scrollOffset = Int(floor(scrollOffsetToSave!))
|
||||||
updatedRibbon.scrollId = scrollIdToSave!
|
updatedRibbon.scrollId = scrollIdToSave!
|
||||||
|
@ -135,16 +132,15 @@ struct RibbonCrown : View {
|
||||||
|
|
||||||
@Query(SelectedRibbonRequest()) private var sr: [Ribbon]
|
@Query(SelectedRibbonRequest()) private var sr: [Ribbon]
|
||||||
|
|
||||||
|
|
||||||
@State var saveOffset = CGFloat()
|
@State var saveOffset = CGFloat()
|
||||||
var body: some View {
|
var body: some View {
|
||||||
|
|
||||||
ZStack {
|
ZStack {
|
||||||
MyIcon().frame(
|
MyIcon().frame(
|
||||||
width: CGFloat(100 * 1.66 * scale),
|
width: CGFloat(100 * 1.66 * scale),
|
||||||
height: CGFloat(100 * scale),
|
height: CGFloat(100 * scale),
|
||||||
alignment: .center
|
alignment: .center
|
||||||
).foregroundColor(Color(UIColor(red: 0.30, green: 0.30, blue: 0.30, alpha: 0.4)))
|
).foregroundColor(Color(UIColor(red: 0.30, green: 0.30, blue: 0.30, alpha: 0.4)))
|
||||||
|
.contentShape(.dragPreview, RoundedRectangle(cornerRadius: 32))
|
||||||
|
|
||||||
.if(draggedRibbon != nil && draggedRibbon!.id == ribbon.id && isDragging) { $0.overlay(Color(red: 0.1, green: 0.1, blue: 0.1)) }
|
.if(draggedRibbon != nil && draggedRibbon!.id == ribbon.id && isDragging) { $0.overlay(Color(red: 0.1, green: 0.1, blue: 0.1)) }
|
||||||
|
|
||||||
|
@ -160,7 +156,6 @@ struct RibbonCrown : View {
|
||||||
maxHeight: height,
|
maxHeight: height,
|
||||||
alignment: .center)
|
alignment: .center)
|
||||||
|
|
||||||
|
|
||||||
.if(draggedRibbon != nil && draggedRibbon!.id == ribbon.id && isDragging) { $0.overlay(Color(red: 0.1, green: 0.1, blue: 0.1)) }
|
.if(draggedRibbon != nil && draggedRibbon!.id == ribbon.id && isDragging) { $0.overlay(Color(red: 0.1, green: 0.1, blue: 0.1)) }
|
||||||
|
|
||||||
// .if(!isDragging || draggedRibbon == nil || draggedRibbon!.id != ribbon.id) { $0.background(Color(red: 0.1, green: 0.1, blue: 0.1)) }
|
// .if(!isDragging || draggedRibbon == nil || draggedRibbon!.id != ribbon.id) { $0.background(Color(red: 0.1, green: 0.1, blue: 0.1)) }
|
||||||
|
@ -174,10 +169,8 @@ struct RibbonCrown : View {
|
||||||
// .minimumScaleFactor(0.5)
|
// .minimumScaleFactor(0.5)
|
||||||
// .padding([.top, .bottom], 10)
|
// .padding([.top, .bottom], 10)
|
||||||
.font(Font.custom("AveriaSerifLibre-Regular", size: CGFloat(10)))
|
.font(Font.custom("AveriaSerifLibre-Regular", size: CGFloat(10)))
|
||||||
|
|
||||||
}
|
}
|
||||||
.frame(width: CGFloat(100 * 1.66 * scale + 10), height: CGFloat(100 * scale + 5))
|
.frame(width: CGFloat(100 * 1.66 * scale + 10), height: CGFloat(100 * scale + 5))
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -190,7 +183,7 @@ func makeVerseView(seg: SegDenorm) -> some View {
|
||||||
var retView = Text("")
|
var retView = Text("")
|
||||||
var segSplit = seg.body.components(separatedBy: ";;")
|
var segSplit = seg.body.components(separatedBy: ";;")
|
||||||
let decoder = JSONDecoder()
|
let decoder = JSONDecoder()
|
||||||
segSplit.enumerated().forEach({ (index, item) in
|
for (index, item) in segSplit.enumerated() {
|
||||||
let verse = try! decoder.decode(Verse.self, from: item.data(using: .utf8)!)
|
let verse = try! decoder.decode(Verse.self, from: item.data(using: .utf8)!)
|
||||||
|
|
||||||
retView = retView + Text(String(verse.verse))
|
retView = retView + Text(String(verse.verse))
|
||||||
|
@ -201,7 +194,7 @@ func makeVerseView(seg: SegDenorm) -> some View {
|
||||||
retView = retView + Text(verse.body)
|
retView = retView + Text(verse.body)
|
||||||
.foregroundColor(Color.white)
|
.foregroundColor(Color.white)
|
||||||
.font(Font.custom("AveriaSerifLibre-Regular", size: 15))
|
.font(Font.custom("AveriaSerifLibre-Regular", size: 15))
|
||||||
})
|
}
|
||||||
return retView
|
return retView
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,48 +203,36 @@ private struct SegRow: View {
|
||||||
var ribbonId: Int64
|
var ribbonId: Int64
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
var retView = Text("")
|
|
||||||
var segSplit = seg.body.components(separatedBy: ";;")
|
|
||||||
let decoder = JSONDecoder()
|
|
||||||
// Text(segSplit[0].body)
|
|
||||||
// .id(seg.id)
|
|
||||||
// VStack {
|
|
||||||
// ForEach(segSplit.indices) { i in
|
|
||||||
segSplit.enumerated().forEach({ (index, item) in
|
|
||||||
let verse = try! decoder.decode(Verse.self, from: item.data(using: .utf8)!)
|
|
||||||
|
|
||||||
var attributedString: AttributedString {
|
// var attributedString: AttributedString {
|
||||||
// var result = AttributedString("Hello World!")
|
// // var result = AttributedString("Hello World!")
|
||||||
var result = AttributedString(verse.body)
|
// var result = AttributedString(verse.verse)
|
||||||
// result.underlineStyle = Text.LineStyle(
|
// // result.underlineStyle = Text.LineStyle(
|
||||||
// pattern: .dot, color: .white)
|
// // pattern: .dot, color: .white)
|
||||||
return result
|
// return result
|
||||||
}
|
// }
|
||||||
|
|
||||||
retView = retView + Text(String(ribbonId))
|
// retView = retView + Text(String(ribbonId))
|
||||||
//retView = retView + Text(attributedString)
|
// // retView = retView + Text(attributedString)
|
||||||
// Text(seg.body)
|
// // Text(seg.body)
|
||||||
// .contentShape(Rectangle())
|
// // .contentShape(Rectangle())
|
||||||
.font(Font.custom("AveriaSerifLibre-Regular", size: 10))
|
// .font(Font.custom("AveriaSerifLibre-Regular", size: 10))
|
||||||
.baselineOffset(6.0)
|
// .baselineOffset(6.0)
|
||||||
.foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00)))
|
// .foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00)))
|
||||||
|
|
||||||
|
// retView = retView +
|
||||||
|
// Text(attributedString)
|
||||||
|
// .foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00)))
|
||||||
|
// .font(Font.custom("AveriaSerifLibre-Regular", size: 20))
|
||||||
|
// // .frame(maxWidth: .infinity, alignment: .leading)
|
||||||
|
// // .contentShape(Rectangle())
|
||||||
|
|
||||||
retView = retView + Text(attributedString)
|
|
||||||
// .frame(maxWidth: .infinity, alignment: .leading)
|
|
||||||
// .contentShape(Rectangle())
|
|
||||||
.foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00)))
|
|
||||||
.font(Font.custom("AveriaSerifLibre-Regular", size: 20))
|
|
||||||
// .listRowBackground(Color(red: 0.2, green: 0.8, blue: 0.2))
|
// .listRowBackground(Color(red: 0.2, green: 0.8, blue: 0.2))
|
||||||
// .listRowInsets(EdgeInsets())
|
// .listRowInsets(EdgeInsets())
|
||||||
// .padding(EdgeInsets(top: 10, leading: 20, bottom: 40, trailing: 20))
|
// .padding(EdgeInsets(top: 10, leading: 20, bottom: 40, trailing: 20))
|
||||||
// .listRowSeparator(.hidden)
|
// .listRowSeparator(.hidden)
|
||||||
// .id(String(seg.id) + "body" + String(i))
|
// .id(String(seg.id) + "body" + String(i))
|
||||||
// .id(seg.id)
|
// .id(seg.id)
|
||||||
//.onTapGesture {
|
|
||||||
// selectedLine = seg.id
|
|
||||||
//Print(selectedLine)
|
|
||||||
//}
|
|
||||||
|
|
||||||
// .listRowBackground(Color(red: 0.2, green: 0.8, blue: 0.2))
|
// .listRowBackground(Color(red: 0.2, green: 0.8, blue: 0.2))
|
||||||
// .listRowInsets(EdgeInsets())
|
// .listRowInsets(EdgeInsets())
|
||||||
|
@ -263,14 +244,56 @@ private struct SegRow: View {
|
||||||
// selectedLine = seg.id
|
// selectedLine = seg.id
|
||||||
// Print(selectedLine)
|
// Print(selectedLine)
|
||||||
// }
|
// }
|
||||||
})
|
|
||||||
// }
|
var segSplit = seg.body.components(separatedBy: ";;")
|
||||||
|
let decoder = JSONDecoder()
|
||||||
|
var retView = WrappingHStack(alignment: .leading, horizontalSpacing: 3.5) {
|
||||||
|
|
||||||
|
// segSplit.enumerated().forEach { _, item in
|
||||||
|
ForEach(0..<segSplit.count, id: \.self) { segIndex in
|
||||||
|
|
||||||
|
|
||||||
|
let verse = try! decoder.decode(Verse.self, from: segSplit[segIndex].data(using: .utf8)!)
|
||||||
|
let arrayOfText = verse.body.components(separatedBy: " ")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ForEach(0..<arrayOfText.count, id: \.self) { index in
|
||||||
|
HStack (spacing: 2) {
|
||||||
|
if index == 0 {
|
||||||
|
Text(String(verse.verse))
|
||||||
|
.contentShape(Rectangle())
|
||||||
|
.font(Font.custom("AveriaSerifLibre-Regular", size: 10))
|
||||||
|
.baselineOffset(6.0)
|
||||||
|
|
||||||
|
.foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00)))
|
||||||
|
}
|
||||||
|
|
||||||
|
Text(arrayOfText[index])
|
||||||
|
.foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00)))
|
||||||
|
.font(Font.custom("AveriaSerifLibre-Regular", size: 20))
|
||||||
|
|
||||||
|
|
||||||
|
.foregroundColor(Color.white)
|
||||||
|
.padding(.horizontal, 0)
|
||||||
|
|
||||||
|
.onTapGesture {
|
||||||
|
Print(arrayOfText[index])
|
||||||
|
Print(index)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// .if( index == 0 ) { $0.offset(x: -6) }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
return retView
|
return retView
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ContentView: View {
|
struct ContentView: View {
|
||||||
|
|
||||||
@State var viewState = CGSize.zero
|
@State var viewState = CGSize.zero
|
||||||
@State var pulledOut = CGSize.zero
|
@State var pulledOut = CGSize.zero
|
||||||
@State var taskTitle: String = "FIRST DOGGG"
|
@State var taskTitle: String = "FIRST DOGGG"
|
||||||
|
@ -290,7 +313,6 @@ struct ContentView: View {
|
||||||
|
|
||||||
@State var vertSep = CGFloat(20)
|
@State var vertSep = CGFloat(20)
|
||||||
|
|
||||||
|
|
||||||
@Environment(\.appDatabase) private var appDatabase
|
@Environment(\.appDatabase) private var appDatabase
|
||||||
@Query(SegDenormRequest(book: "bible.mark")) private var segs: [SegDenorm]
|
@Query(SegDenormRequest(book: "bible.mark")) private var segs: [SegDenorm]
|
||||||
|
|
||||||
|
@ -316,13 +338,11 @@ struct ContentView: View {
|
||||||
|
|
||||||
@State var reorder = true
|
@State var reorder = true
|
||||||
|
|
||||||
|
|
||||||
@Query(RibbonRequest()) private var ribbons: [Ribbon]
|
@Query(RibbonRequest()) private var ribbons: [Ribbon]
|
||||||
@Query<SelectedRibbonRequest> var selectedRibbon: [Ribbon]
|
@Query<SelectedRibbonRequest> var selectedRibbon: [Ribbon]
|
||||||
|
|
||||||
// @Query(RibbonRequest(id: Int64(UserDefaults.standard.optionalInt(forKey: "lastRibbonId") ?? 1))) private var selectedRibbon: [Ribbon]
|
// @Query(RibbonRequest(id: Int64(UserDefaults.standard.optionalInt(forKey: "lastRibbonId") ?? 1))) private var selectedRibbon: [Ribbon]
|
||||||
|
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
UITableView.appearance().backgroundColor = UIColor(Color(red: 0.2, green: 0.2, blue: 0.2))
|
UITableView.appearance().backgroundColor = UIColor(Color(red: 0.2, green: 0.2, blue: 0.2))
|
||||||
_selectedRibbon = Query(SelectedRibbonRequest())
|
_selectedRibbon = Query(SelectedRibbonRequest())
|
||||||
|
@ -358,8 +378,7 @@ struct ContentView: View {
|
||||||
showOverlay: $showOverlay,
|
showOverlay: $showOverlay,
|
||||||
refresh: $refresh,
|
refresh: $refresh,
|
||||||
draggedRibbon: draggedRibbon,
|
draggedRibbon: draggedRibbon,
|
||||||
isDragging: isDragging
|
isDragging: isDragging)
|
||||||
)
|
|
||||||
.onDrag {
|
.onDrag {
|
||||||
self.draggedRibbon = ribbon
|
self.draggedRibbon = ribbon
|
||||||
return NSItemProvider()
|
return NSItemProvider()
|
||||||
|
@ -368,22 +387,18 @@ struct ContentView: View {
|
||||||
delegate: DropViewDelegate(destinationItem: ribbon,
|
delegate: DropViewDelegate(destinationItem: ribbon,
|
||||||
draggedItem: $draggedRibbon,
|
draggedItem: $draggedRibbon,
|
||||||
isDragging: $isDragging,
|
isDragging: $isDragging,
|
||||||
appDatabase: appDatabase)
|
appDatabase: appDatabase))
|
||||||
)
|
|
||||||
.offset(x: 6, y: 6)
|
.offset(x: 6, y: 6)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// .foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00)))
|
// .foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00)))
|
||||||
}
|
}
|
||||||
.frame(width: geometry.size.width, height: geometry.size.height - 100, alignment: .topLeading)
|
.frame(width: geometry.size.width, height: geometry.size.height - 100, alignment: .topLeading)
|
||||||
.background(Color(red: 0.1, green: 0.1, blue: 0.1))
|
.background(Color(red: 0.1, green: 0.1, blue: 0.1))
|
||||||
.zIndex(0)
|
.zIndex(0)
|
||||||
.animation(.default, value: ribbons)
|
.animation(.default, value: ribbons)
|
||||||
|
|
||||||
.onDrop(of: [.item],
|
.onDrop(of: [.item],
|
||||||
delegate: DropViewDelegate2(isDragging: $isDragging)
|
delegate: DropViewDelegate2(isDragging: $isDragging))
|
||||||
)
|
|
||||||
|
|
||||||
// Spacer()
|
// Spacer()
|
||||||
|
|
||||||
|
@ -406,7 +421,6 @@ struct ContentView: View {
|
||||||
// .animation(nil)
|
// .animation(nil)
|
||||||
|
|
||||||
VStack {
|
VStack {
|
||||||
|
|
||||||
ScrollViewReader { proxy in
|
ScrollViewReader { proxy in
|
||||||
VisibilityTrackingScrollView(action: handleVisibilityChanged) {
|
VisibilityTrackingScrollView(action: handleVisibilityChanged) {
|
||||||
// ScrollView {
|
// ScrollView {
|
||||||
|
@ -414,8 +428,7 @@ struct ContentView: View {
|
||||||
LazyVStack {
|
LazyVStack {
|
||||||
ForEach(segs) { seg in
|
ForEach(segs) { seg in
|
||||||
SegRow(seg: seg,
|
SegRow(seg: seg,
|
||||||
ribbonId: selectedRibbon[0].id!
|
ribbonId: selectedRibbon[0].id!)
|
||||||
)
|
|
||||||
.id("\(seg.id)")
|
.id("\(seg.id)")
|
||||||
.offset(x: -dragOffset)
|
.offset(x: -dragOffset)
|
||||||
// .offset(x: pulledOut.width)
|
// .offset(x: pulledOut.width)
|
||||||
|
@ -437,7 +450,7 @@ struct ContentView: View {
|
||||||
.background(Color(red: 0.18, green: 0.18, blue: 0.18))
|
.background(Color(red: 0.18, green: 0.18, blue: 0.18))
|
||||||
}
|
}
|
||||||
|
|
||||||
.onAppear() {
|
.onAppear {
|
||||||
Print("APPEAR")
|
Print("APPEAR")
|
||||||
// Print(selectedRibbon[0])
|
// Print(selectedRibbon[0])
|
||||||
// scrollId = "3"
|
// scrollId = "3"
|
||||||
|
@ -452,9 +465,8 @@ struct ContentView: View {
|
||||||
showOverlay: $showOverlay,
|
showOverlay: $showOverlay,
|
||||||
appDatabase: appDatabase,
|
appDatabase: appDatabase,
|
||||||
loading: true)
|
loading: true)
|
||||||
|
|
||||||
}
|
}
|
||||||
.onChange(of: refresh) { target in
|
.onChange(of: refresh) { _ in
|
||||||
// if let target = target {
|
// if let target = target {
|
||||||
// gTracker!.visibleViews["123123"] = CGFloat(100)
|
// gTracker!.visibleViews["123123"] = CGFloat(100)
|
||||||
// Print("ON CHANGE", gTracker!.visibleViews)
|
// Print("ON CHANGE", gTracker!.visibleViews)
|
||||||
|
@ -469,11 +481,10 @@ struct ContentView: View {
|
||||||
// if (currentId != scrollId!) {
|
// if (currentId != scrollId!) {
|
||||||
|
|
||||||
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
|
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
|
||||||
|
|
||||||
Print(" scroll id target", scrollId)
|
Print(" scroll id target", scrollId)
|
||||||
Print(" current id ", currentId)
|
Print(" current id ", currentId)
|
||||||
Print(gTracker!.sortedViewIDs)
|
Print(gTracker!.sortedViewIDs)
|
||||||
if (currentId! != scrollId!) {
|
if currentId! != scrollId! {
|
||||||
Print("NO MATCH")
|
Print("NO MATCH")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -482,7 +493,7 @@ struct ContentView: View {
|
||||||
var curOffset = gTracker!.visibleViews[scrollId!]
|
var curOffset = gTracker!.visibleViews[scrollId!]
|
||||||
Print(" stats", gTracker!.visibleViews)
|
Print(" stats", gTracker!.visibleViews)
|
||||||
// // setScrollOffset = CGFloat(Int(currentOffset!) * -1 + Int(scrollOffset!))
|
// // setScrollOffset = CGFloat(Int(currentOffset!) * -1 + Int(scrollOffset!))
|
||||||
if (curOffset != nil) {
|
if curOffset != nil {
|
||||||
setScrollOffset = CGFloat(Int(scrollOffset!) - Int(curOffset!))
|
setScrollOffset = CGFloat(Int(scrollOffset!) - Int(curOffset!))
|
||||||
Print("applying scroll offset \(setScrollOffset)")
|
Print("applying scroll offset \(setScrollOffset)")
|
||||||
// // setScrollOffset = CGFloat(Int(scrollOffset!))
|
// // setScrollOffset = CGFloat(Int(scrollOffset!))
|
||||||
|
@ -494,7 +505,6 @@ struct ContentView: View {
|
||||||
|
|
||||||
setScrollOffset = CGFloat(adjust)
|
setScrollOffset = CGFloat(adjust)
|
||||||
refresh.toggle()
|
refresh.toggle()
|
||||||
|
|
||||||
}
|
}
|
||||||
// // currentId = scrollId!
|
// // currentId = scrollId!
|
||||||
|
|
||||||
|
@ -507,16 +517,16 @@ struct ContentView: View {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.introspectScrollView { scrollView in
|
.introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17)) { scrollView in Print("introspect")
|
||||||
Print("introspect")
|
|
||||||
// scrollView.delegate = scrollDelegate
|
|
||||||
// Print("Scroll delegate offset", scrollDelegate.scrollOffset)
|
// Print("Scroll delegate offset", scrollDelegate.scrollOffset)
|
||||||
|
|
||||||
if (setScrollOffset != nil) {
|
if setScrollOffset != nil {
|
||||||
// Print("Setting scroll offset in introspect", setScrollOffset)
|
// Print("Setting scroll offset in introspect", setScrollOffset)
|
||||||
DispatchQueue.main.async {
|
DispatchQueue.main.async {
|
||||||
scrollView.contentOffset.y = scrollView.contentOffset.y + setScrollOffset!
|
scrollView.contentOffset.y = scrollView.contentOffset.y + setScrollOffset!
|
||||||
setScrollOffset = nil
|
setScrollOffset = nil
|
||||||
|
|
||||||
|
// self.showOverlay = false
|
||||||
withAnimation {
|
withAnimation {
|
||||||
showOverlay = false
|
showOverlay = false
|
||||||
}
|
}
|
||||||
|
@ -543,7 +553,7 @@ struct ContentView: View {
|
||||||
DragGesture()
|
DragGesture()
|
||||||
.onChanged { gesture in
|
.onChanged { gesture in
|
||||||
|
|
||||||
if (endedDrag) {
|
if endedDrag {
|
||||||
endedDrag = false
|
endedDrag = false
|
||||||
scrollOffset = readOffset.y - 20
|
scrollOffset = readOffset.y - 20
|
||||||
// _ = Print("meow")
|
// _ = Print("meow")
|
||||||
|
@ -551,9 +561,9 @@ struct ContentView: View {
|
||||||
// logger.error("hello222")
|
// logger.error("hello222")
|
||||||
// NSLog("hellooo")
|
// NSLog("hellooo")
|
||||||
Print(viewState.width)
|
Print(viewState.width)
|
||||||
if (abs(gesture.translation.width) > 20) {
|
if abs(gesture.translation.width) > 20 {
|
||||||
viewState.width = gesture.translation.width
|
viewState.width = gesture.translation.width
|
||||||
if (gesture.translation.width < -50 && pulledOut.width == CGFloat(0)) {
|
if gesture.translation.width < -50, pulledOut.width == CGFloat(0) {
|
||||||
dragOffset = gesture.translation.width + 50
|
dragOffset = gesture.translation.width + 50
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -563,10 +573,9 @@ struct ContentView: View {
|
||||||
.onEnded { _ in
|
.onEnded { _ in
|
||||||
endedDrag = true
|
endedDrag = true
|
||||||
var pulledOutWidth = CGFloat(0)
|
var pulledOutWidth = CGFloat(0)
|
||||||
if (viewState.width < 0) {
|
if viewState.width < 0 {
|
||||||
pulledOutWidth = CGFloat(0)
|
pulledOutWidth = CGFloat(0)
|
||||||
}
|
} else if abs(viewState.width + pulledOut.width) > 30 {
|
||||||
else if abs(viewState.width + pulledOut.width ) > 30 {
|
|
||||||
pulledOutWidth = CGFloat(200)
|
pulledOutWidth = CGFloat(200)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -578,7 +587,7 @@ struct ContentView: View {
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
Text("DRAG").foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00)))
|
Text("separator").foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00)))
|
||||||
.gesture(
|
.gesture(
|
||||||
DragGesture()
|
DragGesture()
|
||||||
.onChanged { gesture in
|
.onChanged { gesture in
|
||||||
|
@ -620,17 +629,15 @@ struct ContentView: View {
|
||||||
// }
|
// }
|
||||||
)
|
)
|
||||||
|
|
||||||
ScrollViewReader { proxy in
|
ScrollViewReader { _ in
|
||||||
VisibilityTrackingScrollView(action: handleVisibilityChanged2) {
|
VisibilityTrackingScrollView(action: handleVisibilityChanged2) {
|
||||||
// ScrollView {
|
// ScrollView {
|
||||||
|
|
||||||
LazyVStack {
|
LazyVStack {
|
||||||
ForEach(segs) { seg in
|
ForEach(segs) { seg in
|
||||||
SegRow(seg: seg,
|
SegRow(seg: seg,
|
||||||
ribbonId: selectedRibbon[0].id!
|
ribbonId: selectedRibbon[0].id!)
|
||||||
)
|
|
||||||
.id("\(seg.id)")
|
.id("\(seg.id)")
|
||||||
|
|
||||||
.padding(EdgeInsets(top: 10, leading: 20, bottom: 40, trailing: 20))
|
.padding(EdgeInsets(top: 10, leading: 20, bottom: 40, trailing: 20))
|
||||||
.trackVisibility(id: "\(seg.id)")
|
.trackVisibility(id: "\(seg.id)")
|
||||||
|
|
||||||
|
@ -648,7 +655,7 @@ struct ContentView: View {
|
||||||
.background(Color(red: 0.18, green: 0.18, blue: 0.18))
|
.background(Color(red: 0.18, green: 0.18, blue: 0.18))
|
||||||
}
|
}
|
||||||
|
|
||||||
.onAppear() {
|
.onAppear {
|
||||||
Print("APPEAR")
|
Print("APPEAR")
|
||||||
// Print(selectedRibbon[0])
|
// Print(selectedRibbon[0])
|
||||||
// scrollId = "3"
|
// scrollId = "3"
|
||||||
|
@ -663,7 +670,6 @@ struct ContentView: View {
|
||||||
// showOverlay: $showOverlay,
|
// showOverlay: $showOverlay,
|
||||||
// appDatabase: appDatabase,
|
// appDatabase: appDatabase,
|
||||||
// loading: true)
|
// loading: true)
|
||||||
|
|
||||||
}
|
}
|
||||||
// .onChange(of: refresh) { target in
|
// .onChange(of: refresh) { target in
|
||||||
// //if let target = target {
|
// //if let target = target {
|
||||||
|
@ -693,7 +699,6 @@ struct ContentView: View {
|
||||||
// Print("NO MATCH")
|
// Print("NO MATCH")
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
// // Print(" scroll offset target", scrollOffset)
|
// // Print(" scroll offset target", scrollOffset)
|
||||||
// Print(" current offset ", gTracker!.visibleViews[scrollId!])
|
// Print(" current offset ", gTracker!.visibleViews[scrollId!])
|
||||||
// var curOffset = gTracker!.visibleViews[scrollId!]
|
// var curOffset = gTracker!.visibleViews[scrollId!]
|
||||||
|
@ -760,7 +765,7 @@ struct ContentView: View {
|
||||||
DragGesture()
|
DragGesture()
|
||||||
.onChanged { gesture in
|
.onChanged { gesture in
|
||||||
|
|
||||||
if (endedDrag) {
|
if endedDrag {
|
||||||
endedDrag = false
|
endedDrag = false
|
||||||
scrollOffset = readOffset.y - 20
|
scrollOffset = readOffset.y - 20
|
||||||
// _ = Print("meow")
|
// _ = Print("meow")
|
||||||
|
@ -768,7 +773,7 @@ struct ContentView: View {
|
||||||
// logger.error("hello222")
|
// logger.error("hello222")
|
||||||
// NSLog("hellooo")
|
// NSLog("hellooo")
|
||||||
Print(viewState.width)
|
Print(viewState.width)
|
||||||
if (abs(gesture.translation.width) > 20) {
|
if abs(gesture.translation.width) > 20 {
|
||||||
viewState.width = gesture.translation.width
|
viewState.width = gesture.translation.width
|
||||||
}
|
}
|
||||||
// offset.y = gesture.translation.width
|
// offset.y = gesture.translation.width
|
||||||
|
@ -777,10 +782,9 @@ struct ContentView: View {
|
||||||
.onEnded { _ in
|
.onEnded { _ in
|
||||||
endedDrag = true
|
endedDrag = true
|
||||||
var pulledOutWidth = CGFloat(0)
|
var pulledOutWidth = CGFloat(0)
|
||||||
if (viewState.width < 0) {
|
if viewState.width < 0 {
|
||||||
pulledOutWidth = CGFloat(0)
|
pulledOutWidth = CGFloat(0)
|
||||||
}
|
} else if abs(viewState.width + pulledOut.width) > 30 {
|
||||||
else if abs(viewState.width + pulledOut.width ) > 30 {
|
|
||||||
pulledOutWidth = CGFloat(200)
|
pulledOutWidth = CGFloat(200)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -790,13 +794,11 @@ struct ContentView: View {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (showOverlay) {
|
if showOverlay {
|
||||||
Rectangle()
|
Rectangle()
|
||||||
.frame(width: geometry.size.width - 50, height: geometry.size.height + 200)
|
.frame(width: geometry.size.width - 50, height: geometry.size.height + 200)
|
||||||
|
|
||||||
.background(.ultraThinMaterial)
|
.background(.ultraThinMaterial)
|
||||||
|
|
||||||
// .blur(radius: 0.8)
|
// .blur(radius: 0.8)
|
||||||
|
@ -807,21 +809,15 @@ struct ContentView: View {
|
||||||
// .frame(width: geometry.size.width - 50)
|
// .frame(width: geometry.size.width - 50)
|
||||||
.offset(x: pulledOut.width)
|
.offset(x: pulledOut.width)
|
||||||
.offset(x: viewState.width, y: viewState.height)
|
.offset(x: viewState.width, y: viewState.height)
|
||||||
|
|
||||||
.zIndex(2)
|
.zIndex(2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func handleVisibilityChanged2(_: String, change _: VisibilityChange, tracker _: VisibilityTracker<String>) {}
|
||||||
|
|
||||||
func handleVisibilityChanged2(_ id: String, change: VisibilityChange, tracker: VisibilityTracker<String>) {
|
func handleVisibilityChanged(_: String, change _: VisibilityChange, tracker: VisibilityTracker<String>) {
|
||||||
}
|
|
||||||
|
|
||||||
func handleVisibilityChanged(_ id: String, change: VisibilityChange, tracker: VisibilityTracker<String>) {
|
|
||||||
|
|
||||||
|
|
||||||
// var printRate: Int64 = 10
|
// var printRate: Int64 = 10
|
||||||
gTracker = tracker
|
gTracker = tracker
|
||||||
|
|
||||||
|
@ -843,8 +839,7 @@ struct ContentView: View {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
let visibleViews2 = Array(tracker.visibleViews.keys)
|
let visibleViews2 = Array(tracker.visibleViews.keys)
|
||||||
if (visibleViews2.count == 0) {
|
if visibleViews2.count == 0 {
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -878,52 +873,48 @@ private let itemFormatter: DateFormatter = {
|
||||||
struct DropViewDelegate2: DropDelegate {
|
struct DropViewDelegate2: DropDelegate {
|
||||||
@Binding var isDragging: Bool
|
@Binding var isDragging: Bool
|
||||||
|
|
||||||
func dropUpdated(info: DropInfo) -> DropProposal? {
|
func dropUpdated(info _: DropInfo) -> DropProposal? {
|
||||||
return DropProposal(operation: .move)
|
return DropProposal(operation: .move)
|
||||||
}
|
}
|
||||||
|
|
||||||
func performDrop(info: DropInfo) -> Bool {
|
func performDrop(info _: DropInfo) -> Bool {
|
||||||
isDragging = false
|
isDragging = false
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func dropEntered(info: DropInfo) {
|
func dropEntered(info _: DropInfo) {
|
||||||
isDragging = true
|
isDragging = true
|
||||||
print("SECOND DROPPPOOO")
|
print("SECOND DROPPPOOO")
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct DropViewDelegate: DropDelegate {
|
struct DropViewDelegate: DropDelegate {
|
||||||
|
|
||||||
let destinationItem: Ribbon
|
let destinationItem: Ribbon
|
||||||
// @Binding var colors: [Color]
|
// @Binding var colors: [Color]
|
||||||
@Binding var draggedItem: Ribbon?
|
@Binding var draggedItem: Ribbon?
|
||||||
@Binding var isDragging: Bool
|
@Binding var isDragging: Bool
|
||||||
let appDatabase: AppDatabase
|
let appDatabase: AppDatabase
|
||||||
|
|
||||||
func dropUpdated(info: DropInfo) -> DropProposal? {
|
func dropUpdated(info _: DropInfo) -> DropProposal? {
|
||||||
return DropProposal(operation: .move)
|
return DropProposal(operation: .move)
|
||||||
}
|
}
|
||||||
|
|
||||||
func dropExited(info: DropInfo) {
|
func dropExited(info _: DropInfo) {
|
||||||
print("EXITED")
|
print("EXITED")
|
||||||
isDragging = false
|
isDragging = false
|
||||||
}
|
}
|
||||||
|
|
||||||
func dropEntered(info: DropInfo) {
|
func dropEntered(info _: DropInfo) {
|
||||||
|
|
||||||
Task {
|
Task {
|
||||||
isDragging = true
|
isDragging = true
|
||||||
if (draggedItem == nil) {
|
if draggedItem == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if disableDrop {
|
if disableDrop {
|
||||||
return;
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var newRibbon = draggedItem!
|
var newRibbon = draggedItem!
|
||||||
var newDest = destinationItem
|
var newDest = destinationItem
|
||||||
|
|
||||||
|
@ -935,8 +926,7 @@ struct DropViewDelegate: DropDelegate {
|
||||||
print("dest item")
|
print("dest item")
|
||||||
print(destinationItem)
|
print(destinationItem)
|
||||||
|
|
||||||
|
if draggedItem!.id! == destinationItem.id! {
|
||||||
if (draggedItem!.id! == destinationItem.id!) {
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -953,7 +943,7 @@ struct DropViewDelegate: DropDelegate {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func performDrop(info: DropInfo) -> Bool {
|
func performDrop(info _: DropInfo) -> Bool {
|
||||||
print("PERFORMED DROPPPP")
|
print("PERFORMED DROPPPP")
|
||||||
draggedItem = nil
|
draggedItem = nil
|
||||||
isDragging = false
|
isDragging = false
|
||||||
|
@ -971,7 +961,9 @@ struct ContentView_Previews: PreviewProvider {
|
||||||
|
|
||||||
extension View {
|
extension View {
|
||||||
func Print(_ vars: Any...) -> some View {
|
func Print(_ vars: Any...) -> some View {
|
||||||
for v in vars { print(v) }
|
for v in vars {
|
||||||
|
print(v)
|
||||||
|
}
|
||||||
return EmptyView()
|
return EmptyView()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict/>
|
||||||
<key>com.apple.developer.authentication-services.autofill-credential-provider</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
</plist>
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>_XCCurrentVersionName</key>
|
|
||||||
<string>gloss.xcdatamodel</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
|
@ -1,9 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
||||||
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="1" systemVersion="11A491" minimumToolsVersion="Automatic" sourceLanguage="Swift" usedWithCloudKit="false" userDefinedModelVersionIdentifier="">
|
|
||||||
<entity name="Item" representedClassName="Item" syncable="YES" codeGenerationType="class">
|
|
||||||
<attribute name="timestamp" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
|
|
||||||
</entity>
|
|
||||||
<elements>
|
|
||||||
<element name="Item" positionX="-63" positionY="-18" width="128" height="44"/>
|
|
||||||
</elements>
|
|
||||||
</model>
|
|
Loading…
Reference in New Issue