mirror of
https://github.com/penpot/penpot.git
synced 2025-03-18 10:41:29 -05:00
🎉 Select all elements tool and shortcut
This commit is contained in:
parent
53297ec9d9
commit
df95bd7010
4 changed files with 32 additions and 3 deletions
|
@ -2422,6 +2422,14 @@
|
|||
"es" : "Ocultar reglas"
|
||||
}
|
||||
},
|
||||
"workspace.header.menu.select-all" : {
|
||||
"translations" : {
|
||||
"en" : "Select all",
|
||||
"fr" : "",
|
||||
"ru" : "",
|
||||
"es" : "Seleccionar todo"
|
||||
}
|
||||
},
|
||||
"workspace.header.menu.show-assets" : {
|
||||
"used-in" : [ "src/app/main/ui/workspace/header.cljs:210" ],
|
||||
"translations" : {
|
||||
|
|
|
@ -1596,6 +1596,7 @@
|
|||
;; Selection
|
||||
|
||||
(def select-shape dws/select-shape)
|
||||
(def select-all dws/select-all)
|
||||
(def deselect-all dws/deselect-all)
|
||||
(def select-shapes dwc/select-shapes)
|
||||
(def duplicate-selected dws/duplicate-selected)
|
||||
|
@ -1630,7 +1631,7 @@
|
|||
{"ctrl+i" #(st/emit! (toggle-layout-flags :assets))
|
||||
"ctrl+l" #(st/emit! (toggle-layout-flags :sitemap :layers))
|
||||
"ctrl+shift+r" #(st/emit! (toggle-layout-flags :rules))
|
||||
"ctrl+a" #(st/emit! (toggle-layout-flags :dynamic-alignment))
|
||||
"ctrl+a" #(st/emit! (select-all))
|
||||
"ctrl+p" #(st/emit! (toggle-layout-flags :colorpalette))
|
||||
"ctrl+'" #(st/emit! (toggle-layout-flags :display-grid))
|
||||
"ctrl+shift+'" #(st/emit! (toggle-layout-flags :snap-grid))
|
||||
|
|
|
@ -118,6 +118,23 @@
|
|||
objects (dwc/lookup-page-objects state page-id)]
|
||||
(rx/of (dwc/expand-all-parents ids objects))))))
|
||||
|
||||
(defn select-all
|
||||
[]
|
||||
(ptk/reify ::select-all
|
||||
ptk/WatchEvent
|
||||
(watch [_ state stream]
|
||||
(let [page-id (:current-page-id state)
|
||||
objects (dwc/lookup-page-objects state page-id)
|
||||
is-not-blocked (fn [shape-id] (not (get-in state [:workspace-data
|
||||
:pages-index page-id
|
||||
:objects shape-id
|
||||
:blocked] false)))]
|
||||
(rx/of (->> (cph/select-toplevel-shapes objects)
|
||||
(map :id)
|
||||
(filter is-not-blocked)
|
||||
(into lks/empty-linked-set)
|
||||
(select-shapes)))))))
|
||||
|
||||
(defn deselect-all
|
||||
"Clear all possible state of drawing, edition
|
||||
or any similar action taken by the user.
|
||||
|
|
|
@ -208,12 +208,15 @@
|
|||
(tr "workspace.header.menu.show-assets"))]
|
||||
[:span.shortcut "Ctrl+i"]]
|
||||
|
||||
[:li {:on-click #(st/emit! (dw/select-all))}
|
||||
[:span (tr "workspace.header.menu.select-all")]
|
||||
[:span.shortcut "Ctrl+a"]]
|
||||
|
||||
[:li {:on-click #(st/emit! (dw/toggle-layout-flags :dynamic-alignment))}
|
||||
[:span
|
||||
(if (contains? layout :dynamic-alignment)
|
||||
(tr "workspace.header.menu.disable-dynamic-alignment")
|
||||
(tr "workspace.header.menu.enable-dynamic-alignment"))]
|
||||
[:span.shortcut "Ctrl+a"]]
|
||||
(tr "workspace.header.menu.enable-dynamic-alignment"))]]
|
||||
|
||||
(if (:is-shared file)
|
||||
[:li {:on-click on-remove-shared}
|
||||
|
|
Loading…
Add table
Reference in a new issue