ui: move translation credentials into settings
This commit is contained in:
@@ -5,6 +5,7 @@ import ServiceManagement
|
||||
@MainActor
|
||||
final class SettingsWindowController: NSWindowController, NSWindowDelegate {
|
||||
private let shortcuts: GlobalShortcuts
|
||||
private let translationSettings = TranslationSettingsController()
|
||||
private let destinationSelector = NSPopUpButton(frame: .zero, pullsDown: false)
|
||||
private let commandSpaceButton = NSButton(title: "Use ⌘Space", target: nil, action: nil)
|
||||
private var shortcut: GlobalShortcut { shortcuts.bindings[destinationSelector.indexOfSelectedItem] }
|
||||
@@ -146,15 +147,20 @@ final class SettingsWindowController: NSWindowController, NSWindowDelegate {
|
||||
let loginHeading = NSTextField(labelWithString: "Startup")
|
||||
loginHeading.font = .systemFont(ofSize: 20, weight: .semibold)
|
||||
loginHeading.textColor = SunsetPalette.text
|
||||
let translationHeading = NSTextField(labelWithString: "Conjure Translate")
|
||||
translationHeading.font = .systemFont(ofSize: 20, weight: .semibold)
|
||||
translationHeading.textColor = SunsetPalette.text
|
||||
|
||||
let stack = NSStackView(views: [
|
||||
heading, destinationSelector, controls, instructions, statusLabel, errorLabel, spotlight, keyboardSettings,
|
||||
loginHeading, loginToggle, loginStatus, loginSettings, recoveryLabel, recoveryButton
|
||||
loginHeading, loginToggle, loginStatus, loginSettings, recoveryLabel, recoveryButton,
|
||||
translationHeading, translationSettings.view
|
||||
])
|
||||
stack.orientation = .vertical
|
||||
stack.alignment = .leading
|
||||
stack.spacing = 12
|
||||
stack.setCustomSpacing(32, after: keyboardSettings)
|
||||
stack.setCustomSpacing(32, after: recoveryButton)
|
||||
stack.translatesAutoresizingMaskIntoConstraints = false
|
||||
let content = NSVisualEffectView()
|
||||
content.material = .hudWindow
|
||||
@@ -165,12 +171,27 @@ final class SettingsWindowController: NSWindowController, NSWindowDelegate {
|
||||
background.autoresizingMask = [.width, .height]
|
||||
background.setAccessibilityElement(false)
|
||||
content.addSubview(background)
|
||||
content.addSubview(stack)
|
||||
let scroll = NSScrollView()
|
||||
scroll.hasVerticalScroller = true
|
||||
scroll.autohidesScrollers = true
|
||||
scroll.drawsBackground = false
|
||||
scroll.translatesAutoresizingMaskIntoConstraints = false
|
||||
let document = SettingsDocumentView()
|
||||
document.translatesAutoresizingMaskIntoConstraints = false
|
||||
document.addSubview(stack)
|
||||
scroll.documentView = document
|
||||
content.addSubview(scroll)
|
||||
NSLayoutConstraint.activate([
|
||||
stack.leadingAnchor.constraint(equalTo: content.leadingAnchor, constant: 24),
|
||||
stack.trailingAnchor.constraint(equalTo: content.trailingAnchor, constant: -24),
|
||||
stack.topAnchor.constraint(equalTo: (window.contentLayoutGuide as! NSLayoutGuide).topAnchor, constant: 24),
|
||||
stack.bottomAnchor.constraint(lessThanOrEqualTo: content.bottomAnchor, constant: -24),
|
||||
scroll.leadingAnchor.constraint(equalTo: content.leadingAnchor),
|
||||
scroll.trailingAnchor.constraint(equalTo: content.trailingAnchor),
|
||||
scroll.topAnchor.constraint(equalTo: (window.contentLayoutGuide as! NSLayoutGuide).topAnchor),
|
||||
scroll.bottomAnchor.constraint(equalTo: content.bottomAnchor),
|
||||
document.widthAnchor.constraint(equalTo: scroll.contentView.widthAnchor),
|
||||
stack.leadingAnchor.constraint(equalTo: document.leadingAnchor, constant: 24),
|
||||
stack.trailingAnchor.constraint(equalTo: document.trailingAnchor, constant: -24),
|
||||
stack.topAnchor.constraint(equalTo: document.topAnchor, constant: 24),
|
||||
stack.bottomAnchor.constraint(equalTo: document.bottomAnchor, constant: -24),
|
||||
translationSettings.view.widthAnchor.constraint(equalTo: stack.widthAnchor),
|
||||
recorder.widthAnchor.constraint(greaterThanOrEqualToConstant: 190)
|
||||
])
|
||||
for label in [instructions, statusLabel, errorLabel, spotlight, loginStatus, recoveryLabel] {
|
||||
@@ -389,3 +410,7 @@ private final class ShortcutRecorderButton: NSButton {
|
||||
return resigned
|
||||
}
|
||||
}
|
||||
|
||||
private final class SettingsDocumentView: NSView {
|
||||
override var isFlipped: Bool { true }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user