refactor: share footer action pill across launcher tools

This commit is contained in:
2026-10-18 02:08:36 +02:00
parent b13976c516
commit b325b8cfcd
5 changed files with 52 additions and 82 deletions
+1 -29
View File
@@ -102,11 +102,6 @@ final class TranslationController: NSViewController {
languageButton.setAccessibilityLabel("Translation languages")
actionsButton.target = self
actionsButton.action = #selector(showActions)
actionsButton.keyEquivalent = "k"
actionsButton.keyEquivalentModifierMask = .command
actionsButton.isBordered = false
actionsButton.font = .systemFont(ofSize: 12, weight: .medium)
actionsButton.contentTintColor = SunsetPalette.text
actions.closed = { [weak self] in
self?.translateButton.keyEquivalent = "\r"
self?.focusSearch?()
@@ -122,31 +117,8 @@ final class TranslationController: NSViewController {
name: Notification.Name("ConjureTranslationCredentialsChanged"), object: nil)
translateButton.target = self
translateButton.action = #selector(performPrimaryAction)
translateButton.keyEquivalent = "\r"
translateButton.isBordered = false
translateButton.font = .systemFont(ofSize: 12, weight: .medium)
translateButton.contentTintColor = SunsetPalette.text
translateButton.toolTip = "Translate the input (Return). Escape dismisses Conjure."
let returnKey = ShortcutIndicator("↵")
let actionPill = NSView()
stylePill(actionPill)
let actionsKey = ShortcutIndicator("⌘", "K")
for control in [translateButton, returnKey, actionsButton, actionsKey] {
control.translatesAutoresizingMaskIntoConstraints = false
actionPill.addSubview(control)
}
NSLayoutConstraint.activate([
actionPill.heightAnchor.constraint(equalToConstant: 36),
translateButton.leadingAnchor.constraint(equalTo: actionPill.leadingAnchor, constant: 14),
translateButton.centerYAnchor.constraint(equalTo: actionPill.centerYAnchor),
returnKey.leadingAnchor.constraint(equalTo: translateButton.trailingAnchor, constant: 8),
returnKey.centerYAnchor.constraint(equalTo: actionPill.centerYAnchor),
actionsButton.leadingAnchor.constraint(equalTo: returnKey.trailingAnchor, constant: 14),
actionsButton.centerYAnchor.constraint(equalTo: actionPill.centerYAnchor),
actionsKey.leadingAnchor.constraint(equalTo: actionsButton.trailingAnchor, constant: 8),
actionsKey.centerYAnchor.constraint(equalTo: actionPill.centerYAnchor),
actionsKey.trailingAnchor.constraint(equalTo: actionPill.trailingAnchor, constant: -12),
])
let actionPill = ActionPill(primaryButton: translateButton, actionsButton: actionsButton)
let footer = NSStackView(views: [languageButton, status, settingsButton, NSView(), actionPill])
footer.orientation = .horizontal
footer.alignment = .centerY