From 36d158ac1b82a859c76ba6143ba7a59f71d5600e Mon Sep 17 00:00:00 2001 From: WandererFan Date: Sun, 29 Dec 2019 22:24:03 -0500 Subject: [PATCH] [TD]support Pyramid in Balloon --- src/Mod/TechDraw/App/DrawViewBalloon.cpp | 24 +++++++++++- src/Mod/TechDraw/Gui/QGIArrow.h | 14 +++---- src/Mod/TechDraw/Gui/QGILeaderLine.cpp | 1 - src/Mod/TechDraw/Gui/QGIViewBalloon.cpp | 23 ++++++++--- src/Mod/TechDraw/Gui/QGIViewBalloon.h | 5 ++- src/Mod/TechDraw/Gui/TaskBalloon.ui | 49 +++++++++++++++++++++++- 6 files changed, 97 insertions(+), 19 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawViewBalloon.cpp b/src/Mod/TechDraw/App/DrawViewBalloon.cpp index bc29e58be0..91293acdc7 100644 --- a/src/Mod/TechDraw/App/DrawViewBalloon.cpp +++ b/src/Mod/TechDraw/App/DrawViewBalloon.cpp @@ -71,10 +71,30 @@ using namespace TechDraw; PROPERTY_SOURCE(TechDraw::DrawViewBalloon, TechDraw::DrawView) -const char* DrawViewBalloon::endTypeEnums[]= {"Arrow", - "Dot", +//from Gui/QGIArrow.h +//enum ArrowType { +// FILLED_TRIANGLE = 0, +// OPEN_ARROW, +// HASH_MARK, +// DOT, +// OPEN_CIRCLE, +// FORK, +// PYRAMID +// }; + +const char* DrawViewBalloon::endTypeEnums[]= { "FILLED_TRIANGLE", + "OPEN_ARROW", + "HASH_MARK", + "DOT", + "OPEN_CIRCLE", + "FORK", + "PYRAMID", NULL}; +//const char* DrawViewBalloon::endTypeEnums[]= {"Arrow", +// "Dot", +// NULL}; + const char* DrawViewBalloon::balloonTypeEnums[]= {"Circular", "None", "Triangle", diff --git a/src/Mod/TechDraw/Gui/QGIArrow.h b/src/Mod/TechDraw/Gui/QGIArrow.h index 7c34e466f4..05b6228304 100644 --- a/src/Mod/TechDraw/Gui/QGIArrow.h +++ b/src/Mod/TechDraw/Gui/QGIArrow.h @@ -36,13 +36,13 @@ namespace TechDrawGui { enum ArrowType { - FILLED_TRIANGLE = 0, - OPEN_ARROW, - HASH_MARK, - DOT, - OPEN_CIRCLE, - FORK, - PYRAMID + FILLED_TRIANGLE = 0, + OPEN_ARROW, + HASH_MARK, + DOT, + OPEN_CIRCLE, + FORK, + PYRAMID }; class TechDrawGuiExport QGIArrow : public QGIPrimPath diff --git a/src/Mod/TechDraw/Gui/QGILeaderLine.cpp b/src/Mod/TechDraw/Gui/QGILeaderLine.cpp index cbaf52385e..acdf1ec211 100644 --- a/src/Mod/TechDraw/Gui/QGILeaderLine.cpp +++ b/src/Mod/TechDraw/Gui/QGILeaderLine.cpp @@ -491,7 +491,6 @@ void QGILeaderLine::setArrows(std::vector pathPoints) Base::Vector3d stdX(1.0,0.0,0.0); TechDraw::DrawLeaderLine* featLeader = getFeature(); - double baseScale = featLeader->getBaseScale(); QPointF lastOffset = (pathPoints.back() - pathPoints.front()); if (featLeader->StartSymbol.getValue() > -1) { diff --git a/src/Mod/TechDraw/Gui/QGIViewBalloon.cpp b/src/Mod/TechDraw/Gui/QGIViewBalloon.cpp index 552f648faf..fa6ad8103a 100644 --- a/src/Mod/TechDraw/Gui/QGIViewBalloon.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewBalloon.cpp @@ -639,13 +639,16 @@ void QGIViewBalloon::draw_modifier(bool modifier) balloonLines->setPath(dLinePath); balloonShape->setPath(balloonPath); - const char *endType = balloon->EndType.getValueAsString(); +// const char *endType = balloon->EndType.getValueAsString(); - if (strcmp(endType, "Arrow") == 0) { - arrow->setStyle(QGIArrow::getPrefArrowStyle()); - } else if (strcmp(endType, "Dot") == 0) { - arrow->setStyle(3); - } +// if (strcmp(endType, "FILLED_TRIANGLE") == 0) { +// arrow->setStyle(QGIArrow::getPrefArrowStyle()); +// } else if (strcmp(endType, "DOT") == 0) { +// arrow->setStyle(3); +// } + + int endType = balloon->EndType.getValue(); + arrow->setStyle(endType); arrow->setSize(QGIArrow::getPrefArrowSize()); arrow->draw(); @@ -755,4 +758,12 @@ QColor QGIViewBalloon::getNormalColor() return m_colNormal; } +int QGIViewBalloon::prefDefaultArrow() const +{ + Base::Reference hGrp = App::GetApplication().GetUserParameter() + .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/TechDraw/Dimensions"); + int arrow = hGrp->GetInt("BalloonArrow", QGIArrow::getPrefArrowStyle()); + return arrow; +} + #include diff --git a/src/Mod/TechDraw/Gui/QGIViewBalloon.h b/src/Mod/TechDraw/Gui/QGIViewBalloon.h index 05df23421f..237c7e97c4 100644 --- a/src/Mod/TechDraw/Gui/QGIViewBalloon.h +++ b/src/Mod/TechDraw/Gui/QGIViewBalloon.h @@ -137,12 +137,15 @@ public: virtual void paint( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0 ) override; - virtual QColor getNormalColor(void) override; QString getLabelText(void); void draw_modifier(bool modifier); void placeBalloon(QPointF pos); TechDraw::DrawViewBalloon *dvBalloon; + virtual QColor getNormalColor(void) override; + int prefDefaultArrow() const; + + public Q_SLOTS: void balloonLabelDragged(bool ctrl); void balloonLabelDragFinished(void); diff --git a/src/Mod/TechDraw/Gui/TaskBalloon.ui b/src/Mod/TechDraw/Gui/TaskBalloon.ui index 015fe4c385..d568ffef22 100644 --- a/src/Mod/TechDraw/Gui/TaskBalloon.ui +++ b/src/Mod/TechDraw/Gui/TaskBalloon.ui @@ -31,7 +31,7 @@ - Arrow + FILLED_TRIANGLE @@ -40,13 +40,58 @@ - Dot + OPEN_ARROW + + + + :/icons/arrowopen.svg:/icons/arrowopen.svg + + + + + HASH_MARK + + + + :/icons/arrowtick.svg:/icons/arrowtick.svg + + + + + DOT :/icons/arrowdot.svg:/icons/arrowdot.svg + + + OPEN_CIRCLE + + + + :/icons/arrowopendot.svg:/icons/arrowopendot.svg + + + + + FORK + + + + :/icons/arrowfork.svg:/icons/arrowfork.svg + + + + + PYRAMID + + + + :/icons/arrowpyramid.svg:/icons/arrowpyramid.svg + +