/************************************************************************ ** ** @file ** @author Roman Telezhynskyi ** @date 21 6, 2017 ** ** @brief ** @copyright ** This source code is part of the Valentina 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 "../vmisc/vabstractapplication.h" #include //--------------------------------------------------------------------------------------------------------------------- VScaledLine::VScaledLine(QGraphicsItem *parent) : QGraphicsLineItem(parent), m_isBoldLine(true) {} //--------------------------------------------------------------------------------------------------------------------- VScaledLine::VScaledLine(const QLineF &line, QGraphicsItem *parent) : QGraphicsLineItem(line, parent), m_isBoldLine(true) {} //--------------------------------------------------------------------------------------------------------------------- void VScaledLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { QPen lPen = pen(); const qreal width = ScaleWidth(m_isBoldLine ? VAbstractApplication::VApp()->Settings()->WidthMainLine() : VAbstractApplication::VApp()->Settings()->WidthHairLine(), SceneScale(scene())); lPen.setWidthF(qRound(width*100.)/100.); setPen(lPen); PaintWithFixItemHighlightSelected(this, painter, option, widget); } //--------------------------------------------------------------------------------------------------------------------- bool VScaledLine::IsBoldLine() const { return m_isBoldLine; } //--------------------------------------------------------------------------------------------------------------------- void VScaledLine::SetBoldLine(bool bold) { m_isBoldLine = bold; } //--------------------------------------------------------------------------------------------------------------------- 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(VAbstractApplication::VApp()->Settings()->WidthMainLine(), scale); QPen visPen = pen(); visPen.setWidthF(width); setPen(visPen); if (m_pointMode) { ScaleCircleSize(this, scale); } PaintWithFixItemHighlightSelected(this, painter, option, widget); } //--------------------------------------------------------------------------------------------------------------------- bool VScaledEllipse::PointMode() const { return m_pointMode; } //--------------------------------------------------------------------------------------------------------------------- void VScaledEllipse::SetPointMode(bool newHoldSize) { m_pointMode = newHoldSize; }