diff options
| author | Jabiertxo Arraiza Cenoz <jtx@jtx-desktop.markerlab.es> | 2017-10-02 12:11:30 +0000 |
|---|---|---|
| committer | Jabiertxo Arraiza Cenoz <jtx@jtx-desktop.markerlab.es> | 2017-10-02 12:11:30 +0000 |
| commit | 5e751a51beffbf8a1a292a16c6850215945c95e5 (patch) | |
| tree | 51c561f9e160d4aff6f20439db17d457f9f757fa /src | |
| parent | Add better transform handle to Clone Item LPE (diff) | |
| download | inkscape-5e751a51beffbf8a1a292a16c6850215945c95e5.tar.gz inkscape-5e751a51beffbf8a1a292a16c6850215945c95e5.zip | |
Improvements to translations in clone LPE
Diffstat (limited to 'src')
| -rw-r--r-- | src/live_effects/lpe-clone-original.cpp | 17 | ||||
| -rw-r--r-- | src/live_effects/lpe-clone-original.h | 2 |
2 files changed, 18 insertions, 1 deletions
diff --git a/src/live_effects/lpe-clone-original.cpp b/src/live_effects/lpe-clone-original.cpp index 2d577bffd..15968dd56 100644 --- a/src/live_effects/lpe-clone-original.cpp +++ b/src/live_effects/lpe-clone-original.cpp @@ -48,13 +48,15 @@ LPECloneOriginal::LPECloneOriginal(LivePathEffectObject *lpeobject) : }; is_updating = false; listening = false; - previus_method = CLM_D; linked = g_strdup(this->getRepr()->attribute("linkeditem")); registerParameter(&linkeditem); registerParameter(&method); registerParameter(&attributes); registerParameter(&style_attributes); registerParameter(&allow_transforms); + prev_allow_trans = allow_transforms; + previus_method = method; + prev_affine = g_strdup(""); attributes.param_hide_canvas_text(); style_attributes.param_hide_canvas_text(); } @@ -236,15 +238,27 @@ LPECloneOriginal::doBeforeEffect (SPLPEItem const* lpeitem){ { dest->transform *= Geom::Translate((*d_bbox).corner(0) - (*o_bbox).corner(0)).inverse(); } + if (!allow_transforms) { SP_ITEM(dest)->getRepr()->setAttribute("transform", SP_ITEM(orig)->getAttribute("transform")); + } else { + SP_ITEM(dest)->getRepr()->setAttribute("transform", sp_svg_transform_write(dest->transform)); + if (prev_allow_trans == allow_transforms) { + prev_affine = g_strdup(SP_ITEM(dest)->getAttribute("transform")); + } } + + if (prev_allow_trans != allow_transforms && allow_transforms) { + SP_ITEM(dest)->getRepr()->setAttribute("transform", prev_affine); + } + linked = g_strdup(id); g_free(id); } else { linked = g_strdup(""); } previus_method = method; + prev_allow_trans = allow_transforms; } void @@ -280,6 +294,7 @@ LPECloneOriginal::~LPECloneOriginal() { quit_listening(); g_free(linked); + g_free(prev_affine); } void diff --git a/src/live_effects/lpe-clone-original.h b/src/live_effects/lpe-clone-original.h index e429d6817..8327b6767 100644 --- a/src/live_effects/lpe-clone-original.h +++ b/src/live_effects/lpe-clone-original.h @@ -49,6 +49,8 @@ private: Clonelpemethod previus_method; bool listening; bool is_updating; + bool prev_allow_trans; + gchar * prev_affine; sigc::connection modified_connection; LPECloneOriginal(const LPECloneOriginal&); LPECloneOriginal& operator=(const LPECloneOriginal&); |
