Added a basic settings view, not too happy with it yet though

This commit is contained in:
breadone 2024-06-23 17:07:48 +12:00
parent 16bfb8d6ba
commit 9bffe349e0
No known key found for this signature in database
4 changed files with 66 additions and 0 deletions

View File

@ -32,6 +32,8 @@
46AD30F82C2689B900486C25 /* ProjectSlideshowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46AD30F72C2689B900486C25 /* ProjectSlideshowView.swift */; };
46D3E13F2C26D6430060722E /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46D3E13E2C26D6430060722E /* Constants.swift */; };
46D3E1402C26D6430060722E /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46D3E13E2C26D6430060722E /* Constants.swift */; };
46D3E1422C27DD5D0060722E /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46D3E1412C27DD5C0060722E /* SettingsView.swift */; };
46D3E1442C27DFCE0060722E /* Preferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46D3E1432C27DFCE0060722E /* Preferences.swift */; };
46E5FFD92C26A50D001191C9 /* CueCardViewPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46E5FFD82C26A50D001191C9 /* CueCardViewPresenter.swift */; };
/* End PBXBuildFile section */
@ -81,6 +83,8 @@
46AD30F52C26823B00486C25 /* AddNewCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddNewCardView.swift; sourceTree = "<group>"; };
46AD30F72C2689B900486C25 /* ProjectSlideshowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectSlideshowView.swift; sourceTree = "<group>"; };
46D3E13E2C26D6430060722E /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = "<group>"; };
46D3E1412C27DD5C0060722E /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = "<group>"; };
46D3E1432C27DFCE0060722E /* Preferences.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Preferences.swift; sourceTree = "<group>"; };
46E5FFD82C26A50D001191C9 /* CueCardViewPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CueCardViewPresenter.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
@ -180,6 +184,7 @@
46AD30F52C26823B00486C25 /* AddNewCardView.swift */,
46AD30F72C2689B900486C25 /* ProjectSlideshowView.swift */,
464787CA2C269CAF00A9C462 /* TeleprompterView.swift */,
46D3E1412C27DD5C0060722E /* SettingsView.swift */,
);
path = View;
sourceTree = "<group>";
@ -206,6 +211,7 @@
46AD30F12C2672BD00486C25 /* ColorModel.swift */,
46AD30F32C267D6400486C25 /* PreviewData.swift */,
46D3E13E2C26D6430060722E /* Constants.swift */,
46D3E1432C27DFCE0060722E /* Preferences.swift */,
);
path = Shared;
sourceTree = "<group>";
@ -319,7 +325,9 @@
46AD30ED2C266C0B00486C25 /* CardsView.swift in Sources */,
46AD30BD2C26557500486C25 /* MainView.swift in Sources */,
46AD30F22C2672BD00486C25 /* ColorModel.swift in Sources */,
46D3E1422C27DD5D0060722E /* SettingsView.swift in Sources */,
46D3E13F2C26D6430060722E /* Constants.swift in Sources */,
46D3E1442C27DFCE0060722E /* Preferences.swift in Sources */,
46AD30BF2C26557500486C25 /* Item.swift in Sources */,
46AD30F42C267D6400486C25 /* PreviewData.swift in Sources */,
46AD30BB2C26557500486C25 /* OnCueApp.swift in Sources */,

View File

@ -12,6 +12,7 @@ struct MainView: View {
@Environment(\.modelContext) private var modelContext
@Query private var items: [OCProject]
@State private var showSettingsView = false
@State private var newProjectName = ""
@State private var addNewProject = false
@State private var filterColor = ""
@ -37,6 +38,12 @@ struct MainView: View {
}
.toolbar {
// ToolbarItem(placement: .topBarLeading) {
// Button(action: {showSettingsView.toggle()}) {
// Image(systemName: "gear")
// }
//
// }
// ToolbarItem(placement: .topBarTrailing) {
// Menu {
// Picker(selection: $filterColor) {
@ -65,6 +72,9 @@ struct MainView: View {
.sheet(isPresented: $addNewProject) {
NewProjectForm(completionHandler: addItem)
}
.sheet(isPresented: $showSettingsView) {
SettingsView()
}
}
private func addItem(name: String, color: String) {

View File

@ -0,0 +1,36 @@
//
// SettingsView.swift
// OnCue
//
// Created by Pradyun Setti on 23/06/2024.
//
import SwiftUI
struct SettingsView: View {
@Environment(\.dismiss) var dismiss
// @State private var teleprompterSeparator = "---"
@AppStorage(Preferences.teleprompterSeparator) var teleprompterSeparator: String = "---"
var body: some View {
NavigationView {
List {
Section {
TextField(text: $teleprompterSeparator) { Text("Teleprompter Cuecard Separator") }
} header: { Text("Teleprompter View") }
}
.navigationTitle("Settings")
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .topBarTrailing) {
Button("Done") { dismiss() }
}
}
}
}
}
#Preview {
SettingsView()
}

12
Shared/Preferences.swift Normal file
View File

@ -0,0 +1,12 @@
//
// AppStorage.swift
// OnCue
//
// Created by Pradyun Setti on 23/06/2024.
//
import Foundation
public struct Preferences {
static let teleprompterSeparator = "teleprompterSeparator"
}