/** * @brief NameChangePosition handle change posion point label. * @param pos new position. */ void VToolPoint::NameChangePosition(const QPointF &pos) { VPointF *point = new VPointF(*VAbstractTool::data.GeometricObject<const VPointF *>(id)); QPointF p = pos - this->pos(); point->setMx(p.x()); point->setMy(p.y()); RefreshLine(); UpdateNamePosition(point->mx(), point->my()); VAbstractTool::data.UpdateGObject(id, point); }
/** * @brief RefreshPointGeometry refresh point on scene. * @param point point. */ void VToolPoint::RefreshPointGeometry(const VPointF &point) { this->setFlag(QGraphicsItem::ItemSendsGeometryChanges, false); this->setPen(QPen(currentColor, qApp->toPixel(qApp->widthHairLine())/factor)); QRectF rec = QRectF(0, 0, radius*2/factor, radius*2/factor); rec.translate(-rec.center().x(), -rec.center().y()); this->setRect(rec); this->setPos(point.toQPointF()); this->setFlag(QGraphicsItem::ItemSendsGeometryChanges, true); disconnect(namePoint, &VGraphicsSimpleTextItem::NameChangePosition, this, &VToolPoint::NameChangePosition); QFont font = namePoint->font(); font.setPointSize(static_cast<qint32>(namePoint->FontSize()/factor)); namePoint->setFont(font); namePoint->setText(point.name()); namePoint->setPos(QPointF(point.mx(), point.my())); connect(namePoint, &VGraphicsSimpleTextItem::NameChangePosition, this, &VToolPoint::NameChangePosition); RefreshLine(); this->setFlag(QGraphicsItem::ItemSendsGeometryChanges, true); }