WIP: enlarge card header source tile
This commit is contained in:
@@ -61,6 +61,7 @@ Use this checklist before a release or after changes to panel, pasteboard, setti
|
||||
28. Confirm the selected card shows a green corner Stack control, the action rail does not duplicate Stack, and clips added to Stack keep a visible corner indicator when selection moves away.
|
||||
29. Confirm single-line text cards do not repeat the same text in both title and body, while multi-line text cards show the remaining lines below the first line.
|
||||
30. Confirm the Pinned empty state points to the Pin action instead of a plain-key shortcut.
|
||||
31. Confirm each card's source or type badge reads as an attached header-corner tile instead of a small floating icon.
|
||||
|
||||
## Copy And Paste
|
||||
|
||||
|
||||
@@ -3077,7 +3077,15 @@ private final class ClipboardItemCardView: NSView, NSDraggingSource {
|
||||
}
|
||||
|
||||
private var headerBadgeSize: CGFloat {
|
||||
layout.isCompact ? 36 : 42
|
||||
layout.headerHeight
|
||||
}
|
||||
|
||||
private var headerBadgeCornerRadius: CGFloat {
|
||||
layout.isCompact ? 13 : 15
|
||||
}
|
||||
|
||||
private var headerBadgeIconInset: CGFloat {
|
||||
layout.isCompact ? 9 : 10
|
||||
}
|
||||
|
||||
private var stackCornerButtonSize: CGFloat {
|
||||
@@ -3988,10 +3996,10 @@ private final class ClipboardItemCardView: NSView, NSDraggingSource {
|
||||
private func iconBadge(for item: ClipboardItem) -> NSView {
|
||||
let badge = NSView()
|
||||
badge.wantsLayer = true
|
||||
badge.layer?.cornerRadius = 8
|
||||
badge.layer?.backgroundColor = NSColor.white.withAlphaComponent(0.92).cgColor
|
||||
badge.layer?.cornerRadius = headerBadgeCornerRadius
|
||||
badge.layer?.backgroundColor = NSColor.white.withAlphaComponent(0.95).cgColor
|
||||
badge.layer?.borderWidth = 1
|
||||
badge.layer?.borderColor = Palette.divider
|
||||
badge.layer?.borderColor = NSColor.white.withAlphaComponent(0.52).cgColor
|
||||
badge.translatesAutoresizingMaskIntoConstraints = false
|
||||
if let bundleId = item.sourceAppBundleId,
|
||||
let appURL = NSWorkspace.shared.urlForApplication(withBundleIdentifier: bundleId) {
|
||||
@@ -4000,10 +4008,10 @@ private final class ClipboardItemCardView: NSView, NSDraggingSource {
|
||||
icon.translatesAutoresizingMaskIntoConstraints = false
|
||||
badge.addSubview(icon)
|
||||
NSLayoutConstraint.activate([
|
||||
icon.leadingAnchor.constraint(equalTo: badge.leadingAnchor, constant: 8),
|
||||
icon.trailingAnchor.constraint(equalTo: badge.trailingAnchor, constant: -8),
|
||||
icon.topAnchor.constraint(equalTo: badge.topAnchor, constant: 8),
|
||||
icon.bottomAnchor.constraint(equalTo: badge.bottomAnchor, constant: -8)
|
||||
icon.leadingAnchor.constraint(equalTo: badge.leadingAnchor, constant: headerBadgeIconInset),
|
||||
icon.trailingAnchor.constraint(equalTo: badge.trailingAnchor, constant: -headerBadgeIconInset),
|
||||
icon.topAnchor.constraint(equalTo: badge.topAnchor, constant: headerBadgeIconInset),
|
||||
icon.bottomAnchor.constraint(equalTo: badge.bottomAnchor, constant: -headerBadgeIconInset)
|
||||
])
|
||||
} else {
|
||||
let image = NSImage(systemSymbolName: headerBadgeSymbol(for: item.kind), accessibilityDescription: kindLabel(for: item.kind))
|
||||
@@ -4015,11 +4023,12 @@ private final class ClipboardItemCardView: NSView, NSDraggingSource {
|
||||
icon.contentTintColor = accentColor(for: item.kind)
|
||||
icon.translatesAutoresizingMaskIntoConstraints = false
|
||||
badge.addSubview(icon)
|
||||
let symbolInset = headerBadgeIconInset + 2
|
||||
NSLayoutConstraint.activate([
|
||||
icon.leadingAnchor.constraint(equalTo: badge.leadingAnchor, constant: 9),
|
||||
icon.trailingAnchor.constraint(equalTo: badge.trailingAnchor, constant: -9),
|
||||
icon.topAnchor.constraint(equalTo: badge.topAnchor, constant: 9),
|
||||
icon.bottomAnchor.constraint(equalTo: badge.bottomAnchor, constant: -9)
|
||||
icon.leadingAnchor.constraint(equalTo: badge.leadingAnchor, constant: symbolInset),
|
||||
icon.trailingAnchor.constraint(equalTo: badge.trailingAnchor, constant: -symbolInset),
|
||||
icon.topAnchor.constraint(equalTo: badge.topAnchor, constant: symbolInset),
|
||||
icon.bottomAnchor.constraint(equalTo: badge.bottomAnchor, constant: -symbolInset)
|
||||
])
|
||||
}
|
||||
return badge
|
||||
|
||||
@@ -437,6 +437,8 @@ final class ClipboardPanelViewTests: XCTestCase {
|
||||
XCTAssertEqual(fixture.view.debugFirstCardVisibleActionRailWidth, 210)
|
||||
XCTAssertFalse(fixture.view.debugFirstCardFooterDetailIsHidden)
|
||||
XCTAssertFalse(fixture.view.debugFirstCardHeaderBadgeIsHidden)
|
||||
XCTAssertEqual(fixture.view.debugFirstCardHeaderBadgeFrame.width, 56, accuracy: 0.5)
|
||||
XCTAssertEqual(fixture.view.debugFirstCardHeaderBadgeFrame.height, 56, accuracy: 0.5)
|
||||
XCTAssertEqual(fixture.view.debugFirstCardHeaderBadgeFrame.maxX, 320, accuracy: 0.5)
|
||||
XCTAssertEqual(fixture.view.debugFirstCardHeaderBadgeFrame.maxY, 244, accuracy: 0.5)
|
||||
|
||||
@@ -451,6 +453,8 @@ final class ClipboardPanelViewTests: XCTestCase {
|
||||
XCTAssertEqual(fixture.view.debugFirstCardVisibleActionRailWidth, 238)
|
||||
XCTAssertFalse(fixture.view.debugFirstCardFooterDetailIsHidden)
|
||||
XCTAssertFalse(fixture.view.debugFirstCardHeaderBadgeIsHidden)
|
||||
XCTAssertEqual(fixture.view.debugFirstCardHeaderBadgeFrame.width, 56, accuracy: 0.5)
|
||||
XCTAssertEqual(fixture.view.debugFirstCardHeaderBadgeFrame.height, 56, accuracy: 0.5)
|
||||
XCTAssertEqual(fixture.view.debugFirstCardHeaderBadgeFrame.maxX, 320, accuracy: 0.5)
|
||||
XCTAssertEqual(fixture.view.debugFirstCardHeaderBadgeFrame.maxY, 244, accuracy: 0.5)
|
||||
}
|
||||
@@ -467,6 +471,8 @@ final class ClipboardPanelViewTests: XCTestCase {
|
||||
XCTAssertEqual(fixture.view.debugFirstCardVisibleActionRailWidth, 196)
|
||||
XCTAssertLessThanOrEqual(fixture.view.debugFirstCardVisibleActionRailWidth, 197)
|
||||
XCTAssertFalse(fixture.view.debugFirstCardHeaderBadgeIsHidden)
|
||||
XCTAssertEqual(fixture.view.debugFirstCardHeaderBadgeFrame.width, 50, accuracy: 0.5)
|
||||
XCTAssertEqual(fixture.view.debugFirstCardHeaderBadgeFrame.height, 50, accuracy: 0.5)
|
||||
XCTAssertEqual(fixture.view.debugFirstCardHeaderBadgeFrame.maxX, 264, accuracy: 0.5)
|
||||
XCTAssertEqual(fixture.view.debugFirstCardHeaderBadgeFrame.maxY, 220, accuracy: 0.5)
|
||||
XCTAssertEqual(
|
||||
|
||||
Reference in New Issue
Block a user