From bcdece3beee851f8d0ce41950eacd4567e427bc5 Mon Sep 17 00:00:00 2001 From: neon443 <69979447+neon443@users.noreply.github.com> Date: Tue, 8 Jul 2025 12:57:23 +0100 Subject: [PATCH] themeeditor can now save add an updatetheme remove the frame on the terminalcontroller, it made incorrect sizes --- ShhShell/Host/HostsManager.swift | 5 +++++ ShhShell/Views/Terminal/ShellView.swift | 4 ---- ShhShell/Views/Themes/ThemeEditorView.swift | 14 ++++++++++++-- ShhShell/Views/Themes/ThemePreview.swift | 2 +- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/ShhShell/Host/HostsManager.swift b/ShhShell/Host/HostsManager.swift index 9befb64..439cff4 100644 --- a/ShhShell/Host/HostsManager.swift +++ b/ShhShell/Host/HostsManager.swift @@ -114,6 +114,11 @@ class HostsManager: ObservableObject, @unchecked Sendable { return themeInQuestion == self.selectedTheme } + func updateTheme(_ theme: Theme) { + guard let index = themes.firstIndex(where: { $0.id == theme.id }) else { return } + themes[index] = theme + } + func renameTheme(_ theme: Theme?, to newName: String) { guard let theme else { return } guard theme.name != newName else { return } diff --git a/ShhShell/Views/Terminal/ShellView.swift b/ShhShell/Views/Terminal/ShellView.swift index da2bda7..dd6a394 100644 --- a/ShhShell/Views/Terminal/ShellView.swift +++ b/ShhShell/Views/Terminal/ShellView.swift @@ -21,10 +21,6 @@ struct ShellView: View { hostsManager.selectedTheme.background.suiColor .ignoresSafeArea(.all) TerminalController(handler: handler, hostsManager: hostsManager) - .frame( - width: container.sessions[handler.sessionID ?? UUID()]?.terminalView.getOptimalFrameSize().width, - height: container.sessions[handler.sessionID ?? UUID()]?.terminalView.getOptimalFrameSize().width - ) Group { Color.gray.opacity(0.2) diff --git a/ShhShell/Views/Themes/ThemeEditorView.swift b/ShhShell/Views/Themes/ThemeEditorView.swift index a1f7f8b..b25361a 100644 --- a/ShhShell/Views/Themes/ThemeEditorView.swift +++ b/ShhShell/Views/Themes/ThemeEditorView.swift @@ -9,10 +9,13 @@ import SwiftUI import SwiftTerm struct ThemeEditorView: View { + @ObservedObject var hostsManager: HostsManager + // @State var theme: Theme @State var themeCodable: ThemeCodable - init(theme: Theme) { + init(hostsManager: HostsManager, theme: Theme) { + self.hostsManager = hostsManager // self.theme = theme self.themeCodable = theme.themeCodable } @@ -42,6 +45,13 @@ struct ThemeEditorView: View { .fill(themeCodable.selectedText.stColor.suiColor) } .frame(width: 100) + .toolbar { + Button() { + + } label: { + Label("Donw", systemImage: "checkmark") + } + } ForEach(0...1, id: \.self) { row in HStack { @@ -57,5 +67,5 @@ struct ThemeEditorView: View { } #Preview { - ThemeEditorView(theme: Theme.defaultTheme) + ThemeEditorView(hostsManager: HostsManager(), theme: Theme.defaultTheme) } diff --git a/ShhShell/Views/Themes/ThemePreview.swift b/ShhShell/Views/Themes/ThemePreview.swift index 0a20703..04d5f2b 100644 --- a/ShhShell/Views/Themes/ThemePreview.swift +++ b/ShhShell/Views/Themes/ThemePreview.swift @@ -79,7 +79,7 @@ struct ThemePreview: View { .contextMenu { if canModify { NavigationLink { - ThemeEditorView(theme: theme) + ThemeEditorView(hostsManager: hostsManager, theme: theme) } label: { Label("Edit", systemImage: "pencil") }