From af1c59f0fdf3df1a2e105519f59180b7a37cbee0 Mon Sep 17 00:00:00 2001 From: Daniel Bailey Date: Sun, 15 May 2016 21:44:44 +0100 Subject: [PATCH] Add support for editing arc segments in the node editor --- .../node-segment-elliptical-arc-bulge.svg | 125 +++++++++++ .../node-segment-elliptical-arc-flip.svg | 137 ++++++++++++ .../node-segment-elliptical-arc-shallow.svg | 125 +++++++++++ .../actions/node-segment-elliptical-arc.svg | 132 +++++++++++ share/ui/toolbar-node.ui | 67 ++++++ src/helper/geom.cpp | 40 ++++ src/helper/geom.h | 1 + src/ui/tool/curve-drag-point.cpp | 14 ++ src/ui/tool/curve-drag-point.h | 1 + src/ui/tool/multi-path-manipulator.cpp | 36 ++- src/ui/tool/multi-path-manipulator.h | 3 + src/ui/tool/node-types.h | 3 +- src/ui/tool/node.cpp | 192 ++++++++++++++-- src/ui/tool/node.h | 29 ++- src/ui/tool/path-manipulator.cpp | 205 ++++++++++++++++-- src/ui/tool/path-manipulator.h | 5 + src/ui/toolbar/node-toolbar.cpp | 32 +++ src/ui/toolbar/node-toolbar.h | 4 + 18 files changed, 1111 insertions(+), 40 deletions(-) create mode 100644 share/icons/hicolor/scalable/actions/node-segment-elliptical-arc-bulge.svg create mode 100644 share/icons/hicolor/scalable/actions/node-segment-elliptical-arc-flip.svg create mode 100644 share/icons/hicolor/scalable/actions/node-segment-elliptical-arc-shallow.svg create mode 100644 share/icons/hicolor/scalable/actions/node-segment-elliptical-arc.svg diff --git a/share/icons/hicolor/scalable/actions/node-segment-elliptical-arc-bulge.svg b/share/icons/hicolor/scalable/actions/node-segment-elliptical-arc-bulge.svg new file mode 100644 index 0000000000..e70bdf2d5e --- /dev/null +++ b/share/icons/hicolor/scalable/actions/node-segment-elliptical-arc-bulge.svg @@ -0,0 +1,125 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/share/icons/hicolor/scalable/actions/node-segment-elliptical-arc-flip.svg b/share/icons/hicolor/scalable/actions/node-segment-elliptical-arc-flip.svg new file mode 100644 index 0000000000..35c22141c5 --- /dev/null +++ b/share/icons/hicolor/scalable/actions/node-segment-elliptical-arc-flip.svg @@ -0,0 +1,137 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/share/icons/hicolor/scalable/actions/node-segment-elliptical-arc-shallow.svg b/share/icons/hicolor/scalable/actions/node-segment-elliptical-arc-shallow.svg new file mode 100644 index 0000000000..73040fc2aa --- /dev/null +++ b/share/icons/hicolor/scalable/actions/node-segment-elliptical-arc-shallow.svg @@ -0,0 +1,125 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/share/icons/hicolor/scalable/actions/node-segment-elliptical-arc.svg b/share/icons/hicolor/scalable/actions/node-segment-elliptical-arc.svg new file mode 100644 index 0000000000..60c120877d --- /dev/null +++ b/share/icons/hicolor/scalable/actions/node-segment-elliptical-arc.svg @@ -0,0 +1,132 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/share/ui/toolbar-node.ui b/share/ui/toolbar-node.ui index f48308e340..edbb229ff0 100644 --- a/share/ui/toolbar-node.ui +++ b/share/ui/toolbar-node.ui @@ -271,6 +271,73 @@ + + + True + Make selected segments elliptical arcs + False + + + + node-segment-elliptical-arc + + + + + + + + + + + + True + Make selected elliptical arc segments shallow + False + + + + node-segment-elliptical-arc-shallow + + + + + + + True + Make selected elliptical arc segments bulge + False + + + + node-segment-elliptical-arc-bulge + + + + + + + True + Flip selected elliptical arc segments + False + + + + node-segment-elliptical-arc-flip + + + +