From 10310be80edd60925b16dd2c5e48643f88d2e6de Mon Sep 17 00:00:00 2001 From: neon443 <69979447+neon443@users.noreply.github.com> Date: Wed, 9 Jul 2025 13:40:09 +0100 Subject: [PATCH] live updating of themepreview --- ShhShell.xcodeproj/project.pbxproj | 4 -- ShhShell/Views/Themes/ThemeEditorView.swift | 12 +++-- ShhShell/Views/Themes/ThemePreview.swift | 49 --------------------- 3 files changed, 5 insertions(+), 60 deletions(-) delete mode 100644 ShhShell/Views/Themes/ThemePreview.swift diff --git a/ShhShell.xcodeproj/project.pbxproj b/ShhShell.xcodeproj/project.pbxproj index 0afc0d9..82f53b7 100644 --- a/ShhShell.xcodeproj/project.pbxproj +++ b/ShhShell.xcodeproj/project.pbxproj @@ -72,7 +72,6 @@ A98554632E0587DF009051BD /* HostsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A98554622E0587DF009051BD /* HostsView.swift */; }; A9A587202E0BF220006B31E6 /* SwiftTerm in Frameworks */ = {isa = PBXBuildFile; productRef = A9A5871F2E0BF220006B31E6 /* SwiftTerm */; }; A9BA1D192E1D9AE1005BDCEF /* SwiftTerm.Color.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BA1D182E1D9AE1005BDCEF /* SwiftTerm.Color.swift */; }; - A9BA1D1B2E1E81CA005BDCEF /* ThemePreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BA1D1A2E1E81CA005BDCEF /* ThemePreview.swift */; }; A9C4140C2E096DB7005E3047 /* SSHError.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9C4140B2E096DB7005E3047 /* SSHError.swift */; }; A9C897EF2DF1A9A400EF9A5F /* SSHHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9C897EE2DF1A9A400EF9A5F /* SSHHandler.swift */; }; A9D819292E0E904200442D38 /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9D819282E0E904200442D38 /* Theme.swift */; }; @@ -195,7 +194,6 @@ A98554602E058433009051BD /* HostsManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HostsManager.swift; sourceTree = ""; }; A98554622E0587DF009051BD /* HostsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HostsView.swift; sourceTree = ""; }; A9BA1D182E1D9AE1005BDCEF /* SwiftTerm.Color.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftTerm.Color.swift; sourceTree = ""; }; - A9BA1D1A2E1E81CA005BDCEF /* ThemePreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreview.swift; sourceTree = ""; }; A9C4140B2E096DB7005E3047 /* SSHError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSHError.swift; sourceTree = ""; }; A9C897EE2DF1A9A400EF9A5F /* SSHHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSHHandler.swift; sourceTree = ""; }; A9D819282E0E904200442D38 /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; @@ -538,7 +536,6 @@ A9D8192E2E0F1BEE00442D38 /* ThemeButton.swift */, A9FD376A2E16DABF005319A8 /* AnsiPickerView.swift */, A9485C772E1BFA5000209824 /* ThemeEditorView.swift */, - A9BA1D1A2E1E81CA005BDCEF /* ThemePreview.swift */, ); path = Themes; sourceTree = ""; @@ -726,7 +723,6 @@ A923172F2E08851200ECE1E6 /* ShellView.swift in Sources */, A9D819292E0E904200442D38 /* Theme.swift in Sources */, A9D8192D2E0E9EB500442D38 /* ThemeManagerView.swift in Sources */, - A9BA1D1B2E1E81CA005BDCEF /* ThemePreview.swift in Sources */, A9FD375D2E143D7E005319A8 /* KeyStoreError.swift in Sources */, A9835C3C2E17CCA500969508 /* TrafficLights.swift in Sources */, A9485C782E1BFA5000209824 /* ThemeEditorView.swift in Sources */, diff --git a/ShhShell/Views/Themes/ThemeEditorView.swift b/ShhShell/Views/Themes/ThemeEditorView.swift index d62c2e1..484ab5f 100644 --- a/ShhShell/Views/Themes/ThemeEditorView.swift +++ b/ShhShell/Views/Themes/ThemeEditorView.swift @@ -20,17 +20,15 @@ struct ThemeEditorView: View { hostsManager.selectedTheme.background.suiColor.opacity(0.7) .ignoresSafeArea(.all) NavigationStack { - ThemePreview(theme: $theme, padding: 10, paletteR: 20) + ThemeButton(hostsManager: hostsManager, theme: $theme, canModify: false) .id(theme) .padding(.bottom) .fixedSize(horizontal: false, vertical: true) - - List { - Section("Name") { - TextField("Name", text: $theme.name) - .textFieldStyle(.roundedBorder) + .onChange(of: theme) { _ in + print(theme) } - + + List { Section("Main Colors") { ColorPicker("Text", selection: $theme.foreground.suiColor, supportsOpacity: false) ColorPicker("Background", selection: $theme.background.suiColor, supportsOpacity: false) diff --git a/ShhShell/Views/Themes/ThemePreview.swift b/ShhShell/Views/Themes/ThemePreview.swift deleted file mode 100644 index d8182a0..0000000 --- a/ShhShell/Views/Themes/ThemePreview.swift +++ /dev/null @@ -1,49 +0,0 @@ -// -// ThemePreview.swift -// ShhShell -// -// Created by neon443 on 09/07/2025. -// - -import SwiftUI - -struct ThemePreview: View { - @Binding var theme: Theme - @State var padding: CGFloat - @State var paletteR: CGFloat - - var body: some View { - VStack { - Text(theme.name) - .foregroundStyle(theme.foreground.suiColor) - .font(.headline) - .lineLimit(1) - - Spacer() - - VStack(spacing: 0) { - HStack(spacing: 0) { - ForEach(0..<8, id: \.self) { index in - Rectangle() - .aspectRatio(CGSize(width: 1, height: 1), contentMode: .fit) - .foregroundStyle(theme.ansi[index].suiColor) - } - } - - HStack(spacing: 0) { - ForEach(8..<16, id: \.self) { index in - Rectangle() - .aspectRatio(CGSize(width: 1, height: 1), contentMode: .fit) - .foregroundStyle(theme.ansi[index].suiColor) - } - } - } - .clipShape(RoundedRectangle(cornerRadius: paletteR)) - } - .padding(padding) - } -} - -#Preview { - ThemePreview(theme: .constant(Theme.defaultTheme), padding: 5, paletteR: 10) -}