Flag queues whose driver filters need Rosetta or are missing

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
kfattic
2026-09-16 14:23:31 -05:00
parent cf0241beac
commit 366bd74225
12 changed files with 362 additions and 5 deletions

View File

@@ -37,6 +37,8 @@ enum JobFilter: String, CaseIterable, Identifiable {
final class PrinterDetailModel {
let queue: String
private(set) var printer: IPPGroup?
/// Intel-only or missing driver filters, from the queue's PPD.
private(set) var driverFilters: DriverFilterReport?
private(set) var jobs: [JobSummary] = []
private(set) var loadError: String?
private(set) var isWorking = false
@@ -73,6 +75,11 @@ final class PrinterDetailModel {
do {
printer = try await store.client.getPrinterAttributes(queue: queue, requested: Self.headerAttributes)
loadError = nil
if let text = try await store.client.getPPD(queue: queue) {
driverFilters = await Task.detached { DriverFilterCheck.check(PPD(text: text)) }.value
} else {
driverFilters = nil
}
} catch {
loadError = String(describing: error)
store.report("ERROR: \(queue): \(error)")