feat(hotkeys): h
This commit is contained in:
@@ -1512,27 +1512,37 @@ const LabelPage = ({
|
||||
]
|
||||
)
|
||||
|
||||
const handleToggleHideSelectedObject = useCallback(() => {
|
||||
const selectedContext = resolveSelectedObjectContext()
|
||||
if (!selectedContext) {
|
||||
notifications.show({
|
||||
color: "yellow",
|
||||
message: "请先选中单个对象",
|
||||
})
|
||||
return
|
||||
}
|
||||
const handleToggleHideAllObjects = useCallback(() => {
|
||||
const activeImageLabel = labelData.get(activeImage)
|
||||
if (!activeImageLabel?.size) return
|
||||
|
||||
const currentHideStatus =
|
||||
useObjectStore.getState().pathStatus[
|
||||
selectedContext.imageId + selectedContext.objectId
|
||||
]?.HIDE || false
|
||||
toggleObjectHideByShortcut(
|
||||
selectedContext.imageId,
|
||||
selectedContext.operationId,
|
||||
selectedContext.objectId,
|
||||
!currentHideStatus
|
||||
const activeImageOperations = Array.from(activeImageLabel.keys())
|
||||
const totalObjectCount = activeImageOperations.reduce(
|
||||
(count, operationId) => {
|
||||
return count + (activeImageLabel.get(operationId)?.length || 0)
|
||||
},
|
||||
0
|
||||
)
|
||||
}, [resolveSelectedObjectContext])
|
||||
if (!totalObjectCount) return
|
||||
|
||||
const pathStatus = useObjectStore.getState().pathStatus
|
||||
const areAllObjectsHidden = activeImageOperations.every((operationId) => {
|
||||
const operationChildren = activeImageLabel.get(operationId) || []
|
||||
return operationChildren.every(
|
||||
([objectId]) => pathStatus[activeImage + objectId]?.HIDE ?? false
|
||||
)
|
||||
})
|
||||
|
||||
const nextHide = !areAllObjectsHidden
|
||||
const { updateOperationStatus } = useObjectStore.getState()
|
||||
|
||||
activeImageOperations.forEach((operationId) => {
|
||||
updateOperationStatus(activeImage + operationId, "HIDE", nextHide)
|
||||
activeImageLabel.get(operationId)?.forEach(([objectId]) => {
|
||||
toggleObjectHideByShortcut(activeImage, operationId, objectId, nextHide)
|
||||
})
|
||||
})
|
||||
}, [activeImage, labelData])
|
||||
|
||||
const rerenderActiveImageByLabel = useCallback(
|
||||
(
|
||||
@@ -2123,7 +2133,7 @@ const LabelPage = ({
|
||||
|
||||
if (!e.ctrlKey && !e.metaKey && !e.altKey && lowerKey === "h") {
|
||||
e.preventDefault()
|
||||
handleToggleHideSelectedObject()
|
||||
handleToggleHideAllObjects()
|
||||
return
|
||||
}
|
||||
|
||||
@@ -2424,7 +2434,7 @@ const LabelPage = ({
|
||||
enterSelectedObjectDrawMode,
|
||||
focusInput,
|
||||
getOperationSchema,
|
||||
handleToggleHideSelectedObject,
|
||||
handleToggleHideAllObjects,
|
||||
handleMergeSelectedObjects,
|
||||
handleContinueSelectedPolygon,
|
||||
handleShortcut,
|
||||
|
||||
Reference in New Issue
Block a user