From 59ccb6a4d96794593076ab7f75f84db8d2121a40 Mon Sep 17 00:00:00 2001 From: andev0 Date: Tue, 22 Aug 2023 16:58:23 +0200 Subject: [PATCH] Added items rate near the names and minor code improvement --- screenshots/diagram.png | Bin 38914 -> 38580 bytes src/Algorithms.cpp | 21 +++++++++++++++++++++ src/Algorithms.h | 6 ++++++ src/DrawioElements/MxGeometryTag.cpp | 18 ++++++++++-------- src/File.cpp | 5 +++-- src/File.h | 2 +- src/Logging.h | 2 +- src/Main.cpp | 2 +- src/RecipeElements/XmlRecipe.cpp | 4 ++++ src/XmlElement.cpp | 2 +- 10 files changed, 48 insertions(+), 14 deletions(-) create mode 100644 src/Algorithms.cpp create mode 100644 src/Algorithms.h diff --git a/screenshots/diagram.png b/screenshots/diagram.png index 892c1d7d3dcecca21a8f871a1037e7a0b8fd3ab0..e90c0779c470a0c524392a0171dbdafea88a30d2 100644 GIT binary patch literal 38580 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 + +std::string doubleToString(const double value) +{ + std::string result = std::to_string(value); + + const std::regex integerRegex("^([0-9]+?)(?:\\.0+)$"); + const std::regex trailingSpacesRegex("^([0-9]+?\\.[0-9]*?[1-9])0*$"); + + std::smatch match; + + if (std::regex_match(result, match, integerRegex) + || std::regex_match(result, match, trailingSpacesRegex)) + { + result = match[1]; + } + + return result; +} diff --git a/src/Algorithms.h b/src/Algorithms.h new file mode 100644 index 0000000..f36c0af --- /dev/null +++ b/src/Algorithms.h @@ -0,0 +1,6 @@ +#pragma once + +#include + +// Converts double to string and removes trailing floating zeroes if there are any. +std::string doubleToString(double value); diff --git a/src/DrawioElements/MxGeometryTag.cpp b/src/DrawioElements/MxGeometryTag.cpp index d9f4660..0db352f 100644 --- a/src/DrawioElements/MxGeometryTag.cpp +++ b/src/DrawioElements/MxGeometryTag.cpp @@ -1,5 +1,7 @@ #include "MxGeometryTag.h" +#include "Algorithms.h" + MxGeometryTag::MxGeometryTag() : MxGeometryTag(0, 0, 0, 0) { } @@ -14,10 +16,10 @@ MxGeometryTag::MxGeometryTag(const double x, , m_width(width) , m_height(height) { - setAttribute("x", std::to_string(x)); - setAttribute("y", std::to_string(y)); - setAttribute("width", std::to_string(width)); - setAttribute("height", std::to_string(height)); + setAttribute("x", doubleToString(x)); + setAttribute("y", doubleToString(y)); + setAttribute("width", doubleToString(width)); + setAttribute("height", doubleToString(height)); setAttribute("as", "geometry"); } @@ -46,22 +48,22 @@ double MxGeometryTag::getHeight() const return m_height; } -void MxGeometryTag::setX(double x) +void MxGeometryTag::setX(const double x) { m_x = x; } -void MxGeometryTag::setY(double y) +void MxGeometryTag::setY(const double y) { m_y = y; } -void MxGeometryTag::setWidth(double width) +void MxGeometryTag::setWidth(const double width) { m_width = width; } -void MxGeometryTag::setHeight(double height) +void MxGeometryTag::setHeight(const double height) { m_height = height; } diff --git a/src/File.cpp b/src/File.cpp index 7787dbf..8305afe 100644 --- a/src/File.cpp +++ b/src/File.cpp @@ -29,9 +29,10 @@ bool readLine(const std::string_view filePath, std::string& line) } } -std::string readFile(std::string_view filePath) +std::string readFile(const std::string_view filePath) { - std::string fileContent, line; + std::string fileContent; + std::string line; while (readLine(filePath, line)) { diff --git a/src/File.h b/src/File.h index adb4723..31f915b 100644 --- a/src/File.h +++ b/src/File.h @@ -9,7 +9,7 @@ bool readLine(std::string_view filePath, std::string& line); std::string readFile(std::string_view filePath); template -void writeToFile(std::string_view filePath, Collection collection) +void writeToFile(const std::string_view filePath, Collection collection) { std::ofstream outputFile(filePath.data()); diff --git a/src/Logging.h b/src/Logging.h index 16c1ae8..e3ca5dc 100644 --- a/src/Logging.h +++ b/src/Logging.h @@ -10,7 +10,7 @@ template void printList(BidirectionalIteratorT begin, BidirectionalIteratorT end, GetterT getItem, - std::string_view separator = ", ") + const std::string_view separator = ", ") { auto lastItem = end; --lastItem; diff --git a/src/Main.cpp b/src/Main.cpp index 8f90d3b..e75a540 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -13,7 +13,7 @@ int main(int argc, const char* argv[]) { - if (argc < 4) + if (argc != 4) { LOG_ERROR("Usage: SatisParsery path/to/data.json path/to/configuration.json " "path/to/output.drawio"); diff --git a/src/RecipeElements/XmlRecipe.cpp b/src/RecipeElements/XmlRecipe.cpp index cf667f7..7898462 100644 --- a/src/RecipeElements/XmlRecipe.cpp +++ b/src/RecipeElements/XmlRecipe.cpp @@ -3,6 +3,8 @@ #include "GroupItem.h" #include "Logging.h" +#include "Algorithms.h" + XmlRecipe::XmlRecipe(const std::string_view parentId, const size_t recipeIndex, const Items& ingredients, @@ -143,6 +145,8 @@ void XmlRecipe::generateItemElements(const Items& source, } } + name = doubleToString(source[i].count) + " " + name; + const auto itemElementPtr = new RecipeItem(m_groupElement->getId(), name, style, geometry); diff --git a/src/XmlElement.cpp b/src/XmlElement.cpp index 29f746f..bd6243c 100644 --- a/src/XmlElement.cpp +++ b/src/XmlElement.cpp @@ -3,7 +3,7 @@ #include #include -XmlElement::XmlElement(std::string_view type) +XmlElement::XmlElement(const std::string_view type) : m_type(type) { }