From e2446c40761713ff7034cc0c3c2ca35f3834f23f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Br=C3=A6strup=20Sayoc?= Date: Sat, 1 Feb 2025 14:15:13 +0100 Subject: [PATCH] Remove magic number and hard type enums in DrawBrokenView.h - Remove currently present magic numbers - Hard type enums, so magic numbers can no longer be introduced. We don't want people to introduce magic numbers. --- src/Mod/TechDraw/App/DrawBrokenView.h | 3 +-- src/Mod/TechDraw/App/Preferences.cpp | 6 ++++-- src/Mod/TechDraw/App/Preferences.h | 3 ++- src/Mod/TechDraw/Gui/QGIBreakLine.cpp | 6 +++--- src/Mod/TechDraw/Gui/QGIBreakLine.h | 7 ++++--- src/Mod/TechDraw/Gui/QGIViewPart.cpp | 2 +- src/Mod/TechDraw/Gui/ViewProviderViewPart.cpp | 2 +- 7 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawBrokenView.h b/src/Mod/TechDraw/App/DrawBrokenView.h index 6d1c2c9e0f..564d59c36f 100644 --- a/src/Mod/TechDraw/App/DrawBrokenView.h +++ b/src/Mod/TechDraw/App/DrawBrokenView.h @@ -60,8 +60,7 @@ class TechDrawExport DrawBrokenView: public TechDraw::DrawViewPart PROPERTY_HEADER_WITH_OVERRIDE(TechDraw::DrawBrokenView); public: - enum BreakType - { + enum class BreakType : int { NONE, ZIGZAG, SIMPLE diff --git a/src/Mod/TechDraw/App/Preferences.cpp b/src/Mod/TechDraw/App/Preferences.cpp index bcaf002226..6f9aa9261e 100644 --- a/src/Mod/TechDraw/App/Preferences.cpp +++ b/src/Mod/TechDraw/App/Preferences.cpp @@ -34,6 +34,7 @@ #include #include "Preferences.h" +#include "DrawBrokenView.h" #include "LineGenerator.h" //getters for parameters used in multiple places. @@ -593,9 +594,10 @@ bool Preferences::useExactMatchOnDims() return getPreferenceGroup("Dimensions")->GetBool("UseMatcher", true); } -int Preferences::BreakType() +DrawBrokenView::BreakType Preferences::BreakType() { - return getPreferenceGroup("Decorations")->GetInt("BreakType", 2); + int temp = getPreferenceGroup("Decorations")->GetInt("BreakType", 2); + return static_cast(temp); } diff --git a/src/Mod/TechDraw/App/Preferences.h b/src/Mod/TechDraw/App/Preferences.h index 33243531ea..c054c2433f 100644 --- a/src/Mod/TechDraw/App/Preferences.h +++ b/src/Mod/TechDraw/App/Preferences.h @@ -29,6 +29,7 @@ #include #include +#include "DrawBrokenView.h" class QColor; class QString; @@ -136,7 +137,7 @@ public: static bool showSectionLine(); static bool includeCutLine(); - static int BreakType(); + static DrawBrokenView::BreakType BreakType(); static bool useExactMatchOnDims(); diff --git a/src/Mod/TechDraw/Gui/QGIBreakLine.cpp b/src/Mod/TechDraw/Gui/QGIBreakLine.cpp index 894253e37a..4a4df4a99e 100644 --- a/src/Mod/TechDraw/Gui/QGIBreakLine.cpp +++ b/src/Mod/TechDraw/Gui/QGIBreakLine.cpp @@ -71,21 +71,21 @@ QGIBreakLine::QGIBreakLine() void QGIBreakLine::draw() { - if (breakType() == 0) { + if (breakType() == DrawBrokenView::BreakType::NONE) { // none m_background->hide(); m_line0->hide(); m_line1->hide(); } - if (breakType() == 1) { + if (breakType() == DrawBrokenView::BreakType::ZIGZAG) { drawLargeZigZag(); m_background->show(); m_line0->show(); m_line1->show(); } - if (breakType() == 2) { + if (breakType() == DrawBrokenView::BreakType::SIMPLE) { // simple line from pref drawSimpleLines(); m_background->hide(); diff --git a/src/Mod/TechDraw/Gui/QGIBreakLine.h b/src/Mod/TechDraw/Gui/QGIBreakLine.h index c8a5912a24..4607d54186 100644 --- a/src/Mod/TechDraw/Gui/QGIBreakLine.h +++ b/src/Mod/TechDraw/Gui/QGIBreakLine.h @@ -36,6 +36,7 @@ #include "QGCustomText.h" #include "QGIDecoration.h" +using BreakType = TechDraw::DrawBrokenView::BreakType; namespace TechDrawGui { @@ -59,8 +60,8 @@ public: void setLinePen(QPen isoPen); void setBreakColor(QColor c); - void setBreakType(int style) { m_breakType = style; } - int breakType() const { return m_breakType; } + void setBreakType(BreakType style) { m_breakType = style; } + BreakType breakType() const { return m_breakType; } protected: @@ -84,7 +85,7 @@ private: double m_left; double m_right; - int m_breakType{0}; + BreakType m_breakType = BreakType::NONE; }; } diff --git a/src/Mod/TechDraw/Gui/QGIViewPart.cpp b/src/Mod/TechDraw/Gui/QGIViewPart.cpp index 1ecd5bb5b9..9d9d614c22 100644 --- a/src/Mod/TechDraw/Gui/QGIViewPart.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewPart.cpp @@ -1043,7 +1043,7 @@ void QGIViewPart::drawBreakLines() return; } - auto breakType = vp->BreakLineType.getValue(); + DrawBrokenView::BreakType breakType = static_cast(vp->BreakLineType.getValue()); auto breaks = dbv->Breaks.getValues(); for (auto& breakObj : breaks) { QGIBreakLine* breakLine = new QGIBreakLine(); diff --git a/src/Mod/TechDraw/Gui/ViewProviderViewPart.cpp b/src/Mod/TechDraw/Gui/ViewProviderViewPart.cpp index fcead39ce0..0b19e1d9cd 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderViewPart.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderViewPart.cpp @@ -132,7 +132,7 @@ ViewProviderViewPart::ViewProviderViewPart() // properties that affect BrokenViews BreakLineType.setEnums(DrawBrokenView::BreakTypeEnums); - ADD_PROPERTY_TYPE(BreakLineType, (Preferences::BreakType()), bvgroup, App::Prop_None, + ADD_PROPERTY_TYPE(BreakLineType, (static_cast(Preferences::BreakType())), bvgroup, App::Prop_None, "Adjusts the type of break line depiction on broken views"); ADD_PROPERTY_TYPE(BreakLineStyle, (Preferences::BreakLineStyle()), bvgroup, App::Prop_None, "Set break line style if applicable");