From 84c9a55ee554366b722a8e946c7cd5f8d7e63a99 Mon Sep 17 00:00:00 2001 From: Roman Pytkov Date: Tue, 3 Mar 2026 20:07:03 +0300 Subject: [PATCH] =?UTF-8?q?refactor:=20=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BD=D0=B5=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D0=B0=D1=8F=20=D1=84=D0=B8=D0=B3?= =?UTF-8?q?=D1=83=D1=80=D0=B0=20"=D0=94=D1=83=D0=B3=D0=B0"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Полностью удалены модель, инструменты, рендеринг и связанные UI-элементы для фигуры "Дуга", поскольку она не была реализована в системе. Также обновлены иконки для инструментов "Линия" и "Ломаная линия". --- src/icons.zig | 5 ++--- src/models/Object.zig | 1 - src/models/shape/arc.zig | 23 ----------------------- src/models/shape/shape.zig | 5 ----- src/random_document.zig | 1 - src/render/cpu/arc.zig | 8 -------- src/render/cpu/draw.zig | 2 -- src/toolbar/tools.zig | 6 ------ src/toolbar/tools/arc.zig | 10 ---------- src/ui/left_panel.zig | 1 - 10 files changed, 2 insertions(+), 60 deletions(-) delete mode 100644 src/models/shape/arc.zig delete mode 100644 src/render/cpu/arc.zig delete mode 100644 src/toolbar/tools/arc.zig diff --git a/src/icons.zig b/src/icons.zig index 144b35c..f85733f 100644 --- a/src/icons.zig +++ b/src/icons.zig @@ -1,9 +1,8 @@ const dvui = @import("dvui"); -pub const line = dvui.entypo.line_graph; +pub const line = dvui.entypo.flow_line; pub const ellipse = dvui.entypo.circle; -pub const arc = dvui.entypo.loop; -pub const broken = dvui.entypo.flow_line; +pub const broken = dvui.entypo.line_graph; pub const trash = dvui.entypo.trash; pub const cross = dvui.entypo.cross; pub const plus = dvui.entypo.plus; diff --git a/src/models/Object.zig b/src/models/Object.zig index fe48e00..2a35118 100644 --- a/src/models/Object.zig +++ b/src/models/Object.zig @@ -6,7 +6,6 @@ const Object = @This(); pub const ShapeKind = enum { line, ellipse, - arc, broken, }; diff --git a/src/models/shape/arc.zig b/src/models/shape/arc.zig deleted file mode 100644 index 63e2274..0000000 --- a/src/models/shape/arc.zig +++ /dev/null @@ -1,23 +0,0 @@ -const std = @import("std"); -const Object = @import("../Object.zig"); -const PropertyData = @import("../Property.zig").Data; -const Rect_f = @import("../basic_models.zig").Rect_f; -const shape_mod = @import("shape.zig"); - -/// Теги обязательных свойств (arc не реализован). -pub fn getRequiredTags() []const std.meta.Tag(PropertyData) { - return &[_]std.meta.Tag(PropertyData){}; -} - -/// Добавляет свойства по умолчанию для дуги. -pub fn appendDefaultShapeProperties(allocator: std.mem.Allocator, obj: *Object) !void { - _ = allocator; - _ = obj; - return error.ArcNotImplemented; -} - -/// Локальные границы дуги (не реализовано). -pub fn getLocalBounds(obj: *const Object) !Rect_f { - try shape_mod.ensure(obj, .arc); - return error.ArcNotImplemented; -} diff --git a/src/models/shape/shape.zig b/src/models/shape/shape.zig index d93b666..d350458 100644 --- a/src/models/shape/shape.zig +++ b/src/models/shape/shape.zig @@ -7,8 +7,6 @@ const basic_models = @import("../basic_models.zig"); const line = @import("line.zig"); const ellipse = @import("ellipse.zig"); const broken = @import("broken.zig"); -const arc = @import("arc.zig"); - pub const Rect = basic_models.Rectf; /// Создаёт объект с дефолтными общими и фигурными свойствами. @@ -19,7 +17,6 @@ pub fn createObject(allocator: std.mem.Allocator, shape_kind: Object.ShapeKind) .line => try line.appendDefaultShapeProperties(allocator, &obj), .ellipse => try ellipse.appendDefaultShapeProperties(allocator, &obj), .broken => try broken.appendDefaultShapeProperties(allocator, &obj), - .arc => try arc.appendDefaultShapeProperties(allocator, &obj), } return obj; } @@ -50,7 +47,6 @@ fn requiredTagsFor(kind: Object.ShapeKind) []const std.meta.Tag(PropertyData) { .line => line.getRequiredTags(), .ellipse => ellipse.getRequiredTags(), .broken => broken.getRequiredTags(), - .arc => arc.getRequiredTags(), }; } @@ -60,7 +56,6 @@ pub fn getLocalBounds(obj: *const Object) !Rect { .line => line.getLocalBounds(obj), .ellipse => ellipse.getLocalBounds(obj), .broken => broken.getLocalBounds(obj), - .arc => arc.getLocalBounds(obj), }; } diff --git a/src/random_document.zig b/src/random_document.zig index 7ce6609..e59d2a4 100644 --- a/src/random_document.zig +++ b/src/random_document.zig @@ -85,7 +85,6 @@ fn randomizeObjectProperties(allocator: std.mem.Allocator, doc_size: *const Size } try obj.setProperty(allocator, .{ .data = .{ .points = points } }); }, - .arc => {}, } } diff --git a/src/render/cpu/arc.zig b/src/render/cpu/arc.zig deleted file mode 100644 index b931619..0000000 --- a/src/render/cpu/arc.zig +++ /dev/null @@ -1,8 +0,0 @@ -const Document = @import("../../models/Document.zig"); -const pipeline = @import("pipeline.zig"); -const DrawContext = pipeline.DrawContext; - -const Object = Document.Object; - -/// Дуга (не реализовано). -pub fn draw(_: *DrawContext, _: *const Object) void {} diff --git a/src/render/cpu/draw.zig b/src/render/cpu/draw.zig index f1a1f9b..3997b83 100644 --- a/src/render/cpu/draw.zig +++ b/src/render/cpu/draw.zig @@ -4,7 +4,6 @@ const pipeline = @import("pipeline.zig"); const line = @import("line.zig"); const ellipse = @import("ellipse.zig"); const broken = @import("broken.zig"); -const arc = @import("arc.zig"); const basic_models = @import("../../models/basic_models.zig"); const Rect_i = basic_models.Rect_i; const Size_i = basic_models.Size_i; @@ -32,7 +31,6 @@ fn drawObject( .line => line.draw(ctx, obj), .ellipse => try ellipse.draw(ctx, obj, allocator), .broken => try broken.draw(ctx, obj, allocator), - .arc => arc.draw(ctx, obj), } for (obj.children.items) |*child| { diff --git a/src/toolbar/tools.zig b/src/toolbar/tools.zig index 9a98433..d8907af 100644 --- a/src/toolbar/tools.zig +++ b/src/toolbar/tools.zig @@ -1,7 +1,6 @@ const Toolbar = @import("Toolbar.zig"); const line = @import("tools/line.zig"); const ellipse = @import("tools/ellipse.zig"); -const arc = @import("tools/arc.zig"); const broken = @import("tools/broken.zig"); const icons = @import("../icons.zig"); @@ -16,11 +15,6 @@ pub const default_tools = [_]Toolbar.ToolDescriptor{ .icon_tvg = icons.ellipse, .implementation = &ellipse.tool, }, - .{ - .name = "Arc", - .icon_tvg = icons.arc, - .implementation = &arc.tool, - }, .{ .name = "Broken line", .icon_tvg = icons.broken, diff --git a/src/toolbar/tools/arc.zig b/src/toolbar/tools/arc.zig deleted file mode 100644 index ee55cc5..0000000 --- a/src/toolbar/tools/arc.zig +++ /dev/null @@ -1,10 +0,0 @@ -const Tool = @import("../Tool.zig"); -const shape = @import("../../models/shape/shape.zig"); - -fn onCanvasClick(ctx: *const Tool.ToolContext) !void { - const canvas = ctx.canvas; - var obj = shape.createObject(canvas.allocator, .arc) catch return; - defer obj.deinit(canvas.allocator); - try ctx.addObject(obj); -} -pub const tool = Tool.Tool{ .onCanvasClick = onCanvasClick }; diff --git a/src/ui/left_panel.zig b/src/ui/left_panel.zig index f4f2b1f..67370ee 100644 --- a/src/ui/left_panel.zig +++ b/src/ui/left_panel.zig @@ -19,7 +19,6 @@ fn shapeLabel(shape: Object.ShapeKind) []const u8 { return switch (shape) { .line => "Line", .ellipse => "Ellipse", - .arc => "Arc", .broken => "Broken line", }; }