Don't separate data about spline and arc length and angles.

--HG--
branch : develop
This commit is contained in:
Roman Telezhynskyi 2016-04-01 22:34:57 +03:00
parent bb29984b4a
commit d1480132a0
22 changed files with 50 additions and 720 deletions

View File

@ -76,9 +76,7 @@ DialogIncrements::DialogIncrements(VContainer *data, VPattern *doc, QWidget *par
FillLengthsLines();
FillLengthLinesAngles();
FillLengthsCurves();
FillLengthArcs();
FillRadiusesArcs();
FillAnglesArcs();
FillAnglesCurves();
connect(this, &DialogIncrements::FullUpdateTree, this->doc, &VPattern::LiteParseTree);
@ -211,16 +209,7 @@ void DialogIncrements::FillLengthLinesAngles()
*/
void DialogIncrements::FillLengthsCurves()
{
FillTable(data->DataLengthSplines(), ui->tableWidgetSplines);
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief FillLengthArcs fill data for table of arcs lengths
*/
void DialogIncrements::FillLengthArcs()
{
FillTable(data->DataLengthArcs(), ui->tableWidgetArcs);
FillTable(data->DataLengthCurves(), ui->tableWidgetSplines);
}
//---------------------------------------------------------------------------------------------------------------------
@ -229,12 +218,6 @@ void DialogIncrements::FillRadiusesArcs()
FillTable(data->DataRadiusesArcs(), ui->tableWidgetRadiusesArcs);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogIncrements::FillAnglesArcs()
{
FillTable(data->DataAnglesArcs(), ui->tableWidgetAnglesArcs);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogIncrements::FillAnglesCurves()
{
@ -251,11 +234,9 @@ void DialogIncrements::ShowUnits()
ShowHeaderUnits(ui->tableWidgetLines, 1, unit);// lengths
ShowHeaderUnits(ui->tableWidgetSplines, 1, unit);// lengths
ShowHeaderUnits(ui->tableWidgetArcs, 1, unit);// lengths
ShowHeaderUnits(ui->tableWidgetLinesAngles, 1, "°");// angle
ShowHeaderUnits(ui->tableWidgetLinesAngles, 1, degreeSymbol);// angle
ShowHeaderUnits(ui->tableWidgetRadiusesArcs, 1, unit);// radius
ShowHeaderUnits(ui->tableWidgetAnglesArcs, 1, "°");// angle
ShowHeaderUnits(ui->tableWidgetAnglesCurves, 1, "°");// angle
ShowHeaderUnits(ui->tableWidgetAnglesCurves, 1, degreeSymbol);// angle
}
//---------------------------------------------------------------------------------------------------------------------
@ -430,8 +411,6 @@ void DialogIncrements::FullUpdateFromFile()
{
ui->tableWidgetLines->clearContents();
ui->tableWidgetSplines->clearContents();
ui->tableWidgetArcs->clearContents();
ui->tableWidgetAnglesArcs->clearContents();
ui->tableWidgetAnglesCurves->clearContents();
ui->tableWidgetLinesAngles->clearContents();
ui->tableWidgetRadiusesArcs->clearContents();
@ -440,9 +419,7 @@ void DialogIncrements::FullUpdateFromFile()
FillLengthsLines();
FillLengthLinesAngles();
FillLengthsCurves();
FillLengthArcs();
FillRadiusesArcs();
FillAnglesArcs();
FillAnglesCurves();
}

View File

@ -94,9 +94,7 @@ private:
void FillLengthsLines();
void FillLengthLinesAngles();
void FillLengthsCurves();
void FillLengthArcs();
void FillRadiusesArcs();
void FillAnglesArcs();
void FillAnglesCurves();
void ShowUnits();

View File

@ -39,7 +39,7 @@
<enum>QTabWidget::North</enum>
</property>
<property name="currentIndex">
<number>0</number>
<number>3</number>
</property>
<widget class="QWidget" name="tabIncrements">
<attribute name="title">
@ -568,45 +568,6 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_5">
<attribute name="title">
<string>Lengths arcs</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
<widget class="QTableWidget" name="tableWidgetArcs">
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<attribute name="horizontalHeaderCascadingSectionResizes">
<bool>false</bool>
</attribute>
<attribute name="horizontalHeaderDefaultSectionSize">
<number>137</number>
</attribute>
<attribute name="horizontalHeaderStretchLastSection">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<column>
<property name="text">
<string>Arc</string>
</property>
</column>
<column>
<property name="text">
<string>Length</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Radiuses arcs</string>
@ -646,45 +607,6 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_7">
<attribute name="title">
<string>Angles arcs</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_9">
<item row="0" column="0">
<widget class="QTableWidget" name="tableWidgetAnglesArcs">
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<attribute name="horizontalHeaderCascadingSectionResizes">
<bool>false</bool>
</attribute>
<attribute name="horizontalHeaderDefaultSectionSize">
<number>137</number>
</attribute>
<attribute name="horizontalHeaderStretchLastSection">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<column>
<property name="text">
<string>Arc</string>
</property>
</column>
<column>
<property name="text">
<string>Angle</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
@ -695,7 +617,6 @@
<tabstop>toolButtonRemove</tabstop>
<tabstop>tableWidgetLines</tabstop>
<tabstop>tableWidgetSplines</tabstop>
<tabstop>tableWidgetArcs</tabstop>
</tabstops>
<resources>
<include location="../../../libs/vmisc/share/resources/icon.qrc"/>

View File

@ -3066,13 +3066,11 @@ void VPattern::PrepareForParse(const Document &parse)
{
data->ClearUniqueNames();
data->ClearVariables(VarType::Increment);
data->ClearVariables(VarType::ArcLength);
data->ClearVariables(VarType::LineAngle);
data->ClearVariables(VarType::LineLength);
data->ClearVariables(VarType::SplineLength);
data->ClearVariables(VarType::CurveLength);
data->ClearVariables(VarType::ArcRadius);
data->ClearVariables(VarType::ArcAngle);
data->ClearVariables(VarType::SplineAngle);
data->ClearVariables(VarType::CurveAngle);
}
}

View File

@ -141,8 +141,8 @@ enum class Vis : ToolVisHolderType
ToolTrueDarts
};
enum class VarType : char { Measurement, Increment, LineLength, SplineLength, ArcLength, ArcRadius, LineAngle, ArcAngle,
SplineAngle, Unknown };
enum class VarType : char { Measurement, Increment, LineLength, CurveLength, LineAngle, CurveAngle, ArcRadius,
Unknown };
enum class GHeights : unsigned char { ALL,
H92=92, H98=98, H104=104, H110=110, H116=116, H122=122, H128=128, H134=134,

View File

@ -32,12 +32,10 @@
#include "variables/vinternalvariable.h"
#include "variables/vmeasurement.h"
#include "variables/vincrement.h"
#include "variables/varclength.h"
#include "variables/vsplinelength.h"
#include "variables/vcurvelength.h"
#include "variables/vlinelength.h"
#include "variables/vlineangle.h"
#include "variables/varcradius.h"
#include "variables/varcangle.h"
#include "variables/vsplineangle.h"
#include "variables/vcurveangle.h"
#endif // VARIABLES_H

View File

@ -1,73 +0,0 @@
/************************************************************************
**
** @file varcangle.cpp
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 1 6, 2015
**
** @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) 2015 Valentina project
** <https://bitbucket.org/dismine/valentina> 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 <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#include "varcangle.h"
#include "../vgeometry/vabstractcurve.h"
//---------------------------------------------------------------------------------------------------------------------
VArcAngle::VArcAngle()
:VCurveAngle()
{
SetType(VarType::ArcAngle);
}
//---------------------------------------------------------------------------------------------------------------------
VArcAngle::VArcAngle(const quint32 &id, const quint32 &parentId, const VAbstractCurve *curve, CurveAngle angle)
:VCurveAngle(id, parentId, curve, angle)
{
SetType(VarType::ArcAngle);
SCASSERT(curve != nullptr);
if (angle == CurveAngle::StartAngle)
{
SetName(QString(angle1_V+"%1").arg(curve->name()));
}
else
{
SetName(QString(angle2_V+"%1").arg(curve->name()));
}
}
//---------------------------------------------------------------------------------------------------------------------
VArcAngle::VArcAngle(const VArcAngle &var)
:VCurveAngle(var)
{}
//---------------------------------------------------------------------------------------------------------------------
VArcAngle &VArcAngle::operator=(const VArcAngle &var)
{
if ( &var == this )
{
return *this;
}
VCurveAngle::operator=(var);
return *this;
}
//---------------------------------------------------------------------------------------------------------------------
VArcAngle::~VArcAngle()
{}

View File

@ -1,46 +0,0 @@
/************************************************************************
**
** @file varcangle.h
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 1 6, 2015
**
** @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) 2015 Valentina project
** <https://bitbucket.org/dismine/valentina> 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 <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#ifndef VARCANGLE_H
#define VARCANGLE_H
#include "vcurveangle.h"
class VAbstractCurve;
class VArcAngle :public VCurveAngle
{
public:
VArcAngle();
VArcAngle(const quint32 &id, const quint32 &parentId, const VAbstractCurve *curve, CurveAngle angle);
VArcAngle(const VArcAngle &var);
VArcAngle &operator=(const VArcAngle &var);
virtual ~VArcAngle() Q_DECL_OVERRIDE;
};
#endif // VARCANGLE_H

View File

@ -1,64 +0,0 @@
/************************************************************************
**
** @file varclength.cpp
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 28 7, 2014
**
** @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) 2013-2015 Valentina project
** <https://bitbucket.org/dismine/valentina> 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 <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#include "varclength.h"
#include "../vgeometry/vabstractcurve.h"
//---------------------------------------------------------------------------------------------------------------------
VArcLength::VArcLength()
:VCurveLength()
{
SetType(VarType::ArcLength);
}
//---------------------------------------------------------------------------------------------------------------------
VArcLength::VArcLength(const quint32 &id, const quint32 &parentId, const VAbstractCurve *arc, Unit patternUnit)
:VCurveLength(id, parentId, arc, patternUnit)
{
SetType(VarType::ArcLength);
}
//---------------------------------------------------------------------------------------------------------------------
VArcLength::VArcLength(const VArcLength &var)
:VCurveLength(var)
{}
//---------------------------------------------------------------------------------------------------------------------
VArcLength &VArcLength::operator=(const VArcLength &var)
{
if ( &var == this )
{
return *this;
}
VCurveLength::operator=(var);
return *this;
}
//---------------------------------------------------------------------------------------------------------------------
VArcLength::~VArcLength()
{}

View File

@ -1,46 +0,0 @@
/************************************************************************
**
** @file varclength.h
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 28 7, 2014
**
** @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) 2013-2015 Valentina project
** <https://bitbucket.org/dismine/valentina> 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 <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#ifndef VARCLENGTH_H
#define VARCLENGTH_H
#include "../vpatterndb/variables/vcurvelength.h"
class VAbstractCurve;
class VArcLength :public VCurveLength
{
public:
VArcLength();
VArcLength(const quint32 &id, const quint32 &parentId, const VAbstractCurve *arc, Unit patternUnit);
VArcLength(const VArcLength &var);
VArcLength &operator=(const VArcLength &var);
virtual ~VArcLength() Q_DECL_OVERRIDE;
};
#endif // VARCLENGTH_H

View File

@ -33,22 +33,24 @@
VCurveAngle::VCurveAngle()
:VCurveVariable()
{
SetType(VarType::Unknown);
SetType(VarType::CurveAngle);
}
//---------------------------------------------------------------------------------------------------------------------
VCurveAngle::VCurveAngle(const quint32 &id, const quint32 &parentId, const VAbstractCurve *curve, CurveAngle angle)
:VCurveVariable(id, parentId)
{
SetType(VarType::Unknown);
SetType(VarType::CurveAngle);
SCASSERT(curve != nullptr);
if (angle == CurveAngle::StartAngle)
{
SetValue(curve->GetStartAngle());
SetName(QString(angle1_V+"%1").arg(curve->name()));
}
else
{
SetValue(curve->GetEndAngle());
SetName(QString(angle2_V+"%1").arg(curve->name()));
}
}

View File

@ -33,14 +33,14 @@
VCurveLength::VCurveLength()
:VCurveVariable()
{
SetType(VarType::Unknown);
SetType(VarType::CurveLength);
}
//---------------------------------------------------------------------------------------------------------------------
VCurveLength::VCurveLength(const quint32 &id, const quint32 &parentId, const VAbstractCurve *curve, Unit patternUnit)
:VCurveVariable(id, parentId)
{
SetType(VarType::Unknown);
SetType(VarType::CurveLength);
SCASSERT(curve != nullptr);
SetName(curve->name());
SetValue(FromPixel(curve->GetLength(), patternUnit));

View File

@ -1,73 +0,0 @@
/************************************************************************
**
** @file vsplineangle.cpp
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 1 6, 2015
**
** @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) 2015 Valentina project
** <https://bitbucket.org/dismine/valentina> 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 <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#include "vsplineangle.h"
#include "../vgeometry/vabstractcurve.h"
//---------------------------------------------------------------------------------------------------------------------
VSplineAngle::VSplineAngle()
:VCurveAngle()
{
SetType(VarType::SplineAngle);
}
//---------------------------------------------------------------------------------------------------------------------
VSplineAngle::VSplineAngle(const quint32 &id, const quint32 &parentId, const VAbstractCurve *curve, CurveAngle angle)
:VCurveAngle(id, parentId, curve, angle)
{
SetType(VarType::SplineAngle);
SCASSERT(curve != nullptr);
if (angle == CurveAngle::StartAngle)
{
SetName(QString(angle1_V+"%1").arg(curve->name()));
}
else
{
SetName(QString(angle2_V+"%1").arg(curve->name()));
}
}
//---------------------------------------------------------------------------------------------------------------------
VSplineAngle::VSplineAngle(const VSplineAngle &var)
:VCurveAngle(var)
{}
//---------------------------------------------------------------------------------------------------------------------
VSplineAngle &VSplineAngle::operator=(const VSplineAngle &var)
{
if ( &var == this )
{
return *this;
}
VCurveAngle::operator=(var);
return *this;
}
//---------------------------------------------------------------------------------------------------------------------
VSplineAngle::~VSplineAngle()
{}

View File

@ -1,46 +0,0 @@
/************************************************************************
**
** @file vsplineangle.h
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 1 6, 2015
**
** @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) 2015 Valentina project
** <https://bitbucket.org/dismine/valentina> 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 <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#ifndef VSPLINEANGLE_H
#define VSPLINEANGLE_H
#include "vcurveangle.h"
class VAbstractCurve;
class VSplineAngle :public VCurveAngle
{
public:
VSplineAngle();
VSplineAngle(const quint32 &id, const quint32 &parentId, const VAbstractCurve *curve, CurveAngle angle);
VSplineAngle(const VSplineAngle &var);
VSplineAngle &operator=(const VSplineAngle &var);
virtual ~VSplineAngle() Q_DECL_OVERRIDE;
};
#endif // VSPLINEANGLE_H

View File

@ -1,74 +0,0 @@
/************************************************************************
**
** @file vsplinelength.cpp
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 28 7, 2014
**
** @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) 2013-2015 Valentina project
** <https://bitbucket.org/dismine/valentina> 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 <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#include "vsplinelength.h"
#include "../vgeometry/vabstractcurve.h"
//---------------------------------------------------------------------------------------------------------------------
VSplineLength::VSplineLength()
:VCurveLength()
{
SetType(VarType::SplineLength);
}
VSplineLength::VSplineLength(const quint32 &id, const quint32 &parentId, const QString &name, const qreal &value)
:VCurveLength()
{
SetType(VarType::SplineLength);
SetName(name);
SetValue(value);
SetId(id);
SetParentId(parentId);
}
//---------------------------------------------------------------------------------------------------------------------
VSplineLength::VSplineLength(const quint32 &id, const quint32 &parentId, const VAbstractCurve *path, Unit patternUnit)
:VCurveLength(id, parentId, path, patternUnit)
{
SetType(VarType::SplineLength);
}
//---------------------------------------------------------------------------------------------------------------------
VSplineLength::VSplineLength(const VSplineLength &var)
:VCurveLength(var)
{}
//---------------------------------------------------------------------------------------------------------------------
VSplineLength &VSplineLength::operator=(const VSplineLength &var)
{
if ( &var == this )
{
return *this;
}
VCurveLength::operator=(var);
return *this;
}
//---------------------------------------------------------------------------------------------------------------------
VSplineLength::~VSplineLength()
{}

View File

@ -1,47 +0,0 @@
/************************************************************************
**
** @file vlengthspline.h
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 28 7, 2014
**
** @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) 2013-2015 Valentina project
** <https://bitbucket.org/dismine/valentina> 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 <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#ifndef VSPLINESLENGTH_H
#define VSPLINESLENGTH_H
#include "vcurvelength.h"
class VAbstractCurve;
class VSplineLength :public VCurveLength
{
public:
VSplineLength();
VSplineLength(const quint32 &id, const quint32 &parentId, const QString &name, const qreal &value);
VSplineLength(const quint32 &id, const quint32 &parentId, const VAbstractCurve *path, Unit patternUnit);
VSplineLength(const VSplineLength &var);
VSplineLength &operator=(const VSplineLength &var);
virtual ~VSplineLength() Q_DECL_OVERRIDE;
};
#endif // VSPLINELENGTH_H

View File

@ -265,13 +265,11 @@ void VContainer::ClearForFullParse()
d->details.clear();
ClearVariables(VarType::Increment);
ClearVariables(VarType::ArcLength);
ClearVariables(VarType::LineAngle);
ClearVariables(VarType::LineLength);
ClearVariables(VarType::SplineLength);
ClearVariables(VarType::CurveLength);
ClearVariables(VarType::ArcRadius);
ClearVariables(VarType::ArcAngle);
ClearVariables(VarType::SplineAngle);
ClearVariables(VarType::CurveAngle);
ClearGObjects();
ClearUniqueNames();
}
@ -374,16 +372,30 @@ void VContainer::AddLine(const quint32 &firstPointId, const quint32 &secondPoint
//---------------------------------------------------------------------------------------------------------------------
void VContainer::AddArc(const QSharedPointer<VArc> &arc, const quint32 &id, const quint32 &parentId)
{
VArcLength *length = new VArcLength(id, parentId, arc.data(), *GetPatternUnit());
AddVariable(length->GetName(), length);
AddCurve(arc, id, parentId);
VArcRadius *radius = new VArcRadius(id, parentId, arc.data(), *GetPatternUnit());
AddVariable(radius->GetName(), radius);
}
VArcAngle *startAngle = new VArcAngle(id, parentId, arc.data(), CurveAngle::StartAngle);
//---------------------------------------------------------------------------------------------------------------------
void VContainer::AddCurve(const QSharedPointer<VAbstractCurve> &curve, const quint32 &id, const quint32 &parentId)
{
const GOType curveType = curve->getType();
if (curveType != GOType::Spline && curveType != GOType::SplinePath &&
curveType != GOType::CubicBezier && curveType != GOType::CubicBezierPath &&
curveType != GOType::Arc)
{
throw VException(tr("Can't create a curve with type '%1'").arg(static_cast<int>(curveType)));
}
VCurveLength *length = new VCurveLength(id, parentId, curve.data(), *GetPatternUnit());
AddVariable(length->GetName(), length);
VCurveAngle *startAngle = new VCurveAngle(id, parentId, curve.data(), CurveAngle::StartAngle);
AddVariable(startAngle->GetName(), startAngle);
VArcAngle *endAngle = new VArcAngle(id, parentId, arc.data(), CurveAngle::EndAngle);
VCurveAngle *endAngle = new VCurveAngle(id, parentId, curve.data(), CurveAngle::EndAngle);
AddVariable(endAngle->GetName(), endAngle);
}
@ -472,15 +484,9 @@ const QMap<QString, QSharedPointer<VLengthLine> > VContainer::DataLengthLines()
}
//---------------------------------------------------------------------------------------------------------------------
const QMap<QString, QSharedPointer<VSplineLength> > VContainer::DataLengthSplines() const
const QMap<QString, QSharedPointer<VCurveLength> > VContainer::DataLengthCurves() const
{
return DataVar<VSplineLength>(VarType::SplineLength);
}
//---------------------------------------------------------------------------------------------------------------------
const QMap<QString, QSharedPointer<VArcLength> > VContainer::DataLengthArcs() const
{
return DataVar<VArcLength>(VarType::ArcLength);
return DataVar<VCurveLength>(VarType::CurveLength);
}
//---------------------------------------------------------------------------------------------------------------------
@ -496,15 +502,9 @@ const QMap<QString, QSharedPointer<VArcRadius> > VContainer::DataRadiusesArcs()
}
//---------------------------------------------------------------------------------------------------------------------
const QMap<QString, QSharedPointer<VArcAngle> > VContainer::DataAnglesArcs() const
const QMap<QString, QSharedPointer<VCurveAngle> > VContainer::DataAnglesCurves() const
{
return DataVar<VArcAngle>(VarType::ArcAngle);
}
//---------------------------------------------------------------------------------------------------------------------
const QMap<QString, QSharedPointer<VSplineAngle> > VContainer::DataAnglesCurves() const
{
return DataVar<VSplineAngle>(VarType::SplineAngle);
return DataVar<VCurveAngle>(VarType::CurveAngle);
}
//---------------------------------------------------------------------------------------------------------------------
@ -672,23 +672,3 @@ const QHash<QString, QSharedPointer<VInternalVariable> > *VContainer::DataVariab
//---------------------------------------------------------------------------------------------------------------------
VContainerData::~VContainerData()
{}
//---------------------------------------------------------------------------------------------------------------------
void VContainer::AddCurve(const QSharedPointer<VAbstractCurve> &curve, const quint32 &id, const quint32 &parentId)
{
const GOType curveType = curve->getType();
if (curveType != GOType::Spline && curveType != GOType::SplinePath &&
curveType != GOType::CubicBezier && curveType != GOType::CubicBezierPath)
{
throw VException(tr("Can't create a curve with type %1").arg(static_cast<int>(curveType)));
}
VSplineLength *length = new VSplineLength(id, parentId, curve.data(), *GetPatternUnit());
AddVariable(length->GetName(), length);
VSplineAngle *startAngle = new VSplineAngle(id, parentId, curve.data(), CurveAngle::StartAngle);
AddVariable(startAngle->GetName(), startAngle);
VSplineAngle *endAngle = new VSplineAngle(id, parentId, curve.data(), CurveAngle::EndAngle);
AddVariable(endAngle->GetName(), endAngle);
}

View File

@ -156,12 +156,10 @@ public:
const QMap<QString, QSharedPointer<VMeasurement> > DataMeasurements() const;
const QMap<QString, QSharedPointer<VIncrement> > DataIncrements() const;
const QMap<QString, QSharedPointer<VLengthLine> > DataLengthLines() const;
const QMap<QString, QSharedPointer<VSplineLength> > DataLengthSplines() const;
const QMap<QString, QSharedPointer<VArcLength> > DataLengthArcs() const;
const QMap<QString, QSharedPointer<VCurveLength> > DataLengthCurves() const;
const QMap<QString, QSharedPointer<VLineAngle> > DataAngleLines() const;
const QMap<QString, QSharedPointer<VArcRadius> > DataRadiusesArcs() const;
const QMap<QString, QSharedPointer<VArcAngle> > DataAnglesArcs() const;
const QMap<QString, QSharedPointer<VSplineAngle> > DataAnglesCurves() const;
const QMap<QString, QSharedPointer<VCurveAngle> > DataAnglesCurves() const;
const QHash<QString, qreal *> PlainVariables() const;

View File

@ -7,8 +7,6 @@ SOURCES += \
$$PWD/vdetail.cpp \
$$PWD/vnodedetail.cpp \
$$PWD/vtranslatevars.cpp \
$$PWD/variables/varcangle.cpp \
$$PWD/variables/varclength.cpp \
$$PWD/variables/varcradius.cpp \
$$PWD/variables/vcurveangle.cpp \
$$PWD/variables/vcurvelength.cpp \
@ -18,8 +16,6 @@ SOURCES += \
$$PWD/variables/vlineangle.cpp \
$$PWD/variables/vlinelength.cpp \
$$PWD/variables/vmeasurement.cpp \
$$PWD/variables/vsplineangle.cpp \
$$PWD/variables/vsplinelength.cpp \
$$PWD/variables/vvariable.cpp \
$$PWD/vformula.cpp
@ -35,8 +31,6 @@ HEADERS += \
$$PWD/vnodedetail.h \
$$PWD/vnodedetail_p.h \
$$PWD/vtranslatevars.h \
$$PWD/variables/varcangle.h \
$$PWD/variables/varclength.h \
$$PWD/variables/varcradius.h \
$$PWD/variables/varcradius_p.h \
$$PWD/variables/vcurveangle.h \
@ -53,8 +47,6 @@ HEADERS += \
$$PWD/variables/vlinelength_p.h \
$$PWD/variables/vmeasurement.h \
$$PWD/variables/vmeasurement_p.h \
$$PWD/variables/vsplineangle.h \
$$PWD/variables/vsplinelength.h \
$$PWD/variables/vvariable.h \
$$PWD/variables/vvariable_p.h \
$$PWD/vformula.h

View File

@ -142,17 +142,10 @@ void DialogEditWrongFormula::ValChenged(int row)
VDomDocument::UnitsToStr(qApp->patternUnit(), true), tr("Line length"));
return;
}
if (ui->radioButtonLengthArc->isChecked())
{
SetDescription(item->text(),
*data->GetVariable<VArcLength>(qApp->TrVars()->VarFromUser(item->text()))->GetValue(),
VDomDocument::UnitsToStr(qApp->patternUnit(), true), tr("Arc length"));
return;
}
if (ui->radioButtonLengthSpline->isChecked())
{
SetDescription(item->text(),
*data->GetVariable<VSplineLength>(qApp->TrVars()->VarFromUser(item->text()))->GetValue(),
*data->GetVariable<VCurveLength>(qApp->TrVars()->VarFromUser(item->text()))->GetValue(),
VDomDocument::UnitsToStr(qApp->patternUnit(), true), tr("Curve length"));
return;
}
@ -170,17 +163,10 @@ void DialogEditWrongFormula::ValChenged(int row)
VDomDocument::UnitsToStr(qApp->patternUnit(), true), tr("Arc radius"));
return;
}
if (ui->radioButtonAnglesArcs->isChecked())
{
SetDescription(item->text(),
*data->GetVariable<VArcAngle>(qApp->TrVars()->VarFromUser(item->text()))->GetValue(),
degreeSymbol, tr("Arc angle"));
return;
}
if (ui->radioButtonAnglesCurves->isChecked())
{
SetDescription(item->text(),
*data->GetVariable<VSplineAngle>(qApp->TrVars()->VarFromUser(item->text()))->GetValue(),
*data->GetVariable<VCurveAngle>(qApp->TrVars()->VarFromUser(item->text()))->GetValue(),
degreeSymbol, tr("Curve angle"));
return;
}
@ -242,13 +228,6 @@ void DialogEditWrongFormula::RadiusArcs()
ShowVariable(data->DataRadiusesArcs());
}
//---------------------------------------------------------------------------------------------------------------------
void DialogEditWrongFormula::AnglesArcs()
{
ui->checkBoxHideEmpty->setEnabled(false);
ShowVariable(data->DataAnglesArcs());
}
//---------------------------------------------------------------------------------------------------------------------
void DialogEditWrongFormula::AnglesCurves()
{
@ -256,16 +235,6 @@ void DialogEditWrongFormula::AnglesCurves()
ShowVariable(data->DataAnglesCurves());
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief LengthArcs show in list lengths of arcs variables
*/
void DialogEditWrongFormula::LengthArcs()
{
ui->checkBoxHideEmpty->setEnabled(false);
ShowVariable(data->DataLengthArcs());
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief LengthCurves show in list lengths of curves variables
@ -273,7 +242,7 @@ void DialogEditWrongFormula::LengthArcs()
void DialogEditWrongFormula::LengthCurves()
{
ui->checkBoxHideEmpty->setEnabled(false);
ShowVariable(data->DataLengthSplines());
ShowVariable(data->DataLengthCurves());
}
//---------------------------------------------------------------------------------------------------------------------
@ -363,12 +332,10 @@ void DialogEditWrongFormula::InitVariables()
connect(ui->radioButtonStandardTable, &QRadioButton::clicked, this, &DialogEditWrongFormula::Measurements);
connect(ui->radioButtonIncrements, &QRadioButton::clicked, this, &DialogEditWrongFormula::Increments);
connect(ui->radioButtonLengthLine, &QRadioButton::clicked, this, &DialogEditWrongFormula::LengthLines);
connect(ui->radioButtonLengthArc, &QRadioButton::clicked, this, &DialogEditWrongFormula::LengthArcs);
connect(ui->radioButtonLengthSpline, &QRadioButton::clicked, this, &DialogEditWrongFormula::LengthCurves);
connect(ui->radioButtonAngleLine, &QRadioButton::clicked, this, &DialogEditWrongFormula::AngleLines);
connect(ui->checkBoxHideEmpty, &QCheckBox::stateChanged, this, &DialogEditWrongFormula::Measurements);
connect(ui->radioButtonRadiusesArcs, &QRadioButton::clicked, this, &DialogEditWrongFormula::RadiusArcs);
connect(ui->radioButtonAnglesArcs, &QRadioButton::clicked, this, &DialogEditWrongFormula::AnglesArcs);
connect(ui->radioButtonAnglesCurves, &QRadioButton::clicked, this, &DialogEditWrongFormula::AnglesCurves);
}

View File

@ -70,9 +70,7 @@ public slots:
void Measurements();
void LengthLines();
void RadiusArcs();
void AnglesArcs();
void AnglesCurves();
void LengthArcs();
void LengthCurves();
void AngleLines();
void Increments();

View File

@ -272,22 +272,6 @@
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonLengthArc">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Length of arcs</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonLengthSpline">
<property name="enabled">
@ -333,19 +317,6 @@
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonAnglesArcs">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Angles of arcs</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonAnglesCurves">
<property name="sizePolicy">
@ -415,7 +386,6 @@
<tabstop>radioButtonStandardTable</tabstop>
<tabstop>radioButtonIncrements</tabstop>
<tabstop>radioButtonLengthLine</tabstop>
<tabstop>radioButtonLengthArc</tabstop>
<tabstop>radioButtonLengthSpline</tabstop>
<tabstop>radioButtonAngleLine</tabstop>
<tabstop>checkBoxHideEmpty</tabstop>