From 4f91c69127892e46e9a3d054160b1a52b9813206 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Fri, 6 Feb 2015 14:31:40 +0200 Subject: [PATCH] Refactoring, correct disabling tool. --HG-- branch : feature --- src/app/tools/drawTools/vabstractspline.cpp | 12 ++++++------ src/app/tools/drawTools/vdrawtool.h | 14 -------------- src/app/tools/drawTools/vtoolcut.cpp | 12 +++++++++--- src/app/tools/drawTools/vtoolcut.h | 1 + src/app/tools/drawTools/vtoolline.cpp | 8 ++++---- src/app/tools/drawTools/vtoollinepoint.cpp | 15 ++++++++++----- src/app/tools/drawTools/vtoollinepoint.h | 1 + src/app/tools/drawTools/vtoolpoint.cpp | 8 ++++---- 8 files changed, 35 insertions(+), 36 deletions(-) diff --git a/src/app/tools/drawTools/vabstractspline.cpp b/src/app/tools/drawTools/vabstractspline.cpp index c20e68cdc..94df69d36 100644 --- a/src/app/tools/drawTools/vabstractspline.cpp +++ b/src/app/tools/drawTools/vabstractspline.cpp @@ -74,7 +74,11 @@ void VAbstractSpline::FullUpdateFromFile() //--------------------------------------------------------------------------------------------------------------------- void VAbstractSpline::Disable(bool disable) { - DisableItem(this, disable); + enabled = !disable; + this->setEnabled(enabled); + this->setPen(QPen(CorrectColor(lineColor), qApp->toPixel(qApp->widthMainLine())/factor, Qt::SolidLine, + Qt::RoundCap)); + emit setEnabledPoint(enabled); } //--------------------------------------------------------------------------------------------------------------------- @@ -84,11 +88,7 @@ void VAbstractSpline::Disable(bool disable) */ void VAbstractSpline::ChangedActivDraw(const QString &newName) { - VDrawTool::ChangedActivDraw(newName); - this->setEnabled(enabled); - this->setPen(QPen(CorrectColor(lineColor), qApp->toPixel(qApp->widthMainLine())/factor, Qt::SolidLine, - Qt::RoundCap)); - emit setEnabledPoint(enabled); + Disable(!(nameActivDraw == newName)); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/tools/drawTools/vdrawtool.h b/src/app/tools/drawTools/vdrawtool.h index e978111bc..52b320b39 100644 --- a/src/app/tools/drawTools/vdrawtool.h +++ b/src/app/tools/drawTools/vdrawtool.h @@ -177,20 +177,6 @@ protected: // item->setPen(QPen(currentColor, qApp->toPixel(qApp->widthHairLine())/factor)); // } } - template - void DisableItem(Item *item, bool disable) - { - SCASSERT(item != nullptr); -// if (disable) -// { -// currentColor = Qt::gray; -// } -// else -// { -// currentColor = baseColor; -// } -// item->setPen(QPen(currentColor, qApp->toPixel(qApp->widthHairLine())/factor)); - } private: Q_DISABLE_COPY(VDrawTool) }; diff --git a/src/app/tools/drawTools/vtoolcut.cpp b/src/app/tools/drawTools/vtoolcut.cpp index 0c506d2e7..78544c8b1 100644 --- a/src/app/tools/drawTools/vtoolcut.cpp +++ b/src/app/tools/drawTools/vtoolcut.cpp @@ -59,9 +59,7 @@ VToolCut::VToolCut(VPattern *doc, VContainer *data, const quint32 &id, const QSt */ void VToolCut::ChangedActivDraw(const QString &newName) { - VToolPoint::ChangedActivDraw(newName); - firstCurve->ChangedActivDraw(enabled); - secondCurve->ChangedActivDraw(enabled); + Disable(!(nameActivDraw == newName)); } //--------------------------------------------------------------------------------------------------------------------- @@ -74,6 +72,14 @@ void VToolCut::HoverPath(quint32 id, SimpleCurvePoint curvePosition, PathDirecti } } +//--------------------------------------------------------------------------------------------------------------------- +void VToolCut::Disable(bool disable) +{ + VToolPoint::Disable(disable); + firstCurve->ChangedActivDraw(enabled); + secondCurve->ChangedActivDraw(enabled); +} + //--------------------------------------------------------------------------------------------------------------------- quint32 VToolCut::getCurveCutId() const { diff --git a/src/app/tools/drawTools/vtoolcut.h b/src/app/tools/drawTools/vtoolcut.h index 3ec1a1544..c203cc9d3 100644 --- a/src/app/tools/drawTools/vtoolcut.h +++ b/src/app/tools/drawTools/vtoolcut.h @@ -53,6 +53,7 @@ public slots: virtual void ChangedActivDraw(const QString &newName); virtual void CurveChoosed(quint32 id)=0; void HoverPath(quint32 id, SimpleCurvePoint curvePosition, PathDirection direction); + void Disable(bool disable); protected: /** @brief formula keep formula of length */ QString formula; diff --git a/src/app/tools/drawTools/vtoolline.cpp b/src/app/tools/drawTools/vtoolline.cpp index f9d67bddc..a4df670d5 100644 --- a/src/app/tools/drawTools/vtoolline.cpp +++ b/src/app/tools/drawTools/vtoolline.cpp @@ -227,7 +227,9 @@ void VToolLine::SetFactor(qreal factor) //--------------------------------------------------------------------------------------------------------------------- void VToolLine::Disable(bool disable) { - DisableItem(this, disable); + enabled = !disable; + this->setEnabled(enabled); + this->setPen(QPen(QColor(baseColor), qApp->toPixel(qApp->widthHairLine())/factor, LineStyleToPenStyle(typeLine))); } //--------------------------------------------------------------------------------------------------------------------- @@ -237,9 +239,7 @@ void VToolLine::Disable(bool disable) */ void VToolLine::ChangedActivDraw(const QString &newName) { - VDrawTool::ChangedActivDraw(newName); - this->setEnabled(enabled); - this->setPen(QPen(QColor(baseColor), qApp->toPixel(qApp->widthHairLine())/factor, LineStyleToPenStyle(typeLine))); + Disable(!(nameActivDraw == newName)); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/tools/drawTools/vtoollinepoint.cpp b/src/app/tools/drawTools/vtoollinepoint.cpp index e66bcae6e..5862a677e 100644 --- a/src/app/tools/drawTools/vtoollinepoint.cpp +++ b/src/app/tools/drawTools/vtoollinepoint.cpp @@ -69,11 +69,7 @@ VToolLinePoint::~VToolLinePoint() */ void VToolLinePoint::ChangedActivDraw(const QString &newName) { - VToolPoint::ChangedActivDraw(newName); - this->setEnabled(enabled); - mainLine->setPen(QPen(QColor(lineColor), qApp->toPixel(qApp->widthHairLine())/factor, - LineStyleToPenStyle(typeLine))); - mainLine->setEnabled(enabled); + Disable(!(nameActivDraw == newName)); } //--------------------------------------------------------------------------------------------------------------------- @@ -110,6 +106,15 @@ void VToolLinePoint::SetFactor(qreal factor) RefreshGeometry(); } +//--------------------------------------------------------------------------------------------------------------------- +void VToolLinePoint::Disable(bool disable) +{ + VToolPoint::Disable(disable); + mainLine->setPen(QPen(QColor(lineColor), qApp->toPixel(qApp->widthHairLine())/factor, + LineStyleToPenStyle(typeLine))); + mainLine->setEnabled(enabled); +} + //--------------------------------------------------------------------------------------------------------------------- qreal VToolLinePoint::GetAngle() const { diff --git a/src/app/tools/drawTools/vtoollinepoint.h b/src/app/tools/drawTools/vtoollinepoint.h index d605dd797..7b57dfbfd 100644 --- a/src/app/tools/drawTools/vtoollinepoint.h +++ b/src/app/tools/drawTools/vtoollinepoint.h @@ -56,6 +56,7 @@ public: public slots: virtual void ChangedActivDraw(const QString &newName); virtual void SetFactor(qreal factor); + void Disable(bool disable); protected: /** @brief formula string with length formula. */ QString formulaLength; diff --git a/src/app/tools/drawTools/vtoolpoint.cpp b/src/app/tools/drawTools/vtoolpoint.cpp index 74053b9e7..94e3a6abd 100644 --- a/src/app/tools/drawTools/vtoolpoint.cpp +++ b/src/app/tools/drawTools/vtoolpoint.cpp @@ -132,9 +132,7 @@ void VToolPoint::UpdateNamePosition(qreal mx, qreal my) */ void VToolPoint::ChangedActivDraw(const QString &newName) { - VDrawTool::ChangedActivDraw(newName); - this->setEnabled(enabled); - namePoint->setEnabled(enabled); + Disable(!(nameActivDraw == newName)); } //--------------------------------------------------------------------------------------------------------------------- @@ -173,7 +171,9 @@ void VToolPoint::ShowContextMenu(QGraphicsSceneContextMenuEvent *event) //--------------------------------------------------------------------------------------------------------------------- void VToolPoint::Disable(bool disable) { - DisableItem(this, disable); + enabled = !disable; + this->setEnabled(enabled); + namePoint->setEnabled(enabled); } //---------------------------------------------------------------------------------------------------------------------