Merge with feature
--HG-- branch : develop
This commit is contained in:
commit
cfeaf2ffa0
56
.hgignore
56
.hgignore
|
@ -26,17 +26,61 @@ uic/
|
||||||
rcc/
|
rcc/
|
||||||
man/
|
man/
|
||||||
|
|
||||||
#Ignore Coverity Scan Build Tool
|
# Ignore Coverity Scan Build Tool
|
||||||
cov-int/
|
cov-int/
|
||||||
|
|
||||||
# Ignore file used QtCreator for user profile.
|
# Compiled Object files
|
||||||
*.pro.user
|
*.slo
|
||||||
|
*.lo
|
||||||
|
*.o
|
||||||
|
*.obj
|
||||||
|
|
||||||
# Ignore file Qt translation.
|
# Precompiled Headers
|
||||||
|
*.gch
|
||||||
|
*.pch
|
||||||
|
|
||||||
|
# Compiled Dynamic libraries
|
||||||
|
*.so
|
||||||
|
*.dylib
|
||||||
|
*.dll
|
||||||
|
|
||||||
|
# Fortran module files
|
||||||
|
*.mod
|
||||||
|
|
||||||
|
# Compiled Static libraries
|
||||||
|
*.lai
|
||||||
|
*.la
|
||||||
|
*.a
|
||||||
|
*.lib
|
||||||
|
|
||||||
|
# Executables
|
||||||
|
*.exe
|
||||||
|
*.out
|
||||||
|
*.app
|
||||||
|
|
||||||
|
# Qt-es
|
||||||
|
/.qmake.cache
|
||||||
|
/.qmake.stash
|
||||||
|
*.pro.user
|
||||||
|
*.pro.user.*
|
||||||
|
*.moc
|
||||||
|
moc_*.cpp
|
||||||
|
qrc_*.cpp
|
||||||
|
ui_*.h
|
||||||
|
Makefile*
|
||||||
|
*-build-*
|
||||||
|
|
||||||
|
# Ignore Qt translation file .
|
||||||
*.qm
|
*.qm
|
||||||
|
|
||||||
|
# QtCreator
|
||||||
|
*.autosave
|
||||||
|
|
||||||
# Ignore Mercurial .orig files
|
# Ignore Mercurial .orig files
|
||||||
*.orig
|
*.orig
|
||||||
|
|
||||||
# Ignore Makefile
|
*.rej
|
||||||
Makefile
|
|
||||||
|
# QtCtreator Qml
|
||||||
|
*.qmlproject.user
|
||||||
|
*.qmlproject.user.*
|
||||||
|
|
|
@ -620,29 +620,36 @@ INSTALLS += \
|
||||||
for(_translation_name, TRANSLATIONS) {
|
for(_translation_name, TRANSLATIONS) {
|
||||||
_translation_name_qm = $$section(_translation_name,".", 0, 0).qm
|
_translation_name_qm = $$section(_translation_name,".", 0, 0).qm
|
||||||
|
|
||||||
system($$shell_path($$[QT_INSTALL_BINS]/lrelease) $$shell_path($$PWD/$$_translation_name) -qm $$shell_path($$PWD/$$_translation_name_qm))
|
system($$shell_path($$[QT_INSTALL_BINS]/lrelease) $$shell_path($${PWD}/$$_translation_name) -qm $$shell_path($${PWD}/$$_translation_name_qm))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(DIR, INSTALL_TRANSLATIONS) {
|
for(DIR, INSTALL_TRANSLATIONS) {
|
||||||
#add these absolute paths to a variable which
|
#add these absolute paths to a variable which
|
||||||
#ends up as 'mkcommands = path1 path2 path3 ...'
|
#ends up as 'mkcommands = path1 path2 path3 ...'
|
||||||
tr_path += $$PWD/$$DIR
|
tr_path += $${PWD}/$$DIR
|
||||||
}
|
}
|
||||||
|
|
||||||
copyToDestdir($$tr_path, $$shell_path($$OUT_PWD/$$DESTDIR/translations))
|
copyToDestdir($$tr_path, $$shell_path($${OUT_PWD}/$$DESTDIR/translations))
|
||||||
|
|
||||||
for(DIR, INSTALL_STANDARD_MEASHUREMENTS) {
|
for(DIR, INSTALL_STANDARD_MEASHUREMENTS) {
|
||||||
#add these absolute paths to a variable which
|
#add these absolute paths to a variable which
|
||||||
#ends up as 'mkcommands = path1 path2 path3 ...'
|
#ends up as 'mkcommands = path1 path2 path3 ...'
|
||||||
st_path += $$PWD/$$DIR
|
st_path += $${PWD}/$$DIR
|
||||||
}
|
}
|
||||||
|
|
||||||
copyToDestdir($$st_path, $$shell_path($$OUT_PWD/$$DESTDIR/tables/standard))
|
copyToDestdir($$st_path, $$shell_path($${OUT_PWD}/$$DESTDIR/tables/standard))
|
||||||
|
|
||||||
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../libs/qmuparser/bin -lqmuparser2
|
win32:CONFIG(release, debug|release): LIBS += -L$${OUT_PWD}/../libs/qmuparser/$${DESTDIR} -lqmuparser2
|
||||||
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../libs/qmuparser/bin -lqmuparser2
|
else:win32:CONFIG(debug, debug|release): LIBS += -L$${OUT_PWD}/../libs/qmuparser/$${DESTDIR} -lqmuparser2
|
||||||
else:unix: LIBS += -L$$OUT_PWD/../libs/qmuparser/bin -lqmuparser
|
else:unix: LIBS += -L$${OUT_PWD}/../libs/qmuparser/$${DESTDIR} -lqmuparser
|
||||||
|
|
||||||
INCLUDEPATH += $$PWD/../libs/qmuparser
|
INCLUDEPATH += $${PWD}/../libs/qmuparser
|
||||||
DEPENDPATH += $$PWD/../libs/qmuparser
|
DEPENDPATH += $${PWD}/../libs/qmuparser
|
||||||
|
|
||||||
|
win32:CONFIG(release, debug|release): LIBS += -L$${OUT_PWD}/../libs/vpropertyexplorer/$${DESTDIR} -lvpropertyexplorer
|
||||||
|
else:win32:CONFIG(debug, debug|release): LIBS += -L$${OUT_PWD}/../libs/vpropertyexplorer/$${DESTDIR} -lvpropertyexplorer
|
||||||
|
else:unix: LIBS += -L$${OUT_PWD}/../libs/vpropertyexplorer/$${DESTDIR} -lvpropertyexplorer
|
||||||
|
|
||||||
|
INCLUDEPATH += $${PWD}/../libs/vpropertyexplorer
|
||||||
|
DEPENDPATH += $${PWD}/../libs/vpropertyexplorer
|
||||||
|
|
|
@ -55,14 +55,7 @@ Calculator::Calculator(const VContainer *data)
|
||||||
:QmuParser(), vVarVal(nullptr), data(data)
|
:QmuParser(), vVarVal(nullptr), data(data)
|
||||||
{
|
{
|
||||||
InitCharacterSets();
|
InitCharacterSets();
|
||||||
|
setAllowSubexpressions(false);//Only one expression per time
|
||||||
// Add unary operators
|
|
||||||
DefinePostfixOprt(cm_Oprt, CmUnit);
|
|
||||||
DefinePostfixOprt(mm_Oprt, MmUnit);
|
|
||||||
DefinePostfixOprt(in_Oprt, InchUnit);
|
|
||||||
|
|
||||||
SetArgSep(',');
|
|
||||||
SetDecSep('.');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -85,15 +78,12 @@ Calculator::Calculator(const QString &formula, bool fromUser)
|
||||||
:QmuParser(), vVarVal(nullptr), data(nullptr)
|
:QmuParser(), vVarVal(nullptr), data(nullptr)
|
||||||
{
|
{
|
||||||
InitCharacterSets();
|
InitCharacterSets();
|
||||||
|
setAllowSubexpressions(false);//Only one expression per time
|
||||||
SetVarFactory(AddVariable, this);
|
SetVarFactory(AddVariable, this);
|
||||||
|
|
||||||
// Add unary operators
|
// Add unary operators
|
||||||
if (fromUser)
|
if (fromUser)
|
||||||
{
|
{
|
||||||
DefinePostfixOprt(qApp->PostfixOperator(cm_Oprt), CmUnit);
|
|
||||||
DefinePostfixOprt(qApp->PostfixOperator(mm_Oprt), MmUnit);
|
|
||||||
DefinePostfixOprt(qApp->PostfixOperator(in_Oprt), InchUnit);
|
|
||||||
|
|
||||||
bool osSeparatorValue = qApp->getSettings()->value("configuration/osSeparator", 1).toBool();
|
bool osSeparatorValue = qApp->getSettings()->value("configuration/osSeparator", 1).toBool();
|
||||||
|
|
||||||
if (osSeparatorValue)
|
if (osSeparatorValue)
|
||||||
|
@ -111,16 +101,13 @@ Calculator::Calculator(const QString &formula, bool fromUser)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DefinePostfixOprt(cm_Oprt, CmUnit);
|
|
||||||
DefinePostfixOprt(mm_Oprt, MmUnit);
|
|
||||||
DefinePostfixOprt(in_Oprt, InchUnit);
|
|
||||||
|
|
||||||
SetArgSep(',');
|
SetArgSep(',');
|
||||||
SetDecSep('.');
|
SetDecSep('.');
|
||||||
}
|
}
|
||||||
|
|
||||||
SetExpr(formula);
|
SetExpr(formula);
|
||||||
//Need run for making tokens. Don't catch exception here, because because we want know if formula has error.
|
//Need run for making tokens. Don't catch exception here, because we want know if formula has error.
|
||||||
Eval();
|
Eval();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,15 +139,12 @@ qreal Calculator::EvalFormula(const QString &formula)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add variables
|
// Add variables
|
||||||
InitVariables(data, tokens);
|
InitVariables(data, tokens, formula);
|
||||||
|
return Eval();
|
||||||
result = Eval();
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void Calculator::InitVariables(const VContainer *data, const QMap<int, QString> &tokens)
|
void Calculator::InitVariables(const VContainer *data, const QMap<int, QString> &tokens, const QString &formula)
|
||||||
{
|
{
|
||||||
if (qApp->patternType() == MeasurementsType::Standard)
|
if (qApp->patternType() == MeasurementsType::Standard)
|
||||||
{
|
{
|
||||||
|
@ -169,9 +153,11 @@ void Calculator::InitVariables(const VContainer *data, const QMap<int, QString>
|
||||||
|
|
||||||
const QHash<QString, QSharedPointer<VInternalVariable> > *vars = data->DataVariables();
|
const QHash<QString, QSharedPointer<VInternalVariable> > *vars = data->DataVariables();
|
||||||
|
|
||||||
|
bool found = false;
|
||||||
QMap<int, QString>::const_iterator i = tokens.constBegin();
|
QMap<int, QString>::const_iterator i = tokens.constBegin();
|
||||||
while (i != tokens.constEnd())
|
while (i != tokens.constEnd())
|
||||||
{
|
{
|
||||||
|
found = false;
|
||||||
if (vars->contains(i.value()))
|
if (vars->contains(i.value()))
|
||||||
{
|
{
|
||||||
QSharedPointer<VInternalVariable> var = vars->value(i.value());
|
QSharedPointer<VInternalVariable> var = vars->value(i.value());
|
||||||
|
@ -182,6 +168,7 @@ void Calculator::InitVariables(const VContainer *data, const QMap<int, QString>
|
||||||
m->SetValue(data->size(), data->height());
|
m->SetValue(data->size(), data->height());
|
||||||
}
|
}
|
||||||
DefineVar(i.value(), var->GetValue());
|
DefineVar(i.value(), var->GetValue());
|
||||||
|
found = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (qApp->patternType() == MeasurementsType::Standard)
|
if (qApp->patternType() == MeasurementsType::Standard)
|
||||||
|
@ -190,14 +177,21 @@ void Calculator::InitVariables(const VContainer *data, const QMap<int, QString>
|
||||||
{
|
{
|
||||||
vVarVal[0] = data->size();
|
vVarVal[0] = data->size();
|
||||||
DefineVar(data->SizeName(), &vVarVal[0]);
|
DefineVar(data->SizeName(), &vVarVal[0]);
|
||||||
|
found = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i.value() == data->HeightName())
|
if (i.value() == data->HeightName())
|
||||||
{
|
{
|
||||||
vVarVal[1] = data->height();
|
vVarVal[1] = data->height();
|
||||||
DefineVar(data->HeightName(), &vVarVal[1]);
|
DefineVar(data->HeightName(), &vVarVal[1]);
|
||||||
|
found = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (found == false)
|
||||||
|
{
|
||||||
|
throw qmu::QmuParserError (ecUNASSIGNABLE_TOKEN , i.value(), formula, i.key());
|
||||||
|
}
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -221,69 +215,6 @@ void Calculator::InitCharacterSets()
|
||||||
DefineOprtChars(symbols + QStringLiteral("+-*^/?<>=#!$%&|~'_"));
|
DefineOprtChars(symbols + QStringLiteral("+-*^/?<>=#!$%&|~'_"));
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
qreal Calculator::CmUnit(qreal val)
|
|
||||||
{
|
|
||||||
qreal unit = val;
|
|
||||||
switch (qApp->patternUnit())
|
|
||||||
{
|
|
||||||
case Unit::Mm:
|
|
||||||
unit = val * 10.0;
|
|
||||||
break;
|
|
||||||
case Unit::Cm:
|
|
||||||
break;
|
|
||||||
case Unit::Inch:
|
|
||||||
unit = val / 2.54;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return unit;
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
qreal Calculator::MmUnit(qreal val)
|
|
||||||
{
|
|
||||||
qreal unit = val;
|
|
||||||
switch (qApp->patternUnit())
|
|
||||||
{
|
|
||||||
case Unit::Mm:
|
|
||||||
break;
|
|
||||||
case Unit::Cm:
|
|
||||||
unit = val / 10.0;
|
|
||||||
break;
|
|
||||||
case Unit::Inch:
|
|
||||||
unit = val / 25.4;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return unit;
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
qreal Calculator::InchUnit(qreal val)
|
|
||||||
{
|
|
||||||
qreal unit = val;
|
|
||||||
switch (qApp->patternUnit())
|
|
||||||
{
|
|
||||||
case Unit::Mm:
|
|
||||||
unit = val * 25.4;
|
|
||||||
break;
|
|
||||||
case Unit::Cm:
|
|
||||||
unit = val * 2.54;
|
|
||||||
break;
|
|
||||||
case Unit::Inch:
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return unit;
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Factory function for creating new parser variables
|
// Factory function for creating new parser variables
|
||||||
// This could as well be a function performing database queries.
|
// This could as well be a function performing database queries.
|
||||||
|
|
|
@ -64,11 +64,8 @@ private:
|
||||||
qreal *vVarVal;
|
qreal *vVarVal;
|
||||||
static int iVal;
|
static int iVal;
|
||||||
const VContainer *data;
|
const VContainer *data;
|
||||||
void InitVariables(const VContainer *data, const QMap<int, QString> &tokens);
|
void InitVariables(const VContainer *data, const QMap<int, QString> &tokens, const QString &formula);
|
||||||
void InitCharacterSets();
|
void InitCharacterSets();
|
||||||
static qreal CmUnit(qreal val);
|
|
||||||
static qreal MmUnit(qreal val);
|
|
||||||
static qreal InchUnit(qreal val);
|
|
||||||
static qreal* AddVariable(const QString &a_szName, void *a_pUserData);
|
static qreal* AddVariable(const QString &a_szName, void *a_pUserData);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,8 @@ SOURCES += \
|
||||||
container/varclength.cpp \
|
container/varclength.cpp \
|
||||||
container/vcurvelength.cpp \
|
container/vcurvelength.cpp \
|
||||||
container/vlinelength.cpp \
|
container/vlinelength.cpp \
|
||||||
container/vsplinelength.cpp
|
container/vsplinelength.cpp \
|
||||||
|
container/vformula.cpp
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
container/vcontainer.h \
|
container/vcontainer.h \
|
||||||
|
@ -30,4 +31,5 @@ HEADERS += \
|
||||||
container/vcurvelength_p.h \
|
container/vcurvelength_p.h \
|
||||||
container/vlineangle_p.h \
|
container/vlineangle_p.h \
|
||||||
container/vlinelength_p.h \
|
container/vlinelength_p.h \
|
||||||
container/vmeasurement_p.h
|
container/vmeasurement_p.h \
|
||||||
|
container/vformula.h
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
quint32 VContainer::_id = NULL_ID;
|
quint32 VContainer::_id = NULL_ID;
|
||||||
qreal VContainer::_size = 50;
|
qreal VContainer::_size = 50;
|
||||||
qreal VContainer::_height = 176;
|
qreal VContainer::_height = 176;
|
||||||
|
QSet<const QString> VContainer::uniqueNames = QSet<const QString>();
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
|
@ -138,6 +139,7 @@ quint32 VContainer::AddGObject(VGObject *obj)
|
||||||
{
|
{
|
||||||
SCASSERT(obj != nullptr);
|
SCASSERT(obj != nullptr);
|
||||||
QSharedPointer<VGObject> pointer(obj);
|
QSharedPointer<VGObject> pointer(obj);
|
||||||
|
uniqueNames.insert(obj->name());
|
||||||
return AddObject(d->gObjects, pointer);
|
return AddObject(d->gObjects, pointer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,6 +212,7 @@ void VContainer::Clear()
|
||||||
d->details.clear();
|
d->details.clear();
|
||||||
ClearVariables();
|
ClearVariables();
|
||||||
ClearGObjects();
|
ClearGObjects();
|
||||||
|
ClearUniqueNames();
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -334,6 +337,7 @@ void VContainer::UpdateGObject(quint32 id, VGObject* obj)
|
||||||
SCASSERT(obj != nullptr);
|
SCASSERT(obj != nullptr);
|
||||||
QSharedPointer<VGObject> pointer(obj);
|
QSharedPointer<VGObject> pointer(obj);
|
||||||
UpdateObject(d->gObjects, id, pointer);
|
UpdateObject(d->gObjects, id, pointer);
|
||||||
|
uniqueNames.insert(obj->name());
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -407,6 +411,12 @@ const QMap<QString, QSharedPointer<VLineAngle> > VContainer::DataAngleLines() co
|
||||||
return DataVar<VLineAngle>(VarType::LineAngle);
|
return DataVar<VLineAngle>(VarType::LineAngle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
bool VContainer::IsUnique(const QString &name)
|
||||||
|
{
|
||||||
|
return !uniqueNames.contains(name);
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief VariableExist check if exist variable this same name.
|
* @brief VariableExist check if exist variable this same name.
|
||||||
|
@ -442,6 +452,12 @@ void VContainer::ClearDetails()
|
||||||
d->details.clear();
|
d->details.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VContainer::ClearUniqueNames()
|
||||||
|
{
|
||||||
|
uniqueNames.clear();
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief SetSize set value of size
|
* @brief SetSize set value of size
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
|
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
|
#include <QSet>
|
||||||
|
|
||||||
#ifdef Q_CC_GNU
|
#ifdef Q_CC_GNU
|
||||||
#pragma GCC diagnostic push
|
#pragma GCC diagnostic push
|
||||||
|
@ -186,6 +187,7 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
d->variables[name] = QSharedPointer<T>(var);
|
d->variables[name] = QSharedPointer<T>(var);
|
||||||
|
uniqueNames.insert(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateGObject(quint32 id, VGObject* obj);
|
void UpdateGObject(quint32 id, VGObject* obj);
|
||||||
|
@ -196,6 +198,7 @@ public:
|
||||||
void ClearCalculationGObjects();
|
void ClearCalculationGObjects();
|
||||||
void ClearVariables(const VarType &type = VarType::Unknown);
|
void ClearVariables(const VarType &type = VarType::Unknown);
|
||||||
void ClearDetails();
|
void ClearDetails();
|
||||||
|
static void ClearUniqueNames();
|
||||||
|
|
||||||
void SetSize(qreal size);
|
void SetSize(qreal size);
|
||||||
void SetSizeName(const QString &name);
|
void SetSizeName(const QString &name);
|
||||||
|
@ -221,6 +224,7 @@ public:
|
||||||
const QMap<QString, QSharedPointer<VArcLength> > DataLengthArcs() const;
|
const QMap<QString, QSharedPointer<VArcLength> > DataLengthArcs() const;
|
||||||
const QMap<QString, QSharedPointer<VLineAngle> > DataAngleLines() const;
|
const QMap<QString, QSharedPointer<VLineAngle> > DataAngleLines() const;
|
||||||
|
|
||||||
|
static bool IsUnique(const QString &name);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
|
@ -229,6 +233,7 @@ private:
|
||||||
static quint32 _id;
|
static quint32 _id;
|
||||||
static qreal _size;
|
static qreal _size;
|
||||||
static qreal _height;
|
static qreal _height;
|
||||||
|
static QSet<const QString> uniqueNames;
|
||||||
|
|
||||||
QSharedDataPointer<VContainerData> d;
|
QSharedDataPointer<VContainerData> d;
|
||||||
|
|
||||||
|
|
266
src/app/container/vformula.cpp
Normal file
266
src/app/container/vformula.cpp
Normal file
|
@ -0,0 +1,266 @@
|
||||||
|
/************************************************************************
|
||||||
|
**
|
||||||
|
** @file vformula.cpp
|
||||||
|
** @author Roman Telezhynskyi <dismine(at)gmail.com>
|
||||||
|
** @date 28 8, 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) 2014 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 "vformula.h"
|
||||||
|
#include "../container/calculator.h"
|
||||||
|
#include "../container/vcontainer.h"
|
||||||
|
#include "../widgets/vapplication.h"
|
||||||
|
|
||||||
|
//VFormula
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
VFormula::VFormula()
|
||||||
|
:formula(QString()), value(QString(tr("Error"))), checkZero(true), data(nullptr), toolId(NULL_ID),
|
||||||
|
postfix(QStringLiteral("")), _error(true), dValue(0)
|
||||||
|
{}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
VFormula::VFormula(const QString &formula, const VContainer *container)
|
||||||
|
:formula(qApp->FormulaToUser(formula)), value(QString(tr("Error"))), checkZero(true), data(container), toolId(NULL_ID),
|
||||||
|
postfix(QStringLiteral("")), _error(true), dValue(0)
|
||||||
|
{
|
||||||
|
this->formula.replace("\n", " ");// Replace line return with spaces for calc if exist
|
||||||
|
Eval();
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
VFormula &VFormula::operator=(const VFormula &formula)
|
||||||
|
{
|
||||||
|
if ( &formula == this )
|
||||||
|
{
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
this->formula = formula.getFormula();
|
||||||
|
this->value = formula.getStringValue();
|
||||||
|
this->checkZero = formula.getCheckZero();
|
||||||
|
this->data = formula.getData();
|
||||||
|
this->toolId = formula.getToolId();
|
||||||
|
this->postfix = formula.getPostfix();
|
||||||
|
this->_error = formula.error();
|
||||||
|
this->dValue = formula.getDoubleValue();
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
VFormula::VFormula(const VFormula &formula)
|
||||||
|
:formula(formula.getFormula()), value(formula.getStringValue()), checkZero(formula.getCheckZero()),
|
||||||
|
data(formula.getData()), toolId(formula.getToolId()), postfix(formula.getPostfix()), _error(formula.error()),
|
||||||
|
dValue(formula.getDoubleValue())
|
||||||
|
{}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
bool VFormula::operator==(const VFormula &formula) const
|
||||||
|
{
|
||||||
|
bool isEqual = false;
|
||||||
|
if (this->formula == formula.getFormula() && this->value == formula.getStringValue() &&
|
||||||
|
this->checkZero == formula.getCheckZero() && this->data == formula.getData() &&
|
||||||
|
this->toolId == formula.getToolId() && this->postfix == formula.getPostfix() &&
|
||||||
|
this->_error == formula.error() && this->dValue == formula.getDoubleValue())
|
||||||
|
{
|
||||||
|
isEqual = true;
|
||||||
|
}
|
||||||
|
return isEqual;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool VFormula::operator!=(const VFormula &formula) const
|
||||||
|
{
|
||||||
|
return !VFormula::operator==(formula);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QString VFormula::getFormula(FormulaType type) const
|
||||||
|
{
|
||||||
|
if (type == FormulaType::ToUser)
|
||||||
|
{
|
||||||
|
return formula;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return qApp->FormulaFromUser(formula);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VFormula::setFormula(const QString &value, FormulaType type)
|
||||||
|
{
|
||||||
|
if (formula != value)
|
||||||
|
{
|
||||||
|
if (type == FormulaType::ToUser)
|
||||||
|
{
|
||||||
|
formula = value;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
formula = qApp->FormulaToUser(value);
|
||||||
|
}
|
||||||
|
formula.replace("\n", " ");// Replace line return with spaces for calc if exist
|
||||||
|
Eval();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QString VFormula::getStringValue() const
|
||||||
|
{
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
qreal VFormula::getDoubleValue() const
|
||||||
|
{
|
||||||
|
return dValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
bool VFormula::getCheckZero() const
|
||||||
|
{
|
||||||
|
return checkZero;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VFormula::setCheckZero(bool value)
|
||||||
|
{
|
||||||
|
if (checkZero != value)
|
||||||
|
{
|
||||||
|
checkZero = value;
|
||||||
|
Eval();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
const VContainer *VFormula::getData() const
|
||||||
|
{
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VFormula::setData(const VContainer *value)
|
||||||
|
{
|
||||||
|
if (data != value && value != nullptr)
|
||||||
|
{
|
||||||
|
data = value;
|
||||||
|
Eval();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VFormula::getToolId() const
|
||||||
|
{
|
||||||
|
return toolId;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VFormula::setToolId(const quint32 &value)
|
||||||
|
{
|
||||||
|
toolId = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QString VFormula::getPostfix() const
|
||||||
|
{
|
||||||
|
return postfix;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VFormula::setPostfix(const QString &value)
|
||||||
|
{
|
||||||
|
if (postfix != value)
|
||||||
|
{
|
||||||
|
postfix = value;
|
||||||
|
Eval();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
bool VFormula::error() const
|
||||||
|
{
|
||||||
|
return _error;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
int VFormula::FormulaTypeId()
|
||||||
|
{
|
||||||
|
return qMetaTypeId<VFormula>();
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VFormula::Eval()
|
||||||
|
{
|
||||||
|
if (data == nullptr)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (formula.isEmpty())
|
||||||
|
{
|
||||||
|
value = QString(tr("Error"));
|
||||||
|
_error = true;
|
||||||
|
dValue = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Calculator *cal = new Calculator(data);
|
||||||
|
QString expression = qApp->FormulaFromUser(formula);
|
||||||
|
const qreal result = cal->EvalFormula(expression);
|
||||||
|
delete cal;
|
||||||
|
|
||||||
|
//if result equal 0
|
||||||
|
if (checkZero && qFuzzyCompare(1 + result, 1 + 0))
|
||||||
|
{
|
||||||
|
value = QString("0");
|
||||||
|
_error = true;
|
||||||
|
dValue = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
QLocale loc;
|
||||||
|
if (qApp->getSettings()->value("configuration/osSeparator", 1).toBool())
|
||||||
|
{
|
||||||
|
loc = QLocale::system();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
loc = QLocale(QLocale::C);
|
||||||
|
}
|
||||||
|
dValue = result;
|
||||||
|
value = QString(loc.toString(result) + " " + postfix);
|
||||||
|
_error = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (qmu::QmuParserError &e)
|
||||||
|
{
|
||||||
|
value = QString(tr("Error"));
|
||||||
|
_error = true;
|
||||||
|
dValue = 0;
|
||||||
|
qDebug() << "\nMath parser error:\n"
|
||||||
|
<< "--------------------------------------\n"
|
||||||
|
<< "Message: " << e.GetMsg() << "\n"
|
||||||
|
<< "Expression: " << e.GetExpr() << "\n"
|
||||||
|
<< "--------------------------------------";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
84
src/app/container/vformula.h
Normal file
84
src/app/container/vformula.h
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
/************************************************************************
|
||||||
|
**
|
||||||
|
** @file vformula.h
|
||||||
|
** @author Roman Telezhynskyi <dismine(at)gmail.com>
|
||||||
|
** @date 28 8, 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) 2014 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 VFORMULA_H
|
||||||
|
#define VFORMULA_H
|
||||||
|
|
||||||
|
#include <QCoreApplication>
|
||||||
|
|
||||||
|
enum class FormulaType : char{ToUser, FromUser};
|
||||||
|
|
||||||
|
class VContainer;
|
||||||
|
|
||||||
|
class VFormula
|
||||||
|
{
|
||||||
|
Q_DECLARE_TR_FUNCTIONS(VFormula)
|
||||||
|
public:
|
||||||
|
VFormula();
|
||||||
|
VFormula(const QString &formula, const VContainer *container);
|
||||||
|
VFormula &operator=(const VFormula &formula);
|
||||||
|
VFormula(const VFormula &formula);
|
||||||
|
bool operator==(const VFormula &formula) const;
|
||||||
|
bool operator!=(const VFormula &formula) const;
|
||||||
|
|
||||||
|
QString getFormula(FormulaType type = FormulaType::ToUser) const;
|
||||||
|
void setFormula(const QString &value, FormulaType type = FormulaType::ToUser);
|
||||||
|
|
||||||
|
QString getStringValue() const;
|
||||||
|
qreal getDoubleValue() const;
|
||||||
|
|
||||||
|
bool getCheckZero() const;
|
||||||
|
void setCheckZero(bool value);
|
||||||
|
|
||||||
|
const VContainer *getData() const;
|
||||||
|
void setData(const VContainer *value);
|
||||||
|
|
||||||
|
quint32 getToolId() const;
|
||||||
|
void setToolId(const quint32 &value);
|
||||||
|
|
||||||
|
QString getPostfix() const;
|
||||||
|
void setPostfix(const QString &value);
|
||||||
|
|
||||||
|
bool error() const;
|
||||||
|
|
||||||
|
static int FormulaTypeId();
|
||||||
|
private:
|
||||||
|
QString formula;
|
||||||
|
QString value;
|
||||||
|
bool checkZero;
|
||||||
|
const VContainer *data;
|
||||||
|
quint32 toolId;
|
||||||
|
QString postfix;
|
||||||
|
bool _error;
|
||||||
|
qreal dValue;
|
||||||
|
|
||||||
|
void Eval();
|
||||||
|
};
|
||||||
|
Q_DECLARE_METATYPE(VFormula)
|
||||||
|
|
||||||
|
#endif // VFORMULA_H
|
|
@ -43,8 +43,8 @@
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
ConfigurationPage::ConfigurationPage(QWidget *parent)
|
ConfigurationPage::ConfigurationPage(QWidget *parent)
|
||||||
: QWidget(parent), autoSaveCheck(nullptr), autoTime(nullptr), langCombo(nullptr), unitCombo(nullptr),
|
: QWidget(parent), autoSaveCheck(nullptr), autoTime(nullptr), langCombo(nullptr), labelCombo(nullptr),
|
||||||
osOptionCheck(nullptr), langChanged(false), unitChanged(false)
|
unitCombo(nullptr), osOptionCheck(nullptr), langChanged(false), unitChanged(false), labelLangChanged(false)
|
||||||
{
|
{
|
||||||
QGroupBox *saveGroup = SaveGroup();
|
QGroupBox *saveGroup = SaveGroup();
|
||||||
QGroupBox *langGroup = LangGroup();
|
QGroupBox *langGroup = LangGroup();
|
||||||
|
@ -93,6 +93,12 @@ void ConfigurationPage::Apply()
|
||||||
QString text = QString(tr("Default unit updated and will be used the next pattern creation"));
|
QString text = QString(tr("Default unit updated and will be used the next pattern creation"));
|
||||||
QMessageBox::information(this, QApplication::applicationName(), text);
|
QMessageBox::information(this, QApplication::applicationName(), text);
|
||||||
}
|
}
|
||||||
|
if (labelLangChanged)
|
||||||
|
{
|
||||||
|
QString locale = qvariant_cast<QString>(labelCombo->itemData(labelCombo->currentIndex()));
|
||||||
|
qApp->getSettings()->setValue("configuration/label_language", locale);
|
||||||
|
labelLangChanged = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -107,6 +113,12 @@ void ConfigurationPage::UnitChanged()
|
||||||
this->unitChanged = true;
|
this->unitChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void ConfigurationPage::LabelLangChanged()
|
||||||
|
{
|
||||||
|
labelLangChanged = true;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QGroupBox *ConfigurationPage::SaveGroup()
|
QGroupBox *ConfigurationPage::SaveGroup()
|
||||||
{
|
{
|
||||||
|
@ -227,13 +239,47 @@ QGroupBox *ConfigurationPage::LangGroup()
|
||||||
UnitLayout->addWidget(unitLabel);
|
UnitLayout->addWidget(unitLabel);
|
||||||
UnitLayout->addWidget(this->unitCombo);
|
UnitLayout->addWidget(this->unitCombo);
|
||||||
|
|
||||||
//----------------------- Unit setup
|
//----------------------- Label language
|
||||||
|
|
||||||
|
QLabel *labelName = new QLabel(tr("Label language"));
|
||||||
|
labelCombo = new QComboBox;
|
||||||
|
|
||||||
|
QString checkedLabelLocale = settings->value("configuration/label_language", defaultLocale).toString();
|
||||||
|
|
||||||
|
QStringList list{"de", "en" , "fr" , "ru" , "uk"};
|
||||||
|
SetLabelComboBox(list);
|
||||||
|
|
||||||
|
index = labelCombo->findData(checkedLabelLocale);
|
||||||
|
if (index != -1)
|
||||||
|
{
|
||||||
|
labelCombo->setCurrentIndex(index);
|
||||||
|
}
|
||||||
|
connect(labelCombo, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this,
|
||||||
|
&ConfigurationPage::LabelLangChanged);
|
||||||
|
|
||||||
|
QHBoxLayout *labelLangLayout = new QHBoxLayout;
|
||||||
|
labelLangLayout->addWidget(labelName);
|
||||||
|
labelLangLayout->addWidget(labelCombo);
|
||||||
|
|
||||||
|
//-----------------------
|
||||||
|
|
||||||
QVBoxLayout *langLayout = new QVBoxLayout;
|
QVBoxLayout *langLayout = new QVBoxLayout;
|
||||||
langLayout->addLayout(guiLangLayout);
|
langLayout->addLayout(guiLangLayout);
|
||||||
langLayout->addLayout(separatorLayout);
|
langLayout->addLayout(separatorLayout);
|
||||||
langLayout->addLayout(UnitLayout);
|
langLayout->addLayout(UnitLayout);
|
||||||
|
langLayout->addLayout(labelLangLayout);
|
||||||
langGroup->setLayout(langLayout);
|
langGroup->setLayout(langLayout);
|
||||||
|
|
||||||
return langGroup;
|
return langGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void ConfigurationPage::SetLabelComboBox(const QStringList &list)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < list.size(); ++i)
|
||||||
|
{
|
||||||
|
QString lang = QLocale(list.at(i)).nativeLanguageName();
|
||||||
|
QIcon ico(QString("%1/%2.png").arg("://icon/flags").arg(list.at(i)));
|
||||||
|
labelCombo->addItem(ico, lang, list.at(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -46,17 +46,22 @@ public:
|
||||||
public slots:
|
public slots:
|
||||||
void LangChanged();
|
void LangChanged();
|
||||||
void UnitChanged();
|
void UnitChanged();
|
||||||
|
void LabelLangChanged();
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(ConfigurationPage)
|
Q_DISABLE_COPY(ConfigurationPage)
|
||||||
QCheckBox *autoSaveCheck;
|
QCheckBox *autoSaveCheck;
|
||||||
QSpinBox *autoTime;
|
QSpinBox *autoTime;
|
||||||
QComboBox *langCombo;
|
QComboBox *langCombo;
|
||||||
|
QComboBox *labelCombo;
|
||||||
QComboBox *unitCombo;
|
QComboBox *unitCombo;
|
||||||
QCheckBox *osOptionCheck;
|
QCheckBox *osOptionCheck;
|
||||||
bool langChanged;
|
bool langChanged;
|
||||||
bool unitChanged;
|
bool unitChanged;
|
||||||
|
bool labelLangChanged;
|
||||||
|
|
||||||
QGroupBox *SaveGroup();
|
QGroupBox *SaveGroup();
|
||||||
QGroupBox *LangGroup();
|
QGroupBox *LangGroup();
|
||||||
|
void SetLabelComboBox(const QStringList &list);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CONFIGURATIONPAGE_H
|
#endif // CONFIGURATIONPAGE_H
|
||||||
|
|
|
@ -213,44 +213,44 @@ QString DialogHistory::Record(const VToolRecord &tool)
|
||||||
{
|
{
|
||||||
switch ( tool.getTypeTool() )
|
switch ( tool.getTypeTool() )
|
||||||
{
|
{
|
||||||
case Tool::ArrowTool:
|
case Tool::Arrow:
|
||||||
Q_UNREACHABLE();
|
Q_UNREACHABLE();
|
||||||
break;
|
break;
|
||||||
case Tool::SinglePointTool:
|
case Tool::SinglePoint:
|
||||||
{
|
{
|
||||||
return QString(tr("%1 - Base point")).arg(PointName(tool.getId()));
|
return QString(tr("%1 - Base point")).arg(PointName(tool.getId()));
|
||||||
}
|
}
|
||||||
case Tool::EndLineTool:
|
case Tool::EndLine:
|
||||||
{
|
{
|
||||||
return QString(tr("%1_%2 - Line from point %1 to point %2"))
|
return QString(tr("%1_%2 - Line from point %1 to point %2"))
|
||||||
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrBasePoint)))
|
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrBasePoint)))
|
||||||
.arg(PointName(tool.getId()));
|
.arg(PointName(tool.getId()));
|
||||||
}
|
}
|
||||||
case Tool::LineTool:
|
case Tool::Line:
|
||||||
{
|
{
|
||||||
return QString(tr("%1_%2 - Line from point %1 to point %2"))
|
return QString(tr("%1_%2 - Line from point %1 to point %2"))
|
||||||
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrFirstPoint)))
|
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrFirstPoint)))
|
||||||
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrSecondPoint)));
|
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrSecondPoint)));
|
||||||
}
|
}
|
||||||
case Tool::AlongLineTool:
|
case Tool::AlongLine:
|
||||||
{
|
{
|
||||||
return QString(tr("%3 - Point along line %1_%2"))
|
return QString(tr("%3 - Point along line %1_%2"))
|
||||||
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrFirstPoint)))
|
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrFirstPoint)))
|
||||||
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrSecondPoint)))
|
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrSecondPoint)))
|
||||||
.arg(PointName(tool.getId()));
|
.arg(PointName(tool.getId()));
|
||||||
}
|
}
|
||||||
case Tool::ShoulderPointTool:
|
case Tool::ShoulderPoint:
|
||||||
{
|
{
|
||||||
return QString(tr("%1 - Point of shoulder")).arg(PointName(tool.getId()));
|
return QString(tr("%1 - Point of shoulder")).arg(PointName(tool.getId()));
|
||||||
}
|
}
|
||||||
case Tool::NormalTool:
|
case Tool::Normal:
|
||||||
{
|
{
|
||||||
return QString(tr("%3 - normal to line %1_%2"))
|
return QString(tr("%3 - normal to line %1_%2"))
|
||||||
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrFirstPoint)))
|
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrFirstPoint)))
|
||||||
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrSecondPoint)))
|
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrSecondPoint)))
|
||||||
.arg(PointName(tool.getId()));
|
.arg(PointName(tool.getId()));
|
||||||
}
|
}
|
||||||
case Tool::BisectorTool:
|
case Tool::Bisector:
|
||||||
{
|
{
|
||||||
return QString(tr("%4 - bisector of angle %1_%2_%3"))
|
return QString(tr("%4 - bisector of angle %1_%2_%3"))
|
||||||
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrFirstPoint)))
|
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrFirstPoint)))
|
||||||
|
@ -258,7 +258,7 @@ QString DialogHistory::Record(const VToolRecord &tool)
|
||||||
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrThirdPoint)))
|
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrThirdPoint)))
|
||||||
.arg(PointName(tool.getId()));
|
.arg(PointName(tool.getId()));
|
||||||
}
|
}
|
||||||
case Tool::LineIntersectTool:
|
case Tool::LineIntersect:
|
||||||
{
|
{
|
||||||
return QString(tr("%5 - intersection of lines %1_%2 and %3_%4"))
|
return QString(tr("%5 - intersection of lines %1_%2 and %3_%4"))
|
||||||
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrP1Line1)))
|
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrP1Line1)))
|
||||||
|
@ -267,19 +267,19 @@ QString DialogHistory::Record(const VToolRecord &tool)
|
||||||
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrP2Line2)))
|
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrP2Line2)))
|
||||||
.arg(PointName(tool.getId()));
|
.arg(PointName(tool.getId()));
|
||||||
}
|
}
|
||||||
case Tool::SplineTool:
|
case Tool::Spline:
|
||||||
{
|
{
|
||||||
const QSharedPointer<VSpline> spl = data->GeometricObject<VSpline>(tool.getId());
|
const QSharedPointer<VSpline> spl = data->GeometricObject<VSpline>(tool.getId());
|
||||||
SCASSERT(spl != nullptr);
|
SCASSERT(spl != nullptr);
|
||||||
return QString(tr("Curve %1_%2")).arg(PointName(spl->GetP1().id())).arg(PointName(spl->GetP4().id()));
|
return QString(tr("Curve %1_%2")).arg(PointName(spl->GetP1().id())).arg(PointName(spl->GetP4().id()));
|
||||||
}
|
}
|
||||||
case Tool::ArcTool:
|
case Tool::Arc:
|
||||||
{
|
{
|
||||||
const QSharedPointer<VArc> arc = data->GeometricObject<VArc>(tool.getId());
|
const QSharedPointer<VArc> arc = data->GeometricObject<VArc>(tool.getId());
|
||||||
SCASSERT(arc != nullptr);
|
SCASSERT(arc != nullptr);
|
||||||
return QString(tr("Arc with center in point %1")).arg(PointName(arc->GetCenter().id()));
|
return QString(tr("Arc with center in point %1")).arg(PointName(arc->GetCenter().id()));
|
||||||
}
|
}
|
||||||
case Tool::SplinePathTool:
|
case Tool::SplinePath:
|
||||||
{
|
{
|
||||||
const QSharedPointer<VSplinePath> splPath = data->GeometricObject<VSplinePath>(tool.getId());
|
const QSharedPointer<VSplinePath> splPath = data->GeometricObject<VSplinePath>(tool.getId());
|
||||||
SCASSERT(splPath != nullptr);
|
SCASSERT(splPath != nullptr);
|
||||||
|
@ -331,7 +331,7 @@ QString DialogHistory::Record(const VToolRecord &tool)
|
||||||
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrFirstPoint)))
|
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrFirstPoint)))
|
||||||
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrSecondPoint)));
|
.arg(PointName(AttrUInt(domElem, VAbstractTool::AttrSecondPoint)));
|
||||||
}
|
}
|
||||||
case Tool::CutArcTool:
|
case Tool::CutArc:
|
||||||
{
|
{
|
||||||
const QSharedPointer<VArc> arc = data->GeometricObject<VArc>(AttrUInt(domElem, VToolCutArc::AttrArc));
|
const QSharedPointer<VArc> arc = data->GeometricObject<VArc>(AttrUInt(domElem, VToolCutArc::AttrArc));
|
||||||
SCASSERT(arc != nullptr);
|
SCASSERT(arc != nullptr);
|
||||||
|
@ -339,7 +339,7 @@ QString DialogHistory::Record(const VToolRecord &tool)
|
||||||
.arg(PointName(tool.getId()))
|
.arg(PointName(tool.getId()))
|
||||||
.arg(PointName(arc->GetCenter().id()));
|
.arg(PointName(arc->GetCenter().id()));
|
||||||
}
|
}
|
||||||
case Tool::CutSplineTool:
|
case Tool::CutSpline:
|
||||||
{
|
{
|
||||||
const quint32 splineId = AttrUInt(domElem, VToolCutSpline::AttrSpline);
|
const quint32 splineId = AttrUInt(domElem, VToolCutSpline::AttrSpline);
|
||||||
const QSharedPointer<VSpline> spl = data->GeometricObject<VSpline>(splineId);
|
const QSharedPointer<VSpline> spl = data->GeometricObject<VSpline>(splineId);
|
||||||
|
@ -349,7 +349,7 @@ QString DialogHistory::Record(const VToolRecord &tool)
|
||||||
.arg(PointName(spl->GetP1().id()))
|
.arg(PointName(spl->GetP1().id()))
|
||||||
.arg(PointName(spl->GetP4().id()));
|
.arg(PointName(spl->GetP4().id()));
|
||||||
}
|
}
|
||||||
case Tool::CutSplinePathTool:
|
case Tool::CutSplinePath:
|
||||||
{
|
{
|
||||||
const quint32 splinePathId = AttrUInt(domElem, VToolCutSplinePath::AttrSplinePath);
|
const quint32 splinePathId = AttrUInt(domElem, VToolCutSplinePath::AttrSplinePath);
|
||||||
const QSharedPointer<VSplinePath> splPath = data->GeometricObject<VSplinePath>(splinePathId);
|
const QSharedPointer<VSplinePath> splPath = data->GeometricObject<VSplinePath>(splinePathId);
|
||||||
|
@ -375,7 +375,7 @@ QString DialogHistory::Record(const VToolRecord &tool)
|
||||||
}
|
}
|
||||||
//Because "history" not only show history of pattern, but help restore current data for each pattern's
|
//Because "history" not only show history of pattern, but help restore current data for each pattern's
|
||||||
//piece, we need add record about details and nodes, but don't show them.
|
//piece, we need add record about details and nodes, but don't show them.
|
||||||
case Tool::DetailTool:
|
case Tool::Detail:
|
||||||
break;
|
break;
|
||||||
case Tool::UnionDetails:
|
case Tool::UnionDetails:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -69,9 +69,7 @@ DialogIncrements::DialogIncrements(VContainer *data, VPattern *doc, QWidget *par
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Same regex in pattern.xsd shema file. Don't forget synchronize.
|
TextDelegate *textDelegate = new TextDelegate(nameRegExp, data, ui->tableWidgetIncrement);
|
||||||
TextDelegate *textDelegate = new TextDelegate("^([^0-9-*/^+=\\s\\(\\)%:;!.,]){1,1}([^-*/^+=\\s\\(\\)%:;!.,]){0,}$",
|
|
||||||
data, ui->tableWidgetIncrement);
|
|
||||||
ui->tableWidgetIncrement->setItemDelegateForColumn(0, textDelegate);// name
|
ui->tableWidgetIncrement->setItemDelegateForColumn(0, textDelegate);// name
|
||||||
DoubleSpinBoxDelegate *doubleDelegate = new DoubleSpinBoxDelegate(ui->tableWidgetIncrement);
|
DoubleSpinBoxDelegate *doubleDelegate = new DoubleSpinBoxDelegate(ui->tableWidgetIncrement);
|
||||||
ui->tableWidgetIncrement->setItemDelegateForColumn(2, doubleDelegate);// base value
|
ui->tableWidgetIncrement->setItemDelegateForColumn(2, doubleDelegate);// base value
|
||||||
|
|
|
@ -41,19 +41,20 @@
|
||||||
* @param parent parent widget
|
* @param parent parent widget
|
||||||
*/
|
*/
|
||||||
DialogAlongLine::DialogAlongLine(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
DialogAlongLine::DialogAlongLine(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
||||||
:DialogTool(data, toolId, parent), ui(new Ui::DialogAlongLine), number(0), pointName(QString()),
|
:DialogTool(data, toolId, parent), ui(new Ui::DialogAlongLine), number(0),
|
||||||
typeLine(QString()), formula(QString()), firstPointId(NULL_ID), secondPointId(NULL_ID), formulaBaseHeight(0),
|
typeLine(QString()), formula(QString()), firstPointId(NULL_ID), secondPointId(NULL_ID), formulaBaseHeight(0),
|
||||||
line(nullptr)
|
line(nullptr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
InitVariables(ui);
|
InitVariables(ui);
|
||||||
InitFormulaUI(ui);
|
InitFormulaUI(ui);
|
||||||
|
ui->lineEditNamePoint->setText(qApp->getCurrentDocument()->GenerateLabel(LabelType::NewLabel));
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
|
|
||||||
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
||||||
|
|
||||||
InitOkCancelApply(ui);
|
InitOkCancelApply(ui);
|
||||||
flagFormula = false;
|
flagFormula = false;
|
||||||
flagName = false;
|
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
||||||
FillComboBoxPoints(ui->comboBoxFirstPoint);
|
FillComboBoxPoints(ui->comboBoxFirstPoint);
|
||||||
|
|
|
@ -87,9 +87,6 @@ private:
|
||||||
/** @brief number number of handled objects */
|
/** @brief number number of handled objects */
|
||||||
qint32 number;
|
qint32 number;
|
||||||
|
|
||||||
/** @brief pointName name of point */
|
|
||||||
QString pointName;
|
|
||||||
|
|
||||||
/** @brief typeLine type of line */
|
/** @brief typeLine type of line */
|
||||||
QString typeLine;
|
QString typeLine;
|
||||||
|
|
||||||
|
|
|
@ -220,43 +220,6 @@
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="labelEditNamePoint">
|
<widget class="QLabel" name="labelEditNamePoint">
|
||||||
<property name="palette">
|
|
||||||
<palette>
|
|
||||||
<active>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</active>
|
|
||||||
<inactive>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</inactive>
|
|
||||||
<disabled>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>159</red>
|
|
||||||
<green>158</green>
|
|
||||||
<blue>158</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</disabled>
|
|
||||||
</palette>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Point label</string>
|
<string>Point label</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
@ -522,6 +522,9 @@
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_8">
|
<layout class="QHBoxLayout" name="horizontalLayout_8">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>9</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPlainTextEdit" name="plainTextEditF2">
|
<widget class="QPlainTextEdit" name="plainTextEditF2">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
|
|
|
@ -42,19 +42,19 @@
|
||||||
* @param parent parent widget
|
* @param parent parent widget
|
||||||
*/
|
*/
|
||||||
DialogBisector::DialogBisector(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
DialogBisector::DialogBisector(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
||||||
:DialogTool(data, toolId, parent), ui(new Ui::DialogBisector), number(0), pointName(QString()), typeLine(QString()),
|
:DialogTool(data, toolId, parent), ui(new Ui::DialogBisector), number(0), typeLine(QString()),
|
||||||
formula(QString()), firstPointId(NULL_ID), secondPointId(NULL_ID), thirdPointId(NULL_ID), formulaBaseHeight(0),
|
formula(QString()), firstPointId(NULL_ID), secondPointId(NULL_ID), thirdPointId(NULL_ID), formulaBaseHeight(0),
|
||||||
line(nullptr), prepare(false)
|
line(nullptr), prepare(false)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
InitVariables(ui);
|
InitVariables(ui);
|
||||||
InitFormulaUI(ui);
|
InitFormulaUI(ui);
|
||||||
|
ui->lineEditNamePoint->setText(qApp->getCurrentDocument()->GenerateLabel(LabelType::NewLabel));
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
||||||
|
|
||||||
InitOkCancelApply(ui);
|
InitOkCancelApply(ui);
|
||||||
flagFormula = false;
|
flagFormula = false;
|
||||||
flagName = false;
|
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
||||||
FillComboBoxPoints(ui->comboBoxFirstPoint);
|
FillComboBoxPoints(ui->comboBoxFirstPoint);
|
||||||
|
|
|
@ -92,9 +92,6 @@ private:
|
||||||
/** @brief number number of handled objects */
|
/** @brief number number of handled objects */
|
||||||
qint32 number;
|
qint32 number;
|
||||||
|
|
||||||
/** @brief pointName name of point */
|
|
||||||
QString pointName;
|
|
||||||
|
|
||||||
/** @brief typeLine type of line */
|
/** @brief typeLine type of line */
|
||||||
QString typeLine;
|
QString typeLine;
|
||||||
|
|
||||||
|
|
|
@ -217,43 +217,6 @@
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="palette">
|
|
||||||
<palette>
|
|
||||||
<active>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</active>
|
|
||||||
<inactive>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</inactive>
|
|
||||||
<disabled>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>159</red>
|
|
||||||
<green>158</green>
|
|
||||||
<blue>158</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</disabled>
|
|
||||||
</palette>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Point label</string>
|
<string>Point label</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
#include "../../container/vcontainer.h"
|
#include "../../container/vcontainer.h"
|
||||||
#include "../../visualization/vistoolcutarc.h"
|
#include "../../visualization/vistoolcutarc.h"
|
||||||
#include "../../widgets/vmaingraphicsscene.h"
|
#include "../../widgets/vmaingraphicsscene.h"
|
||||||
|
#include "../../xml/vpattern.h"
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
|
@ -41,18 +42,18 @@
|
||||||
* @param parent parent widget
|
* @param parent parent widget
|
||||||
*/
|
*/
|
||||||
DialogCutArc::DialogCutArc(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
DialogCutArc::DialogCutArc(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
||||||
: DialogTool(data, toolId, parent), ui(new Ui::DialogCutArc), pointName(QString()), formula(QString()),
|
: DialogTool(data, toolId, parent), ui(new Ui::DialogCutArc), formula(QString()),
|
||||||
arcId(NULL_ID), formulaBaseHeight(0), path(nullptr)
|
arcId(NULL_ID), formulaBaseHeight(0), path(nullptr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
InitVariables(ui);
|
InitVariables(ui);
|
||||||
InitFormulaUI(ui);
|
InitFormulaUI(ui);
|
||||||
|
ui->lineEditNamePoint->setText(qApp->getCurrentDocument()->GenerateLabel(LabelType::NewLabel));
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
||||||
|
|
||||||
InitOkCancelApply(ui);
|
InitOkCancelApply(ui);
|
||||||
flagFormula = false;
|
flagFormula = false;
|
||||||
flagName = false;
|
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
||||||
FillComboBoxArcs(ui->comboBoxArc);
|
FillComboBoxArcs(ui->comboBoxArc);
|
||||||
|
|
|
@ -78,9 +78,6 @@ private:
|
||||||
/** @brief ui keeps information about user interface */
|
/** @brief ui keeps information about user interface */
|
||||||
Ui::DialogCutArc *ui;
|
Ui::DialogCutArc *ui;
|
||||||
|
|
||||||
/** @brief pointName name of created point */
|
|
||||||
QString pointName;
|
|
||||||
|
|
||||||
/** @brief formula string with formula */
|
/** @brief formula string with formula */
|
||||||
QString formula;
|
QString formula;
|
||||||
|
|
||||||
|
|
|
@ -238,43 +238,6 @@
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="palette">
|
|
||||||
<palette>
|
|
||||||
<active>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</active>
|
|
||||||
<inactive>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</inactive>
|
|
||||||
<disabled>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>159</red>
|
|
||||||
<green>158</green>
|
|
||||||
<blue>158</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</disabled>
|
|
||||||
</palette>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Point label</string>
|
<string>Point label</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
@ -31,6 +31,8 @@
|
||||||
|
|
||||||
#include "../../geometry/vspline.h"
|
#include "../../geometry/vspline.h"
|
||||||
#include "../../container/vcontainer.h"
|
#include "../../container/vcontainer.h"
|
||||||
|
#include "../../xml/vpattern.h"
|
||||||
|
#include "../../visualization/vistoolcutspline.h"
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
|
@ -39,18 +41,18 @@
|
||||||
* @param parent parent widget
|
* @param parent parent widget
|
||||||
*/
|
*/
|
||||||
DialogCutSpline::DialogCutSpline(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
DialogCutSpline::DialogCutSpline(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
||||||
:DialogTool(data, toolId, parent), ui(new Ui::DialogCutSpline), pointName(QString()), formula(QString()),
|
:DialogTool(data, toolId, parent), ui(new Ui::DialogCutSpline), formula(QString()),
|
||||||
splineId(NULL_ID), formulaBaseHeight(0)
|
splineId(NULL_ID), formulaBaseHeight(0), path(nullptr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
InitVariables(ui);
|
InitVariables(ui);
|
||||||
InitFormulaUI(ui);
|
InitFormulaUI(ui);
|
||||||
|
ui->lineEditNamePoint->setText(qApp->getCurrentDocument()->GenerateLabel(LabelType::NewLabel));
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
||||||
|
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
flagFormula = false;
|
flagFormula = false;
|
||||||
flagName = false;
|
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
||||||
FillComboBoxSplines(ui->comboBoxSpline);
|
FillComboBoxSplines(ui->comboBoxSpline);
|
||||||
|
@ -61,11 +63,14 @@ DialogCutSpline::DialogCutSpline(const VContainer *data, const quint32 &toolId,
|
||||||
connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, &DialogCutSpline::NamePointChanged);
|
connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, &DialogCutSpline::NamePointChanged);
|
||||||
connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, &DialogCutSpline::FormulaChanged);
|
connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, &DialogCutSpline::FormulaChanged);
|
||||||
connect(ui->pushButtonGrowLength, &QPushButton::clicked, this, &DialogCutSpline::DeployFormulaTextEdit);
|
connect(ui->pushButtonGrowLength, &QPushButton::clicked, this, &DialogCutSpline::DeployFormulaTextEdit);
|
||||||
|
|
||||||
|
path = new VisToolCutSpline(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
DialogCutSpline::~DialogCutSpline()
|
DialogCutSpline::~DialogCutSpline()
|
||||||
{
|
{
|
||||||
|
delete path;
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,6 +100,7 @@ void DialogCutSpline::setFormula(const QString &value)
|
||||||
this->DeployFormulaTextEdit();
|
this->DeployFormulaTextEdit();
|
||||||
}
|
}
|
||||||
ui->plainTextEditFormula->setPlainText(formula);
|
ui->plainTextEditFormula->setPlainText(formula);
|
||||||
|
path->setLength(formula);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -105,6 +111,7 @@ void DialogCutSpline::setFormula(const QString &value)
|
||||||
void DialogCutSpline::setSplineId(const quint32 &value)
|
void DialogCutSpline::setSplineId(const quint32 &value)
|
||||||
{
|
{
|
||||||
setCurrentSplineId(ui->comboBoxSpline, splineId, value, ComboBoxCutSpline::CutSpline);
|
setCurrentSplineId(ui->comboBoxSpline, splineId, value, ComboBoxCutSpline::CutSpline);
|
||||||
|
path->setPoint1Id(splineId);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -121,6 +128,8 @@ void DialogCutSpline::ChosenObject(quint32 id, const SceneObject &type)
|
||||||
{
|
{
|
||||||
if (SetObject(id, ui->comboBoxSpline, ""))
|
if (SetObject(id, ui->comboBoxSpline, ""))
|
||||||
{
|
{
|
||||||
|
path->VisualMode(id);
|
||||||
|
prepare = true;
|
||||||
this->setModal(true);
|
this->setModal(true);
|
||||||
this->show();
|
this->show();
|
||||||
}
|
}
|
||||||
|
@ -135,6 +144,10 @@ void DialogCutSpline::SaveData()
|
||||||
formula = ui->plainTextEditFormula->toPlainText();
|
formula = ui->plainTextEditFormula->toPlainText();
|
||||||
formula.replace("\n", " ");
|
formula.replace("\n", " ");
|
||||||
splineId = getCurrentObjectId(ui->comboBoxSpline);
|
splineId = getCurrentObjectId(ui->comboBoxSpline);
|
||||||
|
|
||||||
|
path->setPoint1Id(splineId);
|
||||||
|
path->setLength(formula);
|
||||||
|
path->RefreshGeometry();
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -142,3 +155,15 @@ void DialogCutSpline::DeployFormulaTextEdit()
|
||||||
{
|
{
|
||||||
DeployFormula(ui->plainTextEditFormula, ui->pushButtonGrowLength, formulaBaseHeight);
|
DeployFormula(ui->plainTextEditFormula, ui->pushButtonGrowLength, formulaBaseHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogCutSpline::ShowVisualization()
|
||||||
|
{
|
||||||
|
if (prepare == false)
|
||||||
|
{
|
||||||
|
VMainGraphicsScene *scene = qApp->getCurrentScene();
|
||||||
|
connect(scene, &VMainGraphicsScene::NewFactor, path, &Visualization::SetFactor);
|
||||||
|
scene->addItem(path);
|
||||||
|
path->RefreshGeometry();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -36,6 +36,8 @@ namespace Ui
|
||||||
class DialogCutSpline;
|
class DialogCutSpline;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class VisToolCutSpline;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The DialogCutSpline class dialog for ToolCutSpline.
|
* @brief The DialogCutSpline class dialog for ToolCutSpline.
|
||||||
*/
|
*/
|
||||||
|
@ -61,6 +63,7 @@ public slots:
|
||||||
*/
|
*/
|
||||||
void DeployFormulaTextEdit();
|
void DeployFormulaTextEdit();
|
||||||
protected:
|
protected:
|
||||||
|
virtual void ShowVisualization();
|
||||||
/**
|
/**
|
||||||
* @brief SaveData Put dialog data in local variables
|
* @brief SaveData Put dialog data in local variables
|
||||||
*/
|
*/
|
||||||
|
@ -71,9 +74,6 @@ private:
|
||||||
/** @brief ui keeps information about user interface */
|
/** @brief ui keeps information about user interface */
|
||||||
Ui::DialogCutSpline *ui;
|
Ui::DialogCutSpline *ui;
|
||||||
|
|
||||||
/** @brief pointName name of created point */
|
|
||||||
QString pointName;
|
|
||||||
|
|
||||||
/** @brief formula string with formula */
|
/** @brief formula string with formula */
|
||||||
QString formula;
|
QString formula;
|
||||||
|
|
||||||
|
@ -82,6 +82,8 @@ private:
|
||||||
|
|
||||||
/** @brief formulaBaseHeight base height defined by dialogui */
|
/** @brief formulaBaseHeight base height defined by dialogui */
|
||||||
int formulaBaseHeight;
|
int formulaBaseHeight;
|
||||||
|
|
||||||
|
VisToolCutSpline *path;
|
||||||
};
|
};
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -238,43 +238,6 @@
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="palette">
|
|
||||||
<palette>
|
|
||||||
<active>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</active>
|
|
||||||
<inactive>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</inactive>
|
|
||||||
<disabled>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>159</red>
|
|
||||||
<green>158</green>
|
|
||||||
<blue>158</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</disabled>
|
|
||||||
</palette>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Point label</string>
|
<string>Point label</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -429,7 +392,7 @@
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="standardButtons">
|
<property name="standardButtons">
|
||||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
<set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
|
@ -31,6 +31,8 @@
|
||||||
|
|
||||||
#include "../../geometry/vsplinepath.h"
|
#include "../../geometry/vsplinepath.h"
|
||||||
#include "../../container/vcontainer.h"
|
#include "../../container/vcontainer.h"
|
||||||
|
#include "../../xml/vpattern.h"
|
||||||
|
#include "../../visualization/vistoolcutsplinepath.h"
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
|
@ -39,18 +41,18 @@
|
||||||
* @param parent parent widget
|
* @param parent parent widget
|
||||||
*/
|
*/
|
||||||
DialogCutSplinePath::DialogCutSplinePath(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
DialogCutSplinePath::DialogCutSplinePath(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
||||||
:DialogTool(data, toolId, parent), ui(new Ui::DialogCutSplinePath), pointName(QString()), formula(QString()),
|
:DialogTool(data, toolId, parent), ui(new Ui::DialogCutSplinePath), formula(QString()),
|
||||||
splinePathId(NULL_ID), formulaBaseHeight(0)
|
splinePathId(NULL_ID), formulaBaseHeight(0), path(nullptr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
InitVariables(ui);
|
InitVariables(ui);
|
||||||
InitFormulaUI(ui);
|
InitFormulaUI(ui);
|
||||||
|
ui->lineEditNamePoint->setText(qApp->getCurrentDocument()->GenerateLabel(LabelType::NewLabel));
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
||||||
|
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
flagFormula = false;
|
flagFormula = false;
|
||||||
flagName = false;
|
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
||||||
FillComboBoxSplinesPath(ui->comboBoxSplinePath);
|
FillComboBoxSplinesPath(ui->comboBoxSplinePath);
|
||||||
|
@ -61,11 +63,14 @@ DialogCutSplinePath::DialogCutSplinePath(const VContainer *data, const quint32 &
|
||||||
connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, &DialogCutSplinePath::NamePointChanged);
|
connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, &DialogCutSplinePath::NamePointChanged);
|
||||||
connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, &DialogCutSplinePath::FormulaChanged);
|
connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, &DialogCutSplinePath::FormulaChanged);
|
||||||
connect(ui->pushButtonGrowLength, &QPushButton::clicked, this, &DialogCutSplinePath::DeployFormulaTextEdit);
|
connect(ui->pushButtonGrowLength, &QPushButton::clicked, this, &DialogCutSplinePath::DeployFormulaTextEdit);
|
||||||
|
|
||||||
|
path = new VisToolCutSplinePath(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
DialogCutSplinePath::~DialogCutSplinePath()
|
DialogCutSplinePath::~DialogCutSplinePath()
|
||||||
{
|
{
|
||||||
|
delete path;
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,6 +100,7 @@ void DialogCutSplinePath::setFormula(const QString &value)
|
||||||
this->DeployFormulaTextEdit();
|
this->DeployFormulaTextEdit();
|
||||||
}
|
}
|
||||||
ui->plainTextEditFormula->setPlainText(formula);
|
ui->plainTextEditFormula->setPlainText(formula);
|
||||||
|
path->setLength(formula);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -105,6 +111,7 @@ void DialogCutSplinePath::setFormula(const QString &value)
|
||||||
void DialogCutSplinePath::setSplinePathId(const quint32 &value)
|
void DialogCutSplinePath::setSplinePathId(const quint32 &value)
|
||||||
{
|
{
|
||||||
setCurrentSplinePathId(ui->comboBoxSplinePath, splinePathId, value, ComboBoxCutSpline::CutSpline);
|
setCurrentSplinePathId(ui->comboBoxSplinePath, splinePathId, value, ComboBoxCutSpline::CutSpline);
|
||||||
|
path->setPoint1Id(splinePathId);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -121,6 +128,8 @@ void DialogCutSplinePath::ChosenObject(quint32 id, const SceneObject &type)
|
||||||
{
|
{
|
||||||
if (SetObject(id, ui->comboBoxSplinePath, ""))
|
if (SetObject(id, ui->comboBoxSplinePath, ""))
|
||||||
{
|
{
|
||||||
|
path->VisualMode(id);
|
||||||
|
prepare = true;
|
||||||
this->setModal(true);
|
this->setModal(true);
|
||||||
this->show();
|
this->show();
|
||||||
}
|
}
|
||||||
|
@ -135,6 +144,10 @@ void DialogCutSplinePath::SaveData()
|
||||||
formula = ui->plainTextEditFormula->toPlainText();
|
formula = ui->plainTextEditFormula->toPlainText();
|
||||||
formula.replace("\n", " ");
|
formula.replace("\n", " ");
|
||||||
splinePathId = getCurrentObjectId(ui->comboBoxSplinePath);
|
splinePathId = getCurrentObjectId(ui->comboBoxSplinePath);
|
||||||
|
|
||||||
|
path->setPoint1Id(splinePathId);
|
||||||
|
path->setLength(formula);
|
||||||
|
path->RefreshGeometry();
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -142,3 +155,15 @@ void DialogCutSplinePath::DeployFormulaTextEdit()
|
||||||
{
|
{
|
||||||
DeployFormula(ui->plainTextEditFormula, ui->pushButtonGrowLength, formulaBaseHeight);
|
DeployFormula(ui->plainTextEditFormula, ui->pushButtonGrowLength, formulaBaseHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogCutSplinePath::ShowVisualization()
|
||||||
|
{
|
||||||
|
if (prepare == false)
|
||||||
|
{
|
||||||
|
VMainGraphicsScene *scene = qApp->getCurrentScene();
|
||||||
|
connect(scene, &VMainGraphicsScene::NewFactor, path, &Visualization::SetFactor);
|
||||||
|
scene->addItem(path);
|
||||||
|
path->RefreshGeometry();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -36,6 +36,8 @@ namespace Ui
|
||||||
class DialogCutSplinePath;
|
class DialogCutSplinePath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class VisToolCutSplinePath;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The DialogCutSplinePath class dialog for ToolCutSplinePath.
|
* @brief The DialogCutSplinePath class dialog for ToolCutSplinePath.
|
||||||
*/
|
*/
|
||||||
|
@ -61,6 +63,7 @@ public slots:
|
||||||
*/
|
*/
|
||||||
void DeployFormulaTextEdit();
|
void DeployFormulaTextEdit();
|
||||||
protected:
|
protected:
|
||||||
|
virtual void ShowVisualization();
|
||||||
/**
|
/**
|
||||||
* @brief SaveData Put dialog data in local variables
|
* @brief SaveData Put dialog data in local variables
|
||||||
*/
|
*/
|
||||||
|
@ -71,9 +74,6 @@ private:
|
||||||
/** @brief ui keeps information about user interface */
|
/** @brief ui keeps information about user interface */
|
||||||
Ui::DialogCutSplinePath *ui;
|
Ui::DialogCutSplinePath *ui;
|
||||||
|
|
||||||
/** @brief pointName name of created point */
|
|
||||||
QString pointName;
|
|
||||||
|
|
||||||
/** @brief formula string with formula */
|
/** @brief formula string with formula */
|
||||||
QString formula;
|
QString formula;
|
||||||
|
|
||||||
|
@ -82,6 +82,8 @@ private:
|
||||||
|
|
||||||
/** @brief formulaBaseHeight base height defined by dialogui */
|
/** @brief formulaBaseHeight base height defined by dialogui */
|
||||||
int formulaBaseHeight;
|
int formulaBaseHeight;
|
||||||
|
|
||||||
|
VisToolCutSplinePath *path;
|
||||||
};
|
};
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -238,43 +238,6 @@
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="palette">
|
|
||||||
<palette>
|
|
||||||
<active>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</active>
|
|
||||||
<inactive>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</inactive>
|
|
||||||
<disabled>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>159</red>
|
|
||||||
<green>158</green>
|
|
||||||
<blue>158</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</disabled>
|
|
||||||
</palette>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Point label</string>
|
<string>Point label</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -429,7 +392,7 @@
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="standardButtons">
|
<property name="standardButtons">
|
||||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
<set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
|
@ -31,7 +31,8 @@
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
DialogEditWrongFormula::DialogEditWrongFormula(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
DialogEditWrongFormula::DialogEditWrongFormula(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
||||||
:DialogTool(data, toolId, parent), ui(new Ui::DialogEditWrongFormula), formula(QString()), formulaBaseHeight(0)
|
:DialogTool(data, toolId, parent), ui(new Ui::DialogEditWrongFormula), formula(QString()), formulaBaseHeight(0),
|
||||||
|
checkZero(false), postfix(QStringLiteral("")), restoreCursor(false)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
InitVariables(ui);
|
InitVariables(ui);
|
||||||
|
@ -51,7 +52,14 @@ DialogEditWrongFormula::DialogEditWrongFormula(const VContainer *data, const qui
|
||||||
|
|
||||||
//Disable Qt::WaitCursor
|
//Disable Qt::WaitCursor
|
||||||
#ifndef QT_NO_CURSOR
|
#ifndef QT_NO_CURSOR
|
||||||
|
if (QApplication::overrideCursor() != nullptr)
|
||||||
|
{
|
||||||
|
if (QApplication::overrideCursor()->shape() == Qt::WaitCursor)
|
||||||
|
{
|
||||||
|
restoreCursor = true;
|
||||||
QApplication::restoreOverrideCursor();
|
QApplication::restoreOverrideCursor();
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,7 +67,10 @@ DialogEditWrongFormula::DialogEditWrongFormula(const VContainer *data, const qui
|
||||||
DialogEditWrongFormula::~DialogEditWrongFormula()
|
DialogEditWrongFormula::~DialogEditWrongFormula()
|
||||||
{
|
{
|
||||||
#ifndef QT_NO_CURSOR
|
#ifndef QT_NO_CURSOR
|
||||||
|
if (restoreCursor)
|
||||||
|
{
|
||||||
QApplication::setOverrideCursor(Qt::WaitCursor);
|
QApplication::setOverrideCursor(Qt::WaitCursor);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
@ -91,8 +102,7 @@ void DialogEditWrongFormula::EvalFormula()
|
||||||
{
|
{
|
||||||
SCASSERT(plainTextEditFormula != nullptr);
|
SCASSERT(plainTextEditFormula != nullptr);
|
||||||
SCASSERT(labelResultCalculation != nullptr);
|
SCASSERT(labelResultCalculation != nullptr);
|
||||||
const QString postfix = QStringLiteral("");
|
Eval(plainTextEditFormula->toPlainText(), flagFormula, timerFormula, labelResultCalculation, postfix, checkZero);
|
||||||
Eval(plainTextEditFormula->toPlainText(), flagFormula, timerFormula, labelResultCalculation, postfix);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -115,6 +125,18 @@ void DialogEditWrongFormula::setFormula(const QString &value)
|
||||||
ui->plainTextEditFormula->setPlainText(formula);
|
ui->plainTextEditFormula->setPlainText(formula);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogEditWrongFormula::setCheckZero(bool value)
|
||||||
|
{
|
||||||
|
checkZero = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogEditWrongFormula::setPostfix(const QString &value)
|
||||||
|
{
|
||||||
|
postfix = value;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QString DialogEditWrongFormula::getFormula() const
|
QString DialogEditWrongFormula::getFormula() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -53,6 +53,8 @@ public:
|
||||||
|
|
||||||
QString getFormula() const;
|
QString getFormula() const;
|
||||||
void setFormula(const QString &value);
|
void setFormula(const QString &value);
|
||||||
|
void setCheckZero(bool value);
|
||||||
|
void setPostfix(const QString &value);
|
||||||
public slots:
|
public slots:
|
||||||
virtual void DialogAccepted();
|
virtual void DialogAccepted();
|
||||||
virtual void DialogRejected();
|
virtual void DialogRejected();
|
||||||
|
@ -72,6 +74,10 @@ private:
|
||||||
|
|
||||||
/** @brief formulaBaseHeight base height defined by dialogui */
|
/** @brief formulaBaseHeight base height defined by dialogui */
|
||||||
int formulaBaseHeight;
|
int formulaBaseHeight;
|
||||||
|
|
||||||
|
bool checkZero;
|
||||||
|
QString postfix;
|
||||||
|
bool restoreCursor;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Edit wrong formula</string>
|
<string>Edit formula</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowIcon">
|
<property name="windowIcon">
|
||||||
<iconset resource="../../share/resources/icon.qrc">
|
<iconset resource="../../share/resources/icon.qrc">
|
||||||
|
|
|
@ -42,20 +42,20 @@
|
||||||
* @param parent parent widget
|
* @param parent parent widget
|
||||||
*/
|
*/
|
||||||
DialogEndLine::DialogEndLine(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
DialogEndLine::DialogEndLine(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
||||||
:DialogTool(data, toolId, parent), ui(new Ui::DialogEndLine), pointName(QString()), typeLine(QString()),
|
:DialogTool(data, toolId, parent), ui(new Ui::DialogEndLine), typeLine(QString()),
|
||||||
formulaLength(QString()), formulaAngle(QString()), basePointId(NULL_ID), formulaBaseHeight(0),
|
formulaLength(QString()), formulaAngle(QString()), basePointId(NULL_ID), formulaBaseHeight(0),
|
||||||
formulaBaseHeightAngle(0), line(nullptr)
|
formulaBaseHeightAngle(0), line(nullptr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
InitVariables(ui);
|
InitVariables(ui);
|
||||||
InitFormulaUI(ui);
|
InitFormulaUI(ui);
|
||||||
|
ui->lineEditNamePoint->setText(qApp->getCurrentDocument()->GenerateLabel(LabelType::NewLabel));
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
||||||
this->formulaBaseHeightAngle = ui->plainTextEditAngle->height();
|
this->formulaBaseHeightAngle = ui->plainTextEditAngle->height();
|
||||||
|
|
||||||
InitOkCancelApply(ui);
|
InitOkCancelApply(ui);
|
||||||
flagFormula = false;
|
flagFormula = false;
|
||||||
flagName = false;
|
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
||||||
FillComboBoxPoints(ui->comboBoxBasePoint);
|
FillComboBoxPoints(ui->comboBoxBasePoint);
|
||||||
|
|
|
@ -89,9 +89,6 @@ private:
|
||||||
/** @brief ui keeps information about user interface */
|
/** @brief ui keeps information about user interface */
|
||||||
Ui::DialogEndLine *ui;
|
Ui::DialogEndLine *ui;
|
||||||
|
|
||||||
/** @brief pointName name of point */
|
|
||||||
QString pointName;
|
|
||||||
|
|
||||||
/** @brief typeLine type of line */
|
/** @brief typeLine type of line */
|
||||||
QString typeLine;
|
QString typeLine;
|
||||||
|
|
||||||
|
|
|
@ -323,7 +323,7 @@
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Value of length</string>
|
<string>Value of angle</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>_</string>
|
<string>_</string>
|
||||||
|
@ -423,43 +423,6 @@
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="palette">
|
|
||||||
<palette>
|
|
||||||
<active>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</active>
|
|
||||||
<inactive>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</inactive>
|
|
||||||
<disabled>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>159</red>
|
|
||||||
<green>158</green>
|
|
||||||
<blue>158</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</disabled>
|
|
||||||
</palette>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Point label</string>
|
<string>Point label</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
@ -42,13 +42,13 @@
|
||||||
* @param parent parent widget
|
* @param parent parent widget
|
||||||
*/
|
*/
|
||||||
DialogHeight::DialogHeight(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
DialogHeight::DialogHeight(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
||||||
:DialogTool(data, toolId, parent), ui(new Ui::DialogHeight), number(0), pointName(QString()),
|
:DialogTool(data, toolId, parent), ui(new Ui::DialogHeight), number(0),
|
||||||
typeLine(QString()), basePointId(NULL_ID), p1LineId(NULL_ID), p2LineId(NULL_ID), line(nullptr)
|
typeLine(QString()), basePointId(NULL_ID), p1LineId(NULL_ID), p2LineId(NULL_ID), line(nullptr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
ui->lineEditNamePoint->setText(qApp->getCurrentDocument()->GenerateLabel(LabelType::NewLabel));
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
InitOkCancelApply(ui);
|
InitOkCancelApply(ui);
|
||||||
flagName = false;
|
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
||||||
FillComboBoxPoints(ui->comboBoxBasePoint);
|
FillComboBoxPoints(ui->comboBoxBasePoint);
|
||||||
|
|
|
@ -81,9 +81,6 @@ private:
|
||||||
/** @brief number number of handled objects */
|
/** @brief number number of handled objects */
|
||||||
qint32 number;
|
qint32 number;
|
||||||
|
|
||||||
/** @brief pointName name of point */
|
|
||||||
QString pointName;
|
|
||||||
|
|
||||||
/** @brief typeLine type of line */
|
/** @brief typeLine type of line */
|
||||||
QString typeLine;
|
QString typeLine;
|
||||||
|
|
||||||
|
|
|
@ -31,43 +31,6 @@
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="palette">
|
|
||||||
<palette>
|
|
||||||
<active>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</active>
|
|
||||||
<inactive>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</inactive>
|
|
||||||
<disabled>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>159</red>
|
|
||||||
<green>158</green>
|
|
||||||
<blue>158</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</disabled>
|
|
||||||
</palette>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Point label</string>
|
<string>Point label</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
#include "../../container/vcontainer.h"
|
#include "../../container/vcontainer.h"
|
||||||
#include "../../visualization/vistoollineintersect.h"
|
#include "../../visualization/vistoollineintersect.h"
|
||||||
#include "../../widgets/vmaingraphicsscene.h"
|
#include "../../widgets/vmaingraphicsscene.h"
|
||||||
|
#include "../../xml/vpattern.h"
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
|
@ -41,14 +42,14 @@
|
||||||
* @param parent parent widget
|
* @param parent parent widget
|
||||||
*/
|
*/
|
||||||
DialogLineIntersect::DialogLineIntersect(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
DialogLineIntersect::DialogLineIntersect(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
||||||
:DialogTool(data, toolId, parent), ui(new Ui::DialogLineIntersect), number(0), pointName(QString()),
|
:DialogTool(data, toolId, parent), ui(new Ui::DialogLineIntersect), number(0),
|
||||||
p1Line1(NULL_ID), p2Line1(NULL_ID), p1Line2(NULL_ID), p2Line2(NULL_ID), flagPoint(true), line(nullptr)
|
p1Line1(NULL_ID), p2Line1(NULL_ID), p1Line2(NULL_ID), p2Line2(NULL_ID), flagPoint(true), line(nullptr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
number = 0;
|
number = 0;
|
||||||
InitOkCancelApply(ui);
|
InitOkCancelApply(ui);
|
||||||
|
ui->lineEditNamePoint->setText(qApp->getCurrentDocument()->GenerateLabel(LabelType::NewLabel));
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
flagName = false;
|
|
||||||
|
|
||||||
FillComboBoxPoints(ui->comboBoxP1Line1);
|
FillComboBoxPoints(ui->comboBoxP1Line1);
|
||||||
FillComboBoxPoints(ui->comboBoxP2Line1);
|
FillComboBoxPoints(ui->comboBoxP2Line1);
|
||||||
|
|
|
@ -85,9 +85,6 @@ private:
|
||||||
/** @brief number number of handled objects */
|
/** @brief number number of handled objects */
|
||||||
qint32 number;
|
qint32 number;
|
||||||
|
|
||||||
/** @brief pointName name of point */
|
|
||||||
QString pointName;
|
|
||||||
|
|
||||||
/** @brief p1Line1 id first point of first line */
|
/** @brief p1Line1 id first point of first line */
|
||||||
quint32 p1Line1;
|
quint32 p1Line1;
|
||||||
|
|
||||||
|
|
|
@ -31,43 +31,6 @@
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="palette">
|
|
||||||
<palette>
|
|
||||||
<active>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</active>
|
|
||||||
<inactive>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</inactive>
|
|
||||||
<disabled>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>159</red>
|
|
||||||
<green>158</green>
|
|
||||||
<blue>158</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</disabled>
|
|
||||||
</palette>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Point label</string>
|
<string>Point label</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
@ -39,18 +39,18 @@
|
||||||
* @param parent parent widget
|
* @param parent parent widget
|
||||||
*/
|
*/
|
||||||
DialogNormal::DialogNormal(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
DialogNormal::DialogNormal(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
||||||
:DialogTool(data, toolId, parent), ui(new Ui::DialogNormal), number(0), pointName(QString()), typeLine(QString()),
|
:DialogTool(data, toolId, parent), ui(new Ui::DialogNormal), number(0), typeLine(QString()),
|
||||||
formula(QString()), angle(0), firstPointId(NULL_ID), secondPointId(NULL_ID), formulaBaseHeight(0), line(nullptr)
|
formula(QString()), angle(0), firstPointId(NULL_ID), secondPointId(NULL_ID), formulaBaseHeight(0), line(nullptr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
InitVariables(ui);
|
InitVariables(ui);
|
||||||
InitFormulaUI(ui);
|
InitFormulaUI(ui);
|
||||||
|
ui->lineEditNamePoint->setText(qApp->getCurrentDocument()->GenerateLabel(LabelType::NewLabel));
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
||||||
|
|
||||||
InitOkCancelApply(ui);
|
InitOkCancelApply(ui);
|
||||||
flagFormula = false;
|
flagFormula = false;
|
||||||
flagName = false;
|
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
||||||
FillComboBoxPoints(ui->comboBoxFirstPoint);
|
FillComboBoxPoints(ui->comboBoxFirstPoint);
|
||||||
|
|
|
@ -91,9 +91,6 @@ private:
|
||||||
/** @brief number number of handled objects */
|
/** @brief number number of handled objects */
|
||||||
qint32 number;
|
qint32 number;
|
||||||
|
|
||||||
/** @brief pointName name of point */
|
|
||||||
QString pointName;
|
|
||||||
|
|
||||||
/** @brief typeLine type of line */
|
/** @brief typeLine type of line */
|
||||||
QString typeLine;
|
QString typeLine;
|
||||||
|
|
||||||
|
|
|
@ -220,43 +220,6 @@
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="palette">
|
|
||||||
<palette>
|
|
||||||
<active>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</active>
|
|
||||||
<inactive>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</inactive>
|
|
||||||
<disabled>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>159</red>
|
|
||||||
<green>158</green>
|
|
||||||
<blue>158</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</disabled>
|
|
||||||
</palette>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Point label</string>
|
<string>Point label</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
#include "../../container/vcontainer.h"
|
#include "../../container/vcontainer.h"
|
||||||
#include "../../visualization/vistoolpointofcontact.h"
|
#include "../../visualization/vistoolpointofcontact.h"
|
||||||
#include "../../widgets/vmaingraphicsscene.h"
|
#include "../../widgets/vmaingraphicsscene.h"
|
||||||
|
#include "../../xml/vpattern.h"
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
|
@ -40,18 +41,18 @@
|
||||||
* @param parent parent widget
|
* @param parent parent widget
|
||||||
*/
|
*/
|
||||||
DialogPointOfContact::DialogPointOfContact(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
DialogPointOfContact::DialogPointOfContact(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
||||||
:DialogTool(data, toolId, parent), ui(new Ui::DialogPointOfContact), number(0), pointName(QString()),
|
:DialogTool(data, toolId, parent), ui(new Ui::DialogPointOfContact), number(0),
|
||||||
radius(QString()), center(NULL_ID), firstPoint(NULL_ID), secondPoint(NULL_ID), formulaBaseHeight(0), line(nullptr)
|
radius(QString()), center(NULL_ID), firstPoint(NULL_ID), secondPoint(NULL_ID), formulaBaseHeight(0), line(nullptr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
InitVariables(ui);
|
InitVariables(ui);
|
||||||
InitFormulaUI(ui);
|
InitFormulaUI(ui);
|
||||||
|
ui->lineEditNamePoint->setText(qApp->getCurrentDocument()->GenerateLabel(LabelType::NewLabel));
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
||||||
|
|
||||||
InitOkCancelApply(ui);
|
InitOkCancelApply(ui);
|
||||||
flagFormula = false;
|
flagFormula = false;
|
||||||
flagName = false;
|
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
||||||
FillComboBoxPoints(ui->comboBoxFirstPoint);
|
FillComboBoxPoints(ui->comboBoxFirstPoint);
|
||||||
|
|
|
@ -89,9 +89,6 @@ private:
|
||||||
/** @brief number number of handled objects */
|
/** @brief number number of handled objects */
|
||||||
qint32 number;
|
qint32 number;
|
||||||
|
|
||||||
/** @brief pointName name of point */
|
|
||||||
QString pointName;
|
|
||||||
|
|
||||||
/** @brief radius radius of arc */
|
/** @brief radius radius of arc */
|
||||||
QString radius;
|
QString radius;
|
||||||
|
|
||||||
|
|
|
@ -220,43 +220,6 @@
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="palette">
|
|
||||||
<palette>
|
|
||||||
<active>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</active>
|
|
||||||
<inactive>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</inactive>
|
|
||||||
<disabled>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>159</red>
|
|
||||||
<green>158</green>
|
|
||||||
<blue>158</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</disabled>
|
|
||||||
</palette>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Point label</string>
|
<string>Point label</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
#include "../../container/vcontainer.h"
|
#include "../../container/vcontainer.h"
|
||||||
#include "../../visualization/vistoolpointofintersection.h"
|
#include "../../visualization/vistoolpointofintersection.h"
|
||||||
#include "../../widgets/vmaingraphicsscene.h"
|
#include "../../widgets/vmaingraphicsscene.h"
|
||||||
|
#include "../../xml/vpattern.h"
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
|
@ -41,14 +42,14 @@
|
||||||
* @param parent parent widget
|
* @param parent parent widget
|
||||||
*/
|
*/
|
||||||
DialogPointOfIntersection::DialogPointOfIntersection(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
DialogPointOfIntersection::DialogPointOfIntersection(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
||||||
:DialogTool(data, toolId, parent), ui(new Ui::DialogPointOfIntersection), number(0), pointName(QString()),
|
:DialogTool(data, toolId, parent), ui(new Ui::DialogPointOfIntersection), number(0),
|
||||||
firstPointId(NULL_ID), secondPointId(NULL_ID), line(nullptr)
|
firstPointId(NULL_ID), secondPointId(NULL_ID), line(nullptr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
ui->lineEditNamePoint->setText(qApp->getCurrentDocument()->GenerateLabel(LabelType::NewLabel));
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
|
|
||||||
InitOkCancelApply(ui);
|
InitOkCancelApply(ui);
|
||||||
flagName = false;
|
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
||||||
FillComboBoxPoints(ui->comboBoxFirstPoint);
|
FillComboBoxPoints(ui->comboBoxFirstPoint);
|
||||||
|
|
|
@ -75,9 +75,6 @@ private:
|
||||||
/** @brief number number of handled objects */
|
/** @brief number number of handled objects */
|
||||||
qint32 number;
|
qint32 number;
|
||||||
|
|
||||||
/** @brief pointName name of point */
|
|
||||||
QString pointName;
|
|
||||||
|
|
||||||
/** @brief firstPointId id first point of line */
|
/** @brief firstPointId id first point of line */
|
||||||
quint32 firstPointId;
|
quint32 firstPointId;
|
||||||
|
|
||||||
|
|
|
@ -28,43 +28,6 @@
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="palette">
|
|
||||||
<palette>
|
|
||||||
<active>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</active>
|
|
||||||
<inactive>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</inactive>
|
|
||||||
<disabled>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>159</red>
|
|
||||||
<green>158</green>
|
|
||||||
<blue>158</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</disabled>
|
|
||||||
</palette>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Point label</string>
|
<string>Point label</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
@ -42,19 +42,19 @@
|
||||||
* @param parent parent widget
|
* @param parent parent widget
|
||||||
*/
|
*/
|
||||||
DialogShoulderPoint::DialogShoulderPoint(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
DialogShoulderPoint::DialogShoulderPoint(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
||||||
:DialogTool(data, toolId, parent), ui(new Ui::DialogShoulderPoint), number(0), pointName(QString()),
|
:DialogTool(data, toolId, parent), ui(new Ui::DialogShoulderPoint), number(0),
|
||||||
typeLine(QString()), formula(QString()), p1Line(NULL_ID), p2Line(NULL_ID), pShoulder(NULL_ID), formulaBaseHeight(0),
|
typeLine(QString()), formula(QString()), p1Line(NULL_ID), p2Line(NULL_ID), pShoulder(NULL_ID), formulaBaseHeight(0),
|
||||||
line (nullptr)
|
line (nullptr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
InitVariables(ui);
|
InitVariables(ui);
|
||||||
InitFormulaUI(ui);
|
InitFormulaUI(ui);
|
||||||
|
ui->lineEditNamePoint->setText(qApp->getCurrentDocument()->GenerateLabel(LabelType::NewLabel));
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
this->formulaBaseHeight = ui->plainTextEditFormula->height();
|
||||||
|
|
||||||
InitOkCancelApply(ui);
|
InitOkCancelApply(ui);
|
||||||
flagFormula = false;
|
flagFormula = false;
|
||||||
flagName = false;
|
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
||||||
FillComboBoxTypeLine(ui->comboBoxLineType);
|
FillComboBoxTypeLine(ui->comboBoxLineType);
|
||||||
|
|
|
@ -91,9 +91,6 @@ private:
|
||||||
/** @brief number number of handled objects */
|
/** @brief number number of handled objects */
|
||||||
qint32 number;
|
qint32 number;
|
||||||
|
|
||||||
/** @brief pointName name of point */
|
|
||||||
QString pointName;
|
|
||||||
|
|
||||||
/** @brief typeLine type of line */
|
/** @brief typeLine type of line */
|
||||||
QString typeLine;
|
QString typeLine;
|
||||||
|
|
||||||
|
|
|
@ -220,43 +220,6 @@
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="palette">
|
|
||||||
<palette>
|
|
||||||
<active>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</active>
|
|
||||||
<inactive>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</inactive>
|
|
||||||
<disabled>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>159</red>
|
|
||||||
<green>158</green>
|
|
||||||
<blue>158</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</disabled>
|
|
||||||
</palette>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Point label</string>
|
<string>Point label</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
@ -73,43 +73,6 @@
|
||||||
<height>17</height>
|
<height>17</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="palette">
|
|
||||||
<palette>
|
|
||||||
<active>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</active>
|
|
||||||
<inactive>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</inactive>
|
|
||||||
<disabled>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>159</red>
|
|
||||||
<green>158</green>
|
|
||||||
<blue>158</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</disabled>
|
|
||||||
</palette>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Point label</string>
|
<string>Point label</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#include "ui_dialogsplinepath.h"
|
#include "ui_dialogsplinepath.h"
|
||||||
#include "../../geometry/vsplinepoint.h"
|
#include "../../geometry/vsplinepoint.h"
|
||||||
#include "../../container/vcontainer.h"
|
#include "../../container/vcontainer.h"
|
||||||
|
#include "../../visualization/vistoolsplinepath.h"
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
|
@ -38,10 +39,10 @@
|
||||||
* @param parent parent widget
|
* @param parent parent widget
|
||||||
*/
|
*/
|
||||||
DialogSplinePath::DialogSplinePath(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
DialogSplinePath::DialogSplinePath(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
||||||
:DialogTool(data, toolId, parent), ui(new Ui::DialogSplinePath), path(VSplinePath())
|
:DialogTool(data, toolId, parent), ui(new Ui::DialogSplinePath), path(VSplinePath()), visPath(nullptr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
bOk->setEnabled(false);
|
bOk->setEnabled(false);
|
||||||
|
|
||||||
FillComboBoxPoints(ui->comboBoxPoint);
|
FillComboBoxPoints(ui->comboBoxPoint);
|
||||||
|
@ -57,11 +58,14 @@ DialogSplinePath::DialogSplinePath(const VContainer *data, const quint32 &toolId
|
||||||
this, &DialogSplinePath::KAsm1Changed);
|
this, &DialogSplinePath::KAsm1Changed);
|
||||||
connect(ui->doubleSpinBoxKasm2, static_cast<void (QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged),
|
connect(ui->doubleSpinBoxKasm2, static_cast<void (QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged),
|
||||||
this, &DialogSplinePath::KAsm2Changed);
|
this, &DialogSplinePath::KAsm2Changed);
|
||||||
|
|
||||||
|
visPath = new VisToolSplinePath(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
DialogSplinePath::~DialogSplinePath()
|
DialogSplinePath::~DialogSplinePath()
|
||||||
{
|
{
|
||||||
|
delete visPath;
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,6 +77,7 @@ DialogSplinePath::~DialogSplinePath()
|
||||||
void DialogSplinePath::SetPath(const VSplinePath &value)
|
void DialogSplinePath::SetPath(const VSplinePath &value)
|
||||||
{
|
{
|
||||||
this->path = value;
|
this->path = value;
|
||||||
|
ui->listWidget->blockSignals(true);
|
||||||
ui->listWidget->clear();
|
ui->listWidget->clear();
|
||||||
for (qint32 i = 0; i < path.CountPoint(); ++i)
|
for (qint32 i = 0; i < path.CountPoint(); ++i)
|
||||||
{
|
{
|
||||||
|
@ -80,6 +85,9 @@ void DialogSplinePath::SetPath(const VSplinePath &value)
|
||||||
}
|
}
|
||||||
ui->listWidget->setFocus(Qt::OtherFocusReason);
|
ui->listWidget->setFocus(Qt::OtherFocusReason);
|
||||||
ui->doubleSpinBoxKcurve->setValue(path.getKCurve());
|
ui->doubleSpinBoxKcurve->setValue(path.getKCurve());
|
||||||
|
|
||||||
|
visPath->setPath(path);
|
||||||
|
ui->listWidget->blockSignals(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -94,20 +102,29 @@ void DialogSplinePath::ChosenObject(quint32 id, const SceneObject &type)
|
||||||
{
|
{
|
||||||
NewItem(id, 1, 0, 1, 180);
|
NewItem(id, 1, 0, 1, 180);
|
||||||
emit ToolTip(tr("Select point of curve path"));
|
emit ToolTip(tr("Select point of curve path"));
|
||||||
this->show();
|
|
||||||
|
SavePath();
|
||||||
|
visPath->setPath(path);
|
||||||
|
if (path.CountPoint() == 1)
|
||||||
|
{
|
||||||
|
visPath->VisualMode(NULL_ID);
|
||||||
|
connect(visPath, &VisToolSplinePath::ToolTip, this, &DialogTool::ShowVisToolTip);
|
||||||
|
connect(visPath, &VisToolSplinePath::PathChanged, this, &DialogSplinePath::PathUpdated);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
visPath->RefreshGeometry();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogSplinePath::SaveData()
|
void DialogSplinePath::SaveData()
|
||||||
{
|
{
|
||||||
path.Clear();
|
SavePath();
|
||||||
for (qint32 i = 0; i < ui->listWidget->count(); ++i)
|
|
||||||
{
|
visPath->setPath(path);
|
||||||
QListWidgetItem *item = ui->listWidget->item(i);
|
visPath->RefreshGeometry();
|
||||||
path.append( qvariant_cast<VSplinePoint>(item->data(Qt::UserRole)));
|
|
||||||
}
|
|
||||||
path.setKCurve(ui->doubleSpinBoxKcurve->value());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -214,6 +231,35 @@ void DialogSplinePath::UpdateList()
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSplinePath::ShowDialog(bool click)
|
||||||
|
{
|
||||||
|
if (click == false)
|
||||||
|
{
|
||||||
|
emit ToolTip("");
|
||||||
|
DialogAccepted();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSplinePath::PathUpdated(const VSplinePath &path)
|
||||||
|
{
|
||||||
|
SetPath(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSplinePath::ShowVisualization()
|
||||||
|
{
|
||||||
|
if (prepare == false)
|
||||||
|
{
|
||||||
|
VMainGraphicsScene *scene = qApp->getCurrentScene();
|
||||||
|
connect(scene, &VMainGraphicsScene::NewFactor, visPath, &Visualization::SetFactor);
|
||||||
|
scene->addItem(visPath);
|
||||||
|
visPath->setMode(Mode::Show);
|
||||||
|
visPath->RefreshGeometry();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief NewItem add point to list
|
* @brief NewItem add point to list
|
||||||
|
@ -228,7 +274,7 @@ void DialogSplinePath::NewItem(quint32 id, qreal kAsm1, qreal angle1, qreal kAsm
|
||||||
const QSharedPointer<VPointF> point = data->GeometricObject<VPointF>(id);
|
const QSharedPointer<VPointF> point = data->GeometricObject<VPointF>(id);
|
||||||
QListWidgetItem *item = new QListWidgetItem(point->name());
|
QListWidgetItem *item = new QListWidgetItem(point->name());
|
||||||
item->setFont(QFont("Times", 12, QFont::Bold));
|
item->setFont(QFont("Times", 12, QFont::Bold));
|
||||||
VSplinePoint p(*point, kAsm1, angle1, kAsm2, angle2);
|
VSplinePoint p(*point.data(), kAsm1, angle1, kAsm2, angle2);
|
||||||
DataPoint(point->id(), kAsm1, angle1, kAsm2, angle2);
|
DataPoint(point->id(), kAsm1, angle1, kAsm2, angle2);
|
||||||
item->setData(Qt::UserRole, QVariant::fromValue(p));
|
item->setData(Qt::UserRole, QVariant::fromValue(p));
|
||||||
ui->listWidget->addItem(item);
|
ui->listWidget->addItem(item);
|
||||||
|
@ -295,3 +341,15 @@ void DialogSplinePath::EnableFields()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSplinePath::SavePath()
|
||||||
|
{
|
||||||
|
path.Clear();
|
||||||
|
for (qint32 i = 0; i < ui->listWidget->count(); ++i)
|
||||||
|
{
|
||||||
|
QListWidgetItem *item = ui->listWidget->item(i);
|
||||||
|
path.append( qvariant_cast<VSplinePoint>(item->data(Qt::UserRole)));
|
||||||
|
}
|
||||||
|
path.setKCurve(ui->doubleSpinBoxKcurve->value());
|
||||||
|
}
|
||||||
|
|
|
@ -37,6 +37,8 @@ namespace Ui
|
||||||
class DialogSplinePath;
|
class DialogSplinePath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class VisToolSplinePath;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The DialogSplinePath class dialog for ToolSplinePath. Help create spline path and edit option.
|
* @brief The DialogSplinePath class dialog for ToolSplinePath. Help create spline path and edit option.
|
||||||
*/
|
*/
|
||||||
|
@ -58,7 +60,10 @@ public slots:
|
||||||
void KAsm1Changed(qreal d);
|
void KAsm1Changed(qreal d);
|
||||||
void KAsm2Changed(qreal d);
|
void KAsm2Changed(qreal d);
|
||||||
virtual void UpdateList();
|
virtual void UpdateList();
|
||||||
|
virtual void ShowDialog(bool click);
|
||||||
|
void PathUpdated(const VSplinePath &path);
|
||||||
protected:
|
protected:
|
||||||
|
virtual void ShowVisualization();
|
||||||
/**
|
/**
|
||||||
* @brief SaveData Put dialog data in local variables
|
* @brief SaveData Put dialog data in local variables
|
||||||
*/
|
*/
|
||||||
|
@ -72,9 +77,12 @@ private:
|
||||||
/** @brief path spline path */
|
/** @brief path spline path */
|
||||||
VSplinePath path;
|
VSplinePath path;
|
||||||
|
|
||||||
|
VisToolSplinePath *visPath;
|
||||||
|
|
||||||
void NewItem(quint32 id, qreal kAsm1, qreal angle1, qreal kAsm2, qreal angle2);
|
void NewItem(quint32 id, qreal kAsm1, qreal angle1, qreal kAsm2, qreal angle2);
|
||||||
void DataPoint(quint32 id, qreal kAsm1, qreal angle1, qreal kAsm2, qreal angle2);
|
void DataPoint(quint32 id, qreal kAsm1, qreal angle1, qreal kAsm2, qreal angle2);
|
||||||
void EnableFields();
|
void EnableFields();
|
||||||
|
void SavePath();
|
||||||
};
|
};
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -191,7 +191,7 @@
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="standardButtons">
|
<property name="standardButtons">
|
||||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
<set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
|
@ -63,7 +63,8 @@ DialogTool::DialogTool(const VContainer *data, const quint32 &toolId, QWidget *p
|
||||||
labelEditFormula(nullptr), radioButtonSizeGrowth(nullptr), radioButtonStandardTable(nullptr),
|
labelEditFormula(nullptr), radioButtonSizeGrowth(nullptr), radioButtonStandardTable(nullptr),
|
||||||
radioButtonIncrements(nullptr), radioButtonLengthLine(nullptr), radioButtonLengthArc(nullptr),
|
radioButtonIncrements(nullptr), radioButtonLengthLine(nullptr), radioButtonLengthArc(nullptr),
|
||||||
radioButtonLengthCurve(nullptr), radioButtonAngleLine(nullptr), lineStyles(VAbstractTool::Styles()),
|
radioButtonLengthCurve(nullptr), radioButtonAngleLine(nullptr), lineStyles(VAbstractTool::Styles()),
|
||||||
okColor(QColor(76, 76, 76)), errorColor(Qt::red), associatedTool(nullptr), toolId(toolId), prepare(false)
|
okColor(QColor(76, 76, 76)), errorColor(Qt::red), associatedTool(nullptr), toolId(toolId), prepare(false),
|
||||||
|
pointName(QString())
|
||||||
{
|
{
|
||||||
SCASSERT(data != nullptr);
|
SCASSERT(data != nullptr);
|
||||||
timerFormula = new QTimer(this);
|
timerFormula = new QTimer(this);
|
||||||
|
@ -377,11 +378,13 @@ void DialogTool::ValFormulaChanged(bool &flag, QLineEdit *edit, QTimer *timer)
|
||||||
SCASSERT(edit != nullptr);
|
SCASSERT(edit != nullptr);
|
||||||
SCASSERT(timer != nullptr);
|
SCASSERT(timer != nullptr);
|
||||||
SCASSERT(labelEditFormula != nullptr);
|
SCASSERT(labelEditFormula != nullptr);
|
||||||
|
SCASSERT(labelResultCalculation != nullptr);
|
||||||
if (edit->text().isEmpty())
|
if (edit->text().isEmpty())
|
||||||
{
|
{
|
||||||
flag = false;
|
flag = false;
|
||||||
CheckState();
|
CheckState();
|
||||||
ChangeColor(labelEditFormula, Qt::red);
|
ChangeColor(labelEditFormula, Qt::red);
|
||||||
|
labelResultCalculation->setText(tr("Error"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
timer->start(1000);
|
timer->start(1000);
|
||||||
|
@ -392,11 +395,13 @@ void DialogTool::ValFormulaChanged(bool &flag, QPlainTextEdit *edit, QTimer *tim
|
||||||
SCASSERT(edit != nullptr);
|
SCASSERT(edit != nullptr);
|
||||||
SCASSERT(timer != nullptr);
|
SCASSERT(timer != nullptr);
|
||||||
SCASSERT(labelEditFormula != nullptr);
|
SCASSERT(labelEditFormula != nullptr);
|
||||||
|
SCASSERT(labelResultCalculation != nullptr);
|
||||||
if (edit->toPlainText().isEmpty())
|
if (edit->toPlainText().isEmpty())
|
||||||
{
|
{
|
||||||
flag = false;
|
flag = false;
|
||||||
CheckState();
|
CheckState();
|
||||||
ChangeColor(labelEditFormula, Qt::red);
|
ChangeColor(labelEditFormula, Qt::red);
|
||||||
|
labelResultCalculation->setText(tr("Error"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
timer->setSingleShot(true);
|
timer->setSingleShot(true);
|
||||||
|
@ -423,6 +428,8 @@ void DialogTool::Eval(const QString &text, bool &flag, QTimer *timer, QLabel *la
|
||||||
{
|
{
|
||||||
flag = false;
|
flag = false;
|
||||||
ChangeColor(labelEditFormula, Qt::red);
|
ChangeColor(labelEditFormula, Qt::red);
|
||||||
|
label->setText(tr("Error"));
|
||||||
|
label->setToolTip(tr("Empty field"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -441,6 +448,8 @@ void DialogTool::Eval(const QString &text, bool &flag, QTimer *timer, QLabel *la
|
||||||
{
|
{
|
||||||
flag = false;
|
flag = false;
|
||||||
ChangeColor(labelEditFormula, Qt::red);
|
ChangeColor(labelEditFormula, Qt::red);
|
||||||
|
label->setText(tr("Error"));
|
||||||
|
label->setToolTip(tr("Value can't be 0"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -456,6 +465,7 @@ void DialogTool::Eval(const QString &text, bool &flag, QTimer *timer, QLabel *la
|
||||||
label->setText(loc.toString(result) + postfix);
|
label->setText(loc.toString(result) + postfix);
|
||||||
flag = true;
|
flag = true;
|
||||||
ChangeColor(labelEditFormula, okColor);
|
ChangeColor(labelEditFormula, okColor);
|
||||||
|
label->setToolTip(tr("Value"));
|
||||||
emit ToolTip("");
|
emit ToolTip("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -465,6 +475,7 @@ void DialogTool::Eval(const QString &text, bool &flag, QTimer *timer, QLabel *la
|
||||||
flag = false;
|
flag = false;
|
||||||
ChangeColor(labelEditFormula, Qt::red);
|
ChangeColor(labelEditFormula, Qt::red);
|
||||||
emit ToolTip("Parser error: "+e.GetMsg());
|
emit ToolTip("Parser error: "+e.GetMsg());
|
||||||
|
label->setToolTip("Parser error: "+e.GetMsg());
|
||||||
qDebug() << "\nMath parser error:\n"
|
qDebug() << "\nMath parser error:\n"
|
||||||
<< "--------------------------------------\n"
|
<< "--------------------------------------\n"
|
||||||
<< "Message: " << e.GetMsg() << "\n"
|
<< "Message: " << e.GetMsg() << "\n"
|
||||||
|
@ -653,7 +664,8 @@ void DialogTool::NamePointChanged()
|
||||||
if (edit)
|
if (edit)
|
||||||
{
|
{
|
||||||
QString name = edit->text();
|
QString name = edit->text();
|
||||||
if (name.isEmpty() || name.contains(" "))
|
name.replace(" ", "");
|
||||||
|
if (name.isEmpty() || (pointName != name && data->IsUnique(name) == false))
|
||||||
{
|
{
|
||||||
flagName = false;
|
flagName = false;
|
||||||
ChangeColor(labelEditNamePoint, Qt::red);
|
ChangeColor(labelEditNamePoint, Qt::red);
|
||||||
|
|
|
@ -200,6 +200,9 @@ protected:
|
||||||
/** @brief prepare show if we prepare. Show dialog after finish working with visual part of tool*/
|
/** @brief prepare show if we prepare. Show dialog after finish working with visual part of tool*/
|
||||||
bool prepare;
|
bool prepare;
|
||||||
|
|
||||||
|
/** @brief pointName name of point */
|
||||||
|
QString pointName;
|
||||||
|
|
||||||
virtual void closeEvent ( QCloseEvent * event );
|
virtual void closeEvent ( QCloseEvent * event );
|
||||||
virtual void showEvent( QShowEvent *event );
|
virtual void showEvent( QShowEvent *event );
|
||||||
void FillComboBoxPoints(QComboBox *box)const;
|
void FillComboBoxPoints(QComboBox *box)const;
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
#include "../../container/vcontainer.h"
|
#include "../../container/vcontainer.h"
|
||||||
#include "../../visualization/vistooltriangle.h"
|
#include "../../visualization/vistooltriangle.h"
|
||||||
#include "../../widgets/vmaingraphicsscene.h"
|
#include "../../widgets/vmaingraphicsscene.h"
|
||||||
|
#include "../../xml/vpattern.h"
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
|
@ -40,14 +41,14 @@
|
||||||
* @param parent parent widget
|
* @param parent parent widget
|
||||||
*/
|
*/
|
||||||
DialogTriangle::DialogTriangle(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
DialogTriangle::DialogTriangle(const VContainer *data, const quint32 &toolId, QWidget *parent)
|
||||||
:DialogTool(data, toolId, parent), ui(new Ui::DialogTriangle), number(0), pointName(QString()), axisP1Id(NULL_ID),
|
:DialogTool(data, toolId, parent), ui(new Ui::DialogTriangle), number(0), axisP1Id(NULL_ID),
|
||||||
axisP2Id(NULL_ID), firstPointId(NULL_ID), secondPointId(NULL_ID), line (nullptr)
|
axisP2Id(NULL_ID), firstPointId(NULL_ID), secondPointId(NULL_ID), line (nullptr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
ui->lineEditNamePoint->setText(qApp->getCurrentDocument()->GenerateLabel(LabelType::NewLabel));
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
|
|
||||||
InitOkCancelApply(ui);
|
InitOkCancelApply(ui);
|
||||||
flagName = false;
|
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
||||||
FillComboBoxPoints(ui->comboBoxAxisP1);
|
FillComboBoxPoints(ui->comboBoxAxisP1);
|
||||||
|
|
|
@ -80,9 +80,6 @@ private:
|
||||||
/** @brief number number of handled objects */
|
/** @brief number number of handled objects */
|
||||||
qint32 number;
|
qint32 number;
|
||||||
|
|
||||||
/** @brief pointName name of point */
|
|
||||||
QString pointName;
|
|
||||||
|
|
||||||
/** @brief axisP1Id id first point of axis */
|
/** @brief axisP1Id id first point of axis */
|
||||||
quint32 axisP1Id;
|
quint32 axisP1Id;
|
||||||
|
|
||||||
|
|
|
@ -31,43 +31,6 @@
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="palette">
|
|
||||||
<palette>
|
|
||||||
<active>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</active>
|
|
||||||
<inactive>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>255</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</inactive>
|
|
||||||
<disabled>
|
|
||||||
<colorrole role="WindowText">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>159</red>
|
|
||||||
<green>158</green>
|
|
||||||
<blue>158</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</disabled>
|
|
||||||
</palette>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Point label</string>
|
<string>Point label</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
@ -37,6 +37,8 @@
|
||||||
# include <QtMath> // for M_PI on Windows
|
# include <QtMath> // for M_PI on Windows
|
||||||
#endif /*Q_OS_WIN32*/
|
#endif /*Q_OS_WIN32*/
|
||||||
|
|
||||||
|
#include "../container/vformula.h"
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
|
@ -247,6 +249,13 @@ QString VArc::GetFormulaF1() const
|
||||||
return d->formulaF1;
|
return d->formulaF1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VArc::SetFormulaF1(const VFormula &value)
|
||||||
|
{
|
||||||
|
d->formulaF1 = value.getFormula(FormulaType::FromUser);
|
||||||
|
d->f1 = value.getDoubleValue();
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief GetF1 return formula for start angle.
|
* @brief GetF1 return formula for start angle.
|
||||||
|
@ -267,6 +276,13 @@ QString VArc::GetFormulaF2() const
|
||||||
return d->formulaF2;
|
return d->formulaF2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VArc::SetFormulaF2(const VFormula &value)
|
||||||
|
{
|
||||||
|
d->formulaF2 = value.getFormula(FormulaType::FromUser);
|
||||||
|
d->f2 = value.getDoubleValue();
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief GetF2 return formula for end angle.
|
* @brief GetF2 return formula for end angle.
|
||||||
|
@ -287,6 +303,13 @@ QString VArc::GetFormulaRadius() const
|
||||||
return d->formulaRadius;
|
return d->formulaRadius;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VArc::SetFormulaRadius(const VFormula &value)
|
||||||
|
{
|
||||||
|
d->formulaRadius = value.getFormula(FormulaType::FromUser);
|
||||||
|
d->radius = value.getDoubleValue();
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief GetRadius return formula for radius.
|
* @brief GetRadius return formula for radius.
|
||||||
|
@ -306,3 +329,9 @@ VPointF VArc::GetCenter() const
|
||||||
{
|
{
|
||||||
return d->center;
|
return d->center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VArc::SetCenter(const VPointF &value)
|
||||||
|
{
|
||||||
|
d->center = value;
|
||||||
|
}
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
|
|
||||||
class QPainterPath;
|
class QPainterPath;
|
||||||
class VArcData;
|
class VArcData;
|
||||||
|
class VFormula;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief VArc class for anticlockwise arc.
|
* @brief VArc class for anticlockwise arc.
|
||||||
|
@ -52,13 +53,21 @@ public:
|
||||||
virtual ~VArc();
|
virtual ~VArc();
|
||||||
|
|
||||||
QString GetFormulaF1 () const;
|
QString GetFormulaF1 () const;
|
||||||
|
void SetFormulaF1 (const VFormula &value);
|
||||||
qreal GetF1 () const;
|
qreal GetF1 () const;
|
||||||
|
|
||||||
QString GetFormulaF2 () const;
|
QString GetFormulaF2 () const;
|
||||||
|
void SetFormulaF2 (const VFormula &value);
|
||||||
qreal GetF2 () const;
|
qreal GetF2 () const;
|
||||||
qreal GetLength () const;
|
|
||||||
QString GetFormulaRadius () const;
|
QString GetFormulaRadius () const;
|
||||||
|
void SetFormulaRadius (const VFormula &value);
|
||||||
qreal GetRadius () const;
|
qreal GetRadius () const;
|
||||||
|
|
||||||
VPointF GetCenter () const;
|
VPointF GetCenter () const;
|
||||||
|
void SetCenter (const VPointF &value);
|
||||||
|
|
||||||
|
qreal GetLength () const;
|
||||||
QPointF GetP1() const;
|
QPointF GetP1() const;
|
||||||
QPointF GetP2 () const;
|
QPointF GetP2 () const;
|
||||||
qreal AngleArc() const;
|
qreal AngleArc() const;
|
||||||
|
|
|
@ -241,6 +241,20 @@ QPointF VSpline::CutSpline ( qreal length, QPointF &spl1p2, QPointF &spl1p3, QPo
|
||||||
return p1234;
|
return p1234;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QPointF VSpline::CutSpline(qreal length, VSpline &spl1, VSpline &spl2) const
|
||||||
|
{
|
||||||
|
QPointF spl1p2;
|
||||||
|
QPointF spl1p3;
|
||||||
|
QPointF spl2p2;
|
||||||
|
QPointF spl2p3;
|
||||||
|
QPointF cutPoint = CutSpline (length, spl1p2, spl1p3, spl2p2, spl2p3 );
|
||||||
|
|
||||||
|
spl1 = VSpline(GetP1(), spl1p2, spl1p3, cutPoint, GetKcurve());
|
||||||
|
spl2 = VSpline(cutPoint, spl2p2, spl2p3, GetP4(), GetKcurve());
|
||||||
|
return cutPoint;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief GetPoints return list with spline points.
|
* @brief GetPoints return list with spline points.
|
||||||
|
@ -750,3 +764,12 @@ qreal VSpline::GetKcurve() const
|
||||||
{
|
{
|
||||||
return d->kCurve;
|
return d->kCurve;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VSpline::SetKcurve(qreal factor)
|
||||||
|
{
|
||||||
|
if (factor > 0)
|
||||||
|
{
|
||||||
|
d->kCurve = factor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -63,10 +63,12 @@ public:
|
||||||
qreal GetKasm1() const;
|
qreal GetKasm1() const;
|
||||||
qreal GetKasm2() const;
|
qreal GetKasm2() const;
|
||||||
qreal GetKcurve() const;
|
qreal GetKcurve() const;
|
||||||
|
void SetKcurve(qreal factor);
|
||||||
// cppcheck-suppress unusedFunction
|
// cppcheck-suppress unusedFunction
|
||||||
QLineF::IntersectType CrossingSplLine(const QLineF &line, QPointF *intersectionPoint ) const;
|
QLineF::IntersectType CrossingSplLine(const QLineF &line, QPointF *intersectionPoint ) const;
|
||||||
qreal LengthT(qreal t) const;
|
qreal LengthT(qreal t) const;
|
||||||
QPointF CutSpline ( qreal length, QPointF &spl1p2, QPointF &spl1p3, QPointF &spl2p2, QPointF &spl2p3) const;
|
QPointF CutSpline ( qreal length, QPointF &spl1p2, QPointF &spl1p3, QPointF &spl2p2, QPointF &spl2p3) const;
|
||||||
|
QPointF CutSpline ( qreal length, VSpline &spl1, VSpline &spl2) const;
|
||||||
QVector<QPointF> GetPoints () const;
|
QVector<QPointF> GetPoints () const;
|
||||||
// cppcheck-suppress unusedFunction
|
// cppcheck-suppress unusedFunction
|
||||||
static QVector<QPointF> SplinePoints(const QPointF &p1, const QPointF &p4, qreal angle1, qreal angle2, qreal kAsm1,
|
static QVector<QPointF> SplinePoints(const QPointF &p1, const QPointF &p4, qreal angle1, qreal angle2, qreal kAsm1,
|
||||||
|
|
|
@ -48,7 +48,7 @@ public:
|
||||||
|
|
||||||
VSplineData ( const VSplineData &spline )
|
VSplineData ( const VSplineData &spline )
|
||||||
:QSharedData(spline), p1(spline.p1), p2(spline.p2), p3(spline.p3), p4(spline.p4), angle1(spline.angle1),
|
:QSharedData(spline), p1(spline.p1), p2(spline.p2), p3(spline.p3), p4(spline.p4), angle1(spline.angle1),
|
||||||
angle2(spline.angle2), kAsm1(spline.angle2), kAsm2(spline.kAsm1), kCurve(spline.kCurve)
|
angle2(spline.angle2), kAsm1(spline.kAsm1), kAsm2(spline.kAsm2), kCurve(spline.kCurve)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
VSplineData (VPointF p1, VPointF p4, qreal angle1, qreal angle2, qreal kAsm1, qreal kAsm2, qreal kCurve)
|
VSplineData (VPointF p1, VPointF p4, qreal angle1, qreal angle2, qreal kAsm1, qreal kAsm2, qreal kCurve)
|
||||||
|
|
|
@ -258,7 +258,10 @@ qreal VSplinePath::getKCurve() const
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VSplinePath::setKCurve(const qreal &value)
|
void VSplinePath::setKCurve(const qreal &value)
|
||||||
{
|
{
|
||||||
|
if (value > 0)
|
||||||
|
{
|
||||||
d->kCurve = value;
|
d->kCurve = value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -80,21 +80,21 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
|
||||||
case QtWarningMsg:
|
case QtWarningMsg:
|
||||||
messageBox.setIcon(QMessageBox::Warning);
|
messageBox.setIcon(QMessageBox::Warning);
|
||||||
messageBox.setInformativeText(msg);
|
messageBox.setInformativeText(msg);
|
||||||
messageBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
|
messageBox.setStandardButtons(QMessageBox::Ok);
|
||||||
fprintf(stderr, "Warning: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line,
|
fprintf(stderr, "Warning: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line,
|
||||||
context.function);
|
context.function);
|
||||||
break;
|
break;
|
||||||
case QtCriticalMsg:
|
case QtCriticalMsg:
|
||||||
messageBox.setIcon(QMessageBox::Critical);
|
messageBox.setIcon(QMessageBox::Critical);
|
||||||
messageBox.setInformativeText(msg);
|
messageBox.setInformativeText(msg);
|
||||||
messageBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
|
messageBox.setStandardButtons(QMessageBox::Ok);
|
||||||
fprintf(stderr, "Critical: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line,
|
fprintf(stderr, "Critical: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line,
|
||||||
context.function);
|
context.function);
|
||||||
break;
|
break;
|
||||||
case QtFatalMsg:
|
case QtFatalMsg:
|
||||||
messageBox.setIcon(QMessageBox::Critical);
|
messageBox.setIcon(QMessageBox::Critical);
|
||||||
messageBox.setInformativeText(msg);
|
messageBox.setInformativeText(msg);
|
||||||
messageBox.setStandardButtons(QMessageBox::Cancel);
|
messageBox.setStandardButtons(QMessageBox::Ok);
|
||||||
fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line,
|
fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line,
|
||||||
context.function);
|
context.function);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#include "widgets/vapplication.h"
|
#include "widgets/vapplication.h"
|
||||||
#include "widgets/undoevent.h"
|
#include "widgets/undoevent.h"
|
||||||
#include "undocommands/renamepp.h"
|
#include "undocommands/renamepp.h"
|
||||||
|
#include "vtooloptionspropertybrowser.h"
|
||||||
|
|
||||||
#include <QInputDialog>
|
#include <QInputDialog>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
@ -60,7 +61,7 @@
|
||||||
* @param parent parent widget.
|
* @param parent parent widget.
|
||||||
*/
|
*/
|
||||||
MainWindow::MainWindow(QWidget *parent)
|
MainWindow::MainWindow(QWidget *parent)
|
||||||
:QMainWindow(parent), ui(new Ui::MainWindow), pattern(nullptr), doc(nullptr), tool(Tool::ArrowTool),
|
:QMainWindow(parent), ui(new Ui::MainWindow), pattern(nullptr), doc(nullptr), tool(Tool::Arrow),
|
||||||
currentScene(nullptr), sceneDraw(nullptr), sceneDetails(nullptr), mouseCoordinate(nullptr), helpLabel(nullptr),
|
currentScene(nullptr), sceneDraw(nullptr), sceneDetails(nullptr), mouseCoordinate(nullptr), helpLabel(nullptr),
|
||||||
isInitialized(false), dialogTable(nullptr), dialogTool(nullptr), dialogHistory(nullptr),
|
isInitialized(false), dialogTable(nullptr), dialogTool(nullptr), dialogHistory(nullptr),
|
||||||
comboBoxDraws(nullptr), curFile(QString()), mode(Draw::Calculation), currentDrawIndex(0),
|
comboBoxDraws(nullptr), curFile(QString()), mode(Draw::Calculation), currentDrawIndex(0),
|
||||||
|
@ -104,6 +105,7 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
connect(doc, &VPattern::UndoCommand, this, &MainWindow::FullParseFile);
|
connect(doc, &VPattern::UndoCommand, this, &MainWindow::FullParseFile);
|
||||||
connect(doc, &VPattern::SetEnabledGUI, this, &MainWindow::SetEnabledGUI);
|
connect(doc, &VPattern::SetEnabledGUI, this, &MainWindow::SetEnabledGUI);
|
||||||
connect(doc, &VPattern::CheckLayout, this, &MainWindow::Layout);
|
connect(doc, &VPattern::CheckLayout, this, &MainWindow::Layout);
|
||||||
|
qApp->setCurrentDocument(doc);
|
||||||
|
|
||||||
connect(qApp->getUndoStack(), &QUndoStack::cleanChanged, this, &MainWindow::PatternWasModified);
|
connect(qApp->getUndoStack(), &QUndoStack::cleanChanged, this, &MainWindow::PatternWasModified);
|
||||||
|
|
||||||
|
@ -112,6 +114,7 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
ui->toolBox->setCurrentIndex(0);
|
ui->toolBox->setCurrentIndex(0);
|
||||||
|
|
||||||
ReadSettings();
|
ReadSettings();
|
||||||
|
PropertyBrowser();
|
||||||
|
|
||||||
setCurrentFile("");
|
setCurrentFile("");
|
||||||
}
|
}
|
||||||
|
@ -192,15 +195,18 @@ void MainWindow::ActionNewPP()
|
||||||
|
|
||||||
pattern->ClearGObjects();
|
pattern->ClearGObjects();
|
||||||
//Create single point
|
//Create single point
|
||||||
const quint32 id = pattern->AddGObject(new VPointF(20+comboBoxDraws->count()*5, 20, "А", 5, 10));
|
ui->view->itemClicked(nullptr);//hide options previous tool
|
||||||
|
QString label = doc->GenerateLabel(LabelType::NewPatternPiece);
|
||||||
|
const quint32 id = pattern->AddGObject(new VPointF(30+comboBoxDraws->count()*5, 40, label, 5, 10));
|
||||||
VToolSinglePoint *spoint = new VToolSinglePoint(doc, pattern, id, Source::FromGui, patternPieceName, path);
|
VToolSinglePoint *spoint = new VToolSinglePoint(doc, pattern, id, Source::FromGui, patternPieceName, path);
|
||||||
sceneDraw->addItem(spoint);
|
sceneDraw->addItem(spoint);
|
||||||
|
ui->view->itemClicked(spoint);
|
||||||
connect(spoint, &VToolPoint::ChoosedTool, sceneDraw, &VMainGraphicsScene::ChoosedItem);
|
connect(spoint, &VToolPoint::ChoosedTool, sceneDraw, &VMainGraphicsScene::ChoosedItem);
|
||||||
connect(sceneDraw, &VMainGraphicsScene::NewFactor, spoint, &VToolSinglePoint::SetFactor);
|
connect(sceneDraw, &VMainGraphicsScene::NewFactor, spoint, &VToolSinglePoint::SetFactor);
|
||||||
QHash<quint32, VDataTool*>* tools = doc->getTools();
|
QHash<quint32, VDataTool*>* tools = doc->getTools();
|
||||||
SCASSERT(tools != nullptr);
|
SCASSERT(tools != nullptr);
|
||||||
tools->insert(id, spoint);
|
tools->insert(id, spoint);
|
||||||
VDrawTool::AddRecord(id, Tool::SinglePointTool, doc);
|
VDrawTool::AddRecord(id, Tool::SinglePoint, doc);
|
||||||
SetEnableTool(true);
|
SetEnableTool(true);
|
||||||
SetEnableWidgets(true);
|
SetEnableWidgets(true);
|
||||||
|
|
||||||
|
@ -253,6 +259,7 @@ void MainWindow::SetToolButton(bool checked, Tool t, const QString &cursor, cons
|
||||||
QCursor cur(pixmap, 2, 3);
|
QCursor cur(pixmap, 2, 3);
|
||||||
ui->view->setCursor(cur);
|
ui->view->setCursor(cur);
|
||||||
helpLabel->setText(toolTip);
|
helpLabel->setText(toolTip);
|
||||||
|
ui->view->setShowToolOptions(false);
|
||||||
dialogTool = new Dialog(pattern, 0, this);
|
dialogTool = new Dialog(pattern, 0, this);
|
||||||
connect(currentScene, &VMainGraphicsScene::ChoosedObject, dialogTool, &DialogTool::ChosenObject);
|
connect(currentScene, &VMainGraphicsScene::ChoosedObject, dialogTool, &DialogTool::ChosenObject);
|
||||||
connect(dialogTool, &DialogTool::DialogClosed, this, closeDialogSlot);
|
connect(dialogTool, &DialogTool::DialogClosed, this, closeDialogSlot);
|
||||||
|
@ -290,6 +297,7 @@ void MainWindow::SetToolButtonWithApply(bool checked, Tool t, const QString &cur
|
||||||
QPixmap pixmap(cursor);
|
QPixmap pixmap(cursor);
|
||||||
QCursor cur(pixmap, 2, 3);
|
QCursor cur(pixmap, 2, 3);
|
||||||
ui->view->setCursor(cur);
|
ui->view->setCursor(cur);
|
||||||
|
ui->view->setShowToolOptions(false);
|
||||||
helpLabel->setText(toolTip);
|
helpLabel->setText(toolTip);
|
||||||
dialogTool = new Dialog(pattern, 0, this);
|
dialogTool = new Dialog(pattern, 0, this);
|
||||||
connect(currentScene, &VMainGraphicsScene::ChoosedObject, dialogTool, &DialogTool::ChosenObject);
|
connect(currentScene, &VMainGraphicsScene::ChoosedObject, dialogTool, &DialogTool::ChosenObject);
|
||||||
|
@ -319,7 +327,8 @@ void MainWindow::ClosedDialog(int result)
|
||||||
SCASSERT(dialogTool != nullptr);
|
SCASSERT(dialogTool != nullptr);
|
||||||
if (result == QDialog::Accepted)
|
if (result == QDialog::Accepted)
|
||||||
{
|
{
|
||||||
DrawTool::Create(dialogTool, currentScene, doc, pattern);
|
QGraphicsItem *tool = dynamic_cast<QGraphicsItem *>(DrawTool::Create(dialogTool, currentScene, doc, pattern));
|
||||||
|
ui->view->itemClicked(tool);
|
||||||
}
|
}
|
||||||
ArrowTool();
|
ArrowTool();
|
||||||
}
|
}
|
||||||
|
@ -347,9 +356,11 @@ void MainWindow::ClosedDialogWithApply(int result)
|
||||||
vtool->FullUpdateFromGuiApply();
|
vtool->FullUpdateFromGuiApply();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
QGraphicsItem *tool = dynamic_cast<QGraphicsItem *>(dialogTool->GetAssociatedTool());
|
||||||
|
ui->view->itemClicked(tool);
|
||||||
if (dialogTool->GetAssociatedTool() != nullptr)
|
if (dialogTool->GetAssociatedTool() != nullptr)
|
||||||
{
|
{
|
||||||
VDrawTool * vtool= static_cast<VDrawTool *>(dialogTool->GetAssociatedTool());
|
VDrawTool *vtool= static_cast<VDrawTool *>(dialogTool->GetAssociatedTool());
|
||||||
vtool->DialogLinkDestroy();
|
vtool->DialogLinkDestroy();
|
||||||
}
|
}
|
||||||
ArrowTool();
|
ArrowTool();
|
||||||
|
@ -385,7 +396,7 @@ void MainWindow::ApplyDialog()
|
||||||
*/
|
*/
|
||||||
void MainWindow::ToolEndLine(bool checked)
|
void MainWindow::ToolEndLine(bool checked)
|
||||||
{
|
{
|
||||||
SetToolButtonWithApply<DialogEndLine>(checked, Tool::EndLineTool, ":/cursor/endline_cursor.png", tr("Select point"),
|
SetToolButtonWithApply<DialogEndLine>(checked, Tool::EndLine, ":/cursor/endline_cursor.png", tr("Select point"),
|
||||||
&MainWindow::ClosedDialogWithApply<VToolEndLine>,
|
&MainWindow::ClosedDialogWithApply<VToolEndLine>,
|
||||||
&MainWindow::ApplyDialog<VToolEndLine>);
|
&MainWindow::ApplyDialog<VToolEndLine>);
|
||||||
}
|
}
|
||||||
|
@ -397,7 +408,7 @@ void MainWindow::ToolEndLine(bool checked)
|
||||||
*/
|
*/
|
||||||
void MainWindow::ToolLine(bool checked)
|
void MainWindow::ToolLine(bool checked)
|
||||||
{
|
{
|
||||||
SetToolButtonWithApply<DialogLine>(checked, Tool::LineTool, ":/cursor/line_cursor.png", tr("Select first point"),
|
SetToolButtonWithApply<DialogLine>(checked, Tool::Line, ":/cursor/line_cursor.png", tr("Select first point"),
|
||||||
&MainWindow::ClosedDialogWithApply<VToolLine>,
|
&MainWindow::ClosedDialogWithApply<VToolLine>,
|
||||||
&MainWindow::ApplyDialog<VToolLine>);
|
&MainWindow::ApplyDialog<VToolLine>);
|
||||||
}
|
}
|
||||||
|
@ -409,7 +420,7 @@ void MainWindow::ToolLine(bool checked)
|
||||||
*/
|
*/
|
||||||
void MainWindow::ToolAlongLine(bool checked)
|
void MainWindow::ToolAlongLine(bool checked)
|
||||||
{
|
{
|
||||||
SetToolButtonWithApply<DialogAlongLine>(checked, Tool::AlongLineTool, ":/cursor/alongline_cursor.png",
|
SetToolButtonWithApply<DialogAlongLine>(checked, Tool::AlongLine, ":/cursor/alongline_cursor.png",
|
||||||
tr("Select point"), &MainWindow::ClosedDialogWithApply<VToolAlongLine>,
|
tr("Select point"), &MainWindow::ClosedDialogWithApply<VToolAlongLine>,
|
||||||
&MainWindow::ApplyDialog<VToolAlongLine>);
|
&MainWindow::ApplyDialog<VToolAlongLine>);
|
||||||
}
|
}
|
||||||
|
@ -421,7 +432,7 @@ void MainWindow::ToolAlongLine(bool checked)
|
||||||
*/
|
*/
|
||||||
void MainWindow::ToolShoulderPoint(bool checked)
|
void MainWindow::ToolShoulderPoint(bool checked)
|
||||||
{
|
{
|
||||||
SetToolButtonWithApply<DialogShoulderPoint>(checked, Tool::ShoulderPointTool, ":/cursor/shoulder_cursor.png",
|
SetToolButtonWithApply<DialogShoulderPoint>(checked, Tool::ShoulderPoint, ":/cursor/shoulder_cursor.png",
|
||||||
tr("Select point of shoulder"),
|
tr("Select point of shoulder"),
|
||||||
&MainWindow::ClosedDialogWithApply<VToolShoulderPoint>,
|
&MainWindow::ClosedDialogWithApply<VToolShoulderPoint>,
|
||||||
&MainWindow::ApplyDialog<VToolShoulderPoint>);
|
&MainWindow::ApplyDialog<VToolShoulderPoint>);
|
||||||
|
@ -434,7 +445,7 @@ void MainWindow::ToolShoulderPoint(bool checked)
|
||||||
*/
|
*/
|
||||||
void MainWindow::ToolNormal(bool checked)
|
void MainWindow::ToolNormal(bool checked)
|
||||||
{
|
{
|
||||||
SetToolButtonWithApply<DialogNormal>(checked, Tool::NormalTool, ":/cursor/normal_cursor.png",
|
SetToolButtonWithApply<DialogNormal>(checked, Tool::Normal, ":/cursor/normal_cursor.png",
|
||||||
tr("Select first point of line"),
|
tr("Select first point of line"),
|
||||||
&MainWindow::ClosedDialogWithApply<VToolNormal>,
|
&MainWindow::ClosedDialogWithApply<VToolNormal>,
|
||||||
&MainWindow::ApplyDialog<VToolNormal>);
|
&MainWindow::ApplyDialog<VToolNormal>);
|
||||||
|
@ -447,7 +458,7 @@ void MainWindow::ToolNormal(bool checked)
|
||||||
*/
|
*/
|
||||||
void MainWindow::ToolBisector(bool checked)
|
void MainWindow::ToolBisector(bool checked)
|
||||||
{
|
{
|
||||||
SetToolButtonWithApply<DialogBisector>(checked, Tool::BisectorTool, ":/cursor/bisector_cursor.png",
|
SetToolButtonWithApply<DialogBisector>(checked, Tool::Bisector, ":/cursor/bisector_cursor.png",
|
||||||
tr("Select first point of angle"),
|
tr("Select first point of angle"),
|
||||||
&MainWindow::ClosedDialogWithApply<VToolBisector>,
|
&MainWindow::ClosedDialogWithApply<VToolBisector>,
|
||||||
&MainWindow::ApplyDialog<VToolBisector>);
|
&MainWindow::ApplyDialog<VToolBisector>);
|
||||||
|
@ -460,7 +471,7 @@ void MainWindow::ToolBisector(bool checked)
|
||||||
*/
|
*/
|
||||||
void MainWindow::ToolLineIntersect(bool checked)
|
void MainWindow::ToolLineIntersect(bool checked)
|
||||||
{
|
{
|
||||||
SetToolButtonWithApply<DialogLineIntersect>(checked, Tool::LineIntersectTool, ":/cursor/intersect_cursor.png",
|
SetToolButtonWithApply<DialogLineIntersect>(checked, Tool::LineIntersect, ":/cursor/intersect_cursor.png",
|
||||||
tr("Select first point of first line"),
|
tr("Select first point of first line"),
|
||||||
&MainWindow::ClosedDialogWithApply<VToolLineIntersect>,
|
&MainWindow::ClosedDialogWithApply<VToolLineIntersect>,
|
||||||
&MainWindow::ApplyDialog<VToolLineIntersect>);
|
&MainWindow::ApplyDialog<VToolLineIntersect>);
|
||||||
|
@ -473,7 +484,7 @@ void MainWindow::ToolLineIntersect(bool checked)
|
||||||
*/
|
*/
|
||||||
void MainWindow::ToolSpline(bool checked)
|
void MainWindow::ToolSpline(bool checked)
|
||||||
{
|
{
|
||||||
SetToolButtonWithApply<DialogSpline>(checked, Tool::SplineTool, ":/cursor/spline_cursor.png",
|
SetToolButtonWithApply<DialogSpline>(checked, Tool::Spline, ":/cursor/spline_cursor.png",
|
||||||
tr("Select first point curve"),
|
tr("Select first point curve"),
|
||||||
&MainWindow::ClosedDialogWithApply<VToolSpline>,
|
&MainWindow::ClosedDialogWithApply<VToolSpline>,
|
||||||
&MainWindow::ApplyDialog<VToolSpline>);
|
&MainWindow::ApplyDialog<VToolSpline>);
|
||||||
|
@ -486,8 +497,10 @@ void MainWindow::ToolSpline(bool checked)
|
||||||
*/
|
*/
|
||||||
void MainWindow::ToolCutSpline(bool checked)
|
void MainWindow::ToolCutSpline(bool checked)
|
||||||
{
|
{
|
||||||
SetToolButton<DialogCutSpline>(checked, Tool::CutSplineTool, ":/cursor/spline_cut_point_cursor.png",
|
SetToolButtonWithApply<DialogCutSpline>(checked, Tool::CutSpline, ":/cursor/spline_cut_point_cursor.png",
|
||||||
tr("Select simple curve"), &MainWindow::ClosedDialog<VToolCutSpline>);
|
tr("Select simple curve"),
|
||||||
|
&MainWindow::ClosedDialogWithApply<VToolCutSpline>,
|
||||||
|
&MainWindow::ApplyDialog<VToolCutSpline>);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -497,7 +510,7 @@ void MainWindow::ToolCutSpline(bool checked)
|
||||||
*/
|
*/
|
||||||
void MainWindow::ToolArc(bool checked)
|
void MainWindow::ToolArc(bool checked)
|
||||||
{
|
{
|
||||||
SetToolButtonWithApply<DialogArc>(checked, Tool::ArcTool, ":/cursor/arc_cursor.png",
|
SetToolButtonWithApply<DialogArc>(checked, Tool::Arc, ":/cursor/arc_cursor.png",
|
||||||
tr("Select point of center of arc"), &MainWindow::ClosedDialogWithApply<VToolArc>,
|
tr("Select point of center of arc"), &MainWindow::ClosedDialogWithApply<VToolArc>,
|
||||||
&MainWindow::ApplyDialog<VToolArc>);
|
&MainWindow::ApplyDialog<VToolArc>);
|
||||||
}
|
}
|
||||||
|
@ -509,8 +522,10 @@ void MainWindow::ToolArc(bool checked)
|
||||||
*/
|
*/
|
||||||
void MainWindow::ToolSplinePath(bool checked)
|
void MainWindow::ToolSplinePath(bool checked)
|
||||||
{
|
{
|
||||||
SetToolButton<DialogSplinePath>(checked, Tool::SplinePathTool, ":/cursor/splinepath_cursor.png",
|
SetToolButtonWithApply<DialogSplinePath>(checked, Tool::SplinePath, ":/cursor/splinepath_cursor.png",
|
||||||
tr("Select point of curve path"), &MainWindow::ClosedDialog<VToolSplinePath>);
|
tr("Select point of curve path"),
|
||||||
|
&MainWindow::ClosedDialogWithApply<VToolSplinePath>,
|
||||||
|
&MainWindow::ApplyDialog<VToolSplinePath>);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -520,9 +535,10 @@ void MainWindow::ToolSplinePath(bool checked)
|
||||||
*/
|
*/
|
||||||
void MainWindow::ToolCutSplinePath(bool checked)
|
void MainWindow::ToolCutSplinePath(bool checked)
|
||||||
{
|
{
|
||||||
SetToolButton<DialogCutSplinePath>(checked, Tool::CutSplinePathTool,
|
SetToolButtonWithApply<DialogCutSplinePath>(checked, Tool::CutSplinePath,
|
||||||
":/cursor/splinepath_cut_point_cursor.png", tr("Select curve path"),
|
":/cursor/splinepath_cut_point_cursor.png", tr("Select curve path"),
|
||||||
&MainWindow::ClosedDialog<VToolCutSplinePath>);
|
&MainWindow::ClosedDialogWithApply<VToolCutSplinePath>,
|
||||||
|
&MainWindow::ApplyDialog<VToolCutSplinePath>);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -545,7 +561,7 @@ void MainWindow::ToolPointOfContact(bool checked)
|
||||||
*/
|
*/
|
||||||
void MainWindow::ToolDetail(bool checked)
|
void MainWindow::ToolDetail(bool checked)
|
||||||
{
|
{
|
||||||
SetToolButton<DialogDetail>(checked, Tool::DetailTool, "://cursor/new_detail_cursor.png",
|
SetToolButton<DialogDetail>(checked, Tool::Detail, "://cursor/new_detail_cursor.png",
|
||||||
tr("Select points, arcs, curves clockwise."), &MainWindow::ClosedDialogDetail);
|
tr("Select points, arcs, curves clockwise."), &MainWindow::ClosedDialogDetail);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -634,7 +650,7 @@ void MainWindow::ClosedDialogUnionDetails(int result)
|
||||||
*/
|
*/
|
||||||
void MainWindow::ToolCutArc(bool checked)
|
void MainWindow::ToolCutArc(bool checked)
|
||||||
{
|
{
|
||||||
SetToolButtonWithApply<DialogCutArc>(checked, Tool::CutArcTool, ":/cursor/arc_cut_cursor.png",
|
SetToolButtonWithApply<DialogCutArc>(checked, Tool::CutArc, ":/cursor/arc_cut_cursor.png",
|
||||||
tr("Select arc"), &MainWindow::ClosedDialogWithApply<VToolCutArc>,
|
tr("Select arc"), &MainWindow::ClosedDialogWithApply<VToolCutArc>,
|
||||||
&MainWindow::ApplyDialog<VToolCutArc>);
|
&MainWindow::ApplyDialog<VToolCutArc>);
|
||||||
}
|
}
|
||||||
|
@ -942,60 +958,60 @@ void MainWindow::CancelTool()
|
||||||
dialogTool = nullptr;
|
dialogTool = nullptr;
|
||||||
switch ( tool )
|
switch ( tool )
|
||||||
{
|
{
|
||||||
case Tool::ArrowTool:
|
case Tool::Arrow:
|
||||||
ui->actionArrowTool->setChecked(false);
|
ui->actionArrowTool->setChecked(false);
|
||||||
helpLabel->setText("");
|
helpLabel->setText("");
|
||||||
break;
|
break;
|
||||||
case Tool::SinglePointTool:
|
case Tool::SinglePoint:
|
||||||
Q_UNREACHABLE();
|
Q_UNREACHABLE();
|
||||||
//Nothing to do here because we can't create this tool from main window.
|
//Nothing to do here because we can't create this tool from main window.
|
||||||
break;
|
break;
|
||||||
case Tool::EndLineTool:
|
case Tool::EndLine:
|
||||||
ui->toolButtonEndLine->setChecked(false);
|
ui->toolButtonEndLine->setChecked(false);
|
||||||
currentScene->setFocus(Qt::OtherFocusReason);
|
currentScene->setFocus(Qt::OtherFocusReason);
|
||||||
currentScene->clearSelection();
|
currentScene->clearSelection();
|
||||||
break;
|
break;
|
||||||
case Tool::LineTool:
|
case Tool::Line:
|
||||||
ui->toolButtonLine->setChecked(false);
|
ui->toolButtonLine->setChecked(false);
|
||||||
currentScene->setFocus(Qt::OtherFocusReason);
|
currentScene->setFocus(Qt::OtherFocusReason);
|
||||||
currentScene->clearFocus();
|
currentScene->clearFocus();
|
||||||
break;
|
break;
|
||||||
case Tool::AlongLineTool:
|
case Tool::AlongLine:
|
||||||
ui->toolButtonAlongLine->setChecked(false);
|
ui->toolButtonAlongLine->setChecked(false);
|
||||||
currentScene->setFocus(Qt::OtherFocusReason);
|
currentScene->setFocus(Qt::OtherFocusReason);
|
||||||
currentScene->clearSelection();
|
currentScene->clearSelection();
|
||||||
break;
|
break;
|
||||||
case Tool::ShoulderPointTool:
|
case Tool::ShoulderPoint:
|
||||||
ui->toolButtonShoulderPoint->setChecked(false);
|
ui->toolButtonShoulderPoint->setChecked(false);
|
||||||
currentScene->setFocus(Qt::OtherFocusReason);
|
currentScene->setFocus(Qt::OtherFocusReason);
|
||||||
currentScene->clearSelection();
|
currentScene->clearSelection();
|
||||||
break;
|
break;
|
||||||
case Tool::NormalTool:
|
case Tool::Normal:
|
||||||
ui->toolButtonNormal->setChecked(false);
|
ui->toolButtonNormal->setChecked(false);
|
||||||
currentScene->setFocus(Qt::OtherFocusReason);
|
currentScene->setFocus(Qt::OtherFocusReason);
|
||||||
currentScene->clearSelection();
|
currentScene->clearSelection();
|
||||||
break;
|
break;
|
||||||
case Tool::BisectorTool:
|
case Tool::Bisector:
|
||||||
ui->toolButtonBisector->setChecked(false);
|
ui->toolButtonBisector->setChecked(false);
|
||||||
currentScene->setFocus(Qt::OtherFocusReason);
|
currentScene->setFocus(Qt::OtherFocusReason);
|
||||||
currentScene->clearSelection();
|
currentScene->clearSelection();
|
||||||
break;
|
break;
|
||||||
case Tool::LineIntersectTool:
|
case Tool::LineIntersect:
|
||||||
ui->toolButtonLineIntersect->setChecked(false);
|
ui->toolButtonLineIntersect->setChecked(false);
|
||||||
currentScene->setFocus(Qt::OtherFocusReason);
|
currentScene->setFocus(Qt::OtherFocusReason);
|
||||||
currentScene->clearSelection();
|
currentScene->clearSelection();
|
||||||
break;
|
break;
|
||||||
case Tool::SplineTool:
|
case Tool::Spline:
|
||||||
ui->toolButtonSpline->setChecked(false);
|
ui->toolButtonSpline->setChecked(false);
|
||||||
currentScene->setFocus(Qt::OtherFocusReason);
|
currentScene->setFocus(Qt::OtherFocusReason);
|
||||||
currentScene->clearSelection();
|
currentScene->clearSelection();
|
||||||
break;
|
break;
|
||||||
case Tool::ArcTool:
|
case Tool::Arc:
|
||||||
ui->toolButtonArc->setChecked(false);
|
ui->toolButtonArc->setChecked(false);
|
||||||
currentScene->setFocus(Qt::OtherFocusReason);
|
currentScene->setFocus(Qt::OtherFocusReason);
|
||||||
currentScene->clearSelection();
|
currentScene->clearSelection();
|
||||||
break;
|
break;
|
||||||
case Tool::SplinePathTool:
|
case Tool::SplinePath:
|
||||||
ui->toolButtonSplinePath->setChecked(false);
|
ui->toolButtonSplinePath->setChecked(false);
|
||||||
currentScene->setFocus(Qt::OtherFocusReason);
|
currentScene->setFocus(Qt::OtherFocusReason);
|
||||||
currentScene->clearSelection();
|
currentScene->clearSelection();
|
||||||
|
@ -1005,7 +1021,7 @@ void MainWindow::CancelTool()
|
||||||
currentScene->setFocus(Qt::OtherFocusReason);
|
currentScene->setFocus(Qt::OtherFocusReason);
|
||||||
currentScene->clearSelection();
|
currentScene->clearSelection();
|
||||||
break;
|
break;
|
||||||
case Tool::DetailTool:
|
case Tool::Detail:
|
||||||
ui->toolButtonNewDetail->setChecked(false);
|
ui->toolButtonNewDetail->setChecked(false);
|
||||||
break;
|
break;
|
||||||
case Tool::Height:
|
case Tool::Height:
|
||||||
|
@ -1023,12 +1039,12 @@ void MainWindow::CancelTool()
|
||||||
currentScene->setFocus(Qt::OtherFocusReason);
|
currentScene->setFocus(Qt::OtherFocusReason);
|
||||||
currentScene->clearSelection();
|
currentScene->clearSelection();
|
||||||
break;
|
break;
|
||||||
case Tool::CutSplineTool:
|
case Tool::CutSpline:
|
||||||
ui->toolButtonSplineCutPoint->setChecked(false);
|
ui->toolButtonSplineCutPoint->setChecked(false);
|
||||||
currentScene->setFocus(Qt::OtherFocusReason);
|
currentScene->setFocus(Qt::OtherFocusReason);
|
||||||
currentScene->clearSelection();
|
currentScene->clearSelection();
|
||||||
break;
|
break;
|
||||||
case Tool::CutSplinePathTool:
|
case Tool::CutSplinePath:
|
||||||
ui->toolButtonSplinePathCutPoint->setChecked(false);
|
ui->toolButtonSplinePathCutPoint->setChecked(false);
|
||||||
currentScene->setFocus(Qt::OtherFocusReason);
|
currentScene->setFocus(Qt::OtherFocusReason);
|
||||||
currentScene->clearSelection();
|
currentScene->clearSelection();
|
||||||
|
@ -1038,7 +1054,7 @@ void MainWindow::CancelTool()
|
||||||
currentScene->setFocus(Qt::OtherFocusReason);
|
currentScene->setFocus(Qt::OtherFocusReason);
|
||||||
currentScene->clearSelection();
|
currentScene->clearSelection();
|
||||||
break;
|
break;
|
||||||
case Tool::CutArcTool:
|
case Tool::CutArc:
|
||||||
ui->toolButtonArcCutPoint->setChecked(false);
|
ui->toolButtonArcCutPoint->setChecked(false);
|
||||||
currentScene->setFocus(Qt::OtherFocusReason);
|
currentScene->setFocus(Qt::OtherFocusReason);
|
||||||
currentScene->clearSelection();
|
currentScene->clearSelection();
|
||||||
|
@ -1061,10 +1077,11 @@ void MainWindow::ArrowTool()
|
||||||
{
|
{
|
||||||
CancelTool();
|
CancelTool();
|
||||||
ui->actionArrowTool->setChecked(true);
|
ui->actionArrowTool->setChecked(true);
|
||||||
tool = Tool::ArrowTool;
|
tool = Tool::Arrow;
|
||||||
QCursor cur(Qt::ArrowCursor);
|
QCursor cur(Qt::ArrowCursor);
|
||||||
ui->view->setCursor(cur);
|
ui->view->setCursor(cur);
|
||||||
helpLabel->setText("");
|
helpLabel->setText("");
|
||||||
|
ui->view->setShowToolOptions(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1959,6 +1976,27 @@ void MainWindow::CreateMenus()
|
||||||
separatorAct = new QAction(this);
|
separatorAct = new QAction(this);
|
||||||
separatorAct->setSeparator(true);
|
separatorAct->setSeparator(true);
|
||||||
ui->menuPatternPiece->insertAction(ui->actionPattern_properties, separatorAct);
|
ui->menuPatternPiece->insertAction(ui->actionPattern_properties, separatorAct);
|
||||||
|
AddDocks();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::AddDocks()
|
||||||
|
{
|
||||||
|
ui->menuPatternPiece->insertAction(ui->actionPattern_properties, ui->dockWidgetHistory->toggleViewAction());
|
||||||
|
ui->dockWidgetHistory->close();//Default don't show hostory
|
||||||
|
ui->menuPatternPiece->insertAction(ui->actionPattern_properties, ui->dockWidgetToolOptions->toggleViewAction());
|
||||||
|
|
||||||
|
separatorAct = new QAction(this);
|
||||||
|
separatorAct->setSeparator(true);
|
||||||
|
ui->menuPatternPiece->insertAction(ui->actionPattern_properties, separatorAct);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void MainWindow::PropertyBrowser()
|
||||||
|
{
|
||||||
|
toolOptions = new VToolOptionsPropertyBrowser(ui->dockWidgetToolOptions);
|
||||||
|
|
||||||
|
connect(ui->view, &VMainGraphicsView::itemClicked, toolOptions, &VToolOptionsPropertyBrowser::itemClicked);
|
||||||
|
connect(doc, &VPattern::FullUpdateFromFile, toolOptions, &VToolOptionsPropertyBrowser::UpdateOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -2213,6 +2251,7 @@ void MainWindow::ChangePP(int index, bool zoomBestFit)
|
||||||
ui->view->NewFactor(ui->view->transform().m11());
|
ui->view->NewFactor(ui->view->transform().m11());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
toolOptions->itemClicked(nullptr);//hide options for tool in previous pattern piece
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,8 @@ namespace Ui
|
||||||
class MainWindow;
|
class MainWindow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class VToolOptionsPropertyBrowser;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The MainWindow class main windows.
|
* @brief The MainWindow class main windows.
|
||||||
*/
|
*/
|
||||||
|
@ -194,6 +196,8 @@ private:
|
||||||
bool guiEnabled;
|
bool guiEnabled;
|
||||||
QComboBox *gradationHeights;
|
QComboBox *gradationHeights;
|
||||||
QComboBox *gradationSizes;
|
QComboBox *gradationSizes;
|
||||||
|
VToolOptionsPropertyBrowser *toolOptions;
|
||||||
|
|
||||||
void ToolBarOption();
|
void ToolBarOption();
|
||||||
void ToolBarDraws();
|
void ToolBarDraws();
|
||||||
void ToolBarTools();
|
void ToolBarTools();
|
||||||
|
@ -243,6 +247,9 @@ private:
|
||||||
void UpdateSizesList(const QStringList &list);
|
void UpdateSizesList(const QStringList &list);
|
||||||
void SetDefaultHeight(int value);
|
void SetDefaultHeight(int value);
|
||||||
void SetDefaultSize(int value);
|
void SetDefaultSize(int value);
|
||||||
|
|
||||||
|
void AddDocks();
|
||||||
|
void PropertyBrowser();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MAINWINDOW_H
|
#endif // MAINWINDOW_H
|
||||||
|
|
|
@ -29,6 +29,9 @@
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
|
//Same regexp in pattern.xsd shema file. Don't forget synchronize.
|
||||||
|
const QString nameRegExp = QStringLiteral("^([^0-9-*/^+=\\s\\(\\)%:;!.,]){1,1}([^-*/^+=\\s\\(\\)%:;!.,]){0,}$");
|
||||||
|
|
||||||
// Keep synchronize all names with initialization in VApllication class.
|
// Keep synchronize all names with initialization in VApllication class.
|
||||||
//measurements
|
//measurements
|
||||||
const QString headGirth_M = QStringLiteral("head_girth");
|
const QString headGirth_M = QStringLiteral("head_girth");
|
||||||
|
|
|
@ -37,30 +37,38 @@
|
||||||
|
|
||||||
class QString;
|
class QString;
|
||||||
|
|
||||||
|
static const quint32 null_id = 0;
|
||||||
|
|
||||||
#define SceneSize 50000
|
#define SceneSize 50000
|
||||||
#define DefPointRadius 2.0//mm
|
#define DefPointRadius 2.0//mm
|
||||||
#define NULL_ID 0//use this value for initialization variables that keeps id values. 0 mean uknown id value.
|
#define NULL_ID null_id//use this value for initialization variables that keeps id values. 0 mean uknown id value.
|
||||||
|
|
||||||
|
extern const QString nameRegExp;
|
||||||
|
|
||||||
enum class SceneObject : char { Point, Line, Spline, Arc, SplinePath, Detail, Unknown };
|
enum class SceneObject : char { Point, Line, Spline, Arc, SplinePath, Detail, Unknown };
|
||||||
enum class Tool : char
|
enum class Tool : unsigned char
|
||||||
{
|
{
|
||||||
ArrowTool,
|
Arrow,
|
||||||
SinglePointTool,
|
Point,
|
||||||
EndLineTool,
|
LinePoint,
|
||||||
LineTool,
|
AbstractSpline,
|
||||||
AlongLineTool,
|
Cut,
|
||||||
ShoulderPointTool,
|
SinglePoint,
|
||||||
NormalTool,
|
EndLine,
|
||||||
BisectorTool,
|
Line,
|
||||||
LineIntersectTool,
|
AlongLine,
|
||||||
SplineTool,
|
ShoulderPoint,
|
||||||
CutSplineTool,
|
Normal,
|
||||||
CutArcTool,
|
Bisector,
|
||||||
ArcTool,
|
LineIntersect,
|
||||||
SplinePathTool,
|
Spline,
|
||||||
CutSplinePathTool,
|
CutSpline,
|
||||||
|
CutArc,
|
||||||
|
Arc,
|
||||||
|
SplinePath,
|
||||||
|
CutSplinePath,
|
||||||
PointOfContact,
|
PointOfContact,
|
||||||
DetailTool,
|
Detail,
|
||||||
NodePoint,
|
NodePoint,
|
||||||
NodeArc,
|
NodeArc,
|
||||||
NodeSpline,
|
NodeSpline,
|
||||||
|
@ -71,6 +79,32 @@ enum class Tool : char
|
||||||
UnionDetails
|
UnionDetails
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class Vis : unsigned char
|
||||||
|
{
|
||||||
|
ControlPointSpline = 29, // increase this value if need more positions in Tool enum
|
||||||
|
GraphicsSimpleTextItem,
|
||||||
|
SimpleSplinePath,
|
||||||
|
Line,
|
||||||
|
Path,
|
||||||
|
ToolAlongLine,
|
||||||
|
ToolArc,
|
||||||
|
ToolBisector,
|
||||||
|
ToolCutArc,
|
||||||
|
ToolEndLine,
|
||||||
|
ToolHeight,
|
||||||
|
ToolLine,
|
||||||
|
ToolLineIntersect,
|
||||||
|
ToolNormal,
|
||||||
|
ToolPointOfContact,
|
||||||
|
ToolPointOfIntersection,
|
||||||
|
ToolShoulderPoint,
|
||||||
|
ToolSpline,
|
||||||
|
ToolTriangle,
|
||||||
|
ToolCutSpline,
|
||||||
|
ToolSplinePath,
|
||||||
|
ToolCutSplinePath
|
||||||
|
};
|
||||||
|
|
||||||
enum class Source : char { FromGui, FromFile, FromTool };
|
enum class Source : char { FromGui, FromFile, FromTool };
|
||||||
enum class Draw : char { Calculation, Modeling };
|
enum class Draw : char { Calculation, Modeling };
|
||||||
enum class Unit : char { Mm, Cm, Inch };
|
enum class Unit : char { Mm, Cm, Inch };
|
||||||
|
|
|
@ -52,6 +52,12 @@ void VAbstractSpline::paint(QPainter *painter, const QStyleOptionGraphicsItem *o
|
||||||
QGraphicsPathItem::paint(painter, &myOption, widget);
|
QGraphicsPathItem::paint(painter, &myOption, widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QString VAbstractSpline::getTagName() const
|
||||||
|
{
|
||||||
|
return VAbstractSpline::TagName;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief FullUpdateFromFile update tool data form file.
|
* @brief FullUpdateFromFile update tool data form file.
|
||||||
|
@ -211,3 +217,12 @@ QPainterPath VAbstractSpline::ToolPath(PathDirection direction) const
|
||||||
path.setFillRule( Qt::WindingFill );
|
path.setFillRule( Qt::WindingFill );
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VAbstractSpline::ShowFoot(bool show)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < controlPoints.size(); ++i)
|
||||||
|
{
|
||||||
|
controlPoints.at(i)->setVisible(show);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -40,6 +40,10 @@ public:
|
||||||
VAbstractSpline(VPattern *doc, VContainer *data, quint32 id, QGraphicsItem * parent = nullptr);
|
VAbstractSpline(VPattern *doc, VContainer *data, quint32 id, QGraphicsItem * parent = nullptr);
|
||||||
static const QString TagName;
|
static const QString TagName;
|
||||||
virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0);
|
virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0);
|
||||||
|
virtual int type() const {return Type;}
|
||||||
|
enum { Type = UserType + static_cast<int>(Tool::AbstractSpline)};
|
||||||
|
virtual QString getTagName() const;
|
||||||
|
void ShowFoot(bool show);
|
||||||
public slots:
|
public slots:
|
||||||
virtual void FullUpdateFromFile ();
|
virtual void FullUpdateFromFile ();
|
||||||
void Disable(bool disable);
|
void Disable(bool disable);
|
||||||
|
|
|
@ -148,6 +148,36 @@ void VDrawTool::SaveDialogChange()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* @brief AddToFile add tag with informations about tool into file.
|
||||||
|
*/
|
||||||
|
void VDrawTool::AddToFile()
|
||||||
|
{
|
||||||
|
QDomElement domElement = doc->createElement(getTagName());
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOptions(domElement, obj);
|
||||||
|
AddToCalculation(domElement);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* @brief RefreshDataInFile refresh attributes in file. If attributes don't exist create them.
|
||||||
|
*/
|
||||||
|
void VDrawTool::RefreshDataInFile()
|
||||||
|
{
|
||||||
|
QDomElement domElement = doc->elementById(QString().setNum(id));
|
||||||
|
if (domElement.isElement())
|
||||||
|
{
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOptions(domElement, obj);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qDebug()<<"Can't find tool with id ="<< id << Q_FUNC_INFO;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief DialogLinkDestroy removes dialog pointer
|
* @brief DialogLinkDestroy removes dialog pointer
|
||||||
|
@ -209,6 +239,7 @@ qreal VDrawTool::CheckFormula(const quint32 &toolId, QString &formula, VContaine
|
||||||
if (resultUndo == UndoButton::Fix)
|
if (resultUndo == UndoButton::Fix)
|
||||||
{
|
{
|
||||||
DialogEditWrongFormula *dialog = new DialogEditWrongFormula(data, toolId, qApp->getMainWindow());
|
DialogEditWrongFormula *dialog = new DialogEditWrongFormula(data, toolId, qApp->getMainWindow());
|
||||||
|
dialog->setWindowTitle(tr("Edit wrong formula"));
|
||||||
dialog->setFormula(formula);
|
dialog->setFormula(formula);
|
||||||
if (dialog->exec() == QDialog::Accepted)
|
if (dialog->exec() == QDialog::Accepted)
|
||||||
{
|
{
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
#include "../../dialogs/tools/dialogtool.h"
|
#include "../../dialogs/tools/dialogtool.h"
|
||||||
#include "../../widgets/vmaingraphicsscene.h"
|
#include "../../widgets/vmaingraphicsscene.h"
|
||||||
#include "../../xml/vpattern.h"
|
#include "../../xml/vpattern.h"
|
||||||
|
#include "../../widgets/vmaingraphicsview.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The VDrawTool abstract class for all draw tool.
|
* @brief The VDrawTool abstract class for all draw tool.
|
||||||
|
@ -81,6 +82,8 @@ protected:
|
||||||
/** @brief SaveDialog save options into file after change in dialog. */
|
/** @brief SaveDialog save options into file after change in dialog. */
|
||||||
virtual void SaveDialog(QDomElement &domElement)=0;
|
virtual void SaveDialog(QDomElement &domElement)=0;
|
||||||
void SaveDialogChange();
|
void SaveDialogChange();
|
||||||
|
virtual void AddToFile();
|
||||||
|
virtual void RefreshDataInFile();
|
||||||
|
|
||||||
template <typename Dialog, typename Tool>
|
template <typename Dialog, typename Tool>
|
||||||
/**
|
/**
|
||||||
|
@ -118,6 +121,7 @@ protected:
|
||||||
QAction *selectedAction = menu.exec(event->screenPos());
|
QAction *selectedAction = menu.exec(event->screenPos());
|
||||||
if (selectedAction == actionOption)
|
if (selectedAction == actionOption)
|
||||||
{
|
{
|
||||||
|
qApp->getSceneView()->itemClicked(nullptr);
|
||||||
dialog = new Dialog(getData(), id, qApp->getMainWindow());
|
dialog = new Dialog(getData(), id, qApp->getMainWindow());
|
||||||
dialog->setModal(true);
|
dialog->setModal(true);
|
||||||
|
|
||||||
|
@ -134,6 +138,7 @@ protected:
|
||||||
}
|
}
|
||||||
if (selectedAction == actionRemove)
|
if (selectedAction == actionRemove)
|
||||||
{
|
{
|
||||||
|
qApp->getSceneView()->itemClicked(nullptr);
|
||||||
DeleteTool();
|
DeleteTool();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include "../../dialogs/tools/dialogalongline.h"
|
#include "../../dialogs/tools/dialogalongline.h"
|
||||||
#include "../../geometry/vpointf.h"
|
#include "../../geometry/vpointf.h"
|
||||||
#include "exception/vexceptionobjecterror.h"
|
#include "exception/vexceptionobjecterror.h"
|
||||||
|
#include "../../visualization/vistoolalongline.h"
|
||||||
|
|
||||||
const QString VToolAlongLine::ToolType = QStringLiteral("alongLine");
|
const QString VToolAlongLine::ToolType = QStringLiteral("alongLine");
|
||||||
|
|
||||||
|
@ -79,6 +80,16 @@ void VToolAlongLine::FullUpdateFromFile()
|
||||||
secondPointId = domElement.attribute(AttrSecondPoint, "").toUInt();
|
secondPointId = domElement.attribute(AttrSecondPoint, "").toUInt();
|
||||||
}
|
}
|
||||||
RefreshGeometry();
|
RefreshGeometry();
|
||||||
|
|
||||||
|
if (vis != nullptr)
|
||||||
|
{
|
||||||
|
VisToolAlongLine * visual = qobject_cast<VisToolAlongLine *>(vis);
|
||||||
|
visual->setPoint1Id(basePointId);
|
||||||
|
visual->setPoint2Id(secondPointId);
|
||||||
|
visual->setLength(formulaLength);
|
||||||
|
visual->setLineStyle(VAbstractTool::LineStyle(typeLine));
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -113,49 +124,6 @@ void VToolAlongLine::ShowContextMenu(QGraphicsSceneContextMenuEvent *event)
|
||||||
ContextMenu<DialogAlongLine>(this, event);
|
ContextMenu<DialogAlongLine>(this, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief AddToFile add tag with informations about tool into file.
|
|
||||||
*/
|
|
||||||
void VToolAlongLine::AddToFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(id);
|
|
||||||
QDomElement domElement = doc->createElement(TagName);
|
|
||||||
|
|
||||||
doc->SetAttribute(domElement, VDomDocument::AttrId, id);
|
|
||||||
doc->SetAttribute(domElement, AttrType, ToolType);
|
|
||||||
doc->SetAttribute(domElement, AttrName, point->name());
|
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
|
||||||
|
|
||||||
doc->SetAttribute(domElement, AttrTypeLine, typeLine);
|
|
||||||
doc->SetAttribute(domElement, AttrLength, formulaLength);
|
|
||||||
doc->SetAttribute(domElement, AttrFirstPoint, basePointId);
|
|
||||||
doc->SetAttribute(domElement, AttrSecondPoint, secondPointId);
|
|
||||||
|
|
||||||
AddToCalculation(domElement);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief RefreshDataInFile refresh attributes in file. If attributes don't exist create them.
|
|
||||||
*/
|
|
||||||
void VToolAlongLine::RefreshDataInFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(id);
|
|
||||||
QDomElement domElement = doc->elementById(QString().setNum(id));
|
|
||||||
if (domElement.isElement())
|
|
||||||
{
|
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
|
||||||
doc->SetAttribute(domElement, AttrName, point->name());
|
|
||||||
doc->SetAttribute(domElement, AttrTypeLine, typeLine);
|
|
||||||
doc->SetAttribute(domElement, AttrLength, formulaLength);
|
|
||||||
doc->SetAttribute(domElement, AttrFirstPoint, basePointId);
|
|
||||||
doc->SetAttribute(domElement, AttrSecondPoint, secondPointId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief RemoveReferens decrement value of reference.
|
* @brief RemoveReferens decrement value of reference.
|
||||||
|
@ -182,6 +150,77 @@ void VToolAlongLine::SaveDialog(QDomElement &domElement)
|
||||||
doc->SetAttribute(domElement, AttrSecondPoint, dialogTool->getSecondPointId());
|
doc->SetAttribute(domElement, AttrSecondPoint, dialogTool->getSecondPointId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolAlongLine::SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj)
|
||||||
|
{
|
||||||
|
QSharedPointer<VPointF> point = qSharedPointerDynamicCast<VPointF>(obj);
|
||||||
|
SCASSERT(point.isNull() == false);
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, VDomDocument::AttrId, id);
|
||||||
|
doc->SetAttribute(tag, AttrType, ToolType);
|
||||||
|
doc->SetAttribute(tag, AttrName, point->name());
|
||||||
|
doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx()));
|
||||||
|
doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my()));
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, AttrTypeLine, typeLine);
|
||||||
|
doc->SetAttribute(tag, AttrLength, formulaLength);
|
||||||
|
doc->SetAttribute(tag, AttrFirstPoint, basePointId);
|
||||||
|
doc->SetAttribute(tag, AttrSecondPoint, secondPointId);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VToolAlongLine::getSecondPointId() const
|
||||||
|
{
|
||||||
|
return secondPointId;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolAlongLine::setSecondPointId(const quint32 &value)
|
||||||
|
{
|
||||||
|
if (value != NULL_ID)
|
||||||
|
{
|
||||||
|
secondPointId = value;
|
||||||
|
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolAlongLine::ShowVisualization(bool show)
|
||||||
|
{
|
||||||
|
if (show)
|
||||||
|
{
|
||||||
|
if (vis == nullptr)
|
||||||
|
{
|
||||||
|
VisToolAlongLine *visual = new VisToolAlongLine(getData());
|
||||||
|
VMainGraphicsScene *scene = qApp->getCurrentScene();
|
||||||
|
connect(scene, &VMainGraphicsScene::NewFactor, visual, &Visualization::SetFactor);
|
||||||
|
scene->addItem(visual);
|
||||||
|
|
||||||
|
visual->setPoint1Id(basePointId);
|
||||||
|
visual->setPoint2Id(secondPointId);
|
||||||
|
visual->setLength(formulaLength);
|
||||||
|
visual->setLineStyle(VAbstractTool::LineStyle(typeLine));
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
vis = visual;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VisToolAlongLine * visual = qobject_cast<VisToolAlongLine *>(vis);
|
||||||
|
if (visual != nullptr)
|
||||||
|
{
|
||||||
|
visual->show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delete vis;
|
||||||
|
vis = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief setDialog set dialog when user want change tool option.
|
* @brief setDialog set dialog when user want change tool option.
|
||||||
|
@ -272,7 +311,7 @@ VToolAlongLine* VToolAlongLine::Create(const quint32 _id, const QString &pointNa
|
||||||
doc->UpdateToolData(id, data);
|
doc->UpdateToolData(id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
VDrawTool::AddRecord(id, Tool::AlongLineTool, doc);
|
VDrawTool::AddRecord(id, Tool::AlongLine, doc);
|
||||||
if (parse == Document::FullParse)
|
if (parse == Document::FullParse)
|
||||||
{
|
{
|
||||||
VToolAlongLine *point = new VToolAlongLine(doc, data, id, formula, firstPointId,
|
VToolAlongLine *point = new VToolAlongLine(doc, data, id, formula, firstPointId,
|
||||||
|
|
|
@ -49,16 +49,21 @@ public:
|
||||||
const qreal &mx, const qreal &my, VMainGraphicsScene *scene, VPattern *doc,
|
const qreal &mx, const qreal &my, VMainGraphicsScene *scene, VPattern *doc,
|
||||||
VContainer *data, const Document &parse, const Source &typeCreation);
|
VContainer *data, const Document &parse, const Source &typeCreation);
|
||||||
static const QString ToolType;
|
static const QString ToolType;
|
||||||
|
virtual int type() const {return Type;}
|
||||||
|
enum { Type = UserType + static_cast<int>(Tool::AlongLine)};
|
||||||
|
|
||||||
|
quint32 getSecondPointId() const;
|
||||||
|
void setSecondPointId(const quint32 &value);
|
||||||
|
virtual void ShowVisualization(bool show);
|
||||||
public slots:
|
public slots:
|
||||||
virtual void FullUpdateFromFile();
|
virtual void FullUpdateFromFile();
|
||||||
virtual void SetFactor(qreal factor);
|
virtual void SetFactor(qreal factor);
|
||||||
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
||||||
protected:
|
protected:
|
||||||
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
||||||
virtual void AddToFile();
|
|
||||||
virtual void RefreshDataInFile();
|
|
||||||
virtual void RemoveReferens();
|
virtual void RemoveReferens();
|
||||||
virtual void SaveDialog(QDomElement &domElement);
|
virtual void SaveDialog(QDomElement &domElement);
|
||||||
|
virtual void SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj);
|
||||||
private:
|
private:
|
||||||
/** @brief secondPointId id second point of line. */
|
/** @brief secondPointId id second point of line. */
|
||||||
quint32 secondPointId;
|
quint32 secondPointId;
|
||||||
|
|
|
@ -29,8 +29,11 @@
|
||||||
#include "vtoolarc.h"
|
#include "vtoolarc.h"
|
||||||
#include "../../container/calculator.h"
|
#include "../../container/calculator.h"
|
||||||
#include "../../dialogs/tools/dialogarc.h"
|
#include "../../dialogs/tools/dialogarc.h"
|
||||||
#include <QKeyEvent>
|
|
||||||
#include "../../geometry/varc.h"
|
#include "../../geometry/varc.h"
|
||||||
|
#include "../container/vformula.h"
|
||||||
|
#include "../../visualization/vistoolarc.h"
|
||||||
|
|
||||||
|
#include <QKeyEvent>
|
||||||
|
|
||||||
const QString VToolArc::TagName = QStringLiteral("arc");
|
const QString VToolArc::TagName = QStringLiteral("arc");
|
||||||
const QString VToolArc::ToolType = QStringLiteral("simple");
|
const QString VToolArc::ToolType = QStringLiteral("simple");
|
||||||
|
@ -149,7 +152,7 @@ VToolArc* VToolArc::Create(const quint32 _id, const quint32 ¢er, QString &ra
|
||||||
doc->UpdateToolData(id, data);
|
doc->UpdateToolData(id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
VDrawTool::AddRecord(id, Tool::ArcTool, doc);
|
VDrawTool::AddRecord(id, Tool::Arc, doc);
|
||||||
if (parse == Document::FullParse)
|
if (parse == Document::FullParse)
|
||||||
{
|
{
|
||||||
VToolArc *toolArc = new VToolArc(doc, data, id, typeCreation);
|
VToolArc *toolArc = new VToolArc(doc, data, id, typeCreation);
|
||||||
|
@ -165,12 +168,144 @@ VToolArc* VToolArc::Create(const quint32 _id, const quint32 ¢er, QString &ra
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
QString VToolArc::getTagName() const
|
||||||
* @brief FullUpdateFromFile update tool data form file.
|
|
||||||
*/
|
|
||||||
void VToolArc::FullUpdateFromFile()
|
|
||||||
{
|
{
|
||||||
RefreshGeometry();
|
return VToolArc::TagName;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VToolArc::getCenter() const
|
||||||
|
{
|
||||||
|
QSharedPointer<VArc> arc = VAbstractTool::data.GeometricObject<VArc>(id);
|
||||||
|
SCASSERT(arc.isNull() == false);
|
||||||
|
|
||||||
|
return arc->GetCenter().id();
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolArc::setCenter(const quint32 &value)
|
||||||
|
{
|
||||||
|
if (value != NULL_ID)
|
||||||
|
{
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
QSharedPointer<VArc> arc = qSharedPointerDynamicCast<VArc>(obj);
|
||||||
|
|
||||||
|
QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(value);
|
||||||
|
arc->SetCenter(*point.data());
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
VFormula VToolArc::getFormulaRadius() const
|
||||||
|
{
|
||||||
|
QSharedPointer<VArc> arc = VAbstractTool::data.GeometricObject<VArc>(id);
|
||||||
|
SCASSERT(arc.isNull() == false);
|
||||||
|
|
||||||
|
VFormula radius(arc->GetFormulaRadius(), getData());
|
||||||
|
radius.setCheckZero(true);
|
||||||
|
radius.setToolId(id);
|
||||||
|
radius.setPostfix(VDomDocument::UnitsToStr(qApp->patternUnit()));
|
||||||
|
return radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolArc::setFormulaRadius(const VFormula &value)
|
||||||
|
{
|
||||||
|
if (value.error() == false)
|
||||||
|
{
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
QSharedPointer<VArc> arc = qSharedPointerDynamicCast<VArc>(obj);
|
||||||
|
arc->SetFormulaRadius(value);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
VFormula VToolArc::getFormulaF1() const
|
||||||
|
{
|
||||||
|
QSharedPointer<VArc> arc = VAbstractTool::data.GeometricObject<VArc>(id);
|
||||||
|
SCASSERT(arc.isNull() == false);
|
||||||
|
|
||||||
|
VFormula f1(arc->GetFormulaF1(), getData());
|
||||||
|
f1.setCheckZero(false);
|
||||||
|
f1.setToolId(id);
|
||||||
|
f1.setPostfix(QStringLiteral("°"));
|
||||||
|
return f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolArc::setFormulaF1(const VFormula &value)
|
||||||
|
{
|
||||||
|
if (value.error() == false)
|
||||||
|
{
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
QSharedPointer<VArc> arc = qSharedPointerDynamicCast<VArc>(obj);
|
||||||
|
arc->SetFormulaF1(value);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
VFormula VToolArc::getFormulaF2() const
|
||||||
|
{
|
||||||
|
QSharedPointer<VArc> arc = VAbstractTool::data.GeometricObject<VArc>(id);
|
||||||
|
SCASSERT(arc.isNull() == false);
|
||||||
|
|
||||||
|
VFormula f2(arc->GetFormulaF2(), getData());
|
||||||
|
f2.setCheckZero(false);
|
||||||
|
f2.setToolId(id);
|
||||||
|
f2.setPostfix(QStringLiteral("°"));
|
||||||
|
return f2;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolArc::setFormulaF2(const VFormula &value)
|
||||||
|
{
|
||||||
|
if (value.error() == false)
|
||||||
|
{
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
QSharedPointer<VArc> arc = qSharedPointerDynamicCast<VArc>(obj);
|
||||||
|
arc->SetFormulaF2(value);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolArc::ShowVisualization(bool show)
|
||||||
|
{
|
||||||
|
if (show)
|
||||||
|
{
|
||||||
|
if (vis == nullptr)
|
||||||
|
{
|
||||||
|
VisToolArc * visual = new VisToolArc(getData());
|
||||||
|
VMainGraphicsScene *scene = qApp->getCurrentScene();
|
||||||
|
connect(scene, &VMainGraphicsScene::NewFactor, visual, &Visualization::SetFactor);
|
||||||
|
scene->addItem(visual);
|
||||||
|
|
||||||
|
const QSharedPointer<VArc> arc = VAbstractTool::data.GeometricObject<VArc>(id);
|
||||||
|
|
||||||
|
visual->setPoint1Id(arc->GetCenter().id());
|
||||||
|
visual->setRadius(arc->GetFormulaRadius());
|
||||||
|
visual->setF1(arc->GetFormulaF1());
|
||||||
|
visual->setF2(arc->GetFormulaF2());
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
vis = visual;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VisToolArc *visual = qobject_cast<VisToolArc *>(vis);
|
||||||
|
if (visual != nullptr)
|
||||||
|
{
|
||||||
|
visual->show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delete vis;
|
||||||
|
vis = nullptr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -183,42 +318,6 @@ void VToolArc::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
|
||||||
ContextMenu<DialogArc>(this, event);
|
ContextMenu<DialogArc>(this, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief AddToFile add tag with informations about tool into file.
|
|
||||||
*/
|
|
||||||
void VToolArc::AddToFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VArc> arc = VAbstractTool::data.GeometricObject<VArc>(id);
|
|
||||||
QDomElement domElement = doc->createElement(TagName);
|
|
||||||
|
|
||||||
doc->SetAttribute(domElement, VDomDocument::AttrId, id);
|
|
||||||
doc->SetAttribute(domElement, AttrType, ToolType);
|
|
||||||
doc->SetAttribute(domElement, AttrCenter, arc->GetCenter().id());
|
|
||||||
doc->SetAttribute(domElement, AttrRadius, arc->GetFormulaRadius());
|
|
||||||
doc->SetAttribute(domElement, AttrAngle1, arc->GetFormulaF1());
|
|
||||||
doc->SetAttribute(domElement, AttrAngle2, arc->GetFormulaF2());
|
|
||||||
|
|
||||||
AddToCalculation(domElement);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief RefreshDataInFile refresh attributes in file. If attributes don't exist create them.
|
|
||||||
*/
|
|
||||||
void VToolArc::RefreshDataInFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VArc> arc = VAbstractTool::data.GeometricObject<VArc>(id);
|
|
||||||
QDomElement domElement = doc->elementById(QString().setNum(id));
|
|
||||||
if (domElement.isElement())
|
|
||||||
{
|
|
||||||
doc->SetAttribute(domElement, AttrCenter, arc->GetCenter().id());
|
|
||||||
doc->SetAttribute(domElement, AttrRadius, arc->GetFormulaRadius());
|
|
||||||
doc->SetAttribute(domElement, AttrAngle1, arc->GetFormulaF1());
|
|
||||||
doc->SetAttribute(domElement, AttrAngle2, arc->GetFormulaF2());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief RemoveReferens decrement value of reference.
|
* @brief RemoveReferens decrement value of reference.
|
||||||
|
@ -244,6 +343,20 @@ void VToolArc::SaveDialog(QDomElement &domElement)
|
||||||
doc->SetAttribute(domElement, AttrAngle2, dialogTool->GetF2());
|
doc->SetAttribute(domElement, AttrAngle2, dialogTool->GetF2());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolArc::SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj)
|
||||||
|
{
|
||||||
|
QSharedPointer<VArc> arc = qSharedPointerDynamicCast<VArc>(obj);
|
||||||
|
SCASSERT(arc.isNull() == false);
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, VDomDocument::AttrId, id);
|
||||||
|
doc->SetAttribute(tag, AttrType, ToolType);
|
||||||
|
doc->SetAttribute(tag, AttrCenter, arc->GetCenter().id());
|
||||||
|
doc->SetAttribute(tag, AttrRadius, arc->GetFormulaRadius());
|
||||||
|
doc->SetAttribute(tag, AttrAngle1, arc->GetFormulaF1());
|
||||||
|
doc->SetAttribute(tag, AttrAngle2, arc->GetFormulaF2());
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief RefreshGeometry refresh item on scene.
|
* @brief RefreshGeometry refresh item on scene.
|
||||||
|
@ -252,4 +365,16 @@ void VToolArc::RefreshGeometry()
|
||||||
{
|
{
|
||||||
this->setPen(QPen(currentColor, qApp->toPixel(qApp->widthHairLine())/factor));
|
this->setPen(QPen(currentColor, qApp->toPixel(qApp->widthHairLine())/factor));
|
||||||
this->setPath(ToolPath());
|
this->setPath(ToolPath());
|
||||||
|
|
||||||
|
if (vis != nullptr)
|
||||||
|
{
|
||||||
|
const QSharedPointer<VArc> arc = VAbstractTool::data.GeometricObject<VArc>(id);
|
||||||
|
VisToolArc *visual = qobject_cast<VisToolArc *>(vis);
|
||||||
|
|
||||||
|
visual->setPoint1Id(arc->GetCenter().id());
|
||||||
|
visual->setRadius(arc->GetFormulaRadius());
|
||||||
|
visual->setF1(arc->GetFormulaF1());
|
||||||
|
visual->setF2(arc->GetFormulaF2());
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,8 @@
|
||||||
|
|
||||||
#include "vabstractspline.h"
|
#include "vabstractspline.h"
|
||||||
|
|
||||||
|
class VFormula;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The VToolArc class tool for creation arc.
|
* @brief The VToolArc class tool for creation arc.
|
||||||
*/
|
*/
|
||||||
|
@ -46,14 +48,28 @@ public:
|
||||||
const Source &typeCreation);
|
const Source &typeCreation);
|
||||||
static const QString TagName;
|
static const QString TagName;
|
||||||
static const QString ToolType;
|
static const QString ToolType;
|
||||||
public slots:
|
virtual int type() const {return Type;}
|
||||||
virtual void FullUpdateFromFile();
|
enum { Type = UserType + static_cast<int>(Tool::Arc)};
|
||||||
|
virtual QString getTagName() const;
|
||||||
|
|
||||||
|
quint32 getCenter() const;
|
||||||
|
void setCenter(const quint32 &value);
|
||||||
|
|
||||||
|
VFormula getFormulaRadius() const;
|
||||||
|
void setFormulaRadius(const VFormula &value);
|
||||||
|
|
||||||
|
VFormula getFormulaF1() const;
|
||||||
|
void setFormulaF1(const VFormula &value);
|
||||||
|
|
||||||
|
VFormula getFormulaF2() const;
|
||||||
|
void setFormulaF2(const VFormula &value);
|
||||||
|
|
||||||
|
virtual void ShowVisualization(bool show);
|
||||||
protected:
|
protected:
|
||||||
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
||||||
virtual void AddToFile();
|
|
||||||
virtual void RefreshDataInFile();
|
|
||||||
virtual void RemoveReferens();
|
virtual void RemoveReferens();
|
||||||
virtual void SaveDialog(QDomElement &domElement);
|
virtual void SaveDialog(QDomElement &domElement);
|
||||||
|
virtual void SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj);
|
||||||
private:
|
private:
|
||||||
void RefreshGeometry();
|
void RefreshGeometry();
|
||||||
};
|
};
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#include "../../container/calculator.h"
|
#include "../../container/calculator.h"
|
||||||
#include "../../dialogs/tools/dialogbisector.h"
|
#include "../../dialogs/tools/dialogbisector.h"
|
||||||
#include "../../geometry/vpointf.h"
|
#include "../../geometry/vpointf.h"
|
||||||
|
#include "../../visualization/vistoolbisector.h"
|
||||||
|
|
||||||
const QString VToolBisector::ToolType = QStringLiteral("bisector");
|
const QString VToolBisector::ToolType = QStringLiteral("bisector");
|
||||||
|
|
||||||
|
@ -196,7 +197,7 @@ VToolBisector* VToolBisector::Create(const quint32 _id, QString &formula, const
|
||||||
doc->UpdateToolData(id, data);
|
doc->UpdateToolData(id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
VDrawTool::AddRecord(id, Tool::BisectorTool, doc);
|
VDrawTool::AddRecord(id, Tool::Bisector, doc);
|
||||||
if (parse == Document::FullParse)
|
if (parse == Document::FullParse)
|
||||||
{
|
{
|
||||||
VToolBisector *point = new VToolBisector(doc, data, id, typeLine, formula, firstPointId, secondPointId,
|
VToolBisector *point = new VToolBisector(doc, data, id, typeLine, formula, firstPointId, secondPointId,
|
||||||
|
@ -230,6 +231,17 @@ void VToolBisector::FullUpdateFromFile()
|
||||||
thirdPointId = domElement.attribute(AttrThirdPoint, "").toUInt();
|
thirdPointId = domElement.attribute(AttrThirdPoint, "").toUInt();
|
||||||
}
|
}
|
||||||
RefreshGeometry();
|
RefreshGeometry();
|
||||||
|
|
||||||
|
if (vis != nullptr)
|
||||||
|
{
|
||||||
|
VisToolBisector *visual = qobject_cast<VisToolBisector *>(vis);
|
||||||
|
visual->setPoint1Id(firstPointId);
|
||||||
|
visual->setPoint2Id(basePointId);
|
||||||
|
visual->setPoint3Id(thirdPointId);
|
||||||
|
visual->setLength(formulaLength);
|
||||||
|
visual->setLineStyle(VAbstractTool::LineStyle(typeLine));
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -263,51 +275,6 @@ void VToolBisector::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
|
||||||
ContextMenu<DialogBisector>(this, event);
|
ContextMenu<DialogBisector>(this, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief AddToFile add tag with informations about tool into file.
|
|
||||||
*/
|
|
||||||
void VToolBisector::AddToFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(id);
|
|
||||||
QDomElement domElement = doc->createElement(TagName);
|
|
||||||
|
|
||||||
doc->SetAttribute(domElement, VDomDocument::AttrId, id);
|
|
||||||
doc->SetAttribute(domElement, AttrType, ToolType);
|
|
||||||
doc->SetAttribute(domElement, AttrName, point->name());
|
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
|
||||||
|
|
||||||
doc->SetAttribute(domElement, AttrTypeLine, typeLine);
|
|
||||||
doc->SetAttribute(domElement, AttrLength, formulaLength);
|
|
||||||
doc->SetAttribute(domElement, AttrFirstPoint, firstPointId);
|
|
||||||
doc->SetAttribute(domElement, AttrSecondPoint, basePointId);
|
|
||||||
doc->SetAttribute(domElement, AttrThirdPoint, thirdPointId);
|
|
||||||
|
|
||||||
AddToCalculation(domElement);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief RefreshDataInFile refresh attributes in file. If attributes don't exist create them.
|
|
||||||
*/
|
|
||||||
void VToolBisector::RefreshDataInFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(id);
|
|
||||||
QDomElement domElement = doc->elementById(QString().setNum(id));
|
|
||||||
if (domElement.isElement())
|
|
||||||
{
|
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
|
||||||
doc->SetAttribute(domElement, AttrName, point->name());
|
|
||||||
doc->SetAttribute(domElement, AttrTypeLine, typeLine);
|
|
||||||
doc->SetAttribute(domElement, AttrLength, formulaLength);
|
|
||||||
doc->SetAttribute(domElement, AttrFirstPoint, firstPointId);
|
|
||||||
doc->SetAttribute(domElement, AttrSecondPoint, basePointId);
|
|
||||||
doc->SetAttribute(domElement, AttrThirdPoint, thirdPointId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief RemoveReferens decrement value of reference.
|
* @brief RemoveReferens decrement value of reference.
|
||||||
|
@ -335,3 +302,95 @@ void VToolBisector::SaveDialog(QDomElement &domElement)
|
||||||
doc->SetAttribute(domElement, AttrSecondPoint, QString().setNum(dialogTool->getSecondPointId()));
|
doc->SetAttribute(domElement, AttrSecondPoint, QString().setNum(dialogTool->getSecondPointId()));
|
||||||
doc->SetAttribute(domElement, AttrThirdPoint, QString().setNum(dialogTool->getThirdPointId()));
|
doc->SetAttribute(domElement, AttrThirdPoint, QString().setNum(dialogTool->getThirdPointId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolBisector::SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj)
|
||||||
|
{
|
||||||
|
QSharedPointer<VPointF> point = qSharedPointerDynamicCast<VPointF>(obj);
|
||||||
|
SCASSERT(point.isNull() == false);
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, VDomDocument::AttrId, id);
|
||||||
|
doc->SetAttribute(tag, AttrType, ToolType);
|
||||||
|
doc->SetAttribute(tag, AttrName, point->name());
|
||||||
|
doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx()));
|
||||||
|
doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my()));
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, AttrTypeLine, typeLine);
|
||||||
|
doc->SetAttribute(tag, AttrLength, formulaLength);
|
||||||
|
doc->SetAttribute(tag, AttrFirstPoint, firstPointId);
|
||||||
|
doc->SetAttribute(tag, AttrSecondPoint, basePointId);
|
||||||
|
doc->SetAttribute(tag, AttrThirdPoint, thirdPointId);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VToolBisector::getThirdPointId() const
|
||||||
|
{
|
||||||
|
return thirdPointId;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolBisector::setThirdPointId(const quint32 &value)
|
||||||
|
{
|
||||||
|
if (value != NULL_ID)
|
||||||
|
{
|
||||||
|
thirdPointId = value;
|
||||||
|
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolBisector::ShowVisualization(bool show)
|
||||||
|
{
|
||||||
|
if (show)
|
||||||
|
{
|
||||||
|
if (vis == nullptr)
|
||||||
|
{
|
||||||
|
VisToolBisector * visual = new VisToolBisector(getData());
|
||||||
|
VMainGraphicsScene *scene = qApp->getCurrentScene();
|
||||||
|
connect(scene, &VMainGraphicsScene::NewFactor, visual, &Visualization::SetFactor);
|
||||||
|
scene->addItem(visual);
|
||||||
|
|
||||||
|
visual->setPoint1Id(firstPointId);
|
||||||
|
visual->setPoint2Id(basePointId);
|
||||||
|
visual->setPoint3Id(thirdPointId);
|
||||||
|
visual->setLength(formulaLength);
|
||||||
|
visual->setLineStyle(VAbstractTool::LineStyle(typeLine));
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
vis = visual;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VisToolBisector *visual = qobject_cast<VisToolBisector *>(vis);
|
||||||
|
if (visual != nullptr)
|
||||||
|
{
|
||||||
|
visual->show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delete vis;
|
||||||
|
vis = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VToolBisector::getFirstPointId() const
|
||||||
|
{
|
||||||
|
return firstPointId;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolBisector::setFirstPointId(const quint32 &value)
|
||||||
|
{
|
||||||
|
if (value != NULL_ID)
|
||||||
|
{
|
||||||
|
firstPointId = value;
|
||||||
|
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,16 +53,25 @@ public:
|
||||||
VPattern *doc, VContainer *data, const Document &parse,
|
VPattern *doc, VContainer *data, const Document &parse,
|
||||||
const Source &typeCreation);
|
const Source &typeCreation);
|
||||||
static const QString ToolType;
|
static const QString ToolType;
|
||||||
|
virtual int type() const {return Type;}
|
||||||
|
enum { Type = UserType + static_cast<int>(Tool::Bisector)};
|
||||||
|
|
||||||
|
quint32 getFirstPointId() const;
|
||||||
|
void setFirstPointId(const quint32 &value);
|
||||||
|
|
||||||
|
quint32 getThirdPointId() const;
|
||||||
|
void setThirdPointId(const quint32 &value);
|
||||||
|
|
||||||
|
virtual void ShowVisualization(bool show);
|
||||||
public slots:
|
public slots:
|
||||||
virtual void FullUpdateFromFile();
|
virtual void FullUpdateFromFile();
|
||||||
virtual void SetFactor(qreal factor);
|
virtual void SetFactor(qreal factor);
|
||||||
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
||||||
protected:
|
protected:
|
||||||
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
||||||
virtual void AddToFile();
|
|
||||||
virtual void RefreshDataInFile();
|
|
||||||
virtual void RemoveReferens();
|
virtual void RemoveReferens();
|
||||||
virtual void SaveDialog(QDomElement &domElement);
|
virtual void SaveDialog(QDomElement &domElement);
|
||||||
|
virtual void SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj);
|
||||||
private:
|
private:
|
||||||
/** @brief firstPointId id first point of angle. */
|
/** @brief firstPointId id first point of angle. */
|
||||||
quint32 firstPointId;
|
quint32 firstPointId;
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
|
|
||||||
#include "vtoolcut.h"
|
#include "vtoolcut.h"
|
||||||
#include "../../geometry/vpointf.h"
|
#include "../../geometry/vpointf.h"
|
||||||
|
#include "../../container/vformula.h"
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VToolCut::VToolCut(VPattern *doc, VContainer *data, const quint32 &id, const QString &formula,
|
VToolCut::VToolCut(VPattern *doc, VContainer *data, const quint32 &id, const QString &formula,
|
||||||
|
@ -84,6 +85,45 @@ void VToolCut::HoverPath(quint32 id, SimpleCurvePoint curvePosition, PathDirecti
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VToolCut::getCurveCutId() const
|
||||||
|
{
|
||||||
|
return curveCutId;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolCut::setCurveCutId(const quint32 &value)
|
||||||
|
{
|
||||||
|
if (value != NULL_ID)
|
||||||
|
{
|
||||||
|
curveCutId = value;
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
VFormula VToolCut::getFormula() const
|
||||||
|
{
|
||||||
|
VFormula val(formula, getData());
|
||||||
|
val.setCheckZero(true);
|
||||||
|
val.setToolId(id);
|
||||||
|
val.setPostfix(VDomDocument::UnitsToStr(qApp->patternUnit()));
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolCut::setFormula(const VFormula &value)
|
||||||
|
{
|
||||||
|
if (value.error() == false)
|
||||||
|
{
|
||||||
|
formula = value.getFormula(FormulaType::FromUser);
|
||||||
|
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief RefreshGeometry refresh item on scene.
|
* @brief RefreshGeometry refresh item on scene.
|
||||||
|
|
|
@ -32,12 +32,23 @@
|
||||||
#include "vtoolpoint.h"
|
#include "vtoolpoint.h"
|
||||||
#include "../../visualization/vsimplecurve.h"
|
#include "../../visualization/vsimplecurve.h"
|
||||||
|
|
||||||
|
class VFormula;
|
||||||
|
|
||||||
class VToolCut : public VToolPoint
|
class VToolCut : public VToolPoint
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
VToolCut(VPattern *doc, VContainer *data, const quint32 &id, const QString &formula, const quint32 &curveCutId,
|
VToolCut(VPattern *doc, VContainer *data, const quint32 &id, const QString &formula, const quint32 &curveCutId,
|
||||||
const quint32 &curve1id, const quint32 &curve2id, QGraphicsItem * parent = nullptr);
|
const quint32 &curve1id, const quint32 &curve2id, QGraphicsItem * parent = nullptr);
|
||||||
|
virtual int type() const {return Type;}
|
||||||
|
enum { Type = UserType + static_cast<int>(Tool::Cut)};
|
||||||
|
|
||||||
|
VFormula getFormula() const;
|
||||||
|
void setFormula(const VFormula &value);
|
||||||
|
|
||||||
|
quint32 getCurveCutId() const;
|
||||||
|
void setCurveCutId(const quint32 &value);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
virtual void ChangedActivDraw(const QString &newName);
|
virtual void ChangedActivDraw(const QString &newName);
|
||||||
virtual void CurveChoosed(quint32 id)=0;
|
virtual void CurveChoosed(quint32 id)=0;
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include "../../dialogs/tools/dialogcutarc.h"
|
#include "../../dialogs/tools/dialogcutarc.h"
|
||||||
#include "../../geometry/vpointf.h"
|
#include "../../geometry/vpointf.h"
|
||||||
#include "../../geometry/varc.h"
|
#include "../../geometry/varc.h"
|
||||||
|
#include "../../visualization/vistoolcutarc.h"
|
||||||
|
|
||||||
const QString VToolCutArc::ToolType = QStringLiteral("cutArc");
|
const QString VToolCutArc::ToolType = QStringLiteral("cutArc");
|
||||||
const QString VToolCutArc::AttrArc = QStringLiteral("arc");
|
const QString VToolCutArc::AttrArc = QStringLiteral("arc");
|
||||||
|
@ -163,7 +164,7 @@ VToolCutArc* VToolCutArc::Create(const quint32 _id, const QString &pointName, QS
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VDrawTool::AddRecord(id, Tool::CutArcTool, doc);
|
VDrawTool::AddRecord(id, Tool::CutArc, doc);
|
||||||
if (parse == Document::FullParse)
|
if (parse == Document::FullParse)
|
||||||
{
|
{
|
||||||
VToolCutArc *point = new VToolCutArc(doc, data, id, formula, arcId, arc1id, arc2id, typeCreation);
|
VToolCutArc *point = new VToolCutArc(doc, data, id, formula, arcId, arc1id, arc2id, typeCreation);
|
||||||
|
@ -180,6 +181,39 @@ VToolCutArc* VToolCutArc::Create(const quint32 _id, const QString &pointName, QS
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolCutArc::ShowVisualization(bool show)
|
||||||
|
{
|
||||||
|
if (show)
|
||||||
|
{
|
||||||
|
if (vis == nullptr)
|
||||||
|
{
|
||||||
|
VisToolCutArc * visual = new VisToolCutArc(getData());
|
||||||
|
VMainGraphicsScene *scene = qApp->getCurrentScene();
|
||||||
|
connect(scene, &VMainGraphicsScene::NewFactor, visual, &Visualization::SetFactor);
|
||||||
|
scene->addItem(visual);
|
||||||
|
|
||||||
|
visual->setPoint1Id(curveCutId);
|
||||||
|
visual->setLength(formula);
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
vis = visual;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VisToolCutArc *visual = qobject_cast<VisToolCutArc *>(vis);
|
||||||
|
if (visual != nullptr)
|
||||||
|
{
|
||||||
|
visual->show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delete vis;
|
||||||
|
vis = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief FullUpdateFromFile update tool data form file.
|
* @brief FullUpdateFromFile update tool data form file.
|
||||||
|
@ -187,6 +221,14 @@ VToolCutArc* VToolCutArc::Create(const quint32 _id, const QString &pointName, QS
|
||||||
void VToolCutArc::FullUpdateFromFile()
|
void VToolCutArc::FullUpdateFromFile()
|
||||||
{
|
{
|
||||||
FullUpdateCurveFromFile(AttrArc);
|
FullUpdateCurveFromFile(AttrArc);
|
||||||
|
|
||||||
|
if (vis != nullptr)
|
||||||
|
{
|
||||||
|
VisToolCutArc *visual = qobject_cast<VisToolCutArc *>(vis);
|
||||||
|
visual->setPoint1Id(curveCutId);
|
||||||
|
visual->setLength(formula);
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -219,45 +261,6 @@ void VToolCutArc::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
|
||||||
ContextMenu<DialogCutArc>(this, event);
|
ContextMenu<DialogCutArc>(this, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief AddToFile add tag with informations about tool into file.
|
|
||||||
*/
|
|
||||||
void VToolCutArc::AddToFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(id);
|
|
||||||
QDomElement domElement = doc->createElement(TagName);
|
|
||||||
|
|
||||||
doc->SetAttribute(domElement, VDomDocument::AttrId, id);
|
|
||||||
doc->SetAttribute(domElement, AttrType, ToolType);
|
|
||||||
doc->SetAttribute(domElement, AttrName, point->name());
|
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
|
||||||
|
|
||||||
doc->SetAttribute(domElement, AttrLength, formula);
|
|
||||||
doc->SetAttribute(domElement, AttrArc, curveCutId);
|
|
||||||
|
|
||||||
AddToCalculation(domElement);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief RefreshDataInFile refresh attributes in file. If attributes don't exist create them.
|
|
||||||
*/
|
|
||||||
void VToolCutArc::RefreshDataInFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(id);
|
|
||||||
QDomElement domElement = doc->elementById(QString().setNum(id));
|
|
||||||
if (domElement.isElement())
|
|
||||||
{
|
|
||||||
doc->SetAttribute(domElement, AttrName, point->name());
|
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
|
||||||
doc->SetAttribute(domElement, AttrLength, formula);
|
|
||||||
doc->SetAttribute(domElement, AttrArc, curveCutId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief SaveDialog save options into file after change in dialog.
|
* @brief SaveDialog save options into file after change in dialog.
|
||||||
|
@ -296,3 +299,19 @@ void VToolCutArc::RefreshCurve(VSimpleCurve *curve, quint32 curveId, SimpleCurve
|
||||||
}
|
}
|
||||||
curve->setPath(path);
|
curve->setPath(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolCutArc::SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj)
|
||||||
|
{
|
||||||
|
QSharedPointer<VPointF> point = qSharedPointerDynamicCast<VPointF>(obj);
|
||||||
|
SCASSERT(point.isNull() == false);
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, VDomDocument::AttrId, id);
|
||||||
|
doc->SetAttribute(tag, AttrType, ToolType);
|
||||||
|
doc->SetAttribute(tag, AttrName, point->name());
|
||||||
|
doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx()));
|
||||||
|
doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my()));
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, AttrLength, formula);
|
||||||
|
doc->SetAttribute(tag, AttrArc, curveCutId);
|
||||||
|
}
|
||||||
|
|
|
@ -48,17 +48,19 @@ public:
|
||||||
VContainer *data, const Document &parse, const Source &typeCreation);
|
VContainer *data, const Document &parse, const Source &typeCreation);
|
||||||
static const QString ToolType;
|
static const QString ToolType;
|
||||||
static const QString AttrArc;
|
static const QString AttrArc;
|
||||||
|
virtual int type() const {return Type;}
|
||||||
|
enum { Type = UserType + static_cast<int>(Tool::CutArc)};
|
||||||
|
virtual void ShowVisualization(bool show);
|
||||||
public slots:
|
public slots:
|
||||||
virtual void FullUpdateFromFile();
|
virtual void FullUpdateFromFile();
|
||||||
virtual void CurveChoosed(quint32 id);
|
virtual void CurveChoosed(quint32 id);
|
||||||
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
||||||
protected:
|
protected:
|
||||||
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
||||||
virtual void AddToFile();
|
|
||||||
virtual void RefreshDataInFile();
|
|
||||||
virtual void SaveDialog(QDomElement &domElement);
|
virtual void SaveDialog(QDomElement &domElement);
|
||||||
virtual void RefreshCurve(VSimpleCurve *curve, quint32 curveId, SimpleCurvePoint curvePosition,
|
virtual void RefreshCurve(VSimpleCurve *curve, quint32 curveId, SimpleCurvePoint curvePosition,
|
||||||
PathDirection direction = PathDirection::Hide);
|
PathDirection direction = PathDirection::Hide);
|
||||||
|
virtual void SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj);
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VToolCutArc)
|
Q_DISABLE_COPY(VToolCutArc)
|
||||||
};
|
};
|
||||||
|
|
|
@ -30,6 +30,8 @@
|
||||||
#include "../../container/calculator.h"
|
#include "../../container/calculator.h"
|
||||||
#include "../../dialogs/tools/dialogcutspline.h"
|
#include "../../dialogs/tools/dialogcutspline.h"
|
||||||
#include "../../geometry/vpointf.h"
|
#include "../../geometry/vpointf.h"
|
||||||
|
#include "../../visualization/vistoolcutspline.h"
|
||||||
|
#include "vabstractspline.h"
|
||||||
|
|
||||||
#include <geometry/vspline.h>
|
#include <geometry/vspline.h>
|
||||||
|
|
||||||
|
@ -88,7 +90,7 @@ void VToolCutSpline::setDialog()
|
||||||
* @param doc dom document container.
|
* @param doc dom document container.
|
||||||
* @param data container with variables.
|
* @param data container with variables.
|
||||||
*/
|
*/
|
||||||
void VToolCutSpline::Create(DialogTool *dialog, VMainGraphicsScene *scene,
|
VToolCutSpline* VToolCutSpline::Create(DialogTool *dialog, VMainGraphicsScene *scene,
|
||||||
VPattern *doc, VContainer *data)
|
VPattern *doc, VContainer *data)
|
||||||
{
|
{
|
||||||
SCASSERT(dialog != nullptr);
|
SCASSERT(dialog != nullptr);
|
||||||
|
@ -97,7 +99,13 @@ void VToolCutSpline::Create(DialogTool *dialog, VMainGraphicsScene *scene,
|
||||||
const QString pointName = dialogTool->getPointName();
|
const QString pointName = dialogTool->getPointName();
|
||||||
QString formula = dialogTool->getFormula();
|
QString formula = dialogTool->getFormula();
|
||||||
const quint32 splineId = dialogTool->getSplineId();
|
const quint32 splineId = dialogTool->getSplineId();
|
||||||
Create(0, pointName, formula, splineId, 5, 10, scene, doc, data, Document::FullParse, Source::FromGui);
|
VToolCutSpline* point = nullptr;
|
||||||
|
point = Create(0, pointName, formula, splineId, 5, 10, scene, doc, data, Document::FullParse, Source::FromGui);
|
||||||
|
if (point != nullptr)
|
||||||
|
{
|
||||||
|
point->dialog=dialogTool;
|
||||||
|
}
|
||||||
|
return point;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -115,9 +123,10 @@ void VToolCutSpline::Create(DialogTool *dialog, VMainGraphicsScene *scene,
|
||||||
* @param parse parser file mode.
|
* @param parse parser file mode.
|
||||||
* @param typeCreation way we create this tool.
|
* @param typeCreation way we create this tool.
|
||||||
*/
|
*/
|
||||||
void VToolCutSpline::Create(const quint32 _id, const QString &pointName, QString &formula, const quint32 &splineId,
|
VToolCutSpline* VToolCutSpline::Create(const quint32 _id, const QString &pointName, QString &formula,
|
||||||
const qreal &mx, const qreal &my, VMainGraphicsScene *scene, VPattern *doc,
|
const quint32 &splineId, const qreal &mx, const qreal &my,
|
||||||
VContainer *data, const Document &parse, const Source &typeCreation)
|
VMainGraphicsScene *scene, VPattern *doc, VContainer *data,
|
||||||
|
const Document &parse, const Source &typeCreation)
|
||||||
{
|
{
|
||||||
const QSharedPointer<VSpline> spl = data->GeometricObject<VSpline>(splineId);
|
const QSharedPointer<VSpline> spl = data->GeometricObject<VSpline>(splineId);
|
||||||
|
|
||||||
|
@ -163,7 +172,7 @@ void VToolCutSpline::Create(const quint32 _id, const QString &pointName, QString
|
||||||
doc->UpdateToolData(id, data);
|
doc->UpdateToolData(id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
VDrawTool::AddRecord(id, Tool::CutSplineTool, doc);
|
VDrawTool::AddRecord(id, Tool::CutSpline, doc);
|
||||||
if (parse == Document::FullParse)
|
if (parse == Document::FullParse)
|
||||||
{
|
{
|
||||||
VToolCutSpline *point = new VToolCutSpline(doc, data, id, formula, splineId, spl1id, spl2id, typeCreation);
|
VToolCutSpline *point = new VToolCutSpline(doc, data, id, formula, splineId, spl1id, spl2id, typeCreation);
|
||||||
|
@ -175,6 +184,45 @@ void VToolCutSpline::Create(const quint32 _id, const QString &pointName, QString
|
||||||
doc->AddTool(spl1id, point);
|
doc->AddTool(spl1id, point);
|
||||||
doc->AddTool(spl2id, point);
|
doc->AddTool(spl2id, point);
|
||||||
doc->IncrementReferens(splineId);
|
doc->IncrementReferens(splineId);
|
||||||
|
return point;
|
||||||
|
}
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolCutSpline::ShowVisualization(bool show)
|
||||||
|
{
|
||||||
|
if (show)
|
||||||
|
{
|
||||||
|
if (vis == nullptr)
|
||||||
|
{
|
||||||
|
VisToolCutSpline * visual = new VisToolCutSpline(getData());
|
||||||
|
VMainGraphicsScene *scene = qApp->getCurrentScene();
|
||||||
|
connect(scene, &VMainGraphicsScene::NewFactor, visual, &Visualization::SetFactor);
|
||||||
|
scene->addItem(visual);
|
||||||
|
|
||||||
|
visual->setPoint1Id(curveCutId);
|
||||||
|
visual->setLength(formula);
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
vis = visual;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VisToolCutSpline * visual = qobject_cast<VisToolCutSpline *>(vis);
|
||||||
|
if (visual != nullptr)
|
||||||
|
{
|
||||||
|
visual->show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delete vis;
|
||||||
|
vis = nullptr;
|
||||||
|
}
|
||||||
|
if (VAbstractSpline *parentCurve = qobject_cast<VAbstractSpline *>(doc->getTool(curveCutId)))
|
||||||
|
{
|
||||||
|
parentCurve->ShowFoot(show);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -185,6 +233,14 @@ void VToolCutSpline::Create(const quint32 _id, const QString &pointName, QString
|
||||||
void VToolCutSpline::FullUpdateFromFile()
|
void VToolCutSpline::FullUpdateFromFile()
|
||||||
{
|
{
|
||||||
FullUpdateCurveFromFile(AttrSpline);
|
FullUpdateCurveFromFile(AttrSpline);
|
||||||
|
|
||||||
|
if (vis != nullptr)
|
||||||
|
{
|
||||||
|
VisToolCutSpline *visual = qobject_cast<VisToolCutSpline *>(vis);
|
||||||
|
visual->setPoint1Id(curveCutId);
|
||||||
|
visual->setLength(formula);
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -217,45 +273,6 @@ void VToolCutSpline::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
|
||||||
ContextMenu<DialogCutSpline>(this, event);
|
ContextMenu<DialogCutSpline>(this, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief AddToFile add tag with informations about tool into file.
|
|
||||||
*/
|
|
||||||
void VToolCutSpline::AddToFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(id);
|
|
||||||
QDomElement domElement = doc->createElement(TagName);
|
|
||||||
|
|
||||||
doc->SetAttribute(domElement, VDomDocument::AttrId, id);
|
|
||||||
doc->SetAttribute(domElement, AttrType, ToolType);
|
|
||||||
doc->SetAttribute(domElement, AttrName, point->name());
|
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
|
||||||
|
|
||||||
doc->SetAttribute(domElement, AttrLength, formula);
|
|
||||||
doc->SetAttribute(domElement, AttrSpline, curveCutId);
|
|
||||||
|
|
||||||
AddToCalculation(domElement);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief RefreshDataInFile refresh attributes in file. If attributes don't exist create them.
|
|
||||||
*/
|
|
||||||
void VToolCutSpline::RefreshDataInFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(id);
|
|
||||||
QDomElement domElement = doc->elementById(QString().setNum(id));
|
|
||||||
if (domElement.isElement())
|
|
||||||
{
|
|
||||||
doc->SetAttribute(domElement, AttrName, point->name());
|
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
|
||||||
doc->SetAttribute(domElement, AttrLength, formula);
|
|
||||||
doc->SetAttribute(domElement, AttrSpline, curveCutId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief SaveDialog save options into file after change in dialog.
|
* @brief SaveDialog save options into file after change in dialog.
|
||||||
|
@ -294,3 +311,19 @@ void VToolCutSpline::RefreshCurve(VSimpleCurve *curve, quint32 curveId, SimpleCu
|
||||||
}
|
}
|
||||||
curve->setPath(path);
|
curve->setPath(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolCutSpline::SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj)
|
||||||
|
{
|
||||||
|
QSharedPointer<VPointF> point = qSharedPointerDynamicCast<VPointF>(obj);
|
||||||
|
SCASSERT(point.isNull() == false);
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, VDomDocument::AttrId, id);
|
||||||
|
doc->SetAttribute(tag, AttrType, ToolType);
|
||||||
|
doc->SetAttribute(tag, AttrName, point->name());
|
||||||
|
doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx()));
|
||||||
|
doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my()));
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, AttrLength, formula);
|
||||||
|
doc->SetAttribute(tag, AttrSpline, curveCutId);
|
||||||
|
}
|
||||||
|
|
|
@ -43,23 +43,25 @@ public:
|
||||||
const quint32 &splineId, const quint32 &spl1id, const quint32 &spl2id,
|
const quint32 &splineId, const quint32 &spl1id, const quint32 &spl2id,
|
||||||
const Source &typeCreation, QGraphicsItem * parent = nullptr);
|
const Source &typeCreation, QGraphicsItem * parent = nullptr);
|
||||||
virtual void setDialog();
|
virtual void setDialog();
|
||||||
static void Create(DialogTool *dialog, VMainGraphicsScene *scene, VPattern *doc, VContainer *data);
|
static VToolCutSpline *Create(DialogTool *dialog, VMainGraphicsScene *scene, VPattern *doc, VContainer *data);
|
||||||
static void Create(const quint32 _id, const QString &pointName, QString &formula, const quint32 &splineId,
|
static VToolCutSpline *Create(const quint32 _id, const QString &pointName, QString &formula,
|
||||||
const qreal &mx, const qreal &my, VMainGraphicsScene *scene, VPattern *doc, VContainer *data,
|
const quint32 &splineId, const qreal &mx, const qreal &my, VMainGraphicsScene *scene,
|
||||||
const Document &parse, const Source &typeCreation);
|
VPattern *doc, VContainer *data, const Document &parse, const Source &typeCreation);
|
||||||
static const QString ToolType;
|
static const QString ToolType;
|
||||||
static const QString AttrSpline;
|
static const QString AttrSpline;
|
||||||
|
virtual int type() const {return Type;}
|
||||||
|
enum { Type = UserType + static_cast<int>(Tool::CutSpline)};
|
||||||
|
virtual void ShowVisualization(bool show);
|
||||||
public slots:
|
public slots:
|
||||||
virtual void FullUpdateFromFile();
|
virtual void FullUpdateFromFile();
|
||||||
virtual void CurveChoosed(quint32 id);
|
virtual void CurveChoosed(quint32 id);
|
||||||
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
||||||
protected:
|
protected:
|
||||||
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
||||||
virtual void AddToFile();
|
|
||||||
virtual void RefreshDataInFile();
|
|
||||||
virtual void SaveDialog(QDomElement &domElement);
|
virtual void SaveDialog(QDomElement &domElement);
|
||||||
virtual void RefreshCurve(VSimpleCurve *curve, quint32 curveId, SimpleCurvePoint curvePosition,
|
virtual void RefreshCurve(VSimpleCurve *curve, quint32 curveId, SimpleCurvePoint curvePosition,
|
||||||
PathDirection direction = PathDirection::Hide);
|
PathDirection direction = PathDirection::Hide);
|
||||||
|
virtual void SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj);
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VToolCutSpline)
|
Q_DISABLE_COPY(VToolCutSpline)
|
||||||
};
|
};
|
||||||
|
|
|
@ -30,6 +30,8 @@
|
||||||
#include "../../container/calculator.h"
|
#include "../../container/calculator.h"
|
||||||
#include "../../dialogs/tools/dialogcutsplinepath.h"
|
#include "../../dialogs/tools/dialogcutsplinepath.h"
|
||||||
#include "../../geometry/vpointf.h"
|
#include "../../geometry/vpointf.h"
|
||||||
|
#include "../../visualization/vistoolcutsplinepath.h"
|
||||||
|
#include "vabstractspline.h"
|
||||||
|
|
||||||
#include "../../geometry/vsplinepath.h"
|
#include "../../geometry/vsplinepath.h"
|
||||||
|
|
||||||
|
@ -91,7 +93,8 @@ void VToolCutSplinePath::setDialog()
|
||||||
* @param doc dom document container.
|
* @param doc dom document container.
|
||||||
* @param data container with variables.
|
* @param data container with variables.
|
||||||
*/
|
*/
|
||||||
void VToolCutSplinePath::Create(DialogTool *dialog, VMainGraphicsScene *scene, VPattern *doc, VContainer *data)
|
VToolCutSplinePath* VToolCutSplinePath::Create(DialogTool *dialog, VMainGraphicsScene *scene, VPattern *doc,
|
||||||
|
VContainer *data)
|
||||||
{
|
{
|
||||||
SCASSERT(dialog != nullptr);
|
SCASSERT(dialog != nullptr);
|
||||||
DialogCutSplinePath *dialogTool = qobject_cast<DialogCutSplinePath*>(dialog);
|
DialogCutSplinePath *dialogTool = qobject_cast<DialogCutSplinePath*>(dialog);
|
||||||
|
@ -99,7 +102,13 @@ void VToolCutSplinePath::Create(DialogTool *dialog, VMainGraphicsScene *scene, V
|
||||||
const QString pointName = dialogTool->getPointName();
|
const QString pointName = dialogTool->getPointName();
|
||||||
QString formula = dialogTool->getFormula();
|
QString formula = dialogTool->getFormula();
|
||||||
const quint32 splinePathId = dialogTool->getSplinePathId();
|
const quint32 splinePathId = dialogTool->getSplinePathId();
|
||||||
Create(0, pointName, formula, splinePathId, 5, 10, scene, doc, data, Document::FullParse, Source::FromGui);
|
VToolCutSplinePath* point = nullptr;
|
||||||
|
point = Create(0, pointName, formula, splinePathId, 5, 10, scene, doc, data, Document::FullParse, Source::FromGui);
|
||||||
|
if (point != nullptr)
|
||||||
|
{
|
||||||
|
point->dialog=dialogTool;
|
||||||
|
}
|
||||||
|
return point;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -117,7 +126,7 @@ void VToolCutSplinePath::Create(DialogTool *dialog, VMainGraphicsScene *scene, V
|
||||||
* @param parse parser file mode.
|
* @param parse parser file mode.
|
||||||
* @param typeCreation way we create this tool.
|
* @param typeCreation way we create this tool.
|
||||||
*/
|
*/
|
||||||
void VToolCutSplinePath::Create(const quint32 _id, const QString &pointName, QString &formula,
|
VToolCutSplinePath* VToolCutSplinePath::Create(const quint32 _id, const QString &pointName, QString &formula,
|
||||||
const quint32 &splinePathId, const qreal &mx, const qreal &my,
|
const quint32 &splinePathId, const qreal &mx, const qreal &my,
|
||||||
VMainGraphicsScene *scene, VPattern *doc, VContainer *data,
|
VMainGraphicsScene *scene, VPattern *doc, VContainer *data,
|
||||||
const Document &parse, const Source &typeCreation)
|
const Document &parse, const Source &typeCreation)
|
||||||
|
@ -162,16 +171,16 @@ void VToolCutSplinePath::Create(const quint32 _id, const QString &pointName, QSt
|
||||||
splPath1->append(VSplinePoint(splP1.P(), splP1.KAsm1(), spl1.GetAngle1()+180, spl1.GetKasm1(),
|
splPath1->append(VSplinePoint(splP1.P(), splP1.KAsm1(), spl1.GetAngle1()+180, spl1.GetKasm1(),
|
||||||
spl1.GetAngle1()));
|
spl1.GetAngle1()));
|
||||||
VSplinePoint cutPoint;
|
VSplinePoint cutPoint;
|
||||||
if (typeCreation == Source::FromGui)
|
// if (typeCreation == Source::FromGui)
|
||||||
{
|
// {
|
||||||
cutPoint = VSplinePoint(*p, spl1.GetKasm2(), spl1.GetAngle2(), spl1.GetAngle2()+180,
|
// cutPoint = VSplinePoint(*p, spl1.GetKasm2(), spl1.GetAngle2(), spl2.GetKasm1(),
|
||||||
spl1.GetAngle2());
|
// spl1.GetAngle2());
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
cutPoint = VSplinePoint(*p, spl1.GetKasm2(), spl1.GetAngle2(), spl2.GetKasm1(),
|
cutPoint = VSplinePoint(*p, spl1.GetKasm2(), spl1.GetAngle2(), spl2.GetKasm1(),
|
||||||
spl1.GetAngle2()+180);
|
spl1.GetAngle2()+180);
|
||||||
}
|
// }
|
||||||
splPath1->append(cutPoint);
|
splPath1->append(cutPoint);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -217,7 +226,7 @@ void VToolCutSplinePath::Create(const quint32 _id, const QString &pointName, QSt
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VDrawTool::AddRecord(id, Tool::CutSplinePathTool, doc);
|
VDrawTool::AddRecord(id, Tool::CutSplinePath, doc);
|
||||||
if (parse == Document::FullParse)
|
if (parse == Document::FullParse)
|
||||||
{
|
{
|
||||||
VToolCutSplinePath *point = new VToolCutSplinePath(doc, data, id, formula, splinePathId, splPath1id,
|
VToolCutSplinePath *point = new VToolCutSplinePath(doc, data, id, formula, splinePathId, splPath1id,
|
||||||
|
@ -230,6 +239,45 @@ void VToolCutSplinePath::Create(const quint32 _id, const QString &pointName, QSt
|
||||||
doc->AddTool(splPath1id, point);
|
doc->AddTool(splPath1id, point);
|
||||||
doc->AddTool(splPath2id, point);
|
doc->AddTool(splPath2id, point);
|
||||||
doc->IncrementReferens(splinePathId);
|
doc->IncrementReferens(splinePathId);
|
||||||
|
return point;
|
||||||
|
}
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolCutSplinePath::ShowVisualization(bool show)
|
||||||
|
{
|
||||||
|
if (show)
|
||||||
|
{
|
||||||
|
if (vis == nullptr)
|
||||||
|
{
|
||||||
|
VisToolCutSplinePath *visual = new VisToolCutSplinePath(getData());
|
||||||
|
VMainGraphicsScene *scene = qApp->getCurrentScene();
|
||||||
|
connect(scene, &VMainGraphicsScene::NewFactor, visual, &Visualization::SetFactor);
|
||||||
|
scene->addItem(visual);
|
||||||
|
|
||||||
|
visual->setPoint1Id(curveCutId);
|
||||||
|
visual->setLength(formula);
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
vis = visual;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VisToolCutSplinePath *visual = qobject_cast<VisToolCutSplinePath *>(vis);
|
||||||
|
if (visual != nullptr)
|
||||||
|
{
|
||||||
|
visual->show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delete vis;
|
||||||
|
vis = nullptr;
|
||||||
|
}
|
||||||
|
if (VAbstractSpline *parentCurve = qobject_cast<VAbstractSpline *>(doc->getTool(curveCutId)))
|
||||||
|
{
|
||||||
|
parentCurve->ShowFoot(show);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -240,6 +288,14 @@ void VToolCutSplinePath::Create(const quint32 _id, const QString &pointName, QSt
|
||||||
void VToolCutSplinePath::FullUpdateFromFile()
|
void VToolCutSplinePath::FullUpdateFromFile()
|
||||||
{
|
{
|
||||||
FullUpdateCurveFromFile(AttrSplinePath);
|
FullUpdateCurveFromFile(AttrSplinePath);
|
||||||
|
|
||||||
|
if (vis != nullptr)
|
||||||
|
{
|
||||||
|
VisToolCutSplinePath *visual = qobject_cast<VisToolCutSplinePath *>(vis);
|
||||||
|
visual->setPoint1Id(curveCutId);
|
||||||
|
visual->setLength(formula);
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -272,45 +328,6 @@ void VToolCutSplinePath::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
|
||||||
ContextMenu<DialogCutSplinePath>(this, event);
|
ContextMenu<DialogCutSplinePath>(this, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief AddToFile add tag with informations about tool into file.
|
|
||||||
*/
|
|
||||||
void VToolCutSplinePath::AddToFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(id);
|
|
||||||
QDomElement domElement = doc->createElement(TagName);
|
|
||||||
|
|
||||||
doc->SetAttribute(domElement, VDomDocument::AttrId, id);
|
|
||||||
doc->SetAttribute(domElement, AttrType, ToolType);
|
|
||||||
doc->SetAttribute(domElement, AttrName, point->name());
|
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
|
||||||
|
|
||||||
doc->SetAttribute(domElement, AttrLength, formula);
|
|
||||||
doc->SetAttribute(domElement, AttrSplinePath, curveCutId);
|
|
||||||
|
|
||||||
AddToCalculation(domElement);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief RefreshDataInFile refresh attributes in file. If attributes don't exist create them.
|
|
||||||
*/
|
|
||||||
void VToolCutSplinePath::RefreshDataInFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(id);
|
|
||||||
QDomElement domElement = doc->elementById(QString().setNum(id));
|
|
||||||
if (domElement.isElement())
|
|
||||||
{
|
|
||||||
doc->SetAttribute(domElement, AttrName, point->name());
|
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
|
||||||
doc->SetAttribute(domElement, AttrLength, formula);
|
|
||||||
doc->SetAttribute(domElement, AttrSplinePath, curveCutId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief SaveDialog save options into file after change in dialog.
|
* @brief SaveDialog save options into file after change in dialog.
|
||||||
|
@ -351,3 +368,19 @@ void VToolCutSplinePath::RefreshCurve(VSimpleCurve *curve, quint32 curveId, Simp
|
||||||
}
|
}
|
||||||
curve->setPath(path);
|
curve->setPath(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolCutSplinePath::SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj)
|
||||||
|
{
|
||||||
|
QSharedPointer<VPointF> point = qSharedPointerDynamicCast<VPointF>(obj);
|
||||||
|
SCASSERT(point.isNull() == false);
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, VDomDocument::AttrId, id);
|
||||||
|
doc->SetAttribute(tag, AttrType, ToolType);
|
||||||
|
doc->SetAttribute(tag, AttrName, point->name());
|
||||||
|
doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx()));
|
||||||
|
doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my()));
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, AttrLength, formula);
|
||||||
|
doc->SetAttribute(tag, AttrSplinePath, curveCutId);
|
||||||
|
}
|
||||||
|
|
|
@ -44,23 +44,26 @@ public:
|
||||||
const quint32 &splinePathId, const quint32 &splPath1id, const quint32 &splPath2id,
|
const quint32 &splinePathId, const quint32 &splPath1id, const quint32 &splPath2id,
|
||||||
const Source &typeCreation, QGraphicsItem * parent = nullptr);
|
const Source &typeCreation, QGraphicsItem * parent = nullptr);
|
||||||
virtual void setDialog();
|
virtual void setDialog();
|
||||||
static void Create(DialogTool *dialog, VMainGraphicsScene *scene, VPattern *doc, VContainer *data);
|
static VToolCutSplinePath *Create(DialogTool *dialog, VMainGraphicsScene *scene, VPattern *doc, VContainer *data);
|
||||||
static void Create(const quint32 _id, const QString &pointName, QString &formula, const quint32 &splinePathId,
|
static VToolCutSplinePath *Create(const quint32 _id, const QString &pointName, QString &formula,
|
||||||
const qreal &mx, const qreal &my, VMainGraphicsScene *scene, VPattern *doc, VContainer *data,
|
const quint32 &splinePathId, const qreal &mx, const qreal &my,
|
||||||
|
VMainGraphicsScene *scene, VPattern *doc, VContainer *data,
|
||||||
const Document &parse, const Source &typeCreation);
|
const Document &parse, const Source &typeCreation);
|
||||||
static const QString ToolType;
|
static const QString ToolType;
|
||||||
static const QString AttrSplinePath;
|
static const QString AttrSplinePath;
|
||||||
|
virtual int type() const {return Type;}
|
||||||
|
enum { Type = UserType + static_cast<int>(Tool::CutSplinePath)};
|
||||||
|
virtual void ShowVisualization(bool show);
|
||||||
public slots:
|
public slots:
|
||||||
virtual void FullUpdateFromFile();
|
virtual void FullUpdateFromFile();
|
||||||
virtual void CurveChoosed(quint32 id);
|
virtual void CurveChoosed(quint32 id);
|
||||||
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
||||||
protected:
|
protected:
|
||||||
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
||||||
virtual void AddToFile();
|
|
||||||
virtual void RefreshDataInFile();
|
|
||||||
virtual void SaveDialog(QDomElement &domElement);
|
virtual void SaveDialog(QDomElement &domElement);
|
||||||
virtual void RefreshCurve(VSimpleCurve *curve, quint32 curveId, SimpleCurvePoint curvePosition,
|
virtual void RefreshCurve(VSimpleCurve *curve, quint32 curveId, SimpleCurvePoint curvePosition,
|
||||||
PathDirection direction = PathDirection::Hide);
|
PathDirection direction = PathDirection::Hide);
|
||||||
|
virtual void SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj);
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VToolCutSplinePath)
|
Q_DISABLE_COPY(VToolCutSplinePath)
|
||||||
};
|
};
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
#include "../../dialogs/tools/dialogendline.h"
|
#include "../../dialogs/tools/dialogendline.h"
|
||||||
#include "../../dialogs/tools/dialogeditwrongformula.h"
|
#include "../../dialogs/tools/dialogeditwrongformula.h"
|
||||||
#include "../../geometry/vpointf.h"
|
#include "../../geometry/vpointf.h"
|
||||||
|
#include "./../visualization/vistoolendline.h"
|
||||||
|
|
||||||
const QString VToolEndLine::ToolType = QStringLiteral("endLine");
|
const QString VToolEndLine::ToolType = QStringLiteral("endLine");
|
||||||
|
|
||||||
|
@ -154,7 +155,7 @@ VToolEndLine* VToolEndLine::Create(const quint32 _id, const QString &pointName,
|
||||||
doc->UpdateToolData(id, data);
|
doc->UpdateToolData(id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
VDrawTool::AddRecord(id, Tool::EndLineTool, doc);
|
VDrawTool::AddRecord(id, Tool::EndLine, doc);
|
||||||
if (parse == Document::FullParse)
|
if (parse == Document::FullParse)
|
||||||
{
|
{
|
||||||
VToolEndLine *point = new VToolEndLine(doc, data, id, typeLine, formulaLength, formulaAngle, basePointId,
|
VToolEndLine *point = new VToolEndLine(doc, data, id, typeLine, formulaLength, formulaAngle, basePointId,
|
||||||
|
@ -185,6 +186,16 @@ void VToolEndLine::FullUpdateFromFile()
|
||||||
formulaAngle = domElement.attribute(AttrAngle, "");
|
formulaAngle = domElement.attribute(AttrAngle, "");
|
||||||
}
|
}
|
||||||
RefreshGeometry();
|
RefreshGeometry();
|
||||||
|
|
||||||
|
if (vis != nullptr)
|
||||||
|
{
|
||||||
|
VisToolEndLine *visual = qobject_cast<VisToolEndLine *>(vis);
|
||||||
|
visual->setPoint1Id(basePointId);
|
||||||
|
visual->setLength(formulaLength);
|
||||||
|
visual->setAngle(formulaAngle);
|
||||||
|
visual->setLineStyle(VAbstractTool::LineStyle(typeLine));
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -207,49 +218,6 @@ void VToolEndLine::ShowContextMenu(QGraphicsSceneContextMenuEvent *event)
|
||||||
ContextMenu<DialogEndLine>(this, event);
|
ContextMenu<DialogEndLine>(this, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief AddToFile add tag with informations about tool into file.
|
|
||||||
*/
|
|
||||||
void VToolEndLine::AddToFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(id);
|
|
||||||
QDomElement domElement = doc->createElement(TagName);
|
|
||||||
|
|
||||||
doc->SetAttribute(domElement, VDomDocument::AttrId, id);
|
|
||||||
doc->SetAttribute(domElement, AttrType, ToolType);
|
|
||||||
doc->SetAttribute(domElement, AttrName, point->name());
|
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
|
||||||
|
|
||||||
doc->SetAttribute(domElement, AttrTypeLine, typeLine);
|
|
||||||
doc->SetAttribute(domElement, AttrLength, formulaLength);
|
|
||||||
doc->SetAttribute(domElement, AttrAngle, formulaAngle);
|
|
||||||
doc->SetAttribute(domElement, AttrBasePoint, basePointId);
|
|
||||||
|
|
||||||
AddToCalculation(domElement);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief RefreshDataInFile refresh attributes in file. If attributes don't exist create them.
|
|
||||||
*/
|
|
||||||
void VToolEndLine::RefreshDataInFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(id);
|
|
||||||
QDomElement domElement = doc->elementById(QString().setNum(id));
|
|
||||||
if (domElement.isElement())
|
|
||||||
{
|
|
||||||
doc->SetAttribute(domElement, AttrName, point->name());
|
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
|
||||||
doc->SetAttribute(domElement, AttrTypeLine, typeLine);
|
|
||||||
doc->SetAttribute(domElement, AttrLength, formulaLength);
|
|
||||||
doc->SetAttribute(domElement, AttrAngle, formulaAngle);
|
|
||||||
doc->SetAttribute(domElement, AttrBasePoint, basePointId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief SaveDialog save options into file after change in dialog.
|
* @brief SaveDialog save options into file after change in dialog.
|
||||||
|
@ -265,3 +233,78 @@ void VToolEndLine::SaveDialog(QDomElement &domElement)
|
||||||
doc->SetAttribute(domElement, AttrAngle, dialogTool->getAngle());
|
doc->SetAttribute(domElement, AttrAngle, dialogTool->getAngle());
|
||||||
doc->SetAttribute(domElement, AttrBasePoint, QString().setNum(dialogTool->getBasePointId()));
|
doc->SetAttribute(domElement, AttrBasePoint, QString().setNum(dialogTool->getBasePointId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolEndLine::SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj)
|
||||||
|
{
|
||||||
|
QSharedPointer<VPointF> point = qSharedPointerDynamicCast<VPointF>(obj);
|
||||||
|
SCASSERT(point.isNull() == false);
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, VDomDocument::AttrId, id);
|
||||||
|
doc->SetAttribute(tag, AttrType, ToolType);
|
||||||
|
doc->SetAttribute(tag, AttrName, point->name());
|
||||||
|
doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx()));
|
||||||
|
doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my()));
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, AttrTypeLine, typeLine);
|
||||||
|
doc->SetAttribute(tag, AttrLength, formulaLength);
|
||||||
|
doc->SetAttribute(tag, AttrAngle, formulaAngle);
|
||||||
|
doc->SetAttribute(tag, AttrBasePoint, basePointId);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
VFormula VToolEndLine::getFormulaAngle() const
|
||||||
|
{
|
||||||
|
VFormula fAngle(formulaAngle, getData());
|
||||||
|
fAngle.setCheckZero(false);
|
||||||
|
fAngle.setToolId(id);
|
||||||
|
fAngle.setPostfix(QStringLiteral("°"));
|
||||||
|
return fAngle;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolEndLine::setFormulaAngle(const VFormula &value)
|
||||||
|
{
|
||||||
|
if (value.error() == false)
|
||||||
|
{
|
||||||
|
formulaAngle = value.getFormula(FormulaType::FromUser);
|
||||||
|
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolEndLine::ShowVisualization(bool show)
|
||||||
|
{
|
||||||
|
if (show)
|
||||||
|
{
|
||||||
|
if (vis == nullptr)
|
||||||
|
{
|
||||||
|
VisToolEndLine * visual = new VisToolEndLine(getData());
|
||||||
|
VMainGraphicsScene *scene = qApp->getCurrentScene();
|
||||||
|
connect(scene, &VMainGraphicsScene::NewFactor, visual, &Visualization::SetFactor);
|
||||||
|
scene->addItem(visual);
|
||||||
|
|
||||||
|
visual->setPoint1Id(basePointId);
|
||||||
|
visual->setLength(formulaLength);
|
||||||
|
visual->setAngle(formulaAngle);
|
||||||
|
visual->setLineStyle(VAbstractTool::LineStyle(typeLine));
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
vis = visual;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VisToolEndLine *visual = qobject_cast<VisToolEndLine *>(vis);
|
||||||
|
if (visual != nullptr)
|
||||||
|
{
|
||||||
|
visual->show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delete vis;
|
||||||
|
vis = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -49,14 +49,19 @@ public:
|
||||||
const qreal &mx, const qreal &my, VMainGraphicsScene *scene, VPattern *doc,
|
const qreal &mx, const qreal &my, VMainGraphicsScene *scene, VPattern *doc,
|
||||||
VContainer *data, const Document &parse, const Source &typeCreation);
|
VContainer *data, const Document &parse, const Source &typeCreation);
|
||||||
static const QString ToolType;
|
static const QString ToolType;
|
||||||
|
virtual int type() const {return Type;}
|
||||||
|
enum { Type = UserType + static_cast<int>(Tool::EndLine)};
|
||||||
|
|
||||||
|
VFormula getFormulaAngle() const;
|
||||||
|
void setFormulaAngle(const VFormula &value);
|
||||||
|
virtual void ShowVisualization(bool show);
|
||||||
public slots:
|
public slots:
|
||||||
virtual void FullUpdateFromFile();
|
virtual void FullUpdateFromFile();
|
||||||
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
||||||
protected:
|
protected:
|
||||||
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
||||||
virtual void AddToFile();
|
|
||||||
virtual void RefreshDataInFile();
|
|
||||||
virtual void SaveDialog(QDomElement &domElement);
|
virtual void SaveDialog(QDomElement &domElement);
|
||||||
|
virtual void SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj);
|
||||||
private:
|
private:
|
||||||
QString formulaAngle;
|
QString formulaAngle;
|
||||||
};
|
};
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include "vtoolheight.h"
|
#include "vtoolheight.h"
|
||||||
#include "../../dialogs/tools/dialogheight.h"
|
#include "../../dialogs/tools/dialogheight.h"
|
||||||
#include "../../geometry/vpointf.h"
|
#include "../../geometry/vpointf.h"
|
||||||
|
#include "../../visualization/vistoolheight.h"
|
||||||
|
|
||||||
const QString VToolHeight::ToolType = QStringLiteral("height");
|
const QString VToolHeight::ToolType = QStringLiteral("height");
|
||||||
|
|
||||||
|
@ -202,6 +203,15 @@ void VToolHeight::FullUpdateFromFile()
|
||||||
}
|
}
|
||||||
RefreshGeometry();
|
RefreshGeometry();
|
||||||
|
|
||||||
|
if (vis != nullptr)
|
||||||
|
{
|
||||||
|
VisToolHeight *visual = qobject_cast<VisToolHeight *>(vis);
|
||||||
|
visual->setPoint1Id(basePointId);
|
||||||
|
visual->setLineP1Id(p1LineId);
|
||||||
|
visual->setLineP2Id(p2LineId);
|
||||||
|
visual->setLineStyle(VAbstractTool::LineStyle(typeLine));
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -224,50 +234,6 @@ void VToolHeight::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
|
||||||
ContextMenu<DialogHeight>(this, event);
|
ContextMenu<DialogHeight>(this, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief AddToFile add tag with informations about tool into file.
|
|
||||||
*/
|
|
||||||
void VToolHeight::AddToFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(id);
|
|
||||||
QDomElement domElement = doc->createElement(TagName);
|
|
||||||
|
|
||||||
doc->SetAttribute(domElement, VDomDocument::AttrId, id);
|
|
||||||
doc->SetAttribute(domElement, AttrType, ToolType);
|
|
||||||
doc->SetAttribute(domElement, AttrName, point->name());
|
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
|
||||||
|
|
||||||
doc->SetAttribute(domElement, AttrTypeLine, typeLine);
|
|
||||||
doc->SetAttribute(domElement, AttrBasePoint, basePointId);
|
|
||||||
doc->SetAttribute(domElement, AttrP1Line, p1LineId);
|
|
||||||
doc->SetAttribute(domElement, AttrP2Line, p2LineId);
|
|
||||||
|
|
||||||
AddToCalculation(domElement);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief RefreshDataInFile refresh attributes in file. If attributes don't exist create them.
|
|
||||||
*/
|
|
||||||
void VToolHeight::RefreshDataInFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(id);
|
|
||||||
QDomElement domElement = doc->elementById(QString().setNum(id));
|
|
||||||
if (domElement.isElement())
|
|
||||||
{
|
|
||||||
doc->SetAttribute(domElement, AttrName, point->name());
|
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
|
||||||
doc->SetAttribute(domElement, AttrTypeLine, typeLine);
|
|
||||||
doc->SetAttribute(domElement, AttrBasePoint, basePointId);
|
|
||||||
doc->SetAttribute(domElement, AttrP1Line, p1LineId);
|
|
||||||
doc->SetAttribute(domElement, AttrP2Line, p2LineId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief SaveDialog save options into file after change in dialog.
|
* @brief SaveDialog save options into file after change in dialog.
|
||||||
|
@ -283,3 +249,93 @@ void VToolHeight::SaveDialog(QDomElement &domElement)
|
||||||
doc->SetAttribute(domElement, AttrP1Line, QString().setNum(dialogTool->getP1LineId()));
|
doc->SetAttribute(domElement, AttrP1Line, QString().setNum(dialogTool->getP1LineId()));
|
||||||
doc->SetAttribute(domElement, AttrP2Line, QString().setNum(dialogTool->getP2LineId()));
|
doc->SetAttribute(domElement, AttrP2Line, QString().setNum(dialogTool->getP2LineId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolHeight::SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj)
|
||||||
|
{
|
||||||
|
QSharedPointer<VPointF> point = qSharedPointerDynamicCast<VPointF>(obj);
|
||||||
|
SCASSERT(point.isNull() == false);
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, VDomDocument::AttrId, id);
|
||||||
|
doc->SetAttribute(tag, AttrType, ToolType);
|
||||||
|
doc->SetAttribute(tag, AttrName, point->name());
|
||||||
|
doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx()));
|
||||||
|
doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my()));
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, AttrTypeLine, typeLine);
|
||||||
|
doc->SetAttribute(tag, AttrBasePoint, basePointId);
|
||||||
|
doc->SetAttribute(tag, AttrP1Line, p1LineId);
|
||||||
|
doc->SetAttribute(tag, AttrP2Line, p2LineId);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VToolHeight::getP2LineId() const
|
||||||
|
{
|
||||||
|
return p2LineId;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolHeight::setP2LineId(const quint32 &value)
|
||||||
|
{
|
||||||
|
if (value != NULL_ID)
|
||||||
|
{
|
||||||
|
p2LineId = value;
|
||||||
|
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolHeight::ShowVisualization(bool show)
|
||||||
|
{
|
||||||
|
if (show)
|
||||||
|
{
|
||||||
|
if (vis == nullptr)
|
||||||
|
{
|
||||||
|
VisToolHeight * visual = new VisToolHeight(getData());
|
||||||
|
VMainGraphicsScene *scene = qApp->getCurrentScene();
|
||||||
|
connect(scene, &VMainGraphicsScene::NewFactor, visual, &Visualization::SetFactor);
|
||||||
|
scene->addItem(visual);
|
||||||
|
|
||||||
|
visual->setPoint1Id(basePointId);
|
||||||
|
visual->setLineP1Id(p1LineId);
|
||||||
|
visual->setLineP2Id(p2LineId);
|
||||||
|
visual->setLineStyle(VAbstractTool::LineStyle(typeLine));
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
vis = visual;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VisToolHeight *visual = qobject_cast<VisToolHeight *>(vis);
|
||||||
|
if (visual != nullptr)
|
||||||
|
{
|
||||||
|
visual->show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delete vis;
|
||||||
|
vis = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VToolHeight::getP1LineId() const
|
||||||
|
{
|
||||||
|
return p1LineId;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolHeight::setP1LineId(const quint32 &value)
|
||||||
|
{
|
||||||
|
if (value != NULL_ID)
|
||||||
|
{
|
||||||
|
p1LineId = value;
|
||||||
|
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,14 +50,23 @@ public:
|
||||||
VContainer *data, const Document &parse, const Source &typeCreation);
|
VContainer *data, const Document &parse, const Source &typeCreation);
|
||||||
static QPointF FindPoint(const QLineF &line, const QPointF &point);
|
static QPointF FindPoint(const QLineF &line, const QPointF &point);
|
||||||
static const QString ToolType;
|
static const QString ToolType;
|
||||||
|
virtual int type() const {return Type;}
|
||||||
|
enum { Type = UserType + static_cast<int>(Tool::Height)};
|
||||||
|
|
||||||
|
quint32 getP1LineId() const;
|
||||||
|
void setP1LineId(const quint32 &value);
|
||||||
|
|
||||||
|
quint32 getP2LineId() const;
|
||||||
|
void setP2LineId(const quint32 &value);
|
||||||
|
|
||||||
|
virtual void ShowVisualization(bool show);
|
||||||
public slots:
|
public slots:
|
||||||
virtual void FullUpdateFromFile();
|
virtual void FullUpdateFromFile();
|
||||||
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
||||||
protected:
|
protected:
|
||||||
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
||||||
virtual void AddToFile();
|
|
||||||
virtual void RefreshDataInFile();
|
|
||||||
virtual void SaveDialog(QDomElement &domElement);
|
virtual void SaveDialog(QDomElement &domElement);
|
||||||
|
virtual void SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj);
|
||||||
private:
|
private:
|
||||||
/** @brief p1LineId id first point of line. */
|
/** @brief p1LineId id first point of line. */
|
||||||
quint32 p1LineId;
|
quint32 p1LineId;
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include <QKeyEvent>
|
#include <QKeyEvent>
|
||||||
#include "../../geometry/vpointf.h"
|
#include "../../geometry/vpointf.h"
|
||||||
#include "../../dialogs/tools/dialogline.h"
|
#include "../../dialogs/tools/dialogline.h"
|
||||||
|
#include "../../visualization/vistoolline.h"
|
||||||
|
|
||||||
const QString VToolLine::TagName = QStringLiteral("line");
|
const QString VToolLine::TagName = QStringLiteral("line");
|
||||||
|
|
||||||
|
@ -147,7 +148,7 @@ VToolLine * VToolLine::Create(const quint32 &_id, const quint32 &firstPoint, con
|
||||||
doc->UpdateToolData(id, data);
|
doc->UpdateToolData(id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
VDrawTool::AddRecord(id, Tool::LineTool, doc);
|
VDrawTool::AddRecord(id, Tool::Line, doc);
|
||||||
if (parse == Document::FullParse)
|
if (parse == Document::FullParse)
|
||||||
{
|
{
|
||||||
VToolLine *line = new VToolLine(doc, data, id, firstPoint, secondPoint, typeLine, typeCreation);
|
VToolLine *line = new VToolLine(doc, data, id, firstPoint, secondPoint, typeLine, typeCreation);
|
||||||
|
@ -176,6 +177,12 @@ void VToolLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
||||||
QGraphicsLineItem::paint(painter, &myOption, widget);
|
QGraphicsLineItem::paint(painter, &myOption, widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QString VToolLine::getTagName() const
|
||||||
|
{
|
||||||
|
return VToolLine::TagName;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief FullUpdateFromFile update tool data form file.
|
* @brief FullUpdateFromFile update tool data form file.
|
||||||
|
@ -183,6 +190,15 @@ void VToolLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
||||||
void VToolLine::FullUpdateFromFile()
|
void VToolLine::FullUpdateFromFile()
|
||||||
{
|
{
|
||||||
RefreshGeometry();
|
RefreshGeometry();
|
||||||
|
|
||||||
|
if (vis != nullptr)
|
||||||
|
{
|
||||||
|
VisToolLine *visual = qobject_cast<VisToolLine *>(vis);
|
||||||
|
visual->setPoint1Id(firstPoint);
|
||||||
|
visual->setPoint2Id(secondPoint);
|
||||||
|
visual->setLineStyle(VAbstractTool::LineStyle(typeLine));
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -254,11 +270,8 @@ void VToolLine::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
|
||||||
void VToolLine::AddToFile()
|
void VToolLine::AddToFile()
|
||||||
{
|
{
|
||||||
QDomElement domElement = doc->createElement(TagName);
|
QDomElement domElement = doc->createElement(TagName);
|
||||||
doc->SetAttribute(domElement, VDomDocument::AttrId, id);
|
QSharedPointer<VGObject> obj = QSharedPointer<VGObject> ();
|
||||||
doc->SetAttribute(domElement, AttrFirstPoint, firstPoint);
|
SaveOptions(domElement, obj);
|
||||||
doc->SetAttribute(domElement, AttrSecondPoint, secondPoint);
|
|
||||||
doc->SetAttribute(domElement, AttrTypeLine, typeLine);
|
|
||||||
|
|
||||||
AddToCalculation(domElement);
|
AddToCalculation(domElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -271,9 +284,12 @@ void VToolLine::RefreshDataInFile()
|
||||||
QDomElement domElement = doc->elementById(QString().setNum(id));
|
QDomElement domElement = doc->elementById(QString().setNum(id));
|
||||||
if (domElement.isElement())
|
if (domElement.isElement())
|
||||||
{
|
{
|
||||||
doc->SetAttribute(domElement, AttrFirstPoint, firstPoint);
|
QSharedPointer<VGObject> obj = QSharedPointer<VGObject> ();
|
||||||
doc->SetAttribute(domElement, AttrSecondPoint, secondPoint);
|
SaveOptions(domElement, obj);
|
||||||
doc->SetAttribute(domElement, AttrTypeLine, typeLine);
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qDebug()<<"Can't find tool with id ="<< id << Q_FUNC_INFO;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -366,6 +382,87 @@ void VToolLine::SaveDialog(QDomElement &domElement)
|
||||||
doc->SetAttribute(domElement, AttrTypeLine, dialogTool->getTypeLine());
|
doc->SetAttribute(domElement, AttrTypeLine, dialogTool->getTypeLine());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolLine::SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj)
|
||||||
|
{
|
||||||
|
Q_UNUSED(obj)
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, VDomDocument::AttrId, id);
|
||||||
|
doc->SetAttribute(tag, AttrFirstPoint, firstPoint);
|
||||||
|
doc->SetAttribute(tag, AttrSecondPoint, secondPoint);
|
||||||
|
doc->SetAttribute(tag, AttrTypeLine, typeLine);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VToolLine::getSecondPoint() const
|
||||||
|
{
|
||||||
|
return secondPoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolLine::setSecondPoint(const quint32 &value)
|
||||||
|
{
|
||||||
|
if (value != NULL_ID)
|
||||||
|
{
|
||||||
|
secondPoint = value;
|
||||||
|
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolLine::ShowVisualization(bool show)
|
||||||
|
{
|
||||||
|
if (show)
|
||||||
|
{
|
||||||
|
if (vis == nullptr)
|
||||||
|
{
|
||||||
|
VisToolLine * visual = new VisToolLine(getData());
|
||||||
|
VMainGraphicsScene *scene = qApp->getCurrentScene();
|
||||||
|
connect(scene, &VMainGraphicsScene::NewFactor, visual, &Visualization::SetFactor);
|
||||||
|
scene->addItem(visual);
|
||||||
|
|
||||||
|
visual->setPoint1Id(firstPoint);
|
||||||
|
visual->setPoint2Id(secondPoint);
|
||||||
|
visual->setLineStyle(VAbstractTool::LineStyle(typeLine));
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
vis = visual;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VisToolLine *visual = qobject_cast<VisToolLine *>(vis);
|
||||||
|
if (visual != nullptr)
|
||||||
|
{
|
||||||
|
visual->show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delete vis;
|
||||||
|
vis = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VToolLine::getFirstPoint() const
|
||||||
|
{
|
||||||
|
return firstPoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolLine::setFirstPoint(const quint32 &value)
|
||||||
|
{
|
||||||
|
if (value != NULL_ID)
|
||||||
|
{
|
||||||
|
firstPoint = value;
|
||||||
|
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief RefreshGeometry refresh item on scene.
|
* @brief RefreshGeometry refresh item on scene.
|
||||||
|
|
|
@ -48,6 +48,16 @@ public:
|
||||||
const Document &parse, const Source &typeCreation);
|
const Document &parse, const Source &typeCreation);
|
||||||
static const QString TagName;
|
static const QString TagName;
|
||||||
virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0);
|
virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0);
|
||||||
|
virtual int type() const {return Type;}
|
||||||
|
enum { Type = UserType + static_cast<int>(Tool::Line)};
|
||||||
|
virtual QString getTagName() const;
|
||||||
|
quint32 getFirstPoint() const;
|
||||||
|
void setFirstPoint(const quint32 &value);
|
||||||
|
|
||||||
|
quint32 getSecondPoint() const;
|
||||||
|
void setSecondPoint(const quint32 &value);
|
||||||
|
|
||||||
|
virtual void ShowVisualization(bool show);
|
||||||
public slots:
|
public slots:
|
||||||
virtual void FullUpdateFromFile();
|
virtual void FullUpdateFromFile();
|
||||||
virtual void ChangedActivDraw(const QString &newName);
|
virtual void ChangedActivDraw(const QString &newName);
|
||||||
|
@ -64,6 +74,7 @@ protected:
|
||||||
virtual QVariant itemChange ( GraphicsItemChange change, const QVariant &value );
|
virtual QVariant itemChange ( GraphicsItemChange change, const QVariant &value );
|
||||||
virtual void keyReleaseEvent(QKeyEvent * event);
|
virtual void keyReleaseEvent(QKeyEvent * event);
|
||||||
virtual void SaveDialog(QDomElement &domElement);
|
virtual void SaveDialog(QDomElement &domElement);
|
||||||
|
virtual void SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj);
|
||||||
private:
|
private:
|
||||||
/** @brief firstPoint id first line point. */
|
/** @brief firstPoint id first line point. */
|
||||||
quint32 firstPoint;
|
quint32 firstPoint;
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include "vtoollineintersect.h"
|
#include "vtoollineintersect.h"
|
||||||
#include "../../dialogs/tools/dialoglineintersect.h"
|
#include "../../dialogs/tools/dialoglineintersect.h"
|
||||||
#include "../../geometry/vpointf.h"
|
#include "../../geometry/vpointf.h"
|
||||||
|
#include "../../visualization/vistoollineintersect.h"
|
||||||
|
|
||||||
const QString VToolLineIntersect::ToolType = QStringLiteral("lineIntersect");
|
const QString VToolLineIntersect::ToolType = QStringLiteral("lineIntersect");
|
||||||
|
|
||||||
|
@ -166,7 +167,7 @@ VToolLineIntersect* VToolLineIntersect::Create(const quint32 _id, const quint32
|
||||||
doc->UpdateToolData(id, data);
|
doc->UpdateToolData(id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
VDrawTool::AddRecord(id, Tool::LineIntersectTool, doc);
|
VDrawTool::AddRecord(id, Tool::LineIntersect, doc);
|
||||||
if (parse == Document::FullParse)
|
if (parse == Document::FullParse)
|
||||||
{
|
{
|
||||||
VToolLineIntersect *point = new VToolLineIntersect(doc, data, id, p1Line1Id, p2Line1Id, p1Line2Id,
|
VToolLineIntersect *point = new VToolLineIntersect(doc, data, id, p1Line1Id, p2Line1Id, p1Line2Id,
|
||||||
|
@ -201,6 +202,16 @@ void VToolLineIntersect::FullUpdateFromFile()
|
||||||
p2Line2 = domElement.attribute(AttrP2Line2, "").toUInt();
|
p2Line2 = domElement.attribute(AttrP2Line2, "").toUInt();
|
||||||
}
|
}
|
||||||
RefreshPointGeometry(*VAbstractTool::data.GeometricObject<VPointF>(id));
|
RefreshPointGeometry(*VAbstractTool::data.GeometricObject<VPointF>(id));
|
||||||
|
|
||||||
|
if (vis != nullptr)
|
||||||
|
{
|
||||||
|
VisToolLineIntersect *visual = qobject_cast<VisToolLineIntersect *>(vis);
|
||||||
|
visual->setPoint1Id(p1Line1);
|
||||||
|
visual->setLine1P2Id(p2Line1);
|
||||||
|
visual->setLine2P1Id(p1Line2);
|
||||||
|
visual->setLine2P2Id(p2Line2);
|
||||||
|
vis->RefreshGeometry();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -234,49 +245,6 @@ void VToolLineIntersect::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
|
||||||
ContextMenu<DialogLineIntersect>(this, event);
|
ContextMenu<DialogLineIntersect>(this, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief AddToFile add tag with informations about tool into file.
|
|
||||||
*/
|
|
||||||
void VToolLineIntersect::AddToFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(id);
|
|
||||||
QDomElement domElement = doc->createElement(TagName);
|
|
||||||
|
|
||||||
doc->SetAttribute(domElement, VDomDocument::AttrId, id);
|
|
||||||
doc->SetAttribute(domElement, AttrType, ToolType);
|
|
||||||
doc->SetAttribute(domElement, AttrName, point->name());
|
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
|
||||||
|
|
||||||
doc->SetAttribute(domElement, AttrP1Line1, p1Line1);
|
|
||||||
doc->SetAttribute(domElement, AttrP2Line1, p2Line1);
|
|
||||||
doc->SetAttribute(domElement, AttrP1Line2, p1Line2);
|
|
||||||
doc->SetAttribute(domElement, AttrP2Line2, p2Line2);
|
|
||||||
|
|
||||||
AddToCalculation(domElement);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief RefreshDataInFile refresh attributes in file. If attributes don't exist create them.
|
|
||||||
*/
|
|
||||||
void VToolLineIntersect::RefreshDataInFile()
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(id);
|
|
||||||
QDomElement domElement = doc->elementById(QString().setNum(id));
|
|
||||||
if (domElement.isElement())
|
|
||||||
{
|
|
||||||
doc->SetAttribute(domElement, AttrName, point->name());
|
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
|
||||||
doc->SetAttribute(domElement, AttrP1Line1, p1Line1);
|
|
||||||
doc->SetAttribute(domElement, AttrP2Line1, p2Line1);
|
|
||||||
doc->SetAttribute(domElement, AttrP1Line2, p1Line2);
|
|
||||||
doc->SetAttribute(domElement, AttrP2Line2, p2Line2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief RemoveReferens decrement value of reference.
|
* @brief RemoveReferens decrement value of reference.
|
||||||
|
@ -304,3 +272,129 @@ void VToolLineIntersect::SaveDialog(QDomElement &domElement)
|
||||||
doc->SetAttribute(domElement, AttrP1Line2, QString().setNum(dialogTool->getP1Line2()));
|
doc->SetAttribute(domElement, AttrP1Line2, QString().setNum(dialogTool->getP1Line2()));
|
||||||
doc->SetAttribute(domElement, AttrP2Line2, QString().setNum(dialogTool->getP2Line2()));
|
doc->SetAttribute(domElement, AttrP2Line2, QString().setNum(dialogTool->getP2Line2()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolLineIntersect::SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj)
|
||||||
|
{
|
||||||
|
QSharedPointer<VPointF> point = qSharedPointerDynamicCast<VPointF>(obj);
|
||||||
|
SCASSERT(point.isNull() == false);
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, VDomDocument::AttrId, id);
|
||||||
|
doc->SetAttribute(tag, AttrType, ToolType);
|
||||||
|
doc->SetAttribute(tag, AttrName, point->name());
|
||||||
|
doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx()));
|
||||||
|
doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my()));
|
||||||
|
|
||||||
|
doc->SetAttribute(tag, AttrP1Line1, p1Line1);
|
||||||
|
doc->SetAttribute(tag, AttrP2Line1, p2Line1);
|
||||||
|
doc->SetAttribute(tag, AttrP1Line2, p1Line2);
|
||||||
|
doc->SetAttribute(tag, AttrP2Line2, p2Line2);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VToolLineIntersect::getP2Line2() const
|
||||||
|
{
|
||||||
|
return p2Line2;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolLineIntersect::setP2Line2(const quint32 &value)
|
||||||
|
{
|
||||||
|
if (value != NULL_ID)
|
||||||
|
{
|
||||||
|
p2Line2 = value;
|
||||||
|
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolLineIntersect::ShowVisualization(bool show)
|
||||||
|
{
|
||||||
|
if (show)
|
||||||
|
{
|
||||||
|
if (vis == nullptr)
|
||||||
|
{
|
||||||
|
VisToolLineIntersect * visual = new VisToolLineIntersect(getData());
|
||||||
|
VMainGraphicsScene *scene = qApp->getCurrentScene();
|
||||||
|
connect(scene, &VMainGraphicsScene::NewFactor, visual, &Visualization::SetFactor);
|
||||||
|
scene->addItem(visual);
|
||||||
|
|
||||||
|
visual->setPoint1Id(p1Line1);
|
||||||
|
visual->setLine1P2Id(p2Line1);
|
||||||
|
visual->setLine2P1Id(p1Line2);
|
||||||
|
visual->setLine2P2Id(p2Line2);
|
||||||
|
visual->RefreshGeometry();
|
||||||
|
vis = visual;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VisToolLineIntersect *visual = qobject_cast<VisToolLineIntersect *>(vis);
|
||||||
|
if (visual != nullptr)
|
||||||
|
{
|
||||||
|
visual->show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delete vis;
|
||||||
|
vis = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VToolLineIntersect::getP1Line2() const
|
||||||
|
{
|
||||||
|
return p1Line2;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolLineIntersect::setP1Line2(const quint32 &value)
|
||||||
|
{
|
||||||
|
if (value != NULL_ID)
|
||||||
|
{
|
||||||
|
p1Line2 = value;
|
||||||
|
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VToolLineIntersect::getP2Line1() const
|
||||||
|
{
|
||||||
|
return p2Line1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolLineIntersect::setP2Line1(const quint32 &value)
|
||||||
|
{
|
||||||
|
if (value != NULL_ID)
|
||||||
|
{
|
||||||
|
p2Line1 = value;
|
||||||
|
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VToolLineIntersect::getP1Line1() const
|
||||||
|
{
|
||||||
|
return p1Line1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolLineIntersect::setP1Line1(const quint32 &value)
|
||||||
|
{
|
||||||
|
if (value != NULL_ID)
|
||||||
|
{
|
||||||
|
p1Line1 = value;
|
||||||
|
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,16 +48,31 @@ public:
|
||||||
const qreal &mx, const qreal &my, VMainGraphicsScene *scene, VPattern *doc,
|
const qreal &mx, const qreal &my, VMainGraphicsScene *scene, VPattern *doc,
|
||||||
VContainer *data, const Document &parse, const Source &typeCreation);
|
VContainer *data, const Document &parse, const Source &typeCreation);
|
||||||
static const QString ToolType;
|
static const QString ToolType;
|
||||||
|
virtual int type() const {return Type;}
|
||||||
|
enum { Type = UserType + static_cast<int>(Tool::LineIntersect)};
|
||||||
|
|
||||||
|
quint32 getP1Line1() const;
|
||||||
|
void setP1Line1(const quint32 &value);
|
||||||
|
|
||||||
|
quint32 getP2Line1() const;
|
||||||
|
void setP2Line1(const quint32 &value);
|
||||||
|
|
||||||
|
quint32 getP1Line2() const;
|
||||||
|
void setP1Line2(const quint32 &value);
|
||||||
|
|
||||||
|
quint32 getP2Line2() const;
|
||||||
|
void setP2Line2(const quint32 &value);
|
||||||
|
|
||||||
|
virtual void ShowVisualization(bool show);
|
||||||
public slots:
|
public slots:
|
||||||
virtual void FullUpdateFromFile();
|
virtual void FullUpdateFromFile();
|
||||||
virtual void SetFactor(qreal factor);
|
virtual void SetFactor(qreal factor);
|
||||||
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
||||||
protected:
|
protected:
|
||||||
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
||||||
virtual void AddToFile();
|
|
||||||
virtual void RefreshDataInFile();
|
|
||||||
virtual void RemoveReferens();
|
virtual void RemoveReferens();
|
||||||
virtual void SaveDialog(QDomElement &domElement);
|
virtual void SaveDialog(QDomElement &domElement);
|
||||||
|
virtual void SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj);
|
||||||
private:
|
private:
|
||||||
/** @brief p1Line1 id first point first line. */
|
/** @brief p1Line1 id first point first line. */
|
||||||
quint32 p1Line1;
|
quint32 p1Line1;
|
||||||
|
|
|
@ -107,3 +107,58 @@ void VToolLinePoint::SetFactor(qreal factor)
|
||||||
VDrawTool::SetFactor(factor);
|
VDrawTool::SetFactor(factor);
|
||||||
RefreshGeometry();
|
RefreshGeometry();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
qreal VToolLinePoint::getAngle() const
|
||||||
|
{
|
||||||
|
return angle;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolLinePoint::setAngle(const qreal &value)
|
||||||
|
{
|
||||||
|
angle = value;
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VToolLinePoint::getBasePointId() const
|
||||||
|
{
|
||||||
|
return basePointId;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolLinePoint::setBasePointId(const quint32 &value)
|
||||||
|
{
|
||||||
|
if (value != NULL_ID)
|
||||||
|
{
|
||||||
|
basePointId = value;
|
||||||
|
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
VFormula VToolLinePoint::getFormulaLength() const
|
||||||
|
{
|
||||||
|
VFormula fLength(formulaLength, this->getData());
|
||||||
|
fLength.setCheckZero(true);
|
||||||
|
fLength.setToolId(id);
|
||||||
|
fLength.setPostfix(VDomDocument::UnitsToStr(qApp->patternUnit()));
|
||||||
|
|
||||||
|
return fLength;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolLinePoint::setFormulaLength(const VFormula &value)
|
||||||
|
{
|
||||||
|
if (value.error() == false)
|
||||||
|
{
|
||||||
|
formulaLength = value.getFormula(FormulaType::FromUser);
|
||||||
|
|
||||||
|
QSharedPointer<VGObject> obj = VAbstractTool::data.GetGObject(id);
|
||||||
|
SaveOption(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user