From: Thomas Bläsius Date: Wed, 11 Sep 2013 15:41:10 +0000 (+0200) Subject: now only paths that are visible are modified (one can still get the old behaviour... X-Git-Url: https://i11git.iti.kit.edu/anon-gitweb/?a=commitdiff_plain;h=605122b64f9dff9c6fba9b49e5285f38747d3c7b;p=Misc%2Fipe.git now only paths that are visible are modified (one can still get the old behaviour by klicking on toggle move invisible) --- diff --git a/ipelets/graph/graph.lua b/ipelets/graph/graph.lua index 52eb188..a61d7ef 100644 --- a/ipelets/graph/graph.lua +++ b/ipelets/graph/graph.lua @@ -6,6 +6,7 @@ label = "Graph" about = [[ Some features making it easier to work with graphs. ]] local deactivateGraphMode = false +local moveInvisibleObjects = false function toggleGraphMode () if deactivateGraphMode then @@ -15,6 +16,14 @@ function toggleGraphMode () end end +function toggleMoveInvisible () + if moveInvisibleObjects then + moveInvisibleObjects = false + else + moveInvisibleObjects = true + end +end + local editing = false local currMarkId = nil @@ -111,7 +120,7 @@ function _G.EDITTOOL:key(code, modifiers, text) undo = _G.revertOriginal,} t.redo = function (t, doc) p:transform(currMarkId, ipe.Translation(newPos-oldPos)) - moveEndpoints(oldPos, newPos, p) + moveEndpoints(oldPos, newPos, p, self.model) end self.model:register(t) end @@ -119,8 +128,13 @@ end -- function moving all endpoints and intermediate points in polylines -- to newPos, if the squared distance to oldPos is at most sqEps local sqEps = 1 -function moveEndpoints(oldPos, newPos, p) +function moveEndpoints(oldPos, newPos, p, model) + -- print(model.vno) for i, obj, sel, layer in p:objects() do + if not p:visible(model.vno, layer) and + not moveInvisibleObjects then + goto continue + end if obj:type() == "path" then local shape = obj:shape() for _, subPath in ipairs(shape) do @@ -147,6 +161,7 @@ function moveEndpoints(oldPos, newPos, p) obj:setShape(shape) end end + ::continue:: end end @@ -221,7 +236,7 @@ function getString(model, string) end function shorten(model, num) - num = num - 1 + num = num - 2 local lenTarget = 0 local lenSource = 0 -- local str = ipeui.getString(model.ui, "Enter length") @@ -269,6 +284,7 @@ end methods = { { label = "toggle graph mode", run=toggleGraphMode }, + { label = "toggle move invisible", run=toggleMoveInvisible }, { label = "shorten target", run=shorten }, { label = "shorten source", run=shorten }, { label = "shorten both", run=shorten },