From 837bce78cfc9b031d07a3de994c03a0cf5292c16 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 7 Mar 2023 12:02:01 +0800 Subject: [PATCH] TDKCandidates // Disallow filtering single kanjis through context menu. --- .../TDKCandidates/VwrCandidateTDK_Cocoa.swift | 26 +++++++++++-------- .../VwrCandidateTDK_SwiftUI.swift | 12 ++++++--- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_Cocoa.swift b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_Cocoa.swift index fa0b9a97..eed996f0 100644 --- a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_Cocoa.swift +++ b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_Cocoa.swift @@ -339,25 +339,29 @@ private extension VwrCandidateTDKCocoa { action: #selector(menuActionOfBoosting(_:)), keyEquivalent: "" ) + boostMenuItem.target = self + newMenu.addItem(boostMenuItem) let nerfMenuItem = NSMenuItem( title: "↓ \(cellData.displayedText)", action: #selector(menuActionOfNerfing(_:)), keyEquivalent: "" ) - - let filterMenuItem = NSMenuItem( - title: "✖︎ \(cellData.displayedText)", - action: #selector(menuActionOfFiltering(_:)), - keyEquivalent: "" - ) - - boostMenuItem.target = self nerfMenuItem.target = self - filterMenuItem.target = self - newMenu.addItem(boostMenuItem) newMenu.addItem(nerfMenuItem) - newMenu.addItem(filterMenuItem) + + if let dataAll = (target as? VwrCandidateTDKCocoa)?.thePool.candidateDataAll, + dataAll.count > cellData.index, dataAll[cellData.index].spanLength > 1 + { + let filterMenuItem = NSMenuItem( + title: "✖︎ \(cellData.displayedText)", + action: #selector(menuActionOfFiltering(_:)), + keyEquivalent: "" + ) + filterMenuItem.target = self + newMenu.addItem(filterMenuItem) + } + theMenu = newMenu } diff --git a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_SwiftUI.swift b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_SwiftUI.swift index b69953d3..15c14ded 100644 --- a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_SwiftUI.swift +++ b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_SwiftUI.swift @@ -168,10 +168,14 @@ extension VwrCandidateTDK { } label: { Text("↓ " + cell.displayedText) } - Button { - didRightClickCandidateAt(cell.index, action: .toFilter) - } label: { - Text("✖︎ " + cell.displayedText) + if thePool.candidateDataAll.count > cell.index, + thePool.candidateDataAll[cell.index].spanLength > 1 + { + Button { + didRightClickCandidateAt(cell.index, action: .toFilter) + } label: { + Text("✖︎ " + cell.displayedText) + } } } }