0
Fork 0
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:
Andrés Moya 2020-11-30 13:12:34 +01:00 committed by Andrey Antukh
parent 53297ec9d9
commit df95bd7010
4 changed files with 32 additions and 3 deletions

View file

@ -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" : {

View file

@ -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))

View file

@ -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.

View file

@ -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}