Merge remote-tracking branch 'origin/main' into develop

This commit is contained in:
alonso.torres 2021-07-09 12:42:33 +02:00
commit 0ff0fd7ced
2 changed files with 37 additions and 33 deletions

View file

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

View file

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