diff --git a/.gitignore b/.gitignore index 005054b5b9..37c93765d7 100644 --- a/.gitignore +++ b/.gitignore @@ -56,6 +56,8 @@ tags /CMakeUserPresets.json Testing compile_commands.json +*.sublime-project +*.sublime-workspace # crowdin file src/Tools/freecad.zip diff --git a/src/Mod/TechDraw/Gui/QGEPath.cpp b/src/Mod/TechDraw/Gui/QGEPath.cpp index 910a99bba3..26aa18299e 100644 --- a/src/Mod/TechDraw/Gui/QGEPath.cpp +++ b/src/Mod/TechDraw/Gui/QGEPath.cpp @@ -118,7 +118,7 @@ void QGMarker::keyPressEvent(QKeyEvent * event) } //! adjust the size of this marker -void QGMarker::setRadius(float radius) +void QGMarker::setRadius(double radius) { //TODO:: implement different marker shapes. circle, square, triangle, ??? //if (m_markerShape == Circle) { ... diff --git a/src/Mod/TechDraw/Gui/QGEPath.h b/src/Mod/TechDraw/Gui/QGEPath.h index 3a6145d9f9..e9d2a028e0 100644 --- a/src/Mod/TechDraw/Gui/QGEPath.h +++ b/src/Mod/TechDraw/Gui/QGEPath.h @@ -55,7 +55,7 @@ public: void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override; void keyPressEvent(QKeyEvent * event) override; - void setRadius(float radius) override; + void setRadius(double radius) override; Q_SIGNALS: void dragging(QPointF pos, int idx); diff --git a/src/Mod/TechDraw/Gui/QGIVertex.cpp b/src/Mod/TechDraw/Gui/QGIVertex.cpp index 085f052a38..ac2505dd87 100644 --- a/src/Mod/TechDraw/Gui/QGIVertex.cpp +++ b/src/Mod/TechDraw/Gui/QGIVertex.cpp @@ -49,7 +49,7 @@ QGIVertex::QGIVertex(int index) : setRadius(m_radius); } -void QGIVertex::setRadius(float r) +void QGIVertex::setRadius(double r) { m_radius = r; QPainterPath p; diff --git a/src/Mod/TechDraw/Gui/QGIVertex.h b/src/Mod/TechDraw/Gui/QGIVertex.h index f030410bab..2391dc5466 100644 --- a/src/Mod/TechDraw/Gui/QGIVertex.h +++ b/src/Mod/TechDraw/Gui/QGIVertex.h @@ -46,8 +46,8 @@ public: int getProjIndex() const { return projIndex; } - float getRadius() { return m_radius; } - virtual void setRadius(float r); + double getRadius() const { return m_radius; } + virtual void setRadius(double r); Base::Vector2d toVector2d() const; Base::Vector2d vector2dBetweenPoints(const QGIVertex* p2) const; @@ -56,9 +56,7 @@ protected: bool multiselectEligible() override { return true; } int projIndex; - float m_radius; - -private: + double m_radius; }; } diff --git a/src/Mod/TechDraw/Gui/QGIViewPart.cpp b/src/Mod/TechDraw/Gui/QGIViewPart.cpp index e3c691f987..d0259a66bb 100644 --- a/src/Mod/TechDraw/Gui/QGIViewPart.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewPart.cpp @@ -433,8 +433,6 @@ void QGIViewPart::drawAllVertexes() auto dvp(static_cast(getViewObject())); auto vp(static_cast(getViewProvider(getViewObject()))); - float lineWidth = vp->LineWidth.getValue() * lineScaleFactor; //thick - double vertexScaleFactor = Preferences::getPreferenceGroup("General")->GetFloat("VertexScale", 3.0); QColor vertexColor = PreferencesGui::getAccessibleQColor(PreferencesGui::vertexQColor()); const std::vector& verts = dvp->getVertexGeometry(); @@ -445,8 +443,8 @@ void QGIViewPart::drawAllVertexes() QGICMark* cmItem = new QGICMark(i); addToGroup(cmItem); cmItem->setPos(Rez::guiX((*vert)->x()), Rez::guiX((*vert)->y())); - cmItem->setThick(0.5 * lineWidth);//need minimum? - cmItem->setSize(lineWidth * vertexScaleFactor * vp->CenterScale.getValue()); + cmItem->setThick(0.5F * getLineWidth());//need minimum? + cmItem->setSize(getVertexSize() * vp->CenterScale.getValue()); cmItem->setPrettyNormal(); cmItem->setZValue(ZVALUE::VERTEX); } @@ -458,7 +456,7 @@ void QGIViewPart::drawAllVertexes() item->setPos(Rez::guiX((*vert)->x()), Rez::guiX((*vert)->y())); item->setNormalColor(vertexColor); item->setFillColor(vertexColor); - item->setRadius(lineWidth * vertexScaleFactor); + item->setRadius(getVertexSize()); item->setPrettyNormal(); item->setZValue(ZVALUE::VERTEX); } @@ -1292,3 +1290,13 @@ void QGIViewPart::setGroupSelection(bool isSelected, const std::vector(getViewProvider(getViewObject()))}; + + return vp->LineWidth.getValue() * lineScaleFactor; // Thick +} + +double QGIViewPart::getVertexSize() { + return getLineWidth() * Preferences::vertexScale(); +} diff --git a/src/Mod/TechDraw/Gui/QGIViewPart.h b/src/Mod/TechDraw/Gui/QGIViewPart.h index 963de0610d..03526c0f1c 100644 --- a/src/Mod/TechDraw/Gui/QGIViewPart.h +++ b/src/Mod/TechDraw/Gui/QGIViewPart.h @@ -124,6 +124,9 @@ public: virtual bool removeSelectedCosmetic() const; + virtual double getLineWidth(); + virtual double getVertexSize(); + protected: QPainterPath drawPainterPath(TechDraw::BaseGeomPtr baseGeom) const; void drawViewPart(); diff --git a/src/Mod/TechDraw/Gui/QGTracker.cpp b/src/Mod/TechDraw/Gui/QGTracker.cpp index f188090297..a69856f024 100644 --- a/src/Mod/TechDraw/Gui/QGTracker.cpp +++ b/src/Mod/TechDraw/Gui/QGTracker.cpp @@ -41,7 +41,9 @@ #include "PreferencesGui.h" #include "QGTracker.h" +#include "QGIVertex.h" #include "QGIView.h" +#include "QGIViewPart.h" #include "QGSPage.h" #include "Rez.h" #include "ZVALUE.h" @@ -438,12 +440,15 @@ void QGTracker::setPoint(std::vector pts) return; } prepareGeometryChange(); - QPainterPath newPath; - QPointF center = pts.front(); - double radius = 50.0; - newPath.addEllipse(center, radius, radius); - setPath(newPath); - setPrettyNormal(); + + auto point = new QGIVertex(-1); + point->setParentItem(this); + point->setPos(pts.front()); + point->setRadius(static_cast(m_qgParent)->getVertexSize()); + point->setNormalColor(Qt::blue); + point->setFillColor(Qt::blue); + point->setPrettyNormal(); + point->setZValue(ZVALUE::VERTEX); } std::vector QGTracker::convertPoints()