From 6427935280aaac0a1a4557bae55184708819560d Mon Sep 17 00:00:00 2001 From: Zardshard <0azrune6@zard.anonaddy.com> Date: Thu, 22 Jun 2023 10:08:56 -0400 Subject: [PATCH] Icon-O-Matic: Generalize some classes * Turns PathContainer, ShapeContainer, StyleContainer into Container. * Makes Shape use Container for storing Tansformers instead of reinventing the wheel yet again. * Moves common logic from AddPathsCommand, AddStylesCommand, AddShapesCommand, and AddTransformersCommand to AddCommand. * Factors out common logic from two more commands similar to above. This adds the MoveCommand and RemoveCommand classes. * Cleans up some code style. Change-Id: I59eca94a1c45eac608514f269f6e5f8628f93fab Reviewed-on: https://review.haiku-os.org/c/haiku/+/6640 Tested-by: Commit checker robot Reviewed-by: Adrien Destugues --- src/apps/icon-o-matic/Jamfile | 4 +- src/apps/icon-o-matic/MainWindow.cpp | 44 ++- src/apps/icon-o-matic/Util.cpp | 11 +- src/apps/icon-o-matic/Util.h | 5 +- src/apps/icon-o-matic/document/Document.cpp | 9 +- .../icon-o-matic/generic/command/AddCommand.h | 160 +++++++++ .../generic/command/MoveCommand.h | 200 ++++++++++++ .../generic/command/RemoveCommand.h | 152 +++++++++ src/apps/icon-o-matic/gui/PathListView.cpp | 49 ++- src/apps/icon-o-matic/gui/PathListView.h | 112 +++---- src/apps/icon-o-matic/gui/ShapeListView.cpp | 47 ++- src/apps/icon-o-matic/gui/ShapeListView.h | 103 +++--- src/apps/icon-o-matic/gui/StyleListView.cpp | 45 +-- src/apps/icon-o-matic/gui/StyleListView.h | 20 +- .../icon-o-matic/gui/TransformerListView.cpp | 94 +++--- .../icon-o-matic/gui/TransformerListView.h | 18 +- .../icon-o-matic/import_export/Importer.cpp | 6 +- .../flat_icon/FlatIconExporter.cpp | 105 +++--- .../flat_icon/FlatIconExporter.h | 16 +- .../import_export/message/MessageExporter.cpp | 29 +- .../import_export/message/MessageExporter.h | 7 +- .../styled_text/StyledTextImporter.cpp | 10 +- .../styled_text/StyledTextImporter.h | 4 - .../import_export/svg/DocumentBuilder.cpp | 25 +- .../import_export/svg/SVGExporter.cpp | 10 +- .../shape/commands/AddPathsCommand.cpp | 87 +---- .../shape/commands/AddPathsCommand.h | 25 +- .../shape/commands/AddShapesCommand.cpp | 84 +---- .../shape/commands/AddShapesCommand.h | 31 +- .../shape/commands/AddTransformersCommand.cpp | 84 +---- .../shape/commands/AddTransformersCommand.h | 26 +- .../commands/FreezeTransformationCommand.cpp | 4 +- .../shape/commands/MovePathsCommand.cpp | 132 +------- .../shape/commands/MovePathsCommand.h | 37 +-- .../shape/commands/MoveShapesCommand.cpp | 132 +------- .../shape/commands/MoveShapesCommand.h | 24 +- .../commands/MoveTransformersCommand.cpp | 136 +------- .../shape/commands/MoveTransformersCommand.h | 25 +- .../shape/commands/RemovePathsCommand.cpp | 131 ++++---- .../shape/commands/RemovePathsCommand.h | 38 +-- .../shape/commands/RemoveShapesCommand.cpp | 80 +---- .../shape/commands/RemoveShapesCommand.h | 25 +- .../commands/RemoveTransformersCommand.cpp | 81 +---- .../commands/RemoveTransformersCommand.h | 24 +- .../shape/commands/UnassignPathCommand.cpp | 5 +- .../icon-o-matic/style/AddStylesCommand.cpp | 79 +---- .../icon-o-matic/style/AddStylesCommand.h | 24 +- .../icon-o-matic/style/MoveStylesCommand.cpp | 132 +------- .../icon-o-matic/style/MoveStylesCommand.h | 24 +- .../style/RemoveStylesCommand.cpp | 106 +++--- .../icon-o-matic/style/RemoveStylesCommand.h | 24 +- src/build/libbe/icon/Jamfile | 4 +- src/build/libicon/Jamfile | 4 +- src/libs/icon/Icon.cpp | 101 +++--- src/libs/icon/Icon.h | 63 ++-- src/libs/icon/IconRenderer.cpp | 5 +- src/libs/icon/Jamfile | 4 +- src/libs/icon/flat_icon/FlatIconImporter.cpp | 38 +-- src/libs/icon/flat_icon/FlatIconImporter.h | 19 +- src/libs/icon/generic/Container.h | 308 ++++++++++++++++++ src/libs/icon/message/MessageImporter.cpp | 33 +- src/libs/icon/message/MessageImporter.h | 16 +- src/libs/icon/shape/PathContainer.cpp | 220 ------------- src/libs/icon/shape/PathContainer.h | 76 ----- src/libs/icon/shape/ReferenceImage.cpp | 2 +- src/libs/icon/shape/ReferenceImage.h | 1 - src/libs/icon/shape/Shape.cpp | 197 ++++------- src/libs/icon/shape/Shape.h | 138 ++++---- src/libs/icon/shape/ShapeContainer.cpp | 228 ------------- src/libs/icon/shape/ShapeContainer.h | 76 ----- src/libs/icon/style/StyleContainer.cpp | 222 ------------- src/libs/icon/style/StyleContainer.h | 75 ----- src/libs/icon/transformer/PathSource.cpp | 8 +- src/libs/icon/transformer/PathSource.h | 30 +- 74 files changed, 1711 insertions(+), 3042 deletions(-) create mode 100644 src/apps/icon-o-matic/generic/command/AddCommand.h create mode 100644 src/apps/icon-o-matic/generic/command/MoveCommand.h create mode 100644 src/apps/icon-o-matic/generic/command/RemoveCommand.h create mode 100644 src/libs/icon/generic/Container.h delete mode 100644 src/libs/icon/shape/PathContainer.cpp delete mode 100644 src/libs/icon/shape/PathContainer.h delete mode 100644 src/libs/icon/shape/ShapeContainer.cpp delete mode 100644 src/libs/icon/shape/ShapeContainer.h delete mode 100644 src/libs/icon/style/StyleContainer.cpp delete mode 100644 src/libs/icon/style/StyleContainer.h diff --git a/src/apps/icon-o-matic/Jamfile b/src/apps/icon-o-matic/Jamfile index cbe5798e63..5a68abecbb 100644 --- a/src/apps/icon-o-matic/Jamfile +++ b/src/apps/icon-o-matic/Jamfile @@ -9,6 +9,7 @@ DEFINES = ICON_O_MATIC=1 ; local iconSourceDirs = icon icon/flat_icon + icon/generic icon/message icon/shape icon/style @@ -80,17 +81,14 @@ Application Icon-O-Matic : MessageImporter.cpp # icon/shape - PathContainer.cpp PathSourceShape.cpp ReferenceImage.cpp Shape.cpp - ShapeContainer.cpp VectorPath.cpp # icon/style GradientTransformable.cpp Style.cpp - StyleContainer.cpp # icon/transformable Transformable.cpp diff --git a/src/apps/icon-o-matic/MainWindow.cpp b/src/apps/icon-o-matic/MainWindow.cpp index fc5a60fd11..e9afee946b 100644 --- a/src/apps/icon-o-matic/MainWindow.cpp +++ b/src/apps/icon-o-matic/MainWindow.cpp @@ -83,11 +83,9 @@ #include "PathSourceShape.h" #include "ReferenceImage.h" #include "Shape.h" -#include "ShapeContainer.h" #include "ShapeListView.h" #include "StrokeTransformer.h" #include "Style.h" -#include "StyleContainer.h" #include "VectorPath.h" #include "StyledTextImporter.h" @@ -202,9 +200,9 @@ MainWindow::MessageReceived(BMessage* message) Style* style = new (nothrow) Style(*color); style->SetName(name); Style* styles[1] = { style }; - AddStylesCommand* styleCommand = new (nothrow) AddStylesCommand( - fDocument->Icon()->Styles(), styles, 1, - fDocument->Icon()->Styles()->CountStyles()); + AddCommand