mirror of
https://github.com/penpot/penpot.git
synced 2025-05-26 01:16:11 +02:00
Merge remote-tracking branch 'origin/main' into develop
This commit is contained in:
commit
0ff0fd7ced
2 changed files with 37 additions and 33 deletions
|
@ -220,6 +220,7 @@
|
||||||
selrect (get-in state [:workspace-local :selrect])
|
selrect (get-in state [:workspace-local :selrect])
|
||||||
blocked? (fn [id] (get-in objects [id :blocked] false))]
|
blocked? (fn [id] (get-in objects [id :blocked] false))]
|
||||||
(rx/merge
|
(rx/merge
|
||||||
|
|
||||||
(when selrect
|
(when selrect
|
||||||
(->> (uw/ask! {:cmd :selection/query
|
(->> (uw/ask! {:cmd :selection/query
|
||||||
:page-id page-id
|
:page-id page-id
|
||||||
|
@ -232,6 +233,7 @@
|
||||||
|
|
||||||
(defn select-inside-group
|
(defn select-inside-group
|
||||||
[group-id position]
|
[group-id position]
|
||||||
|
|
||||||
(ptk/reify ::select-inside-group
|
(ptk/reify ::select-inside-group
|
||||||
ptk/WatchEvent
|
ptk/WatchEvent
|
||||||
(watch [_ state _]
|
(watch [_ state _]
|
||||||
|
@ -249,6 +251,7 @@
|
||||||
(when selected
|
(when selected
|
||||||
(rx/of (select-shape (:id selected))))))))
|
(rx/of (select-shape (:id selected))))))))
|
||||||
|
|
||||||
|
|
||||||
;; --- Duplicate Shapes
|
;; --- Duplicate Shapes
|
||||||
(declare prepare-duplicate-change)
|
(declare prepare-duplicate-change)
|
||||||
(declare prepare-duplicate-frame-change)
|
(declare prepare-duplicate-frame-change)
|
||||||
|
@ -322,39 +325,40 @@
|
||||||
|
|
||||||
(defn- prepare-duplicate-shape-change
|
(defn- prepare-duplicate-shape-change
|
||||||
[objects page-id names obj delta frame-id parent-id]
|
[objects page-id names obj delta frame-id parent-id]
|
||||||
(let [id (uuid/next)
|
(when (some? obj)
|
||||||
name (dwc/generate-unique-name names (:name obj))
|
(let [id (uuid/next)
|
||||||
renamed-obj (assoc obj :id id :name name)
|
name (dwc/generate-unique-name names (:name obj))
|
||||||
moved-obj (geom/move renamed-obj delta)
|
renamed-obj (assoc obj :id id :name name)
|
||||||
parent-id (or parent-id frame-id)
|
moved-obj (geom/move renamed-obj delta)
|
||||||
|
parent-id (or parent-id frame-id)
|
||||||
|
|
||||||
children-changes
|
children-changes
|
||||||
(loop [names names
|
(loop [names names
|
||||||
result []
|
result []
|
||||||
cid (first (:shapes obj))
|
cid (first (:shapes obj))
|
||||||
cids (rest (:shapes obj))]
|
cids (rest (:shapes obj))]
|
||||||
(if (nil? cid)
|
(if (nil? cid)
|
||||||
result
|
result
|
||||||
(let [obj (get objects cid)
|
(let [obj (get objects cid)
|
||||||
changes (prepare-duplicate-shape-change objects page-id names obj delta frame-id id)]
|
changes (prepare-duplicate-shape-change objects page-id names obj delta frame-id id)]
|
||||||
(recur
|
(recur
|
||||||
(into names (map change->name changes))
|
(into names (map change->name changes))
|
||||||
(into result changes)
|
(into result changes)
|
||||||
(first cids)
|
(first cids)
|
||||||
(rest cids)))))
|
(rest cids)))))
|
||||||
|
|
||||||
reframed-obj (-> moved-obj
|
reframed-obj (-> moved-obj
|
||||||
(assoc :frame-id frame-id)
|
(assoc :frame-id frame-id)
|
||||||
(dissoc :shapes))]
|
(dissoc :shapes))]
|
||||||
(into [{:type :add-obj
|
(into [{:type :add-obj
|
||||||
:id id
|
:id id
|
||||||
:page-id page-id
|
:page-id page-id
|
||||||
:old-id (:id obj)
|
:old-id (:id obj)
|
||||||
:frame-id frame-id
|
:frame-id frame-id
|
||||||
:parent-id parent-id
|
:parent-id parent-id
|
||||||
:ignore-touched true
|
:ignore-touched true
|
||||||
:obj (dissoc reframed-obj :shapes)}]
|
:obj (dissoc reframed-obj :shapes)}]
|
||||||
children-changes)))
|
children-changes))))
|
||||||
|
|
||||||
(defn- prepare-duplicate-frame-change
|
(defn- prepare-duplicate-frame-change
|
||||||
[objects page-id names obj delta]
|
[objects page-id names obj delta]
|
||||||
|
@ -367,7 +371,7 @@
|
||||||
(assoc :id frame-id)
|
(assoc :id frame-id)
|
||||||
(assoc :name frame-name)
|
(assoc :name frame-name)
|
||||||
(assoc :frame-id uuid/zero)
|
(assoc :frame-id uuid/zero)
|
||||||
(dissoc :shapes)
|
(assoc :shapes [])
|
||||||
(geom/move delta))
|
(geom/move delta))
|
||||||
|
|
||||||
fch {:type :add-obj
|
fch {:type :add-obj
|
||||||
|
|
|
@ -136,7 +136,7 @@
|
||||||
(gpt/negate)
|
(gpt/negate)
|
||||||
(gmt/translate-matrix))
|
(gmt/translate-matrix))
|
||||||
|
|
||||||
update-fn #(assoc-in %1 [%2 :modifiers :displacement] modifier)
|
update-fn #(d/update-when %1 %2 assoc-in [:modifiers :displacement] modifier)
|
||||||
|
|
||||||
objects (->> (d/concat [frame-id] (cp/get-children frame-id objects))
|
objects (->> (d/concat [frame-id] (cp/get-children frame-id objects))
|
||||||
(reduce update-fn objects))
|
(reduce update-fn objects))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue