diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/appveyor.yml valentina-0.5.999+59+201706260650~ubuntu16.10.1/appveyor.yml --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/appveyor.yml 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/appveyor.yml 2017-06-26 06:50:50.000000000 +0000 @@ -146,7 +146,7 @@ # to run your custom scripts instead of automatic MSBuild build_script: - cd build - - if "%DEPLOY%" == "true" (qmake ..\Valentina.pro -r CONFIG+=no_ccache CONFIG+=checkWarnings) else (qmake ..\Valentina.pro -r CONFIG+=noDebugSymbols CONFIG+=no_ccache CONFIG+=checkWarnings) + - if "%DEPLOY%" == "true" (qmake ..\Valentina.pro -r CONFIG+=no_ccache CONFIG+=checkWarnings CONFIG+=noWindowsInstaller) else (qmake ..\Valentina.pro -r CONFIG+=noDebugSymbols CONFIG+=no_ccache CONFIG+=checkWarnings) - if not "%QMAKE_GENERATOR%" == "MinGW Makefiles" (nmake -s) else (mingw32-make) # to run your custom scripts instead of automatic tests @@ -195,7 +195,7 @@ package: valentina-win_auto-upload publish: true override: true - version: 0.5 + version: 0.6 on: DEPLOY: true artifact: valentina-win-$(QT_VERSION)-$(APPVEYOR_REPO_COMMIT) diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/common.pri valentina-0.5.999+59+201706260650~ubuntu16.10.1/common.pri --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/common.pri 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/common.pri 2017-06-26 06:50:50.000000000 +0000 @@ -83,7 +83,7 @@ for(FILE, files) { unix{ - QMAKE_POST_LINK += ln -s -f $$quote($$FILE) $$quote($$DDIR/$$basename(FILE)) $$escape_expand(\\n\\t) + QMAKE_PRE_LINK += ln -s -f $$quote($$FILE) $$quote($$DDIR/$$basename(FILE)) & $$escape_expand(\\n\\t) } else { !exists($$DDIR/$$basename(FILE)) { # Replace slashes in paths with backslashes for Windows @@ -91,7 +91,7 @@ FILE ~= s,/,\\,g DDIR ~= s,/,\\,g } - QMAKE_POST_LINK += $$VCOPY $$quote($$FILE) $$quote($$DDIR) $$escape_expand(\\n\\t) + QMAKE_PRE_LINK += $$VCOPY $$quote($$FILE) $$quote($$DDIR) $$escape_expand(\\n\\t) } QMAKE_CLEAN += $$DDIR/$$basename(FILE) @@ -110,14 +110,14 @@ for(FILE, files) { unix{ - QMAKE_POST_LINK += ln -s -f $$quote($$FILE) $$quote($$DDIR/$$basename(FILE)) $$escape_expand(\\n\\t) + QMAKE_PRE_LINK += ln -s -f $$quote($$FILE) $$quote($$DDIR/$$basename(FILE)) & $$escape_expand(\\n\\t) } else { # Replace slashes in paths with backslashes for Windows win32{ FILE ~= s,/,\\,g DDIR ~= s,/,\\,g } - QMAKE_POST_LINK += $$VCOPY $$quote($$FILE) $$quote($$DDIR) $$escape_expand(\\n\\t) + QMAKE_PRE_LINK += $$VCOPY $$quote($$FILE) $$quote($$DDIR) $$escape_expand(\\n\\t) QMAKE_CLEAN += $$DDIR/$$basename(FILE) } } diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/debian/bzr-builder.manifest valentina-0.5.999+59+201706260650~ubuntu16.10.1/debian/bzr-builder.manifest --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/debian/bzr-builder.manifest 2017-06-19 13:47:55.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/debian/bzr-builder.manifest 2017-06-26 06:51:03.000000000 +0000 @@ -1,3 +1,3 @@ -# bzr-builder format 0.3 deb-version {debupstream}+59+201706191347 -lp:valentina revid:git-v1:057e6c7905875553528e3aeb177cf16306eaa56b +# bzr-builder format 0.3 deb-version {debupstream}+59+201706260650 +lp:valentina revid:git-v1:ce167336cdd69a37f9856e323d776d57d5eb9a29 merge packaging lp:~dismine/valentina/debian revid:dismine@gmail.com-20170512121404-pihndj6clqkcxj85 diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/debian/changelog valentina-0.5.999+59+201706260650~ubuntu16.10.1/debian/changelog --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/debian/changelog 2017-06-19 13:47:55.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/debian/changelog 2017-06-26 06:51:03.000000000 +0000 @@ -1,8 +1,8 @@ -valentina (0.5.999+59+201706191347~ubuntu16.10.1) yakkety; urgency=low +valentina (0.5.999+59+201706260650~ubuntu16.10.1) yakkety; urgency=low * Auto build. - -- Roman Mon, 19 Jun 2017 13:47:55 +0000 + -- Roman Mon, 26 Jun 2017 06:51:03 +0000 valentina (0.5.999) trusty; urgency=low diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/app/valentina/mainwindow.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/app/valentina/mainwindow.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/app/valentina/mainwindow.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/app/valentina/mainwindow.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -1185,14 +1185,12 @@ QTransform transform = ui->view->transform(); qreal factor = transform.m11(); - factor = qMax(factor, ui->view->MinScale()); - factor = qMin(factor, ui->view->MaxScale()); + factor = qMax(factor, VMainGraphicsView::MinScale()); + factor = qMin(factor, VMainGraphicsView::MaxScale()); transform.setMatrix(factor, transform.m12(), transform.m13(), transform.m21(), factor, transform.m23(), transform.m31(), transform.m32(), transform.m33()); ui->view->setTransform(transform); - - VMainGraphicsView::NewSceneRect(ui->view->scene(), ui->view); } //--------------------------------------------------------------------------------------------------------------------- @@ -4653,7 +4651,7 @@ { ActionDraw(true); } - ui->view->ZoomFitBest(); + ZoomFitBestCurrent(); VMainGraphicsView::NewSceneRect(sceneDraw, ui->view); VMainGraphicsView::NewSceneRect(sceneDetails, ui->view); diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/app/valentina/valentina.pro valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/app/valentina/valentina.pro --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/app/valentina/valentina.pro 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/app/valentina/valentina.pro 2017-06-26 06:50:50.000000000 +0000 @@ -382,34 +382,38 @@ package_printsupport.files += $$[QT_INSTALL_PLUGINS]/printsupport/windowsprintersupport.dll INSTALLS += package_printsupport - SCP_FOUND = false - exists("C:/Program Files (x86)/Inno Setup 5/iscc.exe") { - INNO_ISCC = "C:/Program Files (x86)/Inno Setup 5/iscc.exe" - SCP_FOUND = true - } else { - exists("C:/Program Files/Inno Setup 5/iscc.exe") { - INNO_ISCC = "C:/Program Files/Inno Setup 5/iscc.exe" - SCP_FOUND = true - } - } + noWindowsInstaller{ # For enable run qmake with CONFIG+=noWindowsInstaller + #do nothing + } else { + SCP_FOUND = false + exists("C:/Program Files (x86)/Inno Setup 5/iscc.exe") { + INNO_ISCC = "C:/Program Files (x86)/Inno Setup 5/iscc.exe" + SCP_FOUND = true + } else { + exists("C:/Program Files/Inno Setup 5/iscc.exe") { + INNO_ISCC = "C:/Program Files/Inno Setup 5/iscc.exe" + SCP_FOUND = true + } + } - if($$SCP_FOUND) { - package_inno.path = $${OUT_PWD}/../../../package - package_inno.files += \ - $$PWD/../../../dist/win/inno/LICENSE_VALENTINA \ - $$PWD/../../../dist/win/inno/valentina.iss - INSTALLS += package_inno + if($$SCP_FOUND) { + package_inno.path = $${OUT_PWD}/../../../package + package_inno.files += \ + $$PWD/../../../dist/win/inno/LICENSE_VALENTINA \ + $$PWD/../../../dist/win/inno/valentina.iss + INSTALLS += package_inno - # Do the packaging - # First, mangle all of INSTALLS values. We depend on them. - unset(MANGLED_INSTALLS) - for(x, INSTALLS):MANGLED_INSTALLS += install_$${x} - build_package.path = $${OUT_PWD}/../../../package - build_package.commands = $$INNO_ISCC \"$${OUT_PWD}/../../../package/valentina.iss\" - build_package.depends = $${MANGLED_INSTALLS} - INSTALLS += build_package - } else { - message("Inno Setup was not found!") + # Do the packaging + # First, mangle all of INSTALLS values. We depend on them. + unset(MANGLED_INSTALLS) + for(x, INSTALLS):MANGLED_INSTALLS += install_$${x} + build_package.path = $${OUT_PWD}/../../../package + build_package.commands = $$INNO_ISCC \"$${OUT_PWD}/../../../package/valentina.iss\" + build_package.depends = $${MANGLED_INSTALLS} + INSTALLS += build_package + } else { + message("Inno Setup was not found!") + } } } diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vgeometry/vabstractcubicbezierpath.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vgeometry/vabstractcubicbezierpath.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vgeometry/vabstractcubicbezierpath.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vgeometry/vabstractcubicbezierpath.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -65,27 +65,16 @@ } //--------------------------------------------------------------------------------------------------------------------- -QPainterPath VAbstractCubicBezierPath::GetDirectionPath() const -{ - QPainterPath painterPath; - for (qint32 i = 1; i <= CountSubSpl(); ++i) - { - painterPath.addPath(GetSpline(i).GetDirectionPath()); - } - return painterPath; -} - -//--------------------------------------------------------------------------------------------------------------------- /** * @brief GetPath return QPainterPath which reprezent spline path. * @return path. */ -QPainterPath VAbstractCubicBezierPath::GetPath(PathDirection direction) const +QPainterPath VAbstractCubicBezierPath::GetPath() const { QPainterPath painterPath; for (qint32 i = 1; i <= CountSubSpl(); ++i) { - painterPath.addPath(GetSpline(i).GetPath(direction)); + painterPath.addPath(GetSpline(i).GetPath()); } return painterPath; } @@ -121,6 +110,17 @@ } //--------------------------------------------------------------------------------------------------------------------- +QVector VAbstractCubicBezierPath::DirectionArrows() const +{ + QVector arrows; + for (qint32 i = 1; i <= CountSubSpl(); ++i) + { + arrows += GetSpline(i).DirectionArrows(); + } + return arrows; +} + +//--------------------------------------------------------------------------------------------------------------------- int VAbstractCubicBezierPath::Segment(const QPointF &p) const { int index = -1; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vgeometry/vabstractcubicbezierpath.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vgeometry/vabstractcubicbezierpath.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vgeometry/vabstractcubicbezierpath.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vgeometry/vabstractcubicbezierpath.h 2017-06-26 06:50:50.000000000 +0000 @@ -59,11 +59,12 @@ virtual VSpline GetSpline(qint32 index) const =0; virtual QVector GetSplinePath() const =0; - virtual QPainterPath GetDirectionPath() const Q_DECL_OVERRIDE; - virtual QPainterPath GetPath(PathDirection direction = PathDirection::Hide) const Q_DECL_OVERRIDE; + virtual QPainterPath GetPath() const Q_DECL_OVERRIDE; virtual QVector GetPoints() const Q_DECL_OVERRIDE; virtual qreal GetLength() const Q_DECL_OVERRIDE; + virtual QVector DirectionArrows() const Q_DECL_OVERRIDE; + int Segment(const QPointF &p) const; QPointF CutSplinePath(qreal length, qint32 &p1, qint32 &p2, QPointF &spl1p2, QPointF &spl1p3, QPointF &spl2p2, diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vgeometry/vabstractcurve.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vgeometry/vabstractcurve.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vgeometry/vabstractcurve.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vgeometry/vabstractcurve.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -37,6 +37,8 @@ #include "vabstractcurve_p.h" +const qreal VAbstractCurve::lengthCurveDirectionArrow = 14; + VAbstractCurve::VAbstractCurve(const GOType &type, const quint32 &idObject, const Draw &mode) :VGObject(type, idObject, mode), d (new VAbstractCurveData()) {} @@ -169,13 +171,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -QPainterPath VAbstractCurve::GetDirectionPath() const -{ - return ShowDirection(GetPoints()); -} - -//--------------------------------------------------------------------------------------------------------------------- -QPainterPath VAbstractCurve::GetPath(PathDirection direction) const +QPainterPath VAbstractCurve::GetPath() const { QPainterPath path; @@ -183,12 +179,6 @@ if (points.count() >= 2) { path.addPolygon(QPolygonF(points)); - - if (direction == PathDirection::Show) - { - path.addPath(ShowDirection(points)); - } - path.setFillRule(Qt::WindingFill); } else { @@ -323,10 +313,11 @@ } //--------------------------------------------------------------------------------------------------------------------- -QPainterPath VAbstractCurve::ShowDirection(const QVector &points) const +QVector VAbstractCurve::DirectionArrows() const { - QPainterPath path; + QVector arrows; + const QVector points = GetPoints(); if (points.count() >= 2) { /*Need find coordinate midle of curve. @@ -350,15 +341,45 @@ //Reverse line because we want start arrow from this point arrow = QLineF(arrow.p2(), arrow.p1()); const qreal angle = arrow.angle();//we each time change line angle, better save original angle value - arrow.setLength(14);//arrow length in pixels + arrow.setLength(lengthCurveDirectionArrow);//arrow length in pixels + + DirectionArrow dArrow; arrow.setAngle(angle-35); - path.moveTo(arrow.p1()); - path.lineTo(arrow.p2()); + dArrow.first = arrow; arrow.setAngle(angle+35); - path.moveTo(arrow.p1()); - path.lineTo(arrow.p2()); + dArrow.second = arrow; + + arrows.append(dArrow); + } + return arrows; +} + +//--------------------------------------------------------------------------------------------------------------------- +QPainterPath VAbstractCurve::ShowDirection(const QVector &arrows, qreal width) +{ + QPainterPath path; + + for (int i = 0; i < arrows.size(); ++i) + { + const DirectionArrow arrow = arrows.at(i); + if (not arrow.first.isNull() && not arrow.second.isNull()) + { + QPainterPath arrowPath; + + QLineF line = arrow.first; + line.setLength(width); + arrowPath.moveTo(line.p1()); + arrowPath.lineTo(line.p2()); + + line = arrow.second; + line.setLength(width); + arrowPath.moveTo(line.p1()); + arrowPath.lineTo(line.p2()); + + path.addPath(arrowPath); + } } return path; } diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vgeometry/vabstractcurve.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vgeometry/vabstractcurve.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vgeometry/vabstractcurve.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vgeometry/vabstractcurve.h 2017-06-26 06:50:50.000000000 +0000 @@ -42,7 +42,7 @@ #include "vgeometrydef.h" #include "vgobject.h" -enum class PathDirection : char { Hide, Show }; +typedef QPair DirectionArrow; class QPainterPath; class VAbstractCurveData; @@ -68,8 +68,7 @@ bool reverse = false); QVector GetSegmentPoints(const QPointF &begin, const QPointF &end, bool reverse = false) const; - virtual QPainterPath GetDirectionPath() const; - virtual QPainterPath GetPath(PathDirection direction = PathDirection::Hide) const; + virtual QPainterPath GetPath() const; virtual qreal GetLength() const =0; qreal GetLengthByPoint(const QPointF &point) const; virtual QVector IntersectLine(const QLineF &line) const; @@ -95,7 +94,10 @@ static QVector CurveIntersectLine(const QVector &points, const QLineF &line); virtual QString NameForHistory(const QString &toolName) const=0; - QPainterPath ShowDirection(const QVector &points) const; + virtual QVector DirectionArrows() const; + static QPainterPath ShowDirection(const QVector &arrows, qreal width); + + static const qreal lengthCurveDirectionArrow; protected: virtual void CreateName() =0; private: diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vmisc/def.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vmisc/def.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vmisc/def.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vmisc/def.h 2017-06-26 06:50:50.000000000 +0000 @@ -165,6 +165,8 @@ { ControlPointSpline = static_cast(Tool::LAST_ONE_DO_NOT_USE), GraphicsSimpleTextItem, + ScaledLine, + ScaledEllipse, SimplePoint, SimpleCurve, Line, diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -81,7 +81,9 @@ if (m_isHovered || detailsMode) { - path.addPath(curve->GetDirectionPath()); + path.addPath(VAbstractCurve::ShowDirection(curve->DirectionArrows(), + ScaleWidth(VAbstractCurve::lengthCurveDirectionArrow, + SceneScale(scene())))); } path.setFillRule(Qt::WindingFill); @@ -131,7 +133,9 @@ painter->setPen(arrowPen); painter->setBrush(brush()); - painter->drawPath(curve->GetDirectionPath()); + painter->drawPath(VAbstractCurve::ShowDirection(curve->DirectionArrows(), + ScaleWidth(VAbstractCurve::lengthCurveDirectionArrow, + SceneScale(scene())))); painter->restore(); } diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -48,6 +48,7 @@ #include "../../../../vabstracttool.h" #include "../../../vdrawtool.h" #include "../vtoolsinglepoint.h" +#include "../vwidgets/scalesceneitems.h" template class QSharedPointer; @@ -74,7 +75,8 @@ Q_ASSERT_X(basePointId != 0, Q_FUNC_INFO, "basePointId == 0"); //-V654 //-V712 QPointF point1 = static_cast(*data->GeometricObject(basePointId)); QPointF point2 = static_cast(*data->GeometricObject(id)); - mainLine = new QGraphicsLineItem(QLineF(point1 - point2, QPointF()), this); + mainLine = new VScaledLine(QLineF(point1 - point2, QPointF()), this); + mainLine->SetBasicWidth(widthHairLine); mainLine->setFlag(QGraphicsItem::ItemStacksBehindParent, true); } @@ -87,22 +89,16 @@ //--------------------------------------------------------------------------------------------------------------------- void VToolLinePoint::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { - const qreal width = ScaleWidth(m_isHovered ? widthMainLine : widthHairLine, SceneScale(scene())); + QPen mPen = mainLine->pen(); + mPen.setColor(CorrectColor(this, lineColor)); + mPen.setStyle(LineStyleToPenStyle(m_lineType)); - mainLine->setPen(QPen(CorrectColor(this, lineColor), width, LineStyleToPenStyle(m_lineType))); + mainLine->setPen(mPen); VToolSinglePoint::paint(painter, option, widget); } //--------------------------------------------------------------------------------------------------------------------- -QRectF VToolLinePoint::boundingRect() const -{ - QRectF recTool = VToolSinglePoint::boundingRect(); - recTool = recTool.united(childrenBoundingRect()); - return recTool; -} - -//--------------------------------------------------------------------------------------------------------------------- /** * @brief RefreshGeometry refresh item on scene. */ @@ -134,6 +130,20 @@ } //--------------------------------------------------------------------------------------------------------------------- +void VToolLinePoint::hoverEnterEvent(QGraphicsSceneHoverEvent *event) +{ + mainLine->SetBasicWidth(widthMainLine); + VToolSinglePoint::hoverEnterEvent(event); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VToolLinePoint::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) +{ + mainLine->SetBasicWidth(widthHairLine); + VToolSinglePoint::hoverLeaveEvent(event); +} + +//--------------------------------------------------------------------------------------------------------------------- void VToolLinePoint::Disable(bool disable, const QString &namePP) { VToolSinglePoint::Disable(disable, namePP); diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.h 2017-06-26 06:50:50.000000000 +0000 @@ -58,7 +58,6 @@ virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) Q_DECL_OVERRIDE; - virtual QRectF boundingRect() const Q_DECL_OVERRIDE; VFormula GetFormulaLength() const; void SetFormulaLength(const VFormula &value); @@ -88,7 +87,7 @@ quint32 basePointId; /** @brief mainLine line item. */ - QGraphicsLineItem *mainLine; + VScaledLine *mainLine; /** @brief lineColor color of a line. */ QString lineColor; @@ -96,6 +95,8 @@ virtual void RefreshGeometry(); virtual void RemoveReferens() Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; + virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event) Q_DECL_OVERRIDE; + virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VToolLinePoint) }; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolsinglepoint.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolsinglepoint.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolsinglepoint.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolsinglepoint.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -55,6 +55,7 @@ #include "../vmisc/vabstractapplication.h" #include "../vpatterndb/vcontainer.h" #include "../vwidgets/vgraphicssimpletextitem.h" +#include "../vwidgets/scalesceneitems.h" #include "../../../vabstracttool.h" #include "../../vdrawtool.h" #include "../vabstractpoint.h" diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/tools/nodeDetails/vnodepoint.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/tools/nodeDetails/vnodepoint.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/tools/nodeDetails/vnodepoint.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/tools/nodeDetails/vnodepoint.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -201,7 +201,7 @@ void VNodePoint::mousePressEvent(QGraphicsSceneMouseEvent *event) { // Special for not selectable item first need to call standard mousePressEvent then accept event - QGraphicsEllipseItem::mousePressEvent(event); + VScenePoint::mousePressEvent(event); // Somehow clicking on notselectable object do not clean previous selections. if (not (flags() & ItemIsSelectable) && scene()) @@ -223,7 +223,7 @@ { emit ChoosedTool(id, SceneObject::Point); } - QGraphicsEllipseItem::mouseReleaseEvent(event); + VScenePoint::mouseReleaseEvent(event); } //--------------------------------------------------------------------------------------------------------------------- diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/visoperation.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/visoperation.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/visoperation.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/visoperation.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -75,7 +75,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -QGraphicsEllipseItem *VisOperation::GetPoint(quint32 i, const QColor &color) +VScaledEllipse *VisOperation::GetPoint(quint32 i, const QColor &color) { return GetPointItem(points, i, color, this); } @@ -118,7 +118,7 @@ const QSharedPointer p = Visualization::data->GeometricObject(id); ++iPoint; - QGraphicsEllipseItem *point = GetPoint(static_cast(iPoint), supportColor2); + VScaledEllipse *point = GetPoint(static_cast(iPoint), supportColor2); DrawPoint(point, static_cast(*p), supportColor2); ++iPoint; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/visoperation.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/visoperation.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/visoperation.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/visoperation.h 2017-06-26 06:50:50.000000000 +0000 @@ -50,11 +50,11 @@ QVector objects; QColor supportColor2; - QVector points; - QVector curves; + QVector points; + QVector curves; - QGraphicsEllipseItem * GetPoint(quint32 i, const QColor &color); - VCurvePathItem * GetCurve(quint32 i, const QColor &color); + VScaledEllipse *GetPoint(quint32 i, const QColor &color); + VCurvePathItem *GetCurve(quint32 i, const QColor &color); template int AddFlippedCurve(const QPointF &firstPoint, const QPointF &secondPoint, quint32 id, int i); @@ -72,14 +72,14 @@ ++i; VCurvePathItem *path = GetCurve(static_cast(i), supportColor2); - DrawPath(path, curve->GetPath(PathDirection::Show), supportColor2, Qt::SolidLine, Qt::RoundCap); + DrawPath(path, curve->GetPath(), curve->DirectionArrows(), supportColor2, Qt::SolidLine, Qt::RoundCap); ++i; path = GetCurve(static_cast(i), supportColor); if (object1Id != NULL_ID) { const Item flipped = curve->Flip(QLineF(firstPoint, secondPoint)); - DrawPath(path, flipped.GetPath(PathDirection::Show), supportColor, Qt::SolidLine, Qt::RoundCap); + DrawPath(path, flipped.GetPath(), flipped.DirectionArrows(), supportColor, Qt::SolidLine, Qt::RoundCap); } return i; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolflippingbyaxis.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolflippingbyaxis.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolflippingbyaxis.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolflippingbyaxis.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -80,13 +80,3 @@ { m_axisType = value; } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolFlippingByAxis::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point1, scale); - - VisOperation::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolflippingbyaxis.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolflippingbyaxis.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolflippingbyaxis.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolflippingbyaxis.h 2017-06-26 06:50:50.000000000 +0000 @@ -48,15 +48,12 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolFlippingByAxis)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolFlippingByAxis) AxisType m_axisType; - QGraphicsEllipseItem *point1; + VScaledEllipse *point1; }; #endif // VISTOOLFLIPPINGBYAXIS_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolflippingbyline.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolflippingbyline.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolflippingbyline.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolflippingbyline.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -73,17 +73,6 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisToolFlippingByLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point1, scale); - ScalePoint(point2, scale); - - VisOperation::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- void VisToolFlippingByLine::SetFirstLinePointId(quint32 value) { object1Id = value; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolflippingbyline.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolflippingbyline.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolflippingbyline.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolflippingbyline.h 2017-06-26 06:50:50.000000000 +0000 @@ -41,8 +41,6 @@ virtual ~VisToolFlippingByLine() = default; virtual void RefreshGeometry() Q_DECL_OVERRIDE; - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; void SetFirstLinePointId(quint32 value); void SetSecondLinePointId(quint32 value); @@ -51,9 +49,9 @@ enum { Type = UserType + static_cast(Vis::ToolFlippingByLine)}; private: Q_DISABLE_COPY(VisToolFlippingByLine) - quint32 object2Id; - QGraphicsEllipseItem *point1; - QGraphicsEllipseItem *point2; + quint32 object2Id; + VScaledEllipse *point1; + VScaledEllipse *point2; }; #endif // VISTOOLFLIPPINGBYLINE_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolmove.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolmove.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolmove.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolmove.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -129,17 +129,6 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisToolMove::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(pointOrigin, scale); - ScalePoint(pointFinish, scale); - - VisOperation::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- QString VisToolMove::Angle() const { return QString::number(line().angle()); @@ -177,7 +166,7 @@ ++i; VCurvePathItem *path = GetCurve(static_cast(i), supportColor2); - DrawPath(path, curve->GetPath(PathDirection::Show), supportColor2, Qt::SolidLine, Qt::RoundCap); + DrawPath(path, curve->GetPath(), curve->DirectionArrows(), supportColor2, Qt::SolidLine, Qt::RoundCap); return path; } @@ -191,7 +180,7 @@ ++i; VCurvePathItem *path = GetCurve(static_cast(i), supportColor); const Item moved = curve->Move(length, angle); - DrawPath(path, moved.GetPath(PathDirection::Show), supportColor, Qt::SolidLine, Qt::RoundCap); + DrawPath(path, moved.GetPath(), moved.DirectionArrows(), supportColor, Qt::SolidLine, Qt::RoundCap); return i; } @@ -244,7 +233,7 @@ const QSharedPointer p = Visualization::data->GeometricObject(id); ++iPoint; - QGraphicsEllipseItem *point = GetPoint(static_cast(iPoint), supportColor2); + VScaledEllipse *point = GetPoint(static_cast(iPoint), supportColor2); DrawPoint(point, static_cast(*p), supportColor2); originObjects.append(point); @@ -299,7 +288,7 @@ const QSharedPointer p = Visualization::data->GeometricObject(id); ++iPoint; - QGraphicsEllipseItem *point = GetPoint(static_cast(iPoint), supportColor); + VScaledEllipse *point = GetPoint(static_cast(iPoint), supportColor); DrawPoint(point, static_cast(p->Move(length, angle)), supportColor); break; } diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolmove.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolmove.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolmove.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolmove.h 2017-06-26 06:50:50.000000000 +0000 @@ -51,8 +51,6 @@ virtual ~VisToolMove(); virtual void RefreshGeometry() Q_DECL_OVERRIDE; - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; QString Angle() const; void SetAngle(const QString &expression); @@ -65,10 +63,10 @@ enum { Type = UserType + static_cast(Vis::ToolMove)}; private: Q_DISABLE_COPY(VisToolMove) - qreal angle; - qreal length; - QGraphicsEllipseItem *pointOrigin; - QGraphicsEllipseItem *pointFinish; + qreal angle; + qreal length; + VScaledEllipse *pointOrigin; + VScaledEllipse *pointFinish; template QGraphicsPathItem *AddOriginCurve(quint32 id, int &i); diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolrotation.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolrotation.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolrotation.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolrotation.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -65,7 +65,7 @@ { point = InitPoint(supportColor2, this); angleArc = InitItem(supportColor2, this); - xAxis = InitItem(supportColor2, this); + xAxis = InitItem(supportColor2, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -117,7 +117,7 @@ Qt::DashLine); VArc arc(*origin, defPointRadiusPixel*2, 0, tempAngle); - DrawPath(angleArc, arc.GetPath(PathDirection::Hide), supportColor2, Qt::SolidLine, Qt::RoundCap); + DrawPath(angleArc, arc.GetPath(), supportColor2, Qt::SolidLine, Qt::RoundCap); Visualization::toolTip = tr("Rotating angle = %1°, Shift - sticking angle, " "Mouse click - finish creation").arg(tempAngle); @@ -140,7 +140,7 @@ const QSharedPointer p = Visualization::data->GeometricObject(id); ++iPoint; - QGraphicsEllipseItem *point = GetPoint(static_cast(iPoint), supportColor2); + VScaledEllipse *point = GetPoint(static_cast(iPoint), supportColor2); DrawPoint(point, static_cast(*p), supportColor2); ++iPoint; @@ -191,18 +191,6 @@ QT_WARNING_POP //--------------------------------------------------------------------------------------------------------------------- -void VisToolRotation::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePenWidth(angleArc, scale); - ScalePenWidth(xAxis, scale); - - VisOperation::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- void VisToolRotation::SetOriginPointId(quint32 value) { object1Id = value; @@ -228,14 +216,14 @@ ++i; VCurvePathItem *path = GetCurve(static_cast(i), supportColor2); - DrawPath(path, curve->GetPath(PathDirection::Show), supportColor2, Qt::SolidLine, Qt::RoundCap); + DrawPath(path, curve->GetPath(), curve->DirectionArrows(), supportColor2, Qt::SolidLine, Qt::RoundCap); ++i; path = GetCurve(static_cast(i), supportColor); if (object1Id != NULL_ID) { const Item rotated = curve->Rotate(origin, angle); - DrawPath(path, rotated.GetPath(PathDirection::Show), supportColor, Qt::SolidLine, Qt::RoundCap); + DrawPath(path, rotated.GetPath(), rotated.DirectionArrows(), supportColor, Qt::SolidLine, Qt::RoundCap); } return i; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolrotation.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolrotation.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolrotation.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/operation/vistoolrotation.h 2017-06-26 06:50:50.000000000 +0000 @@ -51,8 +51,6 @@ virtual ~VisToolRotation(); virtual void RefreshGeometry() Q_DECL_OVERRIDE; - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; void SetOriginPointId(quint32 value); @@ -63,10 +61,10 @@ enum { Type = UserType + static_cast(Vis::ToolRotation)}; private: Q_DISABLE_COPY(VisToolRotation) - qreal angle; - QGraphicsEllipseItem *point; - VCurvePathItem *angleArc; - QGraphicsLineItem *xAxis; + qreal angle; + VScaledEllipse *point; + VCurvePathItem *angleArc; + VScaledLine *xAxis; template int AddCurve(qreal angle, const QPointF &origin, quint32 id, int i); diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/visline.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/visline.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/visline.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/visline.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -41,7 +41,7 @@ //--------------------------------------------------------------------------------------------------------------------- VisLine::VisLine(const VContainer *data, QGraphicsItem *parent) - :Visualization(data), QGraphicsLineItem(parent) + :Visualization(data), VScaledLine(parent) { this->setZValue(1);// Show on top real tool InitPen(); @@ -79,22 +79,6 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - ScalePenWidth(this, SceneScale(scene())); - - QGraphicsLineItem::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- -QRectF VisLine::boundingRect() const -{ - QRectF recTool = QGraphicsLineItem::boundingRect(); - recTool = recTool.united(childrenBoundingRect()); - return recTool; -} - -//--------------------------------------------------------------------------------------------------------------------- QPointF VisLine::Ray(const QPointF &firstPoint, const qreal &angle) const { if (this->scene() == nullptr) @@ -164,7 +148,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisLine::DrawRay(QGraphicsLineItem *lineItem, const QPointF &p, const QPointF &pTangent, const QColor &color, +void VisLine::DrawRay(VScaledLine *lineItem, const QPointF &p, const QPointF &pTangent, const QColor &color, Qt::PenStyle style) { SCASSERT (lineItem != nullptr) diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/visline.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/visline.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/visline.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/visline.h 2017-06-26 06:50:50.000000000 +0000 @@ -43,8 +43,9 @@ #include "../vtools/visualization/visualization.h" #include "../vmisc/def.h" +#include "../vwidgets/scalesceneitems.h" -class VisLine: public Visualization, public QGraphicsLineItem +class VisLine: public Visualization, public VScaledLine { Q_OBJECT public: @@ -54,10 +55,6 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::Line)}; static qreal CorrectAngle(const qreal &angle); - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; - virtual QRectF boundingRect() const Q_DECL_OVERRIDE; protected: QPointF Ray(const QPointF &firstPoint, const qreal &angle) const; QPointF Ray(const QPointF &firstPoint) const; @@ -66,7 +63,7 @@ virtual void InitPen() Q_DECL_OVERRIDE; virtual void AddOnScene() Q_DECL_OVERRIDE; - void DrawRay(QGraphicsLineItem *lineItem, const QPointF &p, const QPointF &pTangent, + void DrawRay(VScaledLine *lineItem, const QPointF &p, const QPointF &pTangent, const QColor &color, Qt::PenStyle style); private: Q_DISABLE_COPY(VisLine) diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolalongline.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolalongline.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolalongline.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolalongline.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -53,7 +53,7 @@ lineP1 = InitPoint(supportColor, this); lineP2 = InitPoint(supportColor, this); //-V656 - line = InitItem(supportColor, this); + line = InitItem(supportColor, this); point = InitPoint(mainColor, this); } @@ -70,19 +70,6 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisToolAlongLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePoint(lineP1, scale); - ScalePoint(lineP2, scale); - ScalePenWidth(line, scale); - - VisLine::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- void VisToolAlongLine::RefreshGeometry() { if (object1Id > NULL_ID) diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolalongline.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolalongline.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolalongline.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolalongline.h 2017-06-26 06:50:50.000000000 +0000 @@ -51,17 +51,14 @@ void setLength(const QString &expression); virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolAlongLine)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolAlongLine) - quint32 object2Id; - QGraphicsEllipseItem *point; - QGraphicsEllipseItem *lineP1; - QGraphicsEllipseItem *lineP2; - QGraphicsLineItem *line; - qreal length; + quint32 object2Id; + VScaledEllipse *point; + VScaledEllipse *lineP1; + VScaledEllipse *lineP2; + VScaledLine *line; + qreal length; }; #endif // VISTOOLALONGLINE_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolbisector.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolbisector.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolbisector.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolbisector.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -49,10 +49,10 @@ { line1P1 = InitPoint(supportColor, this); line1P2 = InitPoint(supportColor, this); //-V656 - line1 = InitItem(supportColor, this); + line1 = InitItem(supportColor, this); line2P2 = InitPoint(supportColor, this); - line2 = InitItem(supportColor, this); + line2 = InitItem(supportColor, this); point = InitPoint(mainColor, this); } @@ -76,21 +76,6 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisToolBisector::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePoint(line1P1, scale); - ScalePoint(line1P2, scale); - ScalePenWidth(line1, scale); - ScalePoint(line2P2, scale); - ScalePenWidth(line2, scale); - - VisLine::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- void VisToolBisector::RefreshGeometry() { if (object1Id > NULL_ID) diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolbisector.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolbisector.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolbisector.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolbisector.h 2017-06-26 06:50:50.000000000 +0000 @@ -52,20 +52,17 @@ void setLength(const QString &expression); virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolBisector)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolBisector) - quint32 object2Id; - quint32 object3Id; - QGraphicsEllipseItem *point; - QGraphicsEllipseItem *line1P1; - QGraphicsEllipseItem *line1P2; - QGraphicsLineItem *line1; - QGraphicsEllipseItem *line2P2; - QGraphicsLineItem *line2; - qreal length; + quint32 object2Id; + quint32 object3Id; + VScaledEllipse *point; + VScaledEllipse *line1P1; + VScaledEllipse *line1P2; + VScaledLine *line1; + VScaledEllipse *line2P2; + VScaledLine *line2; + qreal length; }; #endif // VISTOOLBISECTOR_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolcurveintersectaxis.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolcurveintersectaxis.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolcurveintersectaxis.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolcurveintersectaxis.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -55,8 +55,8 @@ visCurve = InitItem(Qt::darkGreen, this); basePoint = InitPoint(supportColor, this); - baseLine = InitItem(supportColor, this); - axisLine = InitItem(supportColor, this); //-V656 + baseLine = InitItem(supportColor, this); + axisLine = InitItem(supportColor, this); //-V656 point = InitPoint(mainColor, this); } @@ -66,7 +66,7 @@ if (object1Id > NULL_ID) { const QSharedPointer curve = Visualization::data->GeometricObject(object1Id); - DrawPath(visCurve, curve->GetPath(PathDirection::Show), supportColor, Qt::SolidLine, Qt::RoundCap); + DrawPath(visCurve, curve->GetPath(), curve->DirectionArrows(), supportColor, Qt::SolidLine, Qt::RoundCap); if (axisPointId > NULL_ID) { @@ -113,17 +113,3 @@ { axisPointId = value; } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolCurveIntersectAxis::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePoint(basePoint, scale); - ScalePenWidth(baseLine, scale); - ScalePenWidth(axisLine, scale); - ScalePenWidth(visCurve, scale); - - VisLine::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolcurveintersectaxis.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolcurveintersectaxis.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolcurveintersectaxis.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolcurveintersectaxis.h 2017-06-26 06:50:50.000000000 +0000 @@ -54,18 +54,15 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolLineIntersectAxis)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolCurveIntersectAxis) - quint32 axisPointId; - qreal angle; - QGraphicsEllipseItem *point; - QGraphicsEllipseItem *basePoint; - QGraphicsLineItem *baseLine; - QGraphicsLineItem *axisLine; - VCurvePathItem *visCurve; + quint32 axisPointId; + qreal angle; + VScaledEllipse *point; + VScaledEllipse *basePoint; + VScaledLine *baseLine; + VScaledLine *axisLine; + VCurvePathItem *visCurve; }; #endif // VISTOOLCURVEINTERSECTAXIS_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolendline.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolendline.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolendline.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolendline.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -110,13 +110,3 @@ { length = FindLength(expression, Visualization::data->PlainVariables()); } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolEndLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - - VisLine::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolendline.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolendline.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolendline.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolendline.h 2017-06-26 06:50:50.000000000 +0000 @@ -56,14 +56,11 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolEndLine)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolEndLine) - qreal length; - qreal angle; - QGraphicsEllipseItem *point; + qreal length; + qreal angle; + VScaledEllipse *point; }; #endif // VISTOOLENDLINE_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolheight.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolheight.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolheight.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolheight.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -50,8 +50,8 @@ base_point = InitPoint(supportColor, this); lineP1 = InitPoint(supportColor, this); lineP2 = InitPoint(supportColor, this); - line = InitItem(supportColor, this); - line_intersection = InitItem(supportColor, this); //-V656 + line = InitItem(supportColor, this); + line_intersection = InitItem(supportColor, this); //-V656 point = InitPoint(mainColor, this); } @@ -113,21 +113,6 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisToolHeight::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePoint(base_point, scale); - ScalePoint(lineP1, scale); - ScalePoint(lineP2, scale); - ScalePenWidth(line, scale); - ScalePenWidth(line_intersection, scale); - - VisLine::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- void VisToolHeight::ShowIntersection(const QLineF &height_line, const QLineF &base_line) { QPointF p; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolheight.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolheight.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolheight.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolheight.h 2017-06-26 06:50:50.000000000 +0000 @@ -53,20 +53,17 @@ void setLineP2Id(const quint32 &value); virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolHeight)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolHeight) //base point in parent class quint32 lineP1Id;//first point of line quint32 lineP2Id;//second point of line - QGraphicsEllipseItem *point; - QGraphicsEllipseItem *base_point; - QGraphicsEllipseItem *lineP1; - QGraphicsEllipseItem *lineP2; - QGraphicsLineItem *line; - QGraphicsLineItem *line_intersection; + VScaledEllipse *point; + VScaledEllipse *base_point; + VScaledEllipse *lineP1; + VScaledEllipse *lineP2; + VScaledLine *line; + VScaledLine *line_intersection; void ShowIntersection(const QLineF &height_line, const QLineF &base_line); }; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolline.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolline.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolline.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolline.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -72,7 +72,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisToolLine::DrawLine(QGraphicsLineItem *lineItem, const QLineF &line, const QColor &color, Qt::PenStyle style) +void VisToolLine::DrawLine(VScaledLine *lineItem, const QLineF &line, const QColor &color, Qt::PenStyle style) { SCASSERT (lineItem != nullptr) diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolline.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolline.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolline.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolline.h 2017-06-26 06:50:50.000000000 +0000 @@ -54,7 +54,7 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolLine)}; protected: - virtual void DrawLine(QGraphicsLineItem *lineItem, const QLineF &line, const QColor &color, + virtual void DrawLine(VScaledLine *lineItem, const QLineF &line, const QColor &color, Qt::PenStyle style = Qt::SolidLine) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolLine) diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoollineintersectaxis.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoollineintersectaxis.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoollineintersectaxis.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoollineintersectaxis.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -53,9 +53,9 @@ lineP1 = InitPoint(supportColor, this); lineP2 = InitPoint(supportColor, this); basePoint = InitPoint(supportColor, this); - baseLine = InitItem(supportColor, this); - axisLine = InitItem(supportColor, this); - line_intersection = InitItem(supportColor, this); + baseLine = InitItem(supportColor, this); + axisLine = InitItem(supportColor, this); + line_intersection = InitItem(supportColor, this); point = InitPoint(mainColor, this); } @@ -134,22 +134,6 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisToolLineIntersectAxis::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePoint(lineP1, scale); - ScalePoint(lineP2, scale); - ScalePoint(basePoint, scale); - ScalePenWidth(baseLine, scale); - ScalePenWidth(axisLine, scale); - ScalePenWidth(line_intersection, scale); - - VisLine::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- void VisToolLineIntersectAxis::ShowIntersection(const QLineF &axis_line, const QLineF &base_line) { QPointF p; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoollineintersectaxis.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoollineintersectaxis.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoollineintersectaxis.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoollineintersectaxis.h 2017-06-26 06:50:50.000000000 +0000 @@ -56,21 +56,18 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolLineIntersectAxis)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolLineIntersectAxis) quint32 point2Id; quint32 axisPointId; qreal angle; - QGraphicsEllipseItem *point; - QGraphicsEllipseItem *lineP1; - QGraphicsEllipseItem *lineP2; - QGraphicsEllipseItem *basePoint; - QGraphicsLineItem *baseLine; - QGraphicsLineItem *axisLine; - QGraphicsLineItem *line_intersection; + VScaledEllipse *point; + VScaledEllipse *lineP1; + VScaledEllipse *lineP2; + VScaledEllipse *basePoint; + VScaledLine *baseLine; + VScaledLine *axisLine; + VScaledLine *line_intersection; void ShowIntersection(const QLineF &axis_line, const QLineF &base_line); }; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoollineintersect.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoollineintersect.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoollineintersect.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoollineintersect.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -48,7 +48,7 @@ { line1P1 = InitPoint(supportColor, this); line1P2 = InitPoint(supportColor, this); - line1 = InitItem(supportColor, this); + line1 = InitItem(supportColor, this); line2P1 = InitPoint(supportColor, this); line2P2 = InitPoint(supportColor, this); @@ -135,18 +135,3 @@ { line2P2Id = value; } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolLineIntersect::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePoint(line1P1, scale); - ScalePoint(line1P2, scale); - ScalePenWidth(line1, scale); - ScalePoint(line2P1, scale); - ScalePoint(line2P2, scale); - - VisLine::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoollineintersect.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoollineintersect.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoollineintersect.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoollineintersect.h 2017-06-26 06:50:50.000000000 +0000 @@ -53,20 +53,17 @@ void setLine2P2Id(const quint32 &value); virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolLineIntersect)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolLineIntersect) quint32 line1P2Id; quint32 line2P1Id; quint32 line2P2Id; - QGraphicsEllipseItem *point; - QGraphicsEllipseItem *line1P1; - QGraphicsEllipseItem *line1P2; - QGraphicsLineItem *line1; - QGraphicsEllipseItem *line2P1; - QGraphicsEllipseItem *line2P2; + VScaledEllipse *point; + VScaledEllipse *line1P1; + VScaledEllipse *line1P2; + VScaledLine *line1; + VScaledEllipse *line2P1; + VScaledEllipse *line2P2; }; #endif // VISTOOLLINEINTERSECT_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolnormal.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolnormal.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolnormal.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolnormal.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -52,7 +52,7 @@ lineP1 = InitPoint(supportColor, this); lineP2 = InitPoint(supportColor, this); //-V656 - line = InitItem(supportColor, this); + line = InitItem(supportColor, this); point = InitPoint(mainColor, this); } @@ -124,16 +124,3 @@ { angle = value; } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolNormal::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePoint(lineP1, scale); - ScalePoint(lineP2, scale); - ScalePenWidth(line, scale); - - VisLine::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolnormal.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolnormal.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolnormal.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolnormal.h 2017-06-26 06:50:50.000000000 +0000 @@ -55,15 +55,13 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolNormal)}; - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolNormal) quint32 object2Id; - QGraphicsEllipseItem *point; - QGraphicsEllipseItem *lineP1; - QGraphicsEllipseItem *lineP2; - QGraphicsLineItem *line; + VScaledEllipse *point; + VScaledEllipse *lineP1; + VScaledEllipse *lineP2; + VScaledLine *line; qreal length; qreal angle; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointfromarcandtangent.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointfromarcandtangent.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointfromarcandtangent.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointfromarcandtangent.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -54,7 +54,7 @@ arcPath = InitItem(Qt::darkGreen, this); point = InitPoint(mainColor, this); tangent = InitPoint(supportColor, this); - tangentLine2 = InitItem(supportColor, this); + tangentLine2 = InitItem(supportColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -68,7 +68,7 @@ if (arcId > NULL_ID)// circle center { const QSharedPointer arc = Visualization::data->GeometricObject(arcId); - DrawPath(arcPath, arc->GetPath(PathDirection::Show), Qt::darkGreen, Qt::SolidLine, Qt::RoundCap); + DrawPath(arcPath, arc->GetPath(), arc->DirectionArrows(), Qt::darkGreen, Qt::SolidLine, Qt::RoundCap); FindRays(static_cast(*tan), arc.data()); @@ -92,19 +92,6 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisToolPointFromArcAndTangent::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePoint(tangent, scale); - ScalePenWidth(arcPath, scale); - ScalePenWidth(tangentLine2, scale); - - VisLine::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- void VisToolPointFromArcAndTangent::FindRays(const QPointF &p, const VArc *arc) { QPointF p1, p2; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointfromarcandtangent.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointfromarcandtangent.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointfromarcandtangent.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointfromarcandtangent.h 2017-06-26 06:50:50.000000000 +0000 @@ -55,17 +55,14 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolPointFromArcAndTangent)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolPointFromArcAndTangent) - quint32 arcId; - CrossCirclesPoint crossPoint; - QGraphicsEllipseItem *point; - QGraphicsEllipseItem *tangent; - VCurvePathItem *arcPath; - QGraphicsLineItem *tangentLine2; + quint32 arcId; + CrossCirclesPoint crossPoint; + VScaledEllipse *point; + VScaledEllipse *tangent; + VCurvePathItem *arcPath; + VScaledLine *tangentLine2; void FindRays(const QPointF &p, const VArc *arc); }; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointfromcircleandtangent.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointfromcircleandtangent.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointfromcircleandtangent.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointfromcircleandtangent.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -47,11 +47,11 @@ : VisLine(data, parent), object2Id(NULL_ID), cRadius(0), crossPoint(CrossCirclesPoint::FirstPoint), point(nullptr), tangent(nullptr), cCenter(nullptr), cPath(nullptr), tangent2(nullptr) { - cPath = InitItem(Qt::darkGreen, this); + cPath = InitItem(Qt::darkGreen, this); point = InitPoint(mainColor, this); tangent = InitPoint(supportColor, this); cCenter = InitPoint(supportColor, this); //-V656 - tangent2 = InitItem(supportColor, this); + tangent2 = InitItem(supportColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -102,20 +102,6 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisToolPointFromCircleAndTangent::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePoint(tangent, scale); - ScalePoint(cCenter, scale); - ScalePoint(cPath, scale); - ScalePenWidth(tangent2, scale); - - VisLine::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- void VisToolPointFromCircleAndTangent::FindRays(const QPointF &p, const QPointF ¢er, qreal radius) { QPointF p1, p2; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointfromcircleandtangent.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointfromcircleandtangent.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointfromcircleandtangent.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointfromcircleandtangent.h 2017-06-26 06:50:50.000000000 +0000 @@ -56,19 +56,16 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolPointFromCircleAndTangent)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolPointFromCircleAndTangent) - quint32 object2Id; - qreal cRadius; - CrossCirclesPoint crossPoint; - QGraphicsEllipseItem *point; - QGraphicsEllipseItem *tangent; - QGraphicsEllipseItem *cCenter; - QGraphicsEllipseItem *cPath; - QGraphicsLineItem *tangent2; + quint32 object2Id; + qreal cRadius; + CrossCirclesPoint crossPoint; + VScaledEllipse *point; + VScaledEllipse *tangent; + VScaledEllipse *cCenter; + VScaledEllipse *cPath; + VScaledLine *tangent2; void FindRays(const QPointF &p, const QPointF ¢er, qreal radius); }; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofcontact.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofcontact.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofcontact.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofcontact.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -50,7 +50,7 @@ arc_point = InitPoint(supportColor, this); lineP1 = InitPoint(supportColor, this); lineP2 = InitPoint(supportColor, this); - circle = InitItem(supportColor, this); + circle = InitItem(supportColor, this); point = InitPoint(mainColor, this); } @@ -114,17 +114,3 @@ { radius = FindLength(expression, Visualization::data->PlainVariables()); } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolPointOfContact::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePoint(lineP1, scale); - ScalePoint(lineP2, scale); - ScalePoint(arc_point, scale); - ScalePoint(circle, scale); - - VisLine::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofcontact.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofcontact.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofcontact.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofcontact.h 2017-06-26 06:50:50.000000000 +0000 @@ -52,19 +52,16 @@ void setRadius(const QString &expression); virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolPointOfContact)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolPointOfContact) - quint32 lineP2Id; - quint32 radiusId; - QGraphicsEllipseItem *point; - QGraphicsEllipseItem *lineP1; - QGraphicsEllipseItem *lineP2; - QGraphicsEllipseItem *arc_point; - QGraphicsEllipseItem *circle; - qreal radius; + quint32 lineP2Id; + quint32 radiusId; + VScaledEllipse *point; + VScaledEllipse *lineP1; + VScaledEllipse *lineP2; + VScaledEllipse *arc_point; + VScaledEllipse *circle; + qreal radius; }; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersectionarcs.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersectionarcs.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersectionarcs.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersectionarcs.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -71,12 +71,12 @@ if (arc1Id > NULL_ID) { const QSharedPointer arc1 = Visualization::data->GeometricObject(arc1Id); - DrawPath(arc1Path, arc1->GetPath(PathDirection::Show), Qt::darkGreen, Qt::SolidLine, Qt::RoundCap); + DrawPath(arc1Path, arc1->GetPath(), arc1->DirectionArrows(), Qt::darkGreen, Qt::SolidLine, Qt::RoundCap); if (arc2Id > NULL_ID) { const QSharedPointer arc2 = Visualization::data->GeometricObject(arc2Id); - DrawPath(arc2Path, arc2->GetPath(PathDirection::Show), Qt::darkRed, Qt::SolidLine, Qt::RoundCap); + DrawPath(arc2Path, arc2->GetPath(), arc2->DirectionArrows(), Qt::darkRed, Qt::SolidLine, Qt::RoundCap); const QPointF fPoint = VToolPointOfIntersectionArcs::FindPoint(arc1.data(), arc2.data(), crossPoint); DrawPoint(point, fPoint, mainColor); @@ -114,15 +114,3 @@ { crossPoint = value; } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolPointOfIntersectionArcs::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePenWidth(arc1Path, scale); - ScalePenWidth(arc2Path, scale); - - VisLine::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersectionarcs.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersectionarcs.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersectionarcs.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersectionarcs.h 2017-06-26 06:50:50.000000000 +0000 @@ -56,17 +56,14 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolPointOfIntersectionArcs)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolPointOfIntersectionArcs) - quint32 arc1Id; - quint32 arc2Id; - CrossCirclesPoint crossPoint; - QGraphicsEllipseItem *point; - VCurvePathItem *arc1Path; - VCurvePathItem *arc2Path; + quint32 arc1Id; + quint32 arc2Id; + CrossCirclesPoint crossPoint; + VScaledEllipse *point; + VCurvePathItem *arc1Path; + VCurvePathItem *arc2Path; }; #endif // VISTOOLPOINTOFINTERSECTIONARCS_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersectioncircles.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersectioncircles.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersectioncircles.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersectioncircles.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -52,8 +52,8 @@ { this->setPen(QPen(Qt::NoPen)); // don't use parent this time - c1Path = InitItem(Qt::darkGreen, this); - c2Path = InitItem(Qt::darkRed, this); + c1Path = InitItem(Qt::darkGreen, this); + c2Path = InitItem(Qt::darkRed, this); point = InitPoint(mainColor, this); c1Center = InitPoint(supportColor, this); c2Center = InitPoint(supportColor, this); //-V656 @@ -125,18 +125,3 @@ { crossPoint = value; } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolPointOfIntersectionCircles::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePoint(c1Center, scale); - ScalePoint(c2Center, scale); - ScalePoint(c1Path, scale); - ScalePoint(c2Path, scale); - - VisLine::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersectioncircles.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersectioncircles.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersectioncircles.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersectioncircles.h 2017-06-26 06:50:50.000000000 +0000 @@ -57,20 +57,17 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolPointOfIntersectionCircles)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolPointOfIntersectionCircles) - quint32 object2Id; - qreal c1Radius; - qreal c2Radius; - CrossCirclesPoint crossPoint; - QGraphicsEllipseItem *point; - QGraphicsEllipseItem *c1Center; - QGraphicsEllipseItem *c2Center; - QGraphicsEllipseItem *c1Path; - QGraphicsEllipseItem *c2Path; + quint32 object2Id; + qreal c1Radius; + qreal c2Radius; + CrossCirclesPoint crossPoint; + VScaledEllipse *point; + VScaledEllipse *c1Center; + VScaledEllipse *c2Center; + VScaledEllipse *c1Path; + VScaledEllipse *c2Path; }; #endif // VISTOOLPOINTOFINTERSECTIONCIRCLES_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersection.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersection.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersection.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersection.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -48,7 +48,7 @@ { axisP1 = InitPoint(supportColor, this); axisP2 = InitPoint(supportColor, this); //-V656 - axis2 = InitItem(supportColor, this); + axis2 = InitItem(supportColor, this); point = InitPoint(mainColor, this); } @@ -94,19 +94,6 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisToolPointOfIntersection::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePoint(axisP1, scale); - ScalePoint(axisP2, scale); - ScalePenWidth(axis2, scale); - - VisLine::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- void VisToolPointOfIntersection::ShowIntersection(const QLineF &axis1, const QLineF &axis2, const QColor &color) { QPointF p; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersection.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersection.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersection.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolpointofintersection.h 2017-06-26 06:50:50.000000000 +0000 @@ -53,16 +53,13 @@ void setPoint2Id(const quint32 &value); virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolPointOfIntersection)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolPointOfIntersection) quint32 point2Id; - QGraphicsEllipseItem *point; - QGraphicsEllipseItem *axisP1;//axis1 is class themself - QGraphicsEllipseItem *axisP2; - QGraphicsLineItem *axis2;//axis1 is class themself + VScaledEllipse *point; + VScaledEllipse *axisP1;//axis1 is class themself + VScaledEllipse *axisP2; + VScaledLine *axis2;//axis1 is class themself void ShowIntersection(const QLineF &axis1, const QLineF &axis2, const QColor &color); }; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolshoulderpoint.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolshoulderpoint.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolshoulderpoint.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolshoulderpoint.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -50,11 +50,11 @@ { line1P1 = InitPoint(supportColor, this); line1P2 = InitPoint(supportColor, this); //-V656 - line1 = InitItem(supportColor, this); + line1 = InitItem(supportColor, this); line2P2 = InitPoint(supportColor, this); - line2 = InitItem(supportColor, this); - line3 = InitItem(supportColor, this); //-V656 + line2 = InitItem(supportColor, this); + line3 = InitItem(supportColor, this); //-V656 point = InitPoint(mainColor, this); } @@ -131,19 +131,3 @@ { length = FindLength(expression, Visualization::data->PlainVariables()); } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolShoulderPoint::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePoint(line1P1, scale); - ScalePoint(line1P2, scale); - ScalePenWidth(line1, scale); - ScalePoint(line2P2, scale); - ScalePenWidth(line2, scale); - ScalePenWidth(line3, scale); - - VisLine::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolshoulderpoint.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolshoulderpoint.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolshoulderpoint.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistoolshoulderpoint.h 2017-06-26 06:50:50.000000000 +0000 @@ -52,21 +52,18 @@ void setLength(const QString &expression); virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolShoulderPoint)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolShoulderPoint) - quint32 lineP1Id; - quint32 lineP2Id; - QGraphicsEllipseItem *point; - QGraphicsEllipseItem *line1P1; - QGraphicsEllipseItem *line1P2; - QGraphicsLineItem *line1; - QGraphicsEllipseItem *line2P2; - QGraphicsLineItem *line2; - QGraphicsLineItem *line3; - qreal length; + quint32 lineP1Id; + quint32 lineP2Id; + VScaledEllipse *point; + VScaledEllipse *line1P1; + VScaledEllipse *line1P2; + VScaledLine *line1; + VScaledEllipse *line2P2; + VScaledLine *line2; + VScaledLine *line3; + qreal length; }; #endif // VISTOOLSHOULDERPOINT_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistooltriangle.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistooltriangle.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistooltriangle.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistooltriangle.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -53,11 +53,11 @@ { axisP1 = InitPoint(supportColor, this); axisP2 = InitPoint(supportColor, this); - axis = InitItem(supportColor, this); + axis = InitItem(supportColor, this); hypotenuseP1 = InitPoint(supportColor, this); hypotenuseP2 = InitPoint(supportColor, this); - foot1 = InitItem(supportColor, this); - foot2 = InitItem(supportColor, this); //-V656 + foot1 = InitItem(supportColor, this); + foot2 = InitItem(supportColor, this); //-V656 point = InitPoint(mainColor, this); } @@ -144,24 +144,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisToolTriangle::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePoint(axisP1, scale); - ScalePoint(axisP2, scale); - ScalePenWidth(axis, scale); - ScalePoint(hypotenuseP1, scale); - ScalePoint(hypotenuseP2, scale); - ScalePenWidth(foot1, scale); - ScalePenWidth(foot2, scale); - - VisLine::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolTriangle::DrawAimedAxis(QGraphicsPathItem *item, const QLineF &line, const QColor &color, +void VisToolTriangle::DrawAimedAxis(VCurvePathItem *item, const QLineF &line, const QColor &color, Qt::PenStyle style) { SCASSERT (item != nullptr) diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistooltriangle.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistooltriangle.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistooltriangle.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistooltriangle.h 2017-06-26 06:50:50.000000000 +0000 @@ -57,24 +57,21 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolTriangle)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolTriangle) - quint32 object2Id;//axis second point - quint32 hypotenuseP1Id; - quint32 hypotenuseP2Id; - QGraphicsEllipseItem *point; - QGraphicsEllipseItem *axisP1; - QGraphicsEllipseItem *axisP2; - QGraphicsPathItem *axis; - QGraphicsEllipseItem *hypotenuseP1; - QGraphicsEllipseItem *hypotenuseP2; - QGraphicsLineItem *foot1; - QGraphicsLineItem *foot2; + quint32 object2Id;//axis second point + quint32 hypotenuseP1Id; + quint32 hypotenuseP2Id; + VScaledEllipse *point; + VScaledEllipse *axisP1; + VScaledEllipse *axisP2; + VCurvePathItem *axis; + VScaledEllipse *hypotenuseP1; + VScaledEllipse *hypotenuseP2; + VScaledLine *foot1; + VScaledLine *foot2; - void DrawAimedAxis(QGraphicsPathItem *item, const QLineF &line, const QColor &color, + void DrawAimedAxis(VCurvePathItem *item, const QLineF &line, const QColor &color, Qt::PenStyle style = Qt::SolidLine); void DrawArrow(const QLineF &axis, QPainterPath &path, const qreal &arrow_size); }; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistooltruedarts.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistooltruedarts.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistooltruedarts.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistooltruedarts.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -67,10 +67,10 @@ dartP2 = InitPoint(supportColor, this); dartP3 = InitPoint(supportColor, this); - lineblP1P1 = InitItem(supportColor, this); - lineblP2P2 = InitItem(supportColor, this); - p1d2 = InitItem(supportColor, this); - d2p2 = InitItem(supportColor, this); + lineblP1P1 = InitItem(supportColor, this); + lineblP2P2 = InitItem(supportColor, this); + p1d2 = InitItem(supportColor, this); + d2p2 = InitItem(supportColor, this); point1 = InitPoint(mainColor, this); point2 = InitPoint(mainColor, this); //-V656 @@ -163,24 +163,3 @@ { dartP3Id = value; } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolTrueDarts::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point1, scale); - ScalePoint(point2, scale); - ScalePoint(baseLineP1, scale); - ScalePoint(baseLineP2, scale); - ScalePoint(dartP1, scale); - ScalePoint(dartP2, scale); - ScalePoint(dartP3, scale); - - ScalePenWidth(lineblP1P1, scale); - ScalePenWidth(lineblP2P2, scale); - ScalePenWidth(p1d2, scale); - ScalePenWidth(d2p2, scale); - - VisLine::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistooltruedarts.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistooltruedarts.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/line/vistooltruedarts.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/line/vistooltruedarts.h 2017-06-26 06:50:50.000000000 +0000 @@ -55,9 +55,6 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolTrueDarts)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolTrueDarts) quint32 baseLineP2Id; @@ -65,18 +62,18 @@ quint32 dartP2Id; quint32 dartP3Id; - QGraphicsEllipseItem *point1; - QGraphicsEllipseItem *point2; - QGraphicsEllipseItem *baseLineP1; - QGraphicsEllipseItem *baseLineP2; - QGraphicsEllipseItem *dartP1; - QGraphicsEllipseItem *dartP2; - QGraphicsEllipseItem *dartP3; + VScaledEllipse *point1; + VScaledEllipse *point2; + VScaledEllipse *baseLineP1; + VScaledEllipse *baseLineP2; + VScaledEllipse *dartP1; + VScaledEllipse *dartP2; + VScaledEllipse *dartP3; - QGraphicsLineItem *lineblP1P1; - QGraphicsLineItem *lineblP2P2; - QGraphicsLineItem *p1d2; - QGraphicsLineItem *d2p2; + VScaledLine *lineblP1P1; + VScaledLine *lineblP2P2; + VScaledLine *p1d2; + VScaledLine *d2p2; }; #endif // VISTOOLTRUEDARTS_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vispath.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vispath.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vispath.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vispath.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -46,22 +46,6 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisPath::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - ScalePenWidth(this, SceneScale(scene())); - - VCurvePathItem::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- -QRectF VisPath::boundingRect() const -{ - QRectF recTool = VCurvePathItem::boundingRect(); - recTool = recTool.united(childrenBoundingRect()); - return recTool; -} - -//--------------------------------------------------------------------------------------------------------------------- void VisPath::InitPen() { QPen visPen = pen(); diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vispath.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vispath.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vispath.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vispath.h 2017-06-26 06:50:50.000000000 +0000 @@ -51,10 +51,6 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::Path)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; - virtual QRectF boundingRect() const Q_DECL_OVERRIDE; protected: virtual void InitPen() Q_DECL_OVERRIDE; virtual void AddOnScene() Q_DECL_OVERRIDE; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolarc.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolarc.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolarc.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolarc.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -41,6 +41,7 @@ #include "../vpatterndb/vcontainer.h" #include "../visualization.h" #include "vispath.h" +#include "../vwidgets/scalesceneitems.h" //--------------------------------------------------------------------------------------------------------------------- VisToolArc::VisToolArc(const VContainer *data, QGraphicsItem *parent) @@ -60,7 +61,7 @@ if (not qFuzzyIsNull(radius) && f1 >= 0 && f2 >= 0) { VArc arc = VArc (*first, radius, f1, f2); - DrawPath(this, arc.GetPath(), arc.GetDirectionPath(), mainColor, lineStyle, Qt::RoundCap); + DrawPath(this, arc.GetPath(), arc.DirectionArrows(), mainColor, lineStyle, Qt::RoundCap); } } } @@ -82,13 +83,3 @@ { f2 = FindVal(expression, Visualization::data->PlainVariables()); } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolArc::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(arcCenter, scale); - - VisPath::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolarc.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolarc.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolarc.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolarc.h 2017-06-26 06:50:50.000000000 +0000 @@ -52,15 +52,12 @@ void setF2(const QString &expression); virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolArc)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolArc) - QGraphicsEllipseItem *arcCenter; - qreal radius; - qreal f1; - qreal f2; + VScaledEllipse *arcCenter; + qreal radius; + qreal f1; + qreal f2; }; #endif // VISTOOLARC_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolarcwithlength.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolarcwithlength.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolarcwithlength.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolarcwithlength.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -60,7 +60,7 @@ if (not qFuzzyIsNull(radius) && f1 >= 0 && not qFuzzyIsNull(length)) { VArc arc = VArc (length, *first, radius, f1); - DrawPath(this, arc.GetPath(), arc.GetDirectionPath(), mainColor, lineStyle, Qt::RoundCap); + DrawPath(this, arc.GetPath(), arc.DirectionArrows(), mainColor, lineStyle, Qt::RoundCap); } } } @@ -82,13 +82,3 @@ { length = FindLength(expression, Visualization::data->PlainVariables()); } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolArcWithLength::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(arcCenter, scale); - - VisPath::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolarcwithlength.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolarcwithlength.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolarcwithlength.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolarcwithlength.h 2017-06-26 06:50:50.000000000 +0000 @@ -52,15 +52,12 @@ void setLength(const QString &expression); virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolArcWithLength)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolArcWithLength) - QGraphicsEllipseItem *arcCenter; - qreal radius; - qreal f1; - qreal length; + VScaledEllipse *arcCenter; + qreal radius; + qreal f1; + qreal length; }; #endif // VISTOOLARCWITHLENGTH_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcubicbezier.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcubicbezier.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcubicbezier.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcubicbezier.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -43,6 +43,7 @@ #include "../vpatterndb/vcontainer.h" #include "../visualization.h" #include "vispath.h" +#include "../vwidgets/scalesceneitems.h" //--------------------------------------------------------------------------------------------------------------------- VisToolCubicBezier::VisToolCubicBezier(const VContainer *data, QGraphicsItem *parent) @@ -57,8 +58,8 @@ helpLine1(nullptr), helpLine2(nullptr) { - helpLine1 = InitItem(mainColor, this); - helpLine2 = InitItem(mainColor, this); + helpLine1 = InitItem(mainColor, this); + helpLine2 = InitItem(mainColor, this); point1 = InitPoint(supportColor, this); point2 = InitPoint(supportColor, this); //-V656 @@ -89,7 +90,7 @@ { VCubicBezier spline(*first, *second, VPointF(Visualization::scenePos), VPointF(Visualization::scenePos)); - DrawPath(this, spline.GetPath(PathDirection::Hide), mainColor, lineStyle, Qt::RoundCap); + DrawPath(this, spline.GetPath(), mainColor, lineStyle, Qt::RoundCap); } else { @@ -99,7 +100,7 @@ if (object4Id <= NULL_ID) { VCubicBezier spline(*first, *second, *third, VPointF(Visualization::scenePos)); - DrawPath(this, spline.GetPath(PathDirection::Hide), mainColor, lineStyle, Qt::RoundCap); + DrawPath(this, spline.GetPath(), mainColor, lineStyle, Qt::RoundCap); DrawLine(helpLine2, QLineF(static_cast(*third), Visualization::scenePos), mainColor, Qt::DashLine); } @@ -111,7 +112,7 @@ Qt::DashLine); VCubicBezier spline(*first, *second, *third, *fourth); - DrawPath(this, spline.GetPath(), spline.GetDirectionPath(), mainColor, lineStyle, Qt::RoundCap); + DrawPath(this, spline.GetPath(), spline.DirectionArrows(), mainColor, lineStyle, Qt::RoundCap); } } } @@ -135,18 +136,3 @@ { object4Id = value; } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolCubicBezier::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point1, scale); - ScalePoint(point2, scale); - ScalePoint(point3, scale); - ScalePoint(point4, scale); - ScalePenWidth(helpLine1, scale); - ScalePenWidth(helpLine2, scale); - - VisPath::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcubicbezier.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcubicbezier.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcubicbezier.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcubicbezier.h 2017-06-26 06:50:50.000000000 +0000 @@ -54,20 +54,17 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolCubicBezier)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; protected: Q_DISABLE_COPY(VisToolCubicBezier) - quint32 object2Id; - quint32 object3Id; - quint32 object4Id; - QGraphicsEllipseItem *point1; - QGraphicsEllipseItem *point2; - QGraphicsEllipseItem *point3; - QGraphicsEllipseItem *point4; - QGraphicsLineItem *helpLine1; - QGraphicsLineItem *helpLine2; + quint32 object2Id; + quint32 object3Id; + quint32 object4Id; + VScaledEllipse *point1; + VScaledEllipse *point2; + VScaledEllipse *point3; + VScaledEllipse *point4; + VScaledLine *helpLine1; + VScaledLine *helpLine2; }; #endif // VISTOOLCUBICBEZIER_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcubicbezierpath.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcubicbezierpath.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcubicbezierpath.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcubicbezierpath.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -41,6 +41,7 @@ #include "../vgeometry/vspline.h" #include "../visualization.h" #include "vispath.h" +#include "../vwidgets/scalesceneitems.h" //--------------------------------------------------------------------------------------------------------------------- VisToolCubicBezierPath::VisToolCubicBezierPath(const VContainer *data, QGraphicsItem *parent) @@ -53,8 +54,8 @@ helpLine1(nullptr), helpLine2(nullptr) { - helpLine1 = InitItem(mainColor, this); - helpLine2 = InitItem(mainColor, this); + helpLine1 = InitItem(mainColor, this); + helpLine2 = InitItem(mainColor, this); newCurveSegment = InitItem(mainColor, this); } @@ -77,7 +78,7 @@ for (int i = 0; i < size; ++i) { - QGraphicsEllipseItem *point = this->getPoint(mainPoints, static_cast(i), 1/*zValue*/); + VScaledEllipse *point = this->getPoint(mainPoints, static_cast(i), 1/*zValue*/); DrawPoint(point, static_cast(pathPoints.at(i)), supportColor); } @@ -96,8 +97,7 @@ if (countSubSpl >= 1) { - DrawPath(this, path.GetPath(), mainColor, lineStyle, Qt::RoundCap); - DrawPath(this, path.GetDirectionPath(), mainColor, Qt::SolidLine, Qt::RoundCap); + DrawPath(this, path.GetPath(), path.DirectionArrows(), mainColor, lineStyle, Qt::RoundCap); for (qint32 i = 1; i<=countSubSpl; ++i) { @@ -106,18 +106,18 @@ const VSpline spl = path.GetSpline(i); - QGraphicsLineItem *ctrlLine1 = this->getLine(static_cast(preLastPoint)); + VScaledLine *ctrlLine1 = this->getLine(static_cast(preLastPoint)); DrawLine(ctrlLine1, QLineF(static_cast(spl.GetP1()), static_cast(spl.GetP2())), mainColor, Qt::DashLine); - QGraphicsEllipseItem *p2 = this->getPoint(ctrlPoints, static_cast(preLastPoint)); + VScaledEllipse *p2 = this->getPoint(ctrlPoints, static_cast(preLastPoint)); DrawPoint(p2, static_cast(spl.GetP2()), Qt::green); - QGraphicsLineItem *ctrlLine2 = this->getLine(static_cast(lastPoint)); + VScaledLine *ctrlLine2 = this->getLine(static_cast(lastPoint)); DrawLine(ctrlLine2, QLineF(static_cast(spl.GetP4()), static_cast(spl.GetP3())), mainColor, Qt::DashLine); - QGraphicsEllipseItem *p3 = this->getPoint(ctrlPoints, static_cast(lastPoint)); + VScaledEllipse *p3 = this->getPoint(ctrlPoints, static_cast(lastPoint)); DrawPoint(p3, static_cast(spl.GetP3()), Qt::green); } } @@ -142,34 +142,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisToolCubicBezierPath::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - for (int i=0; i < mainPoints.size(); ++i) - { - ScalePoint(mainPoints[i], scale); - } - - for (int i=0; i < ctrlPoints.size(); ++i) - { - ScalePoint(ctrlPoints[i], scale); - } - - for (int i=0; i < lines.size(); ++i) - { - ScalePenWidth(lines[i], scale); - } - - ScalePenWidth(newCurveSegment, scale); - ScalePenWidth(helpLine1, scale); - ScalePenWidth(helpLine2, scale); - - VisPath::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- -QGraphicsEllipseItem *VisToolCubicBezierPath::getPoint(QVector &points, quint32 i, qreal z) +VScaledEllipse *VisToolCubicBezierPath::getPoint(QVector &points, quint32 i, qreal z) { if (not points.isEmpty() && static_cast(points.size() - 1) >= i) { @@ -184,7 +157,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -QGraphicsLineItem *VisToolCubicBezierPath::getLine(quint32 i) +VScaledLine *VisToolCubicBezierPath::getLine(quint32 i) { if (static_cast(lines.size() - 1) >= i && lines.isEmpty() == false) { @@ -192,7 +165,7 @@ } else { - auto line = InitItem(mainColor, this); + auto line = InitItem(mainColor, this); lines.append(line); return line; } @@ -229,12 +202,12 @@ const QPointF p2 = p1p2.p2(); VSpline spline(p1, p2, Visualization::scenePos, VPointF(Visualization::scenePos)); - DrawPath(newCurveSegment, spline.GetPath(PathDirection::Hide), mainColor, Qt::SolidLine, Qt::RoundCap); + DrawPath(newCurveSegment, spline.GetPath(), mainColor, Qt::SolidLine, Qt::RoundCap); DrawLine(helpLine1, p1p2, mainColor, Qt::DashLine); const int preLastPoint = subSplCount * 2; - QGraphicsEllipseItem *p2Ctrl = this->getPoint(ctrlPoints, static_cast(preLastPoint)); + VScaledEllipse *p2Ctrl = this->getPoint(ctrlPoints, static_cast(preLastPoint)); DrawPoint(p2Ctrl, p2, Qt::green); } else @@ -260,10 +233,10 @@ DrawLine(helpLine1, QLineF(static_cast(p1), p2), mainColor, Qt::DashLine); VSpline spline(p1, p2, Visualization::scenePos, VPointF(Visualization::scenePos)); - DrawPath(newCurveSegment, spline.GetPath(PathDirection::Hide), mainColor, Qt::SolidLine, Qt::RoundCap); + DrawPath(newCurveSegment, spline.GetPath(), mainColor, Qt::SolidLine, Qt::RoundCap); const int preLastPoint = subSplCount * 2; - QGraphicsEllipseItem *p2Ctrl = this->getPoint(ctrlPoints, static_cast(preLastPoint)); + VScaledEllipse *p2Ctrl = this->getPoint(ctrlPoints, static_cast(preLastPoint)); DrawPoint(p2Ctrl, p2, Qt::green); break; } @@ -286,10 +259,10 @@ DrawLine(helpLine2, QLineF(p3, Visualization::scenePos), mainColor, Qt::DashLine); VSpline spline(p1, p2, p3, VPointF(Visualization::scenePos)); - DrawPath(newCurveSegment, spline.GetPath(PathDirection::Hide), mainColor, Qt::SolidLine, Qt::RoundCap); + DrawPath(newCurveSegment, spline.GetPath(), mainColor, Qt::SolidLine, Qt::RoundCap); const int preLastPoint = subSplCount * 2; - QGraphicsEllipseItem *p2Ctrl = this->getPoint(ctrlPoints, static_cast(preLastPoint)); + VScaledEllipse *p2Ctrl = this->getPoint(ctrlPoints, static_cast(preLastPoint)); DrawPoint(p2Ctrl, p2, Qt::green); break; } diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcubicbezierpath.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcubicbezierpath.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcubicbezierpath.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcubicbezierpath.h 2017-06-26 06:50:50.000000000 +0000 @@ -55,22 +55,19 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolCubicBezierPath)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; protected: Q_DISABLE_COPY(VisToolCubicBezierPath) - QVector mainPoints; - QVector ctrlPoints; - QVector lines; - VCurvePathItem *newCurveSegment; - VCubicBezierPath path; - QGraphicsLineItem *helpLine1; - QGraphicsLineItem *helpLine2; + QVector mainPoints; + QVector ctrlPoints; + QVector lines; + VCurvePathItem *newCurveSegment; + VCubicBezierPath path; + VScaledLine *helpLine1; + VScaledLine *helpLine2; private: - QGraphicsEllipseItem *getPoint(QVector &points, quint32 i, qreal z = 0); - QGraphicsLineItem *getLine(quint32 i); + VScaledEllipse *getPoint(QVector &points, quint32 i, qreal z = 0); + VScaledLine *getLine(quint32 i); void Creating(const QVector &pathPoints , int pointsLeft); void RefreshToolTip(); }; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutarc.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutarc.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutarc.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutarc.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -42,6 +42,7 @@ #include "../vpatterndb/vcontainer.h" #include "../visualization.h" #include "vispath.h" +#include "../vwidgets/scalesceneitems.h" //--------------------------------------------------------------------------------------------------------------------- VisToolCutArc::VisToolCutArc(const VContainer *data, QGraphicsItem *parent) @@ -63,7 +64,7 @@ if (object1Id > NULL_ID) { const QSharedPointer arc = Visualization::data->GeometricObject(object1Id); - DrawPath(this, arc->GetPath(), arc->GetDirectionPath(), supportColor, lineStyle, Qt::RoundCap); + DrawPath(this, arc->GetPath(), arc->DirectionArrows(), supportColor, lineStyle, Qt::RoundCap); if (not qFuzzyIsNull(length)) { @@ -72,8 +73,8 @@ QPointF p = arc->CutArc(length, ar1, ar2); DrawPoint(point, p, mainColor); - DrawPath(arc1, ar1.GetPath(), ar1.GetDirectionPath(), Qt::darkGreen, lineStyle, Qt::RoundCap); - DrawPath(arc2, ar2.GetPath(), ar2.GetDirectionPath(), Qt::darkRed, lineStyle, Qt::RoundCap); + DrawPath(arc1, ar1.GetPath(), ar1.DirectionArrows(), Qt::darkGreen, lineStyle, Qt::RoundCap); + DrawPath(arc2, ar2.GetPath(), ar2.DirectionArrows(), Qt::darkRed, lineStyle, Qt::RoundCap); } } } @@ -83,15 +84,3 @@ { length = FindLength(expression, Visualization::data->PlainVariables()); } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolCutArc::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePenWidth(arc1, scale); - ScalePenWidth(arc2, scale); - - VisPath::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutarc.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutarc.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutarc.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutarc.h 2017-06-26 06:50:50.000000000 +0000 @@ -50,15 +50,12 @@ void setLength(const QString &expression); virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolCutArc)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; protected: Q_DISABLE_COPY(VisToolCutArc) - QGraphicsEllipseItem *point; - VCurvePathItem *arc1; - VCurvePathItem *arc2; - qreal length; + VScaledEllipse *point; + VCurvePathItem *arc1; + VCurvePathItem *arc2; + qreal length; }; #endif // VISTOOLCUTARC_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutspline.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutspline.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutspline.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutspline.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -44,6 +44,7 @@ #include "../vpatterndb/vcontainer.h" #include "../visualization.h" #include "vispath.h" +#include "../vwidgets/scalesceneitems.h" //--------------------------------------------------------------------------------------------------------------------- VisToolCutSpline::VisToolCutSpline(const VContainer *data, QGraphicsItem *parent) @@ -65,7 +66,7 @@ if (object1Id > NULL_ID) { const auto spl = Visualization::data->GeometricObject(object1Id); - DrawPath(this, spl->GetPath(), spl->GetDirectionPath(), supportColor, lineStyle, Qt::RoundCap); + DrawPath(this, spl->GetPath(), spl->DirectionArrows(), supportColor, lineStyle, Qt::RoundCap); if (not qFuzzyIsNull(length)) { @@ -80,8 +81,8 @@ DrawPoint(point, p, mainColor); - DrawPath(spl1, sp1.GetPath(), sp1.GetDirectionPath(), Qt::darkGreen, lineStyle, Qt::RoundCap); - DrawPath(spl2, sp2.GetPath(), sp2.GetDirectionPath(), Qt::darkRed, lineStyle, Qt::RoundCap); + DrawPath(spl1, sp1.GetPath(), sp1.DirectionArrows(), Qt::darkGreen, lineStyle, Qt::RoundCap); + DrawPath(spl2, sp2.GetPath(), sp2.DirectionArrows(), Qt::darkRed, lineStyle, Qt::RoundCap); } } } @@ -91,15 +92,3 @@ { length = FindLength(expression, Visualization::data->PlainVariables()); } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolCutSpline::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePenWidth(spl1, scale); - ScalePenWidth(spl2, scale); - - VisPath::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutspline.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutspline.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutspline.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutspline.h 2017-06-26 06:50:50.000000000 +0000 @@ -50,15 +50,12 @@ void setLength(const QString &expression); virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolCutSpline)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; protected: Q_DISABLE_COPY(VisToolCutSpline) - QGraphicsEllipseItem *point; - VCurvePathItem *spl1; - VCurvePathItem *spl2; - qreal length; + VScaledEllipse *point; + VCurvePathItem *spl1; + VCurvePathItem *spl2; + qreal length; }; #endif // VISTOOLCUTSPLINE_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutsplinepath.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutsplinepath.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutsplinepath.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutsplinepath.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -65,7 +65,7 @@ if (object1Id > NULL_ID) { const auto splPath = Visualization::data->GeometricObject(object1Id); - DrawPath(this, splPath->GetPath(), splPath->GetDirectionPath(), supportColor, lineStyle, Qt::RoundCap); + DrawPath(this, splPath->GetPath(), splPath->DirectionArrows(), supportColor, lineStyle, Qt::RoundCap); if (not qFuzzyIsNull(length)) { @@ -79,8 +79,8 @@ DrawPoint(point, static_cast(*p), mainColor); delete p; - DrawPath(splPath1, spPath1->GetPath(), spPath1->GetDirectionPath(), Qt::darkGreen, lineStyle, Qt::RoundCap); - DrawPath(splPath2, spPath2->GetPath(), spPath2->GetDirectionPath(), Qt::darkRed, lineStyle, Qt::RoundCap); + DrawPath(splPath1, spPath1->GetPath(), spPath1->DirectionArrows(), Qt::darkGreen, lineStyle, Qt::RoundCap); + DrawPath(splPath2, spPath2->GetPath(), spPath2->DirectionArrows(), Qt::darkRed, lineStyle, Qt::RoundCap); delete spPath1; delete spPath2; @@ -93,15 +93,3 @@ { length = FindLength(expression, Visualization::data->PlainVariables()); } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolCutSplinePath::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePenWidth(splPath1, scale); - ScalePenWidth(splPath2, scale); - - VisPath::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutsplinepath.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutsplinepath.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutsplinepath.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolcutsplinepath.h 2017-06-26 06:50:50.000000000 +0000 @@ -50,15 +50,12 @@ void setLength(const QString &expression); virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolCutSpline)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; protected: Q_DISABLE_COPY(VisToolCutSplinePath) - QGraphicsEllipseItem *point; - VCurvePathItem *splPath1; - VCurvePathItem *splPath2; - qreal length; + VScaledEllipse *point; + VCurvePathItem *splPath1; + VCurvePathItem *splPath2; + qreal length; }; #endif // VISTOOLCUTSPLINEPATH_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolellipticalarc.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolellipticalarc.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolellipticalarc.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolellipticalarc.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -57,7 +57,7 @@ if (not qFuzzyIsNull(radius1) && not qFuzzyIsNull(radius2) && f1 >= 0 && f2 >= 0 && rotationAngle >= 0) { VEllipticalArc elArc = VEllipticalArc(*first, radius1, radius2, f1, f2, rotationAngle); - DrawPath(this, elArc.GetPath(), elArc.GetDirectionPath(), mainColor, lineStyle, Qt::RoundCap); + DrawPath(this, elArc.GetPath(), elArc.DirectionArrows(), mainColor, lineStyle, Qt::RoundCap); } } } @@ -91,13 +91,3 @@ { rotationAngle = FindVal(expression, Visualization::data->PlainVariables()); } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolEllipticalArc::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(arcCenter, scale); - - VisPath::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolellipticalarc.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolellipticalarc.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolellipticalarc.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolellipticalarc.h 2017-06-26 06:50:50.000000000 +0000 @@ -54,17 +54,14 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolEllipticalArc)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolEllipticalArc) - QGraphicsEllipseItem *arcCenter; - qreal radius1; - qreal radius2; - qreal f1; - qreal f2; - qreal rotationAngle; + VScaledEllipse *arcCenter; + qreal radius1; + qreal radius2; + qreal f1; + qreal f2; + qreal rotationAngle; }; #endif // VISTOOLELLIPTICALARC_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpiece.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpiece.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpiece.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpiece.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -29,6 +29,7 @@ #include "vistoolpiece.h" #include "../vpatterndb/vpiecepath.h" #include "../vgeometry/vpointf.h" +#include "../vwidgets/scalesceneitems.h" //--------------------------------------------------------------------------------------------------------------------- VisToolPiece::VisToolPiece(const VContainer *data, QGraphicsItem *parent) @@ -38,8 +39,8 @@ m_line2(nullptr), m_piece() { - m_line1 = InitItem(supportColor, this); - m_line2 = InitItem(supportColor, this); + m_line1 = InitItem(supportColor, this); + m_line2 = InitItem(supportColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -55,7 +56,7 @@ for (int i = 0; i < nodes.size(); ++i) { - QGraphicsEllipseItem *point = GetPoint(static_cast(i), supportColor); + VScaledEllipse *point = GetPoint(static_cast(i), supportColor); DrawPoint(point, nodes.at(i).toQPointF(), supportColor); } @@ -79,23 +80,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisToolPiece::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - for (int i=0; i < m_points.size(); ++i) - { - ScalePoint(m_points[i], scale); - } - - ScalePenWidth(m_line1, scale); - ScalePenWidth(m_line2, scale); - - VisPath::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- -QGraphicsEllipseItem *VisToolPiece::GetPoint(quint32 i, const QColor &color) +VScaledEllipse *VisToolPiece::GetPoint(quint32 i, const QColor &color) { return GetPointItem(m_points, i, color, this); } diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpiece.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpiece.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpiece.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpiece.h 2017-06-26 06:50:50.000000000 +0000 @@ -46,18 +46,15 @@ void SetPiece(const VPiece &piece); virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolPiece)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolPiece) - QVector m_points; + QVector m_points; - QGraphicsLineItem *m_line1; - QGraphicsLineItem *m_line2; + VScaledLine *m_line1; + VScaledLine *m_line2; VPiece m_piece; - QGraphicsEllipseItem* GetPoint(quint32 i, const QColor &color); + VScaledEllipse* GetPoint(quint32 i, const QColor &color); void HideAllItems(); }; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpiecepath.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpiecepath.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpiecepath.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpiecepath.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -29,6 +29,7 @@ #include "vistoolpiecepath.h" #include "../vwidgets/vsimplepoint.h" #include "../vgeometry/vpointf.h" +#include "../vwidgets/scalesceneitems.h" #include @@ -39,7 +40,7 @@ m_line(nullptr), m_path() { - m_line = InitItem(supportColor, this); + m_line = InitItem(supportColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -79,21 +80,6 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisToolPiecePath::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - for (int i=0; i < m_points.size(); ++i) - { - ScalePoint(m_points[i], scale); - } - - ScalePenWidth(m_line, scale); - - VisPath::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- void VisToolPiecePath::mousePressEvent(QGraphicsSceneMouseEvent *event) { event->ignore(); diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpiecepath.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpiecepath.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpiecepath.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpiecepath.h 2017-06-26 06:50:50.000000000 +0000 @@ -48,9 +48,6 @@ void SetPath(const VPiecePath &path); virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolPiecePath)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; protected: virtual void mousePressEvent( QGraphicsSceneMouseEvent * event ) Q_DECL_OVERRIDE; @@ -58,7 +55,7 @@ Q_DISABLE_COPY(VisToolPiecePath) QVector m_points; - QGraphicsLineItem *m_line; + VScaledLine *m_line; VPiecePath m_path; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpointofintersectioncurves.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpointofintersectioncurves.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpointofintersectioncurves.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpointofintersectioncurves.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -63,12 +63,13 @@ if (object1Id > NULL_ID) { auto curve1 = Visualization::data->GeometricObject(object1Id); - DrawPath(this, curve1->GetPath(PathDirection::Show), supportColor, Qt::SolidLine, Qt::RoundCap); + DrawPath(this, curve1->GetPath(), curve1->DirectionArrows(), supportColor, Qt::SolidLine, Qt::RoundCap); if (object2Id > NULL_ID) { auto curve2 = Visualization::data->GeometricObject(object2Id); - DrawPath(visCurve2, curve2->GetPath(PathDirection::Show), supportColor, Qt::SolidLine, Qt::RoundCap); + DrawPath(visCurve2, curve2->GetPath(), curve2->DirectionArrows(), supportColor, Qt::SolidLine, + Qt::RoundCap); auto p = VToolPointOfIntersectionCurves::FindPoint(curve1->GetPoints(), curve2->GetPoints(), vCrossPoint, hCrossPoint); @@ -107,14 +108,3 @@ { hCrossPoint = value; } - -//--------------------------------------------------------------------------------------------------------------------- -void VisToolPointOfIntersectionCurves::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point, scale); - ScalePenWidth(visCurve2, scale); - - VisPath::paint(painter, option, widget); -} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpointofintersectioncurves.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpointofintersectioncurves.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpointofintersectioncurves.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolpointofintersectioncurves.h 2017-06-26 06:50:50.000000000 +0000 @@ -56,17 +56,13 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolPointOfIntersectionCurves)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VisToolPointOfIntersectionCurves) - quint32 object2Id; - VCrossCurvesPoint vCrossPoint; - HCrossCurvesPoint hCrossPoint; - - QGraphicsEllipseItem *point; - VCurvePathItem *visCurve2; + quint32 object2Id; + VCrossCurvesPoint vCrossPoint; + HCrossCurvesPoint hCrossPoint; + VScaledEllipse *point; + VCurvePathItem *visCurve2; }; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolspline.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolspline.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolspline.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolspline.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -122,7 +122,7 @@ if (object4Id <= NULL_ID) { VSpline spline(*first, p2, Visualization::scenePos, VPointF(Visualization::scenePos)); - DrawPath(this, spline.GetPath(PathDirection::Hide), mainColor, lineStyle, Qt::RoundCap); + DrawPath(this, spline.GetPath(), mainColor, lineStyle, Qt::RoundCap); } else { @@ -160,12 +160,12 @@ if (VFuzzyComparePossibleNulls(angle1, EMPTY_ANGLE) || VFuzzyComparePossibleNulls(angle2, EMPTY_ANGLE)) { VSpline spline(*first, p2, p3, *second); - DrawPath(this, spline.GetPath(PathDirection::Hide), mainColor, lineStyle, Qt::RoundCap); + DrawPath(this, spline.GetPath(), mainColor, lineStyle, Qt::RoundCap); } else { VSpline spline(*first, *second, angle1, angle2, kAsm1, kAsm2, kCurve); - DrawPath(this, spline.GetPath(), spline.GetDirectionPath(), mainColor, lineStyle, Qt::RoundCap); + DrawPath(this, spline.GetPath(), spline.DirectionArrows(), mainColor, lineStyle, Qt::RoundCap); Visualization::toolTip = tr("Use Shift for sticking angle!"); emit ToolTip(Visualization::toolTip); } @@ -222,17 +222,6 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisToolSpline::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - ScalePoint(point1, scale); - ScalePoint(point4, scale); - - VisPath::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- void VisToolSpline::MouseLeftPressed() { if (mode == Mode::Creation) diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolspline.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolspline.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolspline.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolspline.h 2017-06-26 06:50:50.000000000 +0000 @@ -64,23 +64,20 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolSpline)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; public slots: void MouseLeftPressed(); void MouseLeftReleased(); protected: Q_DISABLE_COPY(VisToolSpline) - quint32 object4Id; - QGraphicsEllipseItem *point1; - QGraphicsEllipseItem *point4; - qreal angle1; - qreal angle2; - qreal kAsm1; - qreal kAsm2; - qreal kCurve; + quint32 object4Id; + VScaledEllipse *point1; + VScaledEllipse *point4; + qreal angle1; + qreal angle2; + qreal kAsm1; + qreal kAsm2; + qreal kCurve; bool isLeftMousePressed; bool p2Selected; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolsplinepath.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolsplinepath.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolsplinepath.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolsplinepath.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -48,10 +48,10 @@ //--------------------------------------------------------------------------------------------------------------------- VisToolSplinePath::VisToolSplinePath(const VContainer *data, QGraphicsItem *parent) : VisPath(data, parent), - points(QVector()), - ctrlPoints(QVector()), + points(), + ctrlPoints(), newCurveSegment(nullptr), - path(VSplinePath()), + path(), isLeftMousePressed(false), pointSelected(false), ctrlPoint() @@ -62,8 +62,6 @@ //--------------------------------------------------------------------------------------------------------------------- VisToolSplinePath::~VisToolSplinePath() { - qDeleteAll(ctrlPoints); - qDeleteAll(points); emit ToolTip(""); } @@ -77,7 +75,7 @@ for (int i = 0; i < size; ++i) { - QGraphicsEllipseItem *point = this->getPoint(static_cast(i)); + VScaledEllipse *point = this->getPoint(static_cast(i)); DrawPoint(point, static_cast(pathPoints.at(i).P()), supportColor); } @@ -106,7 +104,7 @@ if (size > 1) { - DrawPath(this, path.GetPath(), path.GetDirectionPath(), mainColor, lineStyle, Qt::RoundCap); + DrawPath(this, path.GetPath(), path.DirectionArrows(), mainColor, lineStyle, Qt::RoundCap); } if (path.CountPoints() < 3) @@ -140,19 +138,6 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VisToolSplinePath::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - const qreal scale = SceneScale(scene()); - - for (int i=0; i < points.size(); ++i) - { - ScalePoint(points[i], scale); - } - - VisPath::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- void VisToolSplinePath::MouseLeftPressed() { if (mode == Mode::Creation) @@ -172,7 +157,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -QGraphicsEllipseItem *VisToolSplinePath::getPoint(quint32 i) +VScaledEllipse *VisToolSplinePath::getPoint(quint32 i) { if (static_cast(points.size() - 1) >= i && points.isEmpty() == false) { @@ -311,6 +296,6 @@ } emit PathChanged(path); - DrawPath(newCurveSegment, spline.GetPath(PathDirection::Hide), mainColor, Qt::SolidLine, Qt::RoundCap); + DrawPath(newCurveSegment, spline.GetPath(), mainColor, Qt::SolidLine, Qt::RoundCap); } } diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolsplinepath.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolsplinepath.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolsplinepath.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/path/vistoolsplinepath.h 2017-06-26 06:50:50.000000000 +0000 @@ -58,9 +58,6 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ToolSplinePath)}; - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; signals: void PathChanged(const VSplinePath &path); @@ -70,17 +67,17 @@ protected: Q_DISABLE_COPY(VisToolSplinePath) - QVector points; - QVector ctrlPoints; - VCurvePathItem *newCurveSegment; - VSplinePath path; + QVector points; + QVector ctrlPoints; + VCurvePathItem *newCurveSegment; + VSplinePath path; bool isLeftMousePressed; bool pointSelected; QPointF ctrlPoint; - QGraphicsEllipseItem * getPoint(quint32 i); + VScaledEllipse * getPoint(quint32 i); void Creating(const QPointF &pSpl, int size); }; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/visualization.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/visualization.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/visualization.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/visualization.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -53,6 +53,7 @@ #include "../vpatterndb/vcontainer.h" #include "../vwidgets/vmaingraphicsscene.h" #include "../vwidgets/vcurvepathitem.h" +#include "../vwidgets/scalesceneitems.h" template class QHash; @@ -136,14 +137,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -void Visualization::ScalePoint(QGraphicsEllipseItem *item, qreal scale) -{ - ScaleCircleSize(item, scale); - ScalePenWidth(item, scale); -} - -//--------------------------------------------------------------------------------------------------------------------- -QGraphicsEllipseItem *Visualization::InitPoint(const QColor &color, QGraphicsItem *parent, qreal z) const +VScaledEllipse *Visualization::InitPoint(const QColor &color, QGraphicsItem *parent, qreal z) const { return InitPointItem(color, parent, z); } @@ -192,7 +186,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -void Visualization::DrawPoint(QGraphicsEllipseItem *point, const QPointF &pos, const QColor &color, Qt::PenStyle style) +void Visualization::DrawPoint(VScaledEllipse *point, const QPointF &pos, const QColor &color, Qt::PenStyle style) { SCASSERT (point != nullptr) @@ -207,7 +201,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -void Visualization::DrawLine(QGraphicsLineItem *lineItem, const QLineF &line, const QColor &color, Qt::PenStyle style) +void Visualization::DrawLine(VScaledLine *lineItem, const QLineF &line, const QColor &color, Qt::PenStyle style) { SCASSERT (lineItem != nullptr) @@ -224,12 +218,13 @@ void Visualization::DrawPath(VCurvePathItem *pathItem, const QPainterPath &path, const QColor &color, Qt::PenStyle style, Qt::PenCapStyle cap) { - DrawPath(pathItem, path, QPainterPath(), color, style, cap); + DrawPath(pathItem, path, QVector(), color, style, cap); } //--------------------------------------------------------------------------------------------------------------------- -void Visualization::DrawPath(VCurvePathItem *pathItem, const QPainterPath &path, const QPainterPath &direction, - const QColor &color, Qt::PenStyle style, Qt::PenCapStyle cap) +void Visualization::DrawPath(VCurvePathItem *pathItem, const QPainterPath &path, + const QVector &directionArrows, const QColor &color, Qt::PenStyle style, + Qt::PenCapStyle cap) { SCASSERT (pathItem != nullptr) @@ -240,13 +235,13 @@ pathItem->setPen(visPen); pathItem->setPath(path); - pathItem->SetDirectionPath(direction); + pathItem->SetDirectionArrows(directionArrows); pathItem->setVisible(true); } //--------------------------------------------------------------------------------------------------------------------- -QGraphicsEllipseItem *Visualization::GetPointItem(QVector &points, quint32 i, - const QColor &color, QGraphicsItem *parent) +VScaledEllipse *Visualization::GetPointItem(QVector &points, quint32 i, + const QColor &color, QGraphicsItem *parent) { if (not points.isEmpty() && static_cast(points.size() - 1) >= i) { @@ -262,9 +257,9 @@ } //--------------------------------------------------------------------------------------------------------------------- -QGraphicsEllipseItem *Visualization::InitPointItem(const QColor &color, QGraphicsItem *parent, qreal z) +VScaledEllipse *Visualization::InitPointItem(const QColor &color, QGraphicsItem *parent, qreal z) { - QGraphicsEllipseItem *point = new QGraphicsEllipseItem(parent); + VScaledEllipse *point = new VScaledEllipse(parent); point->setZValue(1); point->setBrush(QBrush(Qt::NoBrush)); diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/visualization.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/visualization.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vtools/visualization/visualization.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vtools/visualization/visualization.h 2017-06-26 06:50:50.000000000 +0000 @@ -44,6 +44,9 @@ Q_DECLARE_LOGGING_CATEGORY(vVis) +class VScaledEllipse; +class VScaledLine; + enum class Mode : char {Creation, Show}; class Visualization : public QObject @@ -86,20 +89,16 @@ virtual void InitPen()=0; virtual void AddOnScene()=0; - template - void ScalePenWidth(Item *item, qreal scale); - - void ScalePoint(QGraphicsEllipseItem *item, qreal scale); - - QGraphicsEllipseItem *InitPoint(const QColor &color, QGraphicsItem *parent, qreal z = 0) const; - void DrawPoint(QGraphicsEllipseItem *point, const QPointF &pos, const QColor &color, + VScaledEllipse *InitPoint(const QColor &color, QGraphicsItem *parent, qreal z = 0) const; + void DrawPoint(VScaledEllipse *point, const QPointF &pos, const QColor &color, Qt::PenStyle style = Qt::SolidLine); - virtual void DrawLine(QGraphicsLineItem *lineItem, const QLineF &line, const QColor &color, + virtual void DrawLine(VScaledLine *lineItem, const QLineF &line, const QColor &color, Qt::PenStyle style = Qt::SolidLine); void DrawPath(VCurvePathItem *pathItem, const QPainterPath &path, const QColor &color, Qt::PenStyle style = Qt::SolidLine, Qt::PenCapStyle cap = Qt::SquareCap); - void DrawPath(VCurvePathItem *pathItem, const QPainterPath &path, const QPainterPath &direction, - const QColor &color, Qt::PenStyle style = Qt::SolidLine, Qt::PenCapStyle cap = Qt::SquareCap); + void DrawPath(VCurvePathItem *pathItem, const QPainterPath &path, + const QVector &directionArrows, const QColor &color, + Qt::PenStyle style = Qt::SolidLine, Qt::PenCapStyle cap = Qt::SquareCap); template void AddItem(Item *item); @@ -107,12 +106,12 @@ template Item *InitItem(const QColor &color, QGraphicsItem *parent); - static QGraphicsEllipseItem* GetPointItem(QVector &points, quint32 i, const QColor &color, - QGraphicsItem *parent); + static VScaledEllipse *GetPointItem(QVector &points, quint32 i, const QColor &color, + QGraphicsItem *parent); private: Q_DISABLE_COPY(Visualization) - static QGraphicsEllipseItem* InitPointItem(const QColor &color, QGraphicsItem *parent, qreal z = 0); + static VScaledEllipse* InitPointItem(const QColor &color, QGraphicsItem *parent, qreal z = 0); }; //--------------------------------------------------------------------------------------------------------------------- @@ -143,18 +142,4 @@ return item; } -//--------------------------------------------------------------------------------------------------------------------- -template -void Visualization::ScalePenWidth(Item *item, qreal scale) -{ - SCASSERT(item != nullptr) - - const qreal width = ScaleWidth(widthMainLine, scale); - - QPen visPen = item->pen(); - visPen.setWidthF(width); - - item->setPen(visPen); -} - #endif // VISUALIZATION_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/scalesceneitems.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/scalesceneitems.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/scalesceneitems.cpp 1970-01-01 00:00:00.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/scalesceneitems.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -0,0 +1,86 @@ +/************************************************************************ + ** + ** @file + ** @author Roman Telezhynskyi + ** @date 21 6, 2017 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentine project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2017 Valentina project + ** All Rights Reserved. + ** + ** Valentina is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** Valentina is distributed in the hope that it will be useful, + ** but WITHOUT ANY WARRANTY; without even the implied warranty of + ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ** GNU General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Valentina. If not, see . + ** + *************************************************************************/ + +#include "scalesceneitems.h" +#include "global.h" + +#include + +//--------------------------------------------------------------------------------------------------------------------- +VScaledLine::VScaledLine(QGraphicsItem *parent) + : QGraphicsLineItem(parent), + basicWidth(widthMainLine) +{} + +//--------------------------------------------------------------------------------------------------------------------- +VScaledLine::VScaledLine(const QLineF &line, QGraphicsItem *parent) + : QGraphicsLineItem(line, parent), + basicWidth(widthMainLine) +{} + +//--------------------------------------------------------------------------------------------------------------------- +void VScaledLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) +{ + QPen lPen = pen(); + lPen.setWidthF(ScaleWidth(basicWidth, SceneScale(scene()))); + setPen(lPen); + + QGraphicsLineItem::paint(painter, option, widget); +} + +//--------------------------------------------------------------------------------------------------------------------- +qreal VScaledLine::GetBasicWidth() const +{ + return basicWidth; +} + +//--------------------------------------------------------------------------------------------------------------------- +void VScaledLine::SetBasicWidth(const qreal &value) +{ + basicWidth = value; +} + +//--------------------------------------------------------------------------------------------------------------------- +VScaledEllipse::VScaledEllipse(QGraphicsItem *parent) + : QGraphicsEllipseItem(parent) +{} + +//--------------------------------------------------------------------------------------------------------------------- +void VScaledEllipse::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) +{ + const qreal scale = SceneScale(scene()); + const qreal width = ScaleWidth(widthMainLine, scale); + + QPen visPen = pen(); + visPen.setWidthF(width); + + setPen(visPen); + ScaleCircleSize(this, scale); + + QGraphicsEllipseItem::paint(painter, option, widget); +} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/scalesceneitems.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/scalesceneitems.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/scalesceneitems.h 1970-01-01 00:00:00.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/scalesceneitems.h 2017-06-26 06:50:50.000000000 +0000 @@ -0,0 +1,73 @@ +/************************************************************************ + ** + ** @file + ** @author Roman Telezhynskyi + ** @date 21 6, 2017 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentine project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2017 Valentina project + ** All Rights Reserved. + ** + ** Valentina is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** Valentina is distributed in the hope that it will be useful, + ** but WITHOUT ANY WARRANTY; without even the implied warranty of + ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ** GNU General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Valentina. If not, see . + ** + *************************************************************************/ + +#ifndef SCALESCENEITEMS_H +#define SCALESCENEITEMS_H + +#include + +#include "../vmisc/def.h" + +class VScaledLine : public QGraphicsLineItem +{ +public: + explicit VScaledLine(QGraphicsItem * parent = nullptr); + VScaledLine(const QLineF &line, QGraphicsItem * parent = nullptr); + virtual ~VScaledLine() = default; + + virtual int type() const Q_DECL_OVERRIDE {return Type;} + enum { Type = UserType + static_cast(Vis::ScaledLine)}; + + virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, + QWidget *widget = nullptr) Q_DECL_OVERRIDE; + + qreal GetBasicWidth() const; + void SetBasicWidth(const qreal &value); + +private: + Q_DISABLE_COPY(VScaledLine) + + qreal basicWidth; +}; + +class VScaledEllipse : public QGraphicsEllipseItem +{ +public: + explicit VScaledEllipse(QGraphicsItem * parent = nullptr); + virtual ~VScaledEllipse() = default; + + virtual int type() const Q_DECL_OVERRIDE {return Type;} + enum { Type = UserType + static_cast(Vis::ScaledEllipse)}; + + virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, + QWidget *widget = nullptr) Q_DECL_OVERRIDE; +private: + Q_DISABLE_COPY(VScaledEllipse) +}; + +#endif // SCALESCENEITEMS_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vcontrolpointspline.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vcontrolpointspline.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vcontrolpointspline.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vcontrolpointspline.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -48,6 +48,7 @@ #include "vmaingraphicsscene.h" #include "vmaingraphicsview.h" #include "vgraphicssimpletextitem.h" +#include "scalesceneitems.h" //--------------------------------------------------------------------------------------------------------------------- VControlPointSpline::VControlPointSpline(const qint32 &indexSpline, SplinePointPosition position, QGraphicsItem *parent) @@ -100,22 +101,14 @@ //--------------------------------------------------------------------------------------------------------------------- void VControlPointSpline::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { - const qreal scale = SceneScale(scene()); - - ScaleLinePenWidth(controlLine, scale); + QPen lPen = controlLine->pen(); + lPen.setColor(CorrectColor(controlLine, Qt::black)); + controlLine->setPen(lPen); VScenePoint::paint(painter, option, widget); } //--------------------------------------------------------------------------------------------------------------------- -QRectF VControlPointSpline::boundingRect() const -{ - QRectF recTool = VScenePoint::boundingRect(); - recTool = recTool.united(childrenBoundingRect()); - return recTool; -} - -//--------------------------------------------------------------------------------------------------------------------- /** * @brief hoverEnterEvent handle hover enter events. * @param event hover move event. @@ -267,12 +260,8 @@ this->setBrush(QBrush(Qt::NoBrush)); this->setZValue(100); - controlLine = new QGraphicsLineItem(this); - - QPen cPen = controlLine->pen(); - cPen.setBrush(QBrush(Qt::red)); - - controlLine->setPen(cPen); + controlLine = new VScaledLine(this); + controlLine->SetBasicWidth(widthHairLine); controlLine->setFlag(QGraphicsItem::ItemStacksBehindParent, true); } diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vcontrolpointspline.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vcontrolpointspline.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vcontrolpointspline.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vcontrolpointspline.h 2017-06-26 06:50:50.000000000 +0000 @@ -55,12 +55,11 @@ const QPointF &splinePoint, bool freeAngle, bool freeLength, QGraphicsItem * parent = nullptr); virtual ~VControlPointSpline(); - virtual int type() const Q_DECL_OVERRIDE {return Type;} + virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::ControlPointSpline)}; - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; - virtual QRectF boundingRect() const Q_DECL_OVERRIDE; + virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, + QWidget *widget = nullptr) Q_DECL_OVERRIDE; signals: /** * @brief ControlPointChangePosition emit when control point change position. @@ -81,7 +80,7 @@ void setEnabledPoint(bool enable); protected: /** @brief controlLine pointer to line control point. */ - QGraphicsLineItem *controlLine; + VScaledLine *controlLine; virtual void hoverEnterEvent ( QGraphicsSceneHoverEvent * event ) Q_DECL_OVERRIDE; virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent * event ) Q_DECL_OVERRIDE; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vcurvepathitem.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vcurvepathitem.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vcurvepathitem.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vcurvepathitem.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -27,20 +27,68 @@ *************************************************************************/ #include "vcurvepathitem.h" +#include "../vwidgets/global.h" +#include "../vgeometry/vabstractcurve.h" #include //--------------------------------------------------------------------------------------------------------------------- VCurvePathItem::VCurvePathItem(QGraphicsItem *parent) : QGraphicsPathItem(parent), - m_direction() + m_directionArrows() { } //--------------------------------------------------------------------------------------------------------------------- +QPainterPath VCurvePathItem::shape() const +{ + QPainterPath itemPath = path(); + + const QPainterPath arrowsPath = VAbstractCurve::ShowDirection(m_directionArrows, + ScaleWidth(VAbstractCurve::lengthCurveDirectionArrow, + SceneScale(scene()))); + if (arrowsPath != QPainterPath()) + { + itemPath.addPath(arrowsPath); + itemPath.setFillRule(Qt::WindingFill); + } + + // We unfortunately need this hack as QPainterPathStroker will set a width of 1.0 + // if we pass a value of 0.0 to QPainterPathStroker::setWidth() + const qreal penWidthZero = qreal(0.00000001); + + if (itemPath == QPainterPath() || pen() == Qt::NoPen) + { + return itemPath; + } + + QPainterPathStroker ps; + ps.setCapStyle(pen().capStyle()); + if (pen().widthF() <= 0.0) + { + ps.setWidth(penWidthZero); + } + else + { + ps.setWidth(pen().widthF()); + } + ps.setJoinStyle(pen().joinStyle()); + ps.setMiterLimit(pen().miterLimit()); + QPainterPath p = ps.createStroke(itemPath); + p.addPath(itemPath); + return p; +} + +//--------------------------------------------------------------------------------------------------------------------- void VCurvePathItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { - if (m_direction != QPainterPath()) + ScalePenWidth(); + + const QPainterPath arrowsPath = VAbstractCurve::ShowDirection(m_directionArrows, + ScaleWidth(VAbstractCurve::lengthCurveDirectionArrow, + SceneScale(scene()))); + + if (arrowsPath != QPainterPath()) { painter->save(); @@ -49,7 +97,7 @@ painter->setPen(arrowPen); painter->setBrush(brush()); - painter->drawPath(m_direction); + painter->drawPath(arrowsPath); painter->restore(); } @@ -58,7 +106,18 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VCurvePathItem::SetDirectionPath(const QPainterPath &path) +void VCurvePathItem::SetDirectionArrows(const QVector > &arrows) { - m_direction = path; + m_directionArrows = arrows; +} + +//--------------------------------------------------------------------------------------------------------------------- +void VCurvePathItem::ScalePenWidth() +{ + const qreal width = ScaleWidth(widthMainLine, SceneScale(scene())); + + QPen toolPen = pen(); + toolPen.setWidthF(width); + + setPen(toolPen); } diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vcurvepathitem.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vcurvepathitem.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vcurvepathitem.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vcurvepathitem.h 2017-06-26 06:50:50.000000000 +0000 @@ -38,6 +38,9 @@ { public: explicit VCurvePathItem(QGraphicsItem *parent = nullptr); + virtual ~VCurvePathItem() = default; + + virtual QPainterPath shape() const Q_DECL_OVERRIDE; virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) Q_DECL_OVERRIDE; @@ -45,11 +48,13 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::CurvePathItem)}; - void SetDirectionPath(const QPainterPath &path); + void SetDirectionArrows(const QVector> &arrows); +protected: + virtual void ScalePenWidth(); private: Q_DISABLE_COPY(VCurvePathItem) - QPainterPath m_direction; + QVector> m_directionArrows; }; #endif // VCURVEPATHITEM_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vgraphicssimpletextitem.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vgraphicssimpletextitem.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vgraphicssimpletextitem.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vgraphicssimpletextitem.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -53,7 +53,7 @@ * @param parent parent object. */ VGraphicsSimpleTextItem::VGraphicsSimpleTextItem(QGraphicsItem * parent) - :QGraphicsSimpleTextItem(parent), fontSize(0), selectionType(SelectionType::ByMouseRelease) + :QGraphicsSimpleTextItem(parent), m_fontSize(0), selectionType(SelectionType::ByMouseRelease) { this->setFlag(QGraphicsItem::ItemIsMovable, true); this->setFlag(QGraphicsItem::ItemIsSelectable, true); @@ -62,7 +62,7 @@ this->setAcceptHoverEvents(true); QFont font = this->font(); font.setPointSize(font.pointSize()+20); - fontSize = font.pointSize(); + m_fontSize = font.pointSize(); this->setFont(font); } @@ -73,7 +73,7 @@ * @param parent parent object. */ VGraphicsSimpleTextItem::VGraphicsSimpleTextItem( const QString & text, QGraphicsItem * parent ) - :QGraphicsSimpleTextItem(text, parent), fontSize(0), selectionType(SelectionType::ByMouseRelease) + :QGraphicsSimpleTextItem(text, parent), m_fontSize(0), selectionType(SelectionType::ByMouseRelease) { this->setFlag(QGraphicsItem::ItemIsMovable, true); this->setFlag(QGraphicsItem::ItemIsSelectable, true); diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vgraphicssimpletextitem.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vgraphicssimpletextitem.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vgraphicssimpletextitem.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vgraphicssimpletextitem.h 2017-06-26 06:50:50.000000000 +0000 @@ -85,7 +85,7 @@ virtual void keyReleaseEvent ( QKeyEvent * event ) Q_DECL_OVERRIDE; private: /** @brief fontSize label font size. */ - qint32 fontSize; + qint32 m_fontSize; SelectionType selectionType; }; @@ -96,7 +96,7 @@ */ inline qint32 VGraphicsSimpleTextItem::BaseFontSize() const { - return fontSize; + return m_fontSize; } #endif // VGRAPHICSSIMPLETEXTITEM_H diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vscenepoint.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vscenepoint.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vscenepoint.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vscenepoint.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -31,6 +31,7 @@ #include "../vgeometry/vpointf.h" #include "global.h" #include "vgraphicssimpletextitem.h" +#include "scalesceneitems.h" #include #include @@ -46,7 +47,11 @@ m_baseColor(Qt::black) { m_namePoint = new VGraphicsSimpleTextItem(this); - m_lineName = new QGraphicsLineItem(this); + m_lineName = new VScaledLine(this); + m_lineName->SetBasicWidth(widthHairLine); + m_lineName->setLine(QLineF(0, 0, 1, 0)); + m_lineName->setVisible(false); + this->setBrush(QBrush(Qt::NoBrush)); this->setAcceptHoverEvents(true); this->setFlag(QGraphicsItem::ItemIsFocusable, true);// For keyboard input focus @@ -70,9 +75,10 @@ if (not m_onlyPoint) { m_namePoint->setVisible(true); - m_lineName->setVisible(true); - ScaleLinePenWidth(m_lineName, scale); + QPen lPen = m_lineName->pen(); + lPen.setColor(CorrectColor(m_lineName, Qt::black)); + m_lineName->setPen(lPen); RefreshLine(); } @@ -97,14 +103,6 @@ } //--------------------------------------------------------------------------------------------------------------------- -QRectF VScenePoint::boundingRect() const -{ - QRectF recTool = QGraphicsEllipseItem::boundingRect(); - recTool = recTool.united(childrenBoundingRect()); - return recTool; -} - -//--------------------------------------------------------------------------------------------------------------------- void VScenePoint::SetOnlyPoint(bool value) { m_onlyPoint = value; @@ -140,11 +138,11 @@ if (not rect().intersects(nRec)) { const QRectF nameRec = m_namePoint->sceneBoundingRect(); - QPointF p1, p2; + QPointF p1; + QPointF p2; VGObject::LineIntersectCircle(QPointF(), ScaledRadius(SceneScale(scene())), QLineF(QPointF(), nameRec.center() - scenePos()), p1, p2); const QPointF pRec = VGObject::LineIntersectRect(nameRec, QLineF(scenePos(), nameRec.center())); - m_lineName->setLine(QLineF(p1, pRec - scenePos())); if (QLineF(p1, pRec - scenePos()).length() <= ToPixel(4, Unit::Mm)) { @@ -152,6 +150,7 @@ } else { + m_lineName->setLine(QLineF(p1, pRec - scenePos())); m_lineName->setVisible(true); } } @@ -168,13 +167,3 @@ setPen(QPen(CorrectColor(this, m_baseColor), width)); } - -//--------------------------------------------------------------------------------------------------------------------- -void VScenePoint::ScaleLinePenWidth(QGraphicsLineItem *line, qreal scale) -{ - SCASSERT(line != nullptr) - const qreal width = ScaleWidth(widthHairLine, scale); - - line->setPen(QPen(CorrectColor(line, Qt::black), width)); -} - diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vscenepoint.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vscenepoint.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vscenepoint.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vscenepoint.h 2017-06-26 06:50:50.000000000 +0000 @@ -34,25 +34,24 @@ class VGraphicsSimpleTextItem; class VPointF; +class VScaledLine; class VScenePoint: public QGraphicsEllipseItem { public: explicit VScenePoint(QGraphicsItem *parent = nullptr); - ~VScenePoint() = default; + virtual ~VScenePoint() = default; - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; - - virtual void RefreshPointGeometry(const VPointF &point); - virtual QRectF boundingRect() const Q_DECL_OVERRIDE; + virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, + QWidget *widget = nullptr) Q_DECL_OVERRIDE; + virtual void RefreshPointGeometry(const VPointF &point); protected: /** @brief namePoint point label. */ VGraphicsSimpleTextItem *m_namePoint; /** @brief lineName line what we see if label moved too away from point. */ - QGraphicsLineItem *m_lineName; + VScaledLine *m_lineName; bool m_onlyPoint; bool m_isHovered; @@ -64,7 +63,6 @@ virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) Q_DECL_OVERRIDE; void RefreshLine(); - void ScaleLinePenWidth(QGraphicsLineItem *line, qreal scale); void SetOnlyPoint(bool value); bool IsOnlyPoint() const; diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vsimplecurve.cpp valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vsimplecurve.cpp --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vsimplecurve.cpp 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vsimplecurve.cpp 2017-06-26 06:50:50.000000000 +0000 @@ -58,37 +58,13 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VSimpleCurve::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - qreal width = 1; - if (m_isHovered) - { - width = widthMainLine; - } - else - { - width = widthHairLine; - } - - const qreal scale = SceneScale(scene()); - if (scale > 1) - { - width = qMax(1., width/scale); - } - - setPen(QPen(CorrectColor(this, m_curve->GetColor()), width, LineStyleToPenStyle(m_curve->GetPenStyle()))); - - VCurvePathItem::paint(painter, option, widget); -} - -//--------------------------------------------------------------------------------------------------------------------- void VSimpleCurve::RefreshGeometry(const QSharedPointer &curve) { m_curve = curve; if (not m_curve.isNull()) { - m_isHovered ? SetDirectionPath(m_curve->GetDirectionPath()) : SetDirectionPath(QPainterPath()); + m_isHovered ? SetDirectionArrows(m_curve->DirectionArrows()) : SetDirectionArrows(QVector()); setPath(m_curve->GetPath()); } else @@ -191,3 +167,20 @@ } QGraphicsPathItem::keyReleaseEvent ( event ); } + +//--------------------------------------------------------------------------------------------------------------------- +void VSimpleCurve::ScalePenWidth() +{ + qreal width = 1; + if (m_isHovered) + { + width = widthMainLine; + } + else + { + width = widthHairLine; + } + + width = ScaleWidth(width, SceneScale(scene())); + setPen(QPen(CorrectColor(this, m_curve->GetColor()), width, LineStyleToPenStyle(m_curve->GetPenStyle()))); +} diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vsimplecurve.h valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vsimplecurve.h --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vsimplecurve.h 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vsimplecurve.h 2017-06-26 06:50:50.000000000 +0000 @@ -56,9 +56,6 @@ virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::SimpleCurve)}; - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) Q_DECL_OVERRIDE; - void RefreshGeometry(const QSharedPointer &curve); signals: /** @@ -80,6 +77,7 @@ virtual QVariant itemChange ( GraphicsItemChange change, const QVariant &value ) Q_DECL_OVERRIDE; virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ) Q_DECL_OVERRIDE; virtual void keyReleaseEvent ( QKeyEvent * event ) Q_DECL_OVERRIDE; + virtual void ScalePenWidth() Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(VSimpleCurve) diff -Nru valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vwidgets.pri valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vwidgets.pri --- valentina-0.5.999+59+201706191347~ubuntu16.10.1/src/libs/vwidgets/vwidgets.pri 2017-06-19 13:47:41.000000000 +0000 +++ valentina-0.5.999+59+201706260650~ubuntu16.10.1/src/libs/vwidgets/vwidgets.pri 2017-06-26 06:50:50.000000000 +0000 @@ -20,7 +20,8 @@ $$PWD/fancytabbar/stylehelper.cpp \ $$PWD/vcurvepathitem.cpp \ $$PWD/global.cpp \ - $$PWD/vscenepoint.cpp + $$PWD/vscenepoint.cpp \ + $$PWD/scalesceneitems.cpp win32-msvc*:SOURCES += $$PWD/stable.cpp @@ -44,4 +45,5 @@ $$PWD/fancytabbar/stylehelper.h \ $$PWD/vcurvepathitem.h \ $$PWD/global.h \ - $$PWD/vscenepoint.h + $$PWD/vscenepoint.h \ + $$PWD/scalesceneitems.h