From b7153787ba4e2a07d2e5a229f645b7b1ea2df730 Mon Sep 17 00:00:00 2001 From: quangson91 Date: Mon, 2 Oct 2023 22:34:07 +0700 Subject: [PATCH 1/2] Toggle visibility of object using shortcut Signed-off-by: quangson91 --- editor/src/clj/editor/keymap.clj | 6 +++--- editor/src/clj/editor/outline_view.clj | 6 ++---- editor/src/clj/editor/scene.clj | 6 ++---- editor/src/clj/editor/scene_visibility.clj | 22 +++++++++------------- 4 files changed, 16 insertions(+), 24 deletions(-) diff --git a/editor/src/clj/editor/keymap.clj b/editor/src/clj/editor/keymap.clj index e9feee653ad..ceb73592105 100644 --- a/editor/src/clj/editor/keymap.clj +++ b/editor/src/clj/editor/keymap.clj @@ -81,7 +81,7 @@ ["Meta+D" :select-next-occurrence] ["Meta+Delete" :delete-to-end-of-line] ["Meta+Down" :end-of-file] - ["Meta+E" :hide-selected] + ["Meta+E" :toggle-selected] ["Meta+F" :filter-form] ["Meta+F" :find-text] ["Meta+G" :find-next] @@ -169,7 +169,7 @@ ["Ctrl+Comma" :preferences] ["Ctrl+D" :select-next-occurrence] ["Ctrl+Delete" :delete-next-word] - ["Ctrl+E" :hide-selected] + ["Ctrl+E" :toggle-selected] ["Ctrl+End" :end-of-file] ["Ctrl+F" :filter-form] ["Ctrl+F" :find-text] @@ -277,7 +277,7 @@ ["Ctrl+Comma" :preferences] ["Ctrl+D" :select-next-occurrence] ["Ctrl+Delete" :delete-next-word] - ["Ctrl+E" :hide-selected] + ["Ctrl+E" :toggle-selected] ["Ctrl+End" :end-of-file] ["Ctrl+F" :filter-form] ["Ctrl+F" :find-text] diff --git a/editor/src/clj/editor/outline_view.clj b/editor/src/clj/editor/outline_view.clj index d4430c4819f..d2f57fa620c 100644 --- a/editor/src/clj/editor/outline_view.clj +++ b/editor/src/clj/editor/outline_view.clj @@ -267,12 +267,10 @@ {:label "Move Down" :command :move-down} {:label :separator} - {:label "Hide Objects" - :command :hide-selected} + {:label "Show/Hide Objects" + :command :toggle-selected} {:label "Hide Unselected Objects" :command :hide-unselected} - {:label "Show Objects" - :command :show-selected} {:label "Show Last Hidden Objects" :command :show-last-hidden} {:label "Show All Hidden Objects" diff --git a/editor/src/clj/editor/scene.clj b/editor/src/clj/editor/scene.clj index eba9b0cbe13..5b99224a8d4 100644 --- a/editor/src/clj/editor/scene.clj +++ b/editor/src/clj/editor/scene.clj @@ -1087,12 +1087,10 @@ {:label "Toggle Grid" :command :toggle-grid} {:label :separator} - {:label "Hide Selected Objects" - :command :hide-selected} + {:label "Show/Hide Selected Objects" + :command :toggle-selected} {:label "Hide Unselected Objects" :command :hide-unselected} - {:label "Show Selected Objects" - :command :show-selected} {:label "Show Last Hidden Objects" :command :show-last-hidden} {:label "Show All Hidden Objects" diff --git a/editor/src/clj/editor/scene_visibility.clj b/editor/src/clj/editor/scene_visibility.clj index 03c0b7253fd..926f3ed48e4 100644 --- a/editor/src/clj/editor/scene_visibility.clj +++ b/editor/src/clj/editor/scene_visibility.clj @@ -240,19 +240,15 @@ (g/node-value scene-visibility :unselected-hideable-outline-name-paths evaluation-context)) (run [scene-visibility] (hide-outline-name-paths! scene-visibility (g/node-value scene-visibility :unselected-hideable-outline-name-paths)))) -(handler/defhandler :hide-selected :workbench - (active? [scene-visibility evaluation-context] - (g/node-value scene-visibility :active-scene-resource-node evaluation-context)) - (enabled? [scene-visibility evaluation-context] - (g/node-value scene-visibility :selected-hideable-outline-name-paths evaluation-context)) - (run [scene-visibility] (hide-outline-name-paths! scene-visibility (g/node-value scene-visibility :selected-hideable-outline-name-paths)))) - -(handler/defhandler :show-selected :workbench - (active? [scene-visibility evaluation-context] - (g/node-value scene-visibility :active-scene-resource-node evaluation-context)) - (enabled? [scene-visibility evaluation-context] - (g/node-value scene-visibility :selected-showable-outline-name-paths evaluation-context)) - (run [scene-visibility] (show-outline-name-paths! scene-visibility (g/node-value scene-visibility :selected-showable-outline-name-paths)))) +(handler/defhandler :toggle-selected :workbench + (active? [scene-visibility evaluation-context] true) + (enabled? [scene-visibility evaluation-context] true) + (run [scene-visibility] + (g/with-auto-evaluation-context evaluation-context + (let [should_hide (g/node-value scene-visibility :selected-hideable-outline-name-paths evaluation-context)] + (if should_hide + (hide-outline-name-paths! scene-visibility (g/node-value scene-visibility :selected-hideable-outline-name-paths)) + (show-outline-name-paths! scene-visibility (g/node-value scene-visibility :selected-showable-outline-name-paths))))))) (handler/defhandler :show-last-hidden :workbench (active? [scene-visibility evaluation-context] From 3cf56a92a77dabdd38cb1ba6cb764374308d2d53 Mon Sep 17 00:00:00 2001 From: quangson91 Date: Tue, 3 Oct 2023 15:41:38 +0700 Subject: [PATCH 2/2] Rename command show/hide Signed-off-by: quangson91 --- editor/src/clj/editor/keymap.clj | 6 +++--- editor/src/clj/editor/outline_view.clj | 2 +- editor/src/clj/editor/scene.clj | 2 +- editor/src/clj/editor/scene_visibility.clj | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/editor/src/clj/editor/keymap.clj b/editor/src/clj/editor/keymap.clj index ceb73592105..ce7cb2c44c5 100644 --- a/editor/src/clj/editor/keymap.clj +++ b/editor/src/clj/editor/keymap.clj @@ -81,7 +81,7 @@ ["Meta+D" :select-next-occurrence] ["Meta+Delete" :delete-to-end-of-line] ["Meta+Down" :end-of-file] - ["Meta+E" :toggle-selected] + ["Meta+E" :hide-toggle-selected] ["Meta+F" :filter-form] ["Meta+F" :find-text] ["Meta+G" :find-next] @@ -169,7 +169,7 @@ ["Ctrl+Comma" :preferences] ["Ctrl+D" :select-next-occurrence] ["Ctrl+Delete" :delete-next-word] - ["Ctrl+E" :toggle-selected] + ["Ctrl+E" :hide-toggle-selected] ["Ctrl+End" :end-of-file] ["Ctrl+F" :filter-form] ["Ctrl+F" :find-text] @@ -277,7 +277,7 @@ ["Ctrl+Comma" :preferences] ["Ctrl+D" :select-next-occurrence] ["Ctrl+Delete" :delete-next-word] - ["Ctrl+E" :toggle-selected] + ["Ctrl+E" :hide-toggle-selected] ["Ctrl+End" :end-of-file] ["Ctrl+F" :filter-form] ["Ctrl+F" :find-text] diff --git a/editor/src/clj/editor/outline_view.clj b/editor/src/clj/editor/outline_view.clj index d2f57fa620c..2e5211dd442 100644 --- a/editor/src/clj/editor/outline_view.clj +++ b/editor/src/clj/editor/outline_view.clj @@ -268,7 +268,7 @@ :command :move-down} {:label :separator} {:label "Show/Hide Objects" - :command :toggle-selected} + :command :hide-toggle-selected} {:label "Hide Unselected Objects" :command :hide-unselected} {:label "Show Last Hidden Objects" diff --git a/editor/src/clj/editor/scene.clj b/editor/src/clj/editor/scene.clj index 5b99224a8d4..21f155b5c4c 100644 --- a/editor/src/clj/editor/scene.clj +++ b/editor/src/clj/editor/scene.clj @@ -1088,7 +1088,7 @@ :command :toggle-grid} {:label :separator} {:label "Show/Hide Selected Objects" - :command :toggle-selected} + :command :hide-toggle-selected} {:label "Hide Unselected Objects" :command :hide-unselected} {:label "Show Last Hidden Objects" diff --git a/editor/src/clj/editor/scene_visibility.clj b/editor/src/clj/editor/scene_visibility.clj index 926f3ed48e4..0cf324ec1eb 100644 --- a/editor/src/clj/editor/scene_visibility.clj +++ b/editor/src/clj/editor/scene_visibility.clj @@ -240,13 +240,13 @@ (g/node-value scene-visibility :unselected-hideable-outline-name-paths evaluation-context)) (run [scene-visibility] (hide-outline-name-paths! scene-visibility (g/node-value scene-visibility :unselected-hideable-outline-name-paths)))) -(handler/defhandler :toggle-selected :workbench +(handler/defhandler :hide-toggle-selected :workbench (active? [scene-visibility evaluation-context] true) (enabled? [scene-visibility evaluation-context] true) (run [scene-visibility] (g/with-auto-evaluation-context evaluation-context - (let [should_hide (g/node-value scene-visibility :selected-hideable-outline-name-paths evaluation-context)] - (if should_hide + (let [should-hide (g/node-value scene-visibility :selected-hideable-outline-name-paths evaluation-context)] + (if should-hide (hide-outline-name-paths! scene-visibility (g/node-value scene-visibility :selected-hideable-outline-name-paths)) (show-outline-name-paths! scene-visibility (g/node-value scene-visibility :selected-showable-outline-name-paths)))))))