feat(svg-editor): implement interactive SVG node editor with parsing and editing capabilities

feat(debug-logger): add DebugSignalLogger plugin for event logging and inspection

feat(plugins): introduce built-in plugins module and integrate debug logger

feat(plugin-integration): create integration layer for mapping Iced Messages to CoreEvents

feat(plugin-registry): establish PluginRegistry for managing plugins and event dispatching
This commit is contained in:
2026-07-20 01:43:22 +03:00
parent 6e0d179be9
commit 2fb47520b3
46 changed files with 4093 additions and 314 deletions
+16
View File
@@ -410,6 +410,7 @@ impl App {
fn make_shape(&self, x1: f32, y1: f32, x2: f32, y2: f32) -> VectorShape {
match self.shape_kind {
ShapeKind::Line => VectorShape::Line {
name: String::new(),
x1, y1, x2, y2,
stroke: self.stroke,
color: self.color,
@@ -420,6 +421,7 @@ impl App {
hardness: self.hardness,
},
ShapeKind::Rect => VectorShape::Rect {
name: String::new(),
x1, y1, x2, y2,
stroke: self.stroke,
color: self.color,
@@ -431,6 +433,7 @@ impl App {
hardness: self.hardness,
},
ShapeKind::Circle => VectorShape::Circle {
name: String::new(),
x1, y1, x2, y2,
stroke: self.stroke,
color: self.color,
@@ -441,6 +444,7 @@ impl App {
hardness: self.hardness,
},
ShapeKind::Arrow => VectorShape::Arrow {
name: String::new(),
x1, y1, x2, y2,
stroke: self.stroke,
color: self.color,
@@ -452,6 +456,7 @@ impl App {
thick: self.arrow_thick,
},
ShapeKind::Star => VectorShape::Star {
name: String::new(),
x1, y1, x2, y2,
stroke: self.stroke,
color: self.color,
@@ -464,6 +469,7 @@ impl App {
inner_radius: self.star_inner_radius,
},
ShapeKind::Polygon => VectorShape::Polygon {
name: String::new(),
x1, y1, x2, y2,
stroke: self.stroke,
color: self.color,
@@ -475,6 +481,7 @@ impl App {
hardness: self.hardness,
},
ShapeKind::Rhombus => VectorShape::Rhombus {
name: String::new(),
x1, y1, x2, y2,
stroke: self.stroke,
color: self.color,
@@ -485,6 +492,7 @@ impl App {
hardness: self.hardness,
},
ShapeKind::Cylinder => VectorShape::Cylinder {
name: String::new(),
x1, y1, x2, y2,
stroke: self.stroke,
color: self.color,
@@ -495,6 +503,7 @@ impl App {
hardness: self.hardness,
},
ShapeKind::Heart => VectorShape::Heart {
name: String::new(),
x1, y1, x2, y2,
stroke: self.stroke,
color: self.color,
@@ -505,6 +514,7 @@ impl App {
hardness: self.hardness,
},
ShapeKind::Bubble => VectorShape::Bubble {
name: String::new(),
x1, y1, x2, y2,
stroke: self.stroke,
color: self.color,
@@ -515,6 +525,7 @@ impl App {
hardness: self.hardness,
},
ShapeKind::Gear => VectorShape::Gear {
name: String::new(),
x1, y1, x2, y2,
stroke: self.stroke,
color: self.color,
@@ -525,6 +536,7 @@ impl App {
hardness: self.hardness,
},
ShapeKind::Cross => VectorShape::Cross {
name: String::new(),
x1, y1, x2, y2,
stroke: self.stroke,
color: self.color,
@@ -535,6 +547,7 @@ impl App {
hardness: self.hardness,
},
ShapeKind::Crescent => VectorShape::Crescent {
name: String::new(),
x1, y1, x2, y2,
stroke: self.stroke,
color: self.color,
@@ -545,6 +558,7 @@ impl App {
hardness: self.hardness,
},
ShapeKind::Bolt => VectorShape::Bolt {
name: String::new(),
x1, y1, x2, y2,
stroke: self.stroke,
color: self.color,
@@ -555,6 +569,7 @@ impl App {
hardness: self.hardness,
},
ShapeKind::Arrow4 => VectorShape::Arrow4 {
name: String::new(),
x1, y1, x2, y2,
stroke: self.stroke,
color: self.color,
@@ -572,6 +587,7 @@ impl App {
[(x1 + x2) / 2.0, y2 + 50.0],
];
VectorShape::FreePath {
name: String::new(),
pts,
closed: true,
stroke: self.stroke,