New function Warning.
This commit is contained in:
parent
b3ea7d69f4
commit
80d9fbc107
|
@ -1,3 +1,6 @@
|
||||||
|
# Version 0.7.40 (unreleased)
|
||||||
|
- New function Warning.
|
||||||
|
|
||||||
# Version 0.7.39 Nov 17, 2020
|
# Version 0.7.39 Nov 17, 2020
|
||||||
- Fix crash for Line tool notes.
|
- Fix crash for Line tool notes.
|
||||||
- Restored support for Mac OS 10.11+.
|
- Restored support for Mac OS 10.11+.
|
||||||
|
|
|
@ -150,23 +150,30 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
|
||||||
type = QtDebugMsg;
|
type = QtDebugMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString logMsg = msg;
|
||||||
|
const bool isWarningMessage = qApp->IsWarningMessage(msg);
|
||||||
|
if (isWarningMessage)
|
||||||
|
{
|
||||||
|
logMsg = logMsg.remove(VAbstractApplication::warningMessageSignature);
|
||||||
|
}
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case QtDebugMsg:
|
case QtDebugMsg:
|
||||||
vStdOut() << QApplication::translate("mNoisyHandler", "DEBUG:") << msg << "\n";
|
vStdOut() << QApplication::translate("mNoisyHandler", "DEBUG:") << logMsg << "\n";
|
||||||
return;
|
return;
|
||||||
case QtWarningMsg:
|
case QtWarningMsg:
|
||||||
vStdErr() << QApplication::translate("mNoisyHandler", "WARNING:") << msg << "\n";
|
vStdErr() << QApplication::translate("mNoisyHandler", "WARNING:") << logMsg << "\n";
|
||||||
break;
|
break;
|
||||||
case QtCriticalMsg:
|
case QtCriticalMsg:
|
||||||
vStdErr() << QApplication::translate("mNoisyHandler", "CRITICAL:") << msg << "\n";
|
vStdErr() << QApplication::translate("mNoisyHandler", "CRITICAL:") << logMsg << "\n";
|
||||||
break;
|
break;
|
||||||
case QtFatalMsg:
|
case QtFatalMsg:
|
||||||
vStdErr() << QApplication::translate("mNoisyHandler", "FATAL:") << msg << "\n";
|
vStdErr() << QApplication::translate("mNoisyHandler", "FATAL:") << logMsg << "\n";
|
||||||
break;
|
break;
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)
|
#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)
|
||||||
case QtInfoMsg:
|
case QtInfoMsg:
|
||||||
vStdOut() << QApplication::translate("mNoisyHandler", "INFO:") << msg << "\n";
|
vStdOut() << QApplication::translate("mNoisyHandler", "INFO:") << logMsg << "\n";
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
|
@ -216,7 +223,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
|
||||||
{
|
{
|
||||||
if (topWinAllowsPop)
|
if (topWinAllowsPop)
|
||||||
{
|
{
|
||||||
messageBox.setText(msg);
|
messageBox.setText(VAbstractApplication::ClearMessage(logMsg));
|
||||||
messageBox.setStandardButtons(QMessageBox::Ok);
|
messageBox.setStandardButtons(QMessageBox::Ok);
|
||||||
messageBox.setWindowModality(Qt::ApplicationModal);
|
messageBox.setWindowModality(Qt::ApplicationModal);
|
||||||
messageBox.setModal(true);
|
messageBox.setModal(true);
|
||||||
|
@ -335,6 +342,11 @@ bool MApplication::notify(QObject *receiver, QEvent *event)
|
||||||
qUtf8Printable(e.ErrorMessage()), qUtf8Printable(e.DetailedInformation()));
|
qUtf8Printable(e.ErrorMessage()), qUtf8Printable(e.DetailedInformation()));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
catch (const qmu::QmuParserWarning &e)
|
||||||
|
{
|
||||||
|
qCCritical(mApp, "%s", qUtf8Printable(tr("Formula warning: %1. Program will be terminated.").arg(e.GetMsg())));
|
||||||
|
exit(V_EX_DATAERR);
|
||||||
|
}
|
||||||
// These last two cases special. I found that we can't show here modal dialog with error message.
|
// These last two cases special. I found that we can't show here modal dialog with error message.
|
||||||
// Somehow program doesn't waite untile an error dialog will be closed. But if ignore this program will hang.
|
// Somehow program doesn't waite untile an error dialog will be closed. But if ignore this program will hang.
|
||||||
catch (const qmu::QmuParserError &e)
|
catch (const qmu::QmuParserError &e)
|
||||||
|
|
|
@ -388,15 +388,6 @@ DEPENDPATH += $$PWD/../../libs/ifc
|
||||||
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/ifc/$${DESTDIR}/ifc.lib
|
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/ifc/$${DESTDIR}/ifc.lib
|
||||||
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/ifc/$${DESTDIR}/libifc.a
|
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/ifc/$${DESTDIR}/libifc.a
|
||||||
|
|
||||||
#VMisc static library
|
|
||||||
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vmisc/$${DESTDIR}/ -lvmisc
|
|
||||||
|
|
||||||
INCLUDEPATH += $$PWD/../../libs/vmisc
|
|
||||||
DEPENDPATH += $$PWD/../../libs/vmisc
|
|
||||||
|
|
||||||
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/vmisc.lib
|
|
||||||
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/libvmisc.a
|
|
||||||
|
|
||||||
# VGeometry static library (depend on ifc)
|
# VGeometry static library (depend on ifc)
|
||||||
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/ -lvgeometry
|
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/ -lvgeometry
|
||||||
|
|
||||||
|
@ -406,6 +397,15 @@ DEPENDPATH += $$PWD/../../libs/vgeometry
|
||||||
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/vgeometry.lib
|
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/vgeometry.lib
|
||||||
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/libvgeometry.a
|
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/libvgeometry.a
|
||||||
|
|
||||||
|
#VMisc static library
|
||||||
|
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vmisc/$${DESTDIR}/ -lvmisc
|
||||||
|
|
||||||
|
INCLUDEPATH += $$PWD/../../libs/vmisc
|
||||||
|
DEPENDPATH += $$PWD/../../libs/vmisc
|
||||||
|
|
||||||
|
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/vmisc.lib
|
||||||
|
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/libvmisc.a
|
||||||
|
|
||||||
# QMuParser library
|
# QMuParser library
|
||||||
win32:CONFIG(release, debug|release): LIBS += -L$${OUT_PWD}/../../libs/qmuparser/$${DESTDIR} -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/$${DESTDIR} -lqmuparser2
|
else:win32:CONFIG(debug, debug|release): LIBS += -L$${OUT_PWD}/../../libs/qmuparser/$${DESTDIR} -lqmuparser2
|
||||||
|
|
|
@ -147,10 +147,10 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
|
||||||
}
|
}
|
||||||
|
|
||||||
QString logMsg = msg;
|
QString logMsg = msg;
|
||||||
const bool isPatternMessage = qApp->IsPatternMessage(msg);
|
const bool isPatternMessage = qApp->IsWarningMessage(msg);
|
||||||
if (isPatternMessage)
|
if (isPatternMessage)
|
||||||
{
|
{
|
||||||
logMsg = logMsg.remove(VAbstractValApplication::patternMessageSignature);
|
logMsg = logMsg.remove(VAbstractValApplication::warningMessageSignature);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -166,7 +166,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
|
||||||
case QtWarningMsg:
|
case QtWarningMsg:
|
||||||
if (isPatternMessage)
|
if (isPatternMessage)
|
||||||
{
|
{
|
||||||
qApp->PostPatternMessage(logMsg, type);
|
qApp->PostWarningMessage(logMsg, type);
|
||||||
}
|
}
|
||||||
debugdate += QStringLiteral(":WARNING:%1(%2)] %3: %4: %5").arg(context.file).arg(context.line)
|
debugdate += QStringLiteral(":WARNING:%1(%2)] %3: %4: %5").arg(context.file).arg(context.line)
|
||||||
.arg(context.function, context.category, logMsg);
|
.arg(context.function, context.category, logMsg);
|
||||||
|
@ -175,7 +175,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
|
||||||
case QtCriticalMsg:
|
case QtCriticalMsg:
|
||||||
if (isPatternMessage)
|
if (isPatternMessage)
|
||||||
{
|
{
|
||||||
qApp->PostPatternMessage(logMsg, type);
|
qApp->PostWarningMessage(logMsg, type);
|
||||||
}
|
}
|
||||||
debugdate += QStringLiteral(":CRITICAL:%1(%2)] %3: %4: %5").arg(context.file).arg(context.line)
|
debugdate += QStringLiteral(":CRITICAL:%1(%2)] %3: %4: %5").arg(context.file).arg(context.line)
|
||||||
.arg(context.function, context.category, logMsg);
|
.arg(context.function, context.category, logMsg);
|
||||||
|
@ -190,7 +190,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
|
||||||
case QtInfoMsg:
|
case QtInfoMsg:
|
||||||
if (isPatternMessage)
|
if (isPatternMessage)
|
||||||
{
|
{
|
||||||
qApp->PostPatternMessage(logMsg, type);
|
qApp->PostWarningMessage(logMsg, type);
|
||||||
}
|
}
|
||||||
debugdate += QStringLiteral(":INFO:%1(%2)] %3: %4: %5").arg(context.file).arg(context.line)
|
debugdate += QStringLiteral(":INFO:%1(%2)] %3: %4: %5").arg(context.file).arg(context.line)
|
||||||
.arg(context.function, context.category, logMsg);
|
.arg(context.function, context.category, logMsg);
|
||||||
|
@ -412,6 +412,11 @@ bool VApplication::notify(QObject *receiver, QEvent *event)
|
||||||
qUtf8Printable(e.ErrorMessage()), qUtf8Printable(e.DetailedInformation()));
|
qUtf8Printable(e.ErrorMessage()), qUtf8Printable(e.DetailedInformation()));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
catch (const qmu::QmuParserWarning &e)
|
||||||
|
{
|
||||||
|
qCCritical(vApp, "%s", qUtf8Printable(tr("Formula warning: %1. Program will be terminated.").arg(e.GetMsg())));
|
||||||
|
exit(V_EX_DATAERR);
|
||||||
|
}
|
||||||
// These last two cases are special. I found that we can't show here a modal dialog with an error message.
|
// These last two cases are special. I found that we can't show here a modal dialog with an error message.
|
||||||
// Somehow program doesn't wait until an error dialog will be closed. But if ignore the exception the program will
|
// Somehow program doesn't wait until an error dialog will be closed. But if ignore the exception the program will
|
||||||
// hang.
|
// hang.
|
||||||
|
|
|
@ -297,7 +297,7 @@ void VWidgetDetails::ShowContextMenu(const QPoint &pos)
|
||||||
catch (const VExceptionBadId &)
|
catch (const VExceptionBadId &)
|
||||||
{
|
{
|
||||||
const QString errorMsg = tr("Cannot find piece by id '%1'").arg(id);
|
const QString errorMsg = tr("Cannot find piece by id '%1'").arg(id);
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -174,7 +174,7 @@ void WarningNotUniquePieceName(const QHash<quint32, VPiece> *allDetails)
|
||||||
{
|
{
|
||||||
const QString errorMsg = QObject::tr("Piece name '%1' is not unique.").arg(pieceName);
|
const QString errorMsg = QObject::tr("Piece name '%1' is not unique.").arg(pieceName);
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
++i;
|
++i;
|
||||||
|
@ -1629,7 +1629,7 @@ void MainWindow::customEvent(QEvent *event)
|
||||||
{
|
{
|
||||||
ZoomFitBestCurrent();
|
ZoomFitBestCurrent();
|
||||||
}
|
}
|
||||||
else if (event->type() == PATTERN_MESSAGE_EVENT)
|
else if (event->type() == WARNING_MESSAGE_EVENT)
|
||||||
{
|
{
|
||||||
PrintPatternMessage(event);
|
PrintPatternMessage(event);
|
||||||
}
|
}
|
||||||
|
@ -6523,7 +6523,7 @@ void MainWindow::ToolSelectDetail()
|
||||||
void MainWindow::PrintPatternMessage(QEvent *event)
|
void MainWindow::PrintPatternMessage(QEvent *event)
|
||||||
{
|
{
|
||||||
SCASSERT(event != nullptr)
|
SCASSERT(event != nullptr)
|
||||||
auto *patternMessage = static_cast<PatternMessageEvent *>(event);
|
auto *patternMessage = static_cast<WarningMessageEvent *>(event);
|
||||||
|
|
||||||
QString severity;
|
QString severity;
|
||||||
|
|
||||||
|
|
|
@ -930,7 +930,7 @@ void MainWindowsNoGUI::PrintPages(QPrinter *printer)
|
||||||
{
|
{
|
||||||
const QString errorMsg = tr("File error.\n\n%1\n\n%2").arg(e.ErrorMessage(), e.DetailedInformation());
|
const QString errorMsg = tr("File error.\n\n%1\n\n%2").arg(e.ErrorMessage(), e.DetailedInformation());
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -193,6 +193,12 @@ QList<QString> GetTokens(const VFormulaField &formula)
|
||||||
.arg(formula.expression, e.GetMsg());
|
.arg(formula.expression, e.GetMsg());
|
||||||
return QList<QString>();
|
return QList<QString>();
|
||||||
}
|
}
|
||||||
|
catch (const qmu::QmuParserWarning &e)
|
||||||
|
{
|
||||||
|
qWarning() << QObject::tr("Cannot get tokens from formula '%1'. Formula error: %2.")
|
||||||
|
.arg(formula.expression, e.GetMsg());
|
||||||
|
return QList<QString>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include <QtGlobal>
|
#include <QtGlobal>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <QtDebug>
|
||||||
|
|
||||||
#include "qmuparserdef.h"
|
#include "qmuparserdef.h"
|
||||||
#include "qmuparsererror.h"
|
#include "qmuparsererror.h"
|
||||||
|
@ -414,10 +415,7 @@ QmuParser::QmuParser():QmuParserBase()
|
||||||
{
|
{
|
||||||
AddValIdent(IsVal);
|
AddValIdent(IsVal);
|
||||||
|
|
||||||
InitCharSets();
|
Init();
|
||||||
InitFun();
|
|
||||||
InitConst();
|
|
||||||
InitOprt();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -1383,7 +1383,6 @@ void QmuParserBase::CreateRPN() const
|
||||||
stVal.push(opt);
|
stVal.push(opt);
|
||||||
const QString &str = opt.GetAsString();
|
const QString &str = opt.GetAsString();
|
||||||
m_vStringBuf.push_back(str); // Store string in internal buffer
|
m_vStringBuf.push_back(str); // Store string in internal buffer
|
||||||
m_Tokens.insert(m_pTokenReader->GetPos()-str.length(), str);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case cmVAR:
|
case cmVAR:
|
||||||
|
|
|
@ -301,4 +301,45 @@ QmuParserError *QmuParserError::clone() const
|
||||||
return new QmuParserError(*this);
|
return new QmuParserError(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QmuParserWarning::QmuParserWarning(const QString &sMsg)
|
||||||
|
: QException(), m_sMsg ( sMsg )
|
||||||
|
{}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QmuParserWarning::QmuParserWarning(const QmuParserWarning &a_Obj)
|
||||||
|
: QException(), m_sMsg(a_Obj.m_sMsg)
|
||||||
|
{}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QmuParserWarning &QmuParserWarning::operator=(const QmuParserWarning &a_Obj)
|
||||||
|
{
|
||||||
|
if ( this == &a_Obj )
|
||||||
|
{
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_sMsg = a_Obj.m_sMsg;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* @brief raise method raise for exception
|
||||||
|
*/
|
||||||
|
Q_NORETURN void QmuParserWarning::raise() const
|
||||||
|
{
|
||||||
|
throw *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* @brief clone clone exception
|
||||||
|
* @return new exception
|
||||||
|
*/
|
||||||
|
QmuParserWarning *QmuParserWarning::clone() const
|
||||||
|
{
|
||||||
|
return new QmuParserWarning(*this);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace qmu
|
} // namespace qmu
|
||||||
|
|
|
@ -129,6 +129,31 @@ inline QString QmuParserErrorMsg::operator[] ( int a_iIdx ) const
|
||||||
return m_vErrMsg.value(a_iIdx).translate(QString());
|
return m_vErrMsg.value(a_iIdx).translate(QString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class QMUPARSERSHARED_EXPORT QmuParserWarning : public QException
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit QmuParserWarning ( const QString &sMsg );
|
||||||
|
QmuParserWarning ( const QmuParserWarning &a_Obj );
|
||||||
|
QmuParserWarning& operator= ( const QmuParserWarning &a_Obj );
|
||||||
|
virtual ~QmuParserWarning() QMUP_NOEXCEPT_EXPR (true) override {}
|
||||||
|
|
||||||
|
const QString& GetMsg() const;
|
||||||
|
|
||||||
|
Q_NORETURN virtual void raise() const override;
|
||||||
|
Q_REQUIRED_RESULT virtual QmuParserWarning *clone() const override;
|
||||||
|
private:
|
||||||
|
QString m_sMsg; ///< The message string
|
||||||
|
};
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* @brief Returns the message string for this error.
|
||||||
|
*/
|
||||||
|
inline const QString& QmuParserWarning::GetMsg() const
|
||||||
|
{
|
||||||
|
return m_sMsg;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
/** @brief Error class of the parser.
|
/** @brief Error class of the parser.
|
||||||
@author Ingo Berg
|
@author Ingo Berg
|
||||||
|
|
|
@ -63,6 +63,8 @@ QmuTokenParser::QmuTokenParser(const QString &formula, bool osSeparator,
|
||||||
SetVarFactory(AddVariable, this);
|
SetVarFactory(AddVariable, this);
|
||||||
SetSepForTr(osSeparator, fromUser);
|
SetSepForTr(osSeparator, fromUser);
|
||||||
|
|
||||||
|
DefineFun(QStringLiteral("warning"), Warning);
|
||||||
|
|
||||||
// Fix for issue #776. Valentina cannot recognize translated functions.
|
// Fix for issue #776. Valentina cannot recognize translated functions.
|
||||||
QMap<QString, QString>::const_iterator i = translatedFunctions.constBegin();
|
QMap<QString, QString>::const_iterator i = translatedFunctions.constBegin();
|
||||||
while (i != translatedFunctions.constEnd())
|
while (i != translatedFunctions.constEnd())
|
||||||
|
@ -100,4 +102,12 @@ bool QmuTokenParser::IsSingle(const QString &formula)
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
qreal QmuTokenParser::Warning(const QString &warningMsg, qreal value)
|
||||||
|
{
|
||||||
|
Q_UNUSED(warningMsg);
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
}// namespace qmu
|
}// namespace qmu
|
||||||
|
|
|
@ -42,6 +42,9 @@ public:
|
||||||
|
|
||||||
static bool IsSingle(const QString &formula);
|
static bool IsSingle(const QString &formula);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
static qreal Warning(const QString &warningMsg, qreal value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(QmuTokenParser)
|
Q_DISABLE_COPY(QmuTokenParser)
|
||||||
QmuTokenParser();
|
QmuTokenParser();
|
||||||
|
|
|
@ -113,7 +113,7 @@ void DRW_TextCodec::setCodePage(const std::string *c, bool dxfFormat){
|
||||||
const QString errorMsg = QCoreApplication::translate("DRW_TextCodec", "No available codec for code page '%1'.")
|
const QString errorMsg = QCoreApplication::translate("DRW_TextCodec", "No available codec for code page '%1'.")
|
||||||
.arg(cp.c_str());
|
.arg(cp.c_str());
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
|
|
||||||
if (version < DRW::AC1021 && cp == "UTF-8")
|
if (version < DRW::AC1021 && cp == "UTF-8")
|
||||||
{
|
{
|
||||||
|
|
|
@ -437,7 +437,7 @@ QDomElement VPatternRecipe::FinalMeasurement(const VFinalMeasurement &fm)
|
||||||
tr("Value for final measurtement '%1' is infinite or NaN. "
|
tr("Value for final measurtement '%1' is infinite or NaN. "
|
||||||
"Please, check your calculations.").arg(fm.name));
|
"Please, check your calculations.").arg(fm.name));
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetAttribute(recipeFinalMeasurement, QStringLiteral("value"), result);
|
SetAttribute(recipeFinalMeasurement, QStringLiteral("value"), result);
|
||||||
|
|
|
@ -146,7 +146,7 @@ QVector<QPointF> VAbstractCurve::GetSegmentPoints(const QPointF &begin, const QP
|
||||||
.arg(piece, name(), error);
|
.arg(piece, name(), error);
|
||||||
}
|
}
|
||||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
return segment;
|
return segment;
|
||||||
|
|
|
@ -1072,7 +1072,7 @@ QVector<QPointF> VAbstractPiece::Equidistant(QVector<VSAPoint> points, qreal wid
|
||||||
{
|
{
|
||||||
const QString errorMsg = tr("Piece '%1'. Not enough points to build seam allowance.").arg(name);
|
const QString errorMsg = tr("Piece '%1'. Not enough points to build seam allowance.").arg(name);
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return QVector<QPointF>();
|
return QVector<QPointF>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -335,7 +335,7 @@ bool VBank::PrepareUnsorted()
|
||||||
const qint64 square = details.at(i).Square();
|
const qint64 square = details.at(i).Square();
|
||||||
if (square <= 0)
|
if (square <= 0)
|
||||||
{
|
{
|
||||||
qCCritical(lBank) << VAbstractValApplication::patternMessageSignature +
|
qCCritical(lBank) << VAbstractValApplication::warningMessageSignature +
|
||||||
tr("Preparing data for layout error: Detail '%1' square <= 0")
|
tr("Preparing data for layout error: Detail '%1' square <= 0")
|
||||||
.arg(details.at(i).GetName());
|
.arg(details.at(i).GetName());
|
||||||
prepare = false;
|
prepare = false;
|
||||||
|
@ -360,7 +360,7 @@ bool VBank::PrepareDetails()
|
||||||
{
|
{
|
||||||
if (layoutWidth <= 0)
|
if (layoutWidth <= 0)
|
||||||
{
|
{
|
||||||
qCCritical(lBank) << VAbstractValApplication::patternMessageSignature +
|
qCCritical(lBank) << VAbstractValApplication::warningMessageSignature +
|
||||||
tr("Preparing data for layout error: Layout paper sheet <= 0");
|
tr("Preparing data for layout error: Layout paper sheet <= 0");
|
||||||
prepare = false;
|
prepare = false;
|
||||||
return prepare;
|
return prepare;
|
||||||
|
@ -368,7 +368,7 @@ bool VBank::PrepareDetails()
|
||||||
|
|
||||||
if (details.isEmpty())
|
if (details.isEmpty())
|
||||||
{
|
{
|
||||||
qCCritical(lBank) << VAbstractValApplication::patternMessageSignature +
|
qCCritical(lBank) << VAbstractValApplication::warningMessageSignature +
|
||||||
tr("Preparing data for layout error: List of details is empty");
|
tr("Preparing data for layout error: List of details is empty");
|
||||||
prepare = false;
|
prepare = false;
|
||||||
return prepare;
|
return prepare;
|
||||||
|
@ -391,7 +391,7 @@ bool VBank::PrepareDetails()
|
||||||
const QString errorMsg = QObject::tr("Piece '%1' has invalid layout allowance. Please, check seam allowance"
|
const QString errorMsg = QObject::tr("Piece '%1' has invalid layout allowance. Please, check seam allowance"
|
||||||
" to check how seam allowance behave.").arg(details.at(i).GetName());
|
" to check how seam allowance behave.").arg(details.at(i).GetName());
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
const qreal d = details.at(i).Diagonal();
|
const qreal d = details.at(i).Diagonal();
|
||||||
|
|
|
@ -269,7 +269,7 @@ QVector<VLayoutPassmark> ConvertPassmarks(const VPiece &piece, const VContainer
|
||||||
QObject::tr("Cannot prepare builtin passmark '%1' for piece '%2'. Passmark is empty.")
|
QObject::tr("Cannot prepare builtin passmark '%1' for piece '%2'. Passmark is empty.")
|
||||||
.arg(pData.nodeName, piece.GetName());
|
.arg(pData.nodeName, piece.GetName());
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -283,7 +283,7 @@ QVector<VLayoutPassmark> ConvertPassmarks(const VPiece &piece, const VContainer
|
||||||
"empty.")
|
"empty.")
|
||||||
.arg(pData.nodeName, piece.GetName());
|
.arg(pData.nodeName, piece.GetName());
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
layoutPassmark.baseLine = ConstFirst (baseLines);
|
layoutPassmark.baseLine = ConstFirst (baseLines);
|
||||||
|
@ -300,7 +300,7 @@ QVector<VLayoutPassmark> ConvertPassmarks(const VPiece &piece, const VContainer
|
||||||
QObject::tr("Passmark '%1' is not part of piece '%2'.")
|
QObject::tr("Passmark '%1' is not part of piece '%2'.")
|
||||||
.arg(pData.nodeName, piece.GetName());
|
.arg(pData.nodeName, piece.GetName());
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -326,7 +326,7 @@ QVector<VLayoutPassmark> ConvertPassmarks(const VPiece &piece, const VContainer
|
||||||
QObject::tr("Cannot prepare passmark '%1' for piece '%2'. Passmark base line is empty.")
|
QObject::tr("Cannot prepare passmark '%1' for piece '%2'. Passmark base line is empty.")
|
||||||
.arg(pData.nodeName, piece.GetName());
|
.arg(pData.nodeName, piece.GetName());
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -346,7 +346,7 @@ QVector<VLayoutPassmark> ConvertPassmarks(const VPiece &piece, const VContainer
|
||||||
QObject::tr("Cannot prepare passmark '%1' for piece '%2'. Passmark is empty.")
|
QObject::tr("Cannot prepare passmark '%1' for piece '%2'. Passmark is empty.")
|
||||||
.arg(pData.nodeName, piece.GetName());
|
.arg(pData.nodeName, piece.GetName());
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -362,7 +362,7 @@ QVector<VLayoutPassmark> ConvertPassmarks(const VPiece &piece, const VContainer
|
||||||
QObject::tr("Passmark '%1' is not part of piece '%2'.")
|
QObject::tr("Passmark '%1' is not part of piece '%2'.")
|
||||||
.arg(pData.nodeName, piece.GetName());
|
.arg(pData.nodeName, piece.GetName());
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -508,7 +508,7 @@ VLayoutPiece VLayoutPiece::Create(const VPiece &piece, vidtype id, const VContai
|
||||||
const QString errorMsg = QObject::tr("Piece '%1'. Seam allowance is not valid.")
|
const QString errorMsg = QObject::tr("Piece '%1'. Seam allowance is not valid.")
|
||||||
.arg(piece.GetName());
|
.arg(piece.GetName());
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
det.SetCountourPoints(futureMainPath.result(),
|
det.SetCountourPoints(futureMainPath.result(),
|
||||||
|
|
|
@ -310,7 +310,7 @@ QVector<QGraphicsItem *> VPoster::ImageWatermark(QGraphicsItem *parent, const Po
|
||||||
{
|
{
|
||||||
const QString errorMsg = tr("Cannot open the watermark image.") + QChar(' ') + error;
|
const QString errorMsg = tr("Cannot open the watermark image.") + QChar(' ') + error;
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -320,7 +320,7 @@ QVector<QGraphicsItem *> VPoster::ImageWatermark(QGraphicsItem *parent, const Po
|
||||||
{
|
{
|
||||||
const QString errorMsg = tr("Not supported file suffix '%1'").arg(f.suffix());
|
const QString errorMsg = tr("Not supported file suffix '%1'").arg(f.suffix());
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ enum CustomEventType {
|
||||||
UndoEventType = 1,
|
UndoEventType = 1,
|
||||||
LiteParseEventType = 2,
|
LiteParseEventType = 2,
|
||||||
FitBestCurrentEventType = 3,
|
FitBestCurrentEventType = 3,
|
||||||
PatternMessageEventType = 4,
|
WarningMessageEventType = 4,
|
||||||
};
|
};
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -84,19 +84,19 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
const QEvent::Type PATTERN_MESSAGE_EVENT = static_cast<QEvent::Type>(QEvent::User +
|
const QEvent::Type WARNING_MESSAGE_EVENT = static_cast<QEvent::Type>(QEvent::User +
|
||||||
CustomEventType::PatternMessageEventType);
|
CustomEventType::WarningMessageEventType);
|
||||||
|
|
||||||
class PatternMessageEvent : public QEvent
|
class WarningMessageEvent : public QEvent
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PatternMessageEvent(const QString &message, QtMsgType severity)
|
WarningMessageEvent(const QString &message, QtMsgType severity)
|
||||||
: QEvent(PATTERN_MESSAGE_EVENT),
|
: QEvent(WARNING_MESSAGE_EVENT),
|
||||||
m_message(message),
|
m_message(message),
|
||||||
m_severity(severity)
|
m_severity(severity)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
virtual ~PatternMessageEvent() =default;
|
virtual ~WarningMessageEvent() =default;
|
||||||
|
|
||||||
QString Message() const;
|
QString Message() const;
|
||||||
|
|
||||||
|
@ -107,12 +107,12 @@ private:
|
||||||
QtMsgType m_severity;
|
QtMsgType m_severity;
|
||||||
};
|
};
|
||||||
|
|
||||||
inline QString PatternMessageEvent::Message() const
|
inline QString WarningMessageEvent::Message() const
|
||||||
{
|
{
|
||||||
return m_message;
|
return m_message;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QtMsgType PatternMessageEvent::Severity() const
|
inline QtMsgType WarningMessageEvent::Severity() const
|
||||||
{
|
{
|
||||||
return m_severity;
|
return m_severity;
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,44 +108,31 @@ const QString max_F = QStringLiteral("max");
|
||||||
const QString sum_F = QStringLiteral("sum");
|
const QString sum_F = QStringLiteral("sum");
|
||||||
const QString avg_F = QStringLiteral("avg");
|
const QString avg_F = QStringLiteral("avg");
|
||||||
const QString fmod_F = QStringLiteral("fmod");
|
const QString fmod_F = QStringLiteral("fmod");
|
||||||
|
const QString warning_F = QStringLiteral("warning");
|
||||||
|
|
||||||
const QStringList builInFunctions = QStringList() << degTorad_F
|
const QStringList builInFunctions
|
||||||
<< radTodeg_F
|
{
|
||||||
<< sin_F
|
degTorad_F, radTodeg_F,
|
||||||
<< cos_F
|
sin_F, cos_F, tan_F,
|
||||||
<< tan_F
|
asin_F, acos_F, atan_F,
|
||||||
<< asin_F
|
sinh_F, cosh_F, tanh_F,
|
||||||
<< acos_F
|
asinh_F, acosh_F, atanh_F,
|
||||||
<< atan_F
|
sinD_F, cosD_F, tanD_F,
|
||||||
<< sinh_F
|
asinD_F, acosD_F, atanD_F,
|
||||||
<< cosh_F
|
log2_F, log10_F, log_F,
|
||||||
<< tanh_F
|
ln_F,
|
||||||
<< asinh_F
|
exp_F,
|
||||||
<< acosh_F
|
sqrt_F,
|
||||||
<< atanh_F
|
sign_F,
|
||||||
<< sinD_F
|
rint_F, r2cm_F,
|
||||||
<< cosD_F
|
csrCm_F, csrInch_F,
|
||||||
<< tanD_F
|
abs_F,
|
||||||
<< asinD_F
|
min_F, max_F,
|
||||||
<< acosD_F
|
sum_F,
|
||||||
<< atanD_F
|
avg_F,
|
||||||
<< log2_F
|
fmod_F,
|
||||||
<< log10_F
|
warning_F
|
||||||
<< log_F
|
};
|
||||||
<< ln_F
|
|
||||||
<< exp_F
|
|
||||||
<< sqrt_F
|
|
||||||
<< sign_F
|
|
||||||
<< rint_F
|
|
||||||
<< r2cm_F
|
|
||||||
<< csrCm_F
|
|
||||||
<< csrInch_F
|
|
||||||
<< abs_F
|
|
||||||
<< min_F
|
|
||||||
<< max_F
|
|
||||||
<< sum_F
|
|
||||||
<< avg_F
|
|
||||||
<< fmod_F;
|
|
||||||
|
|
||||||
const QString pl_size = QStringLiteral("size");
|
const QString pl_size = QStringLiteral("size");
|
||||||
const QString pl_height = QStringLiteral("height");
|
const QString pl_height = QStringLiteral("height");
|
||||||
|
|
|
@ -397,6 +397,7 @@ extern const QString max_F;
|
||||||
extern const QString sum_F;
|
extern const QString sum_F;
|
||||||
extern const QString avg_F;
|
extern const QString avg_F;
|
||||||
extern const QString fmod_F;
|
extern const QString fmod_F;
|
||||||
|
extern const QString warning_F;
|
||||||
|
|
||||||
extern const QStringList builInFunctions;
|
extern const QStringList builInFunctions;
|
||||||
|
|
||||||
|
|
|
@ -50,6 +50,8 @@
|
||||||
# include "appimage.h"
|
# include "appimage.h"
|
||||||
#endif // defined(APPIMAGE) && defined(Q_OS_LINUX)
|
#endif // defined(APPIMAGE) && defined(Q_OS_LINUX)
|
||||||
|
|
||||||
|
const QString VAbstractApplication::warningMessageSignature = QStringLiteral("[PATTERN MESSAGE]");
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VAbstractApplication::VAbstractApplication(int &argc, char **argv)
|
VAbstractApplication::VAbstractApplication(int &argc, char **argv)
|
||||||
:QApplication(argc, argv),
|
:QApplication(argc, argv),
|
||||||
|
@ -288,3 +290,26 @@ void VAbstractApplication::ClearTranslation()
|
||||||
delete pmsTranslator;
|
delete pmsTranslator;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* @brief ClearMessage helps to clear a message string from standard Qt function.
|
||||||
|
* @param msg the message that contains '"' at the start and at the end
|
||||||
|
* @return cleared string
|
||||||
|
*/
|
||||||
|
QString VAbstractApplication::ClearMessage(QString msg)
|
||||||
|
{
|
||||||
|
if (msg.startsWith('"') && msg.endsWith('"'))
|
||||||
|
{
|
||||||
|
msg.remove(0, 1);
|
||||||
|
msg.chop(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
bool VAbstractApplication::IsWarningMessage(const QString &message) const
|
||||||
|
{
|
||||||
|
return VAbstractApplication::ClearMessage(message).startsWith(warningMessageSignature);
|
||||||
|
}
|
||||||
|
|
|
@ -77,6 +77,11 @@ public:
|
||||||
virtual bool IsAppInGUIMode()const =0;
|
virtual bool IsAppInGUIMode()const =0;
|
||||||
virtual bool IsPedantic() const;
|
virtual bool IsPedantic() const;
|
||||||
|
|
||||||
|
static QString ClearMessage(QString msg);
|
||||||
|
|
||||||
|
static const QString warningMessageSignature;
|
||||||
|
bool IsWarningMessage(const QString &message) const;
|
||||||
|
|
||||||
#if defined(Q_OS_WIN)
|
#if defined(Q_OS_WIN)
|
||||||
static void WinAttachConsole();
|
static void WinAttachConsole();
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -30,8 +30,6 @@
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
const QString VAbstractValApplication::patternMessageSignature = QStringLiteral("[PATTERN MESSAGE]");
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VAbstractValApplication::VAbstractValApplication(int &argc, char **argv)
|
VAbstractValApplication::VAbstractValApplication(int &argc, char **argv)
|
||||||
: VAbstractApplication(argc, argv)
|
: VAbstractApplication(argc, argv)
|
||||||
|
@ -50,31 +48,8 @@ double VAbstractValApplication::fromPixel(double pix) const
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VAbstractValApplication::PostPatternMessage(const QString &message, QtMsgType severity) const
|
void VAbstractValApplication::PostWarningMessage(const QString &message, QtMsgType severity) const
|
||||||
{
|
{
|
||||||
QApplication::postEvent(mainWindow,
|
QApplication::postEvent(mainWindow,
|
||||||
new PatternMessageEvent(VAbstractValApplication::ClearMessage(message), severity));
|
new WarningMessageEvent(VAbstractValApplication::ClearMessage(message), severity));
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief ClearMessage helps to clear a message string from standard Qt function.
|
|
||||||
* @param msg the message that contains '"' at the start and at the end
|
|
||||||
* @return cleared string
|
|
||||||
*/
|
|
||||||
QString VAbstractValApplication::ClearMessage(QString msg)
|
|
||||||
{
|
|
||||||
if (msg.startsWith('"') && msg.endsWith('"'))
|
|
||||||
{
|
|
||||||
msg.remove(0, 1);
|
|
||||||
msg.chop(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
bool VAbstractValApplication::IsPatternMessage(const QString &message) const
|
|
||||||
{
|
|
||||||
return VAbstractValApplication::ClearMessage(message).startsWith(patternMessageSignature);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,12 +98,7 @@ public:
|
||||||
bool getOpeningPattern() const;
|
bool getOpeningPattern() const;
|
||||||
void setOpeningPattern();
|
void setOpeningPattern();
|
||||||
|
|
||||||
void PostPatternMessage(const QString &message, QtMsgType severity) const;
|
void PostWarningMessage(const QString &message, QtMsgType severity) const;
|
||||||
|
|
||||||
static QString ClearMessage(QString msg);
|
|
||||||
|
|
||||||
static const QString patternMessageSignature;
|
|
||||||
bool IsPatternMessage(const QString &message) const;
|
|
||||||
|
|
||||||
qreal GetDimensionHeight() const;
|
qreal GetDimensionHeight() const;
|
||||||
void SetDimensionHeight(qreal dimensionHeight);
|
void SetDimensionHeight(qreal dimensionHeight);
|
||||||
|
|
|
@ -33,10 +33,12 @@
|
||||||
#include <QStringDataPtr>
|
#include <QStringDataPtr>
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
#include <QSharedPointer>
|
#include <QSharedPointer>
|
||||||
|
#include <QtDebug>
|
||||||
|
|
||||||
#include "../vmisc/def.h"
|
#include "../vmisc/def.h"
|
||||||
#include "../qmuparser/qmuparsererror.h"
|
#include "../qmuparser/qmuparsererror.h"
|
||||||
#include "variables/vinternalvariable.h"
|
#include "variables/vinternalvariable.h"
|
||||||
|
#include "../vmisc/vabstractapplication.h"
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
|
@ -63,6 +65,8 @@ Calculator::Calculator()
|
||||||
// set value to 0.
|
// set value to 0.
|
||||||
SetVarFactory(VarFactory, this);
|
SetVarFactory(VarFactory, this);
|
||||||
SetSepForEval();
|
SetSepForEval();
|
||||||
|
|
||||||
|
DefineFun(QStringLiteral("warning"), Warning);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -116,3 +120,12 @@ qreal *Calculator::VarFactory(const QString &a_szName, void *a_pUserData)
|
||||||
|
|
||||||
throw qmu::QmuParserError (qmu::ecUNASSIGNABLE_TOKEN);
|
throw qmu::QmuParserError (qmu::ecUNASSIGNABLE_TOKEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
qreal Calculator::Warning(const QString &warningMsg, qreal value)
|
||||||
|
{
|
||||||
|
qApp->IsPedantic() ? throw qmu::QmuParserWarning(warningMsg)
|
||||||
|
: qWarning() << VAbstractApplication::warningMessageSignature + warningMsg;
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
|
@ -66,6 +66,7 @@ public:
|
||||||
qreal EvalFormula(const QHash<QString, QSharedPointer<VInternalVariable> > *vars, const QString &formula);
|
qreal EvalFormula(const QHash<QString, QSharedPointer<VInternalVariable> > *vars, const QString &formula);
|
||||||
protected:
|
protected:
|
||||||
static qreal* VarFactory(const QString &a_szName, void *a_pUserData);
|
static qreal* VarFactory(const QString &a_szName, void *a_pUserData);
|
||||||
|
static qreal Warning(const QString &warningMsg, qreal value);
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(Calculator)
|
Q_DISABLE_COPY(Calculator)
|
||||||
QVector<QSharedPointer<qreal>> m_varsValues;
|
QVector<QSharedPointer<qreal>> m_varsValues;
|
||||||
|
|
|
@ -579,7 +579,7 @@ QVector<QLineF> PassmarkBisectorBaseLine(PassmarkStatus seamPassmarkType, const
|
||||||
"than minimal allowed.")
|
"than minimal allowed.")
|
||||||
.arg(passmarkData.nodeName, passmarkData.pieceName);
|
.arg(passmarkData.nodeName, passmarkData.pieceName);
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return QVector<QLineF>();
|
return QVector<QLineF>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -788,7 +788,7 @@ QVector<QLineF> VPassmark::BuiltInSAPassmarkBaseLine(const VPiece &piece) const
|
||||||
"than minimal allowed.")
|
"than minimal allowed.")
|
||||||
.arg(m_data.nodeName, m_data.pieceName);
|
.arg(m_data.nodeName, m_data.pieceName);
|
||||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return QVector<QLineF>();
|
return QVector<QLineF>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -804,7 +804,7 @@ QVector<QLineF> VPassmark::BuiltInSAPassmarkBaseLine(const VPiece &piece) const
|
||||||
"seam allowance. User must manually provide length.")
|
"seam allowance. User must manually provide length.")
|
||||||
.arg(m_data.nodeName, m_data.pieceName);
|
.arg(m_data.nodeName, m_data.pieceName);
|
||||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return QVector<QLineF>();
|
return QVector<QLineF>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -848,7 +848,7 @@ QVector<QLineF> VPassmark::SAPassmarkBaseLine(const QVector<QPointF> &seamAllowa
|
||||||
const QString errorMsg = QObject::tr("Cannot calculate a notch for point '%1' in piece '%2'. Seam allowance is "
|
const QString errorMsg = QObject::tr("Cannot calculate a notch for point '%1' in piece '%2'. Seam allowance is "
|
||||||
"empty.").arg(m_data.nodeName, m_data.pieceName);
|
"empty.").arg(m_data.nodeName, m_data.pieceName);
|
||||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return QVector<QLineF>(); // Something wrong
|
return QVector<QLineF>(); // Something wrong
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -860,7 +860,7 @@ QVector<QLineF> VPassmark::SAPassmarkBaseLine(const QVector<QPointF> &seamAllowa
|
||||||
"position for a notch.")
|
"position for a notch.")
|
||||||
.arg(m_data.nodeName, m_data.pieceName);
|
.arg(m_data.nodeName, m_data.pieceName);
|
||||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return QVector<QLineF>(); // Something wrong
|
return QVector<QLineF>(); // Something wrong
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -870,7 +870,7 @@ QVector<QLineF> VPassmark::SAPassmarkBaseLine(const QVector<QPointF> &seamAllowa
|
||||||
"notch position.")
|
"notch position.")
|
||||||
.arg(m_data.nodeName, m_data.pieceName);
|
.arg(m_data.nodeName, m_data.pieceName);
|
||||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto PassmarkIntersection = [this, seamAllowance] (QLineF line, qreal width)
|
auto PassmarkIntersection = [this, seamAllowance] (QLineF line, qreal width)
|
||||||
|
@ -897,7 +897,7 @@ QVector<QLineF> VPassmark::SAPassmarkBaseLine(const QVector<QPointF> &seamAllowa
|
||||||
"less than minimal allowed.")
|
"less than minimal allowed.")
|
||||||
.arg(m_data.nodeName, m_data.pieceName);
|
.arg(m_data.nodeName, m_data.pieceName);
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return QLineF();
|
return QLineF();
|
||||||
}
|
}
|
||||||
line.setLength(length);
|
line.setLength(length);
|
||||||
|
@ -914,7 +914,7 @@ QVector<QLineF> VPassmark::SAPassmarkBaseLine(const QVector<QPointF> &seamAllowa
|
||||||
"collapse.")
|
"collapse.")
|
||||||
.arg(m_data.nodeName, m_data.pieceName);
|
.arg(m_data.nodeName, m_data.pieceName);
|
||||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -923,7 +923,7 @@ QVector<QLineF> VPassmark::SAPassmarkBaseLine(const QVector<QPointF> &seamAllowa
|
||||||
"intersection.")
|
"intersection.")
|
||||||
.arg(m_data.nodeName, m_data.pieceName);
|
.arg(m_data.nodeName, m_data.pieceName);
|
||||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
return QLineF();
|
return QLineF();
|
||||||
|
@ -938,7 +938,7 @@ QVector<QLineF> VPassmark::SAPassmarkBaseLine(const QVector<QPointF> &seamAllowa
|
||||||
"than minimal allowed.")
|
"than minimal allowed.")
|
||||||
.arg(m_data.nodeName, m_data.pieceName);
|
.arg(m_data.nodeName, m_data.pieceName);
|
||||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -937,7 +937,7 @@ bool VPiece::GetPassmarkPreviousSAPoints(const QVector<VPieceNode> &path, int in
|
||||||
const QString errorMsg = tr("Cannot calculate a notch for point '%1' in piece '%2'.")
|
const QString errorMsg = tr("Cannot calculate a notch for point '%1' in piece '%2'.")
|
||||||
.arg(VPiecePath::NodeName(path, passmarkIndex, data), GetName());
|
.arg(VPiecePath::NodeName(path, passmarkIndex, data), GetName());
|
||||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return false; // Something wrong
|
return false; // Something wrong
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -976,7 +976,7 @@ bool VPiece::GetPassmarkNextSAPoints(const QVector<VPieceNode> &path, int index,
|
||||||
const QString errorMsg = tr("Cannot calculate a notch for point '%1' in piece '%2'.")
|
const QString errorMsg = tr("Cannot calculate a notch for point '%1' in piece '%2'.")
|
||||||
.arg(VPiecePath::NodeName(path, passmarkIndex, data), GetName());
|
.arg(VPiecePath::NodeName(path, passmarkIndex, data), GetName());
|
||||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return false; // Something wrong
|
return false; // Something wrong
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1060,7 +1060,7 @@ VPassmark VPiece::CreatePassmark(const QVector<VPieceNode> &path, int previousIn
|
||||||
const QString errorMsg = tr("Cannot calculate a notch for point '%1' in piece '%2'.")
|
const QString errorMsg = tr("Cannot calculate a notch for point '%1' in piece '%2'.")
|
||||||
.arg(VPiecePath::NodeName(path, passmarkIndex, data), GetName());
|
.arg(VPiecePath::NodeName(path, passmarkIndex, data), GetName());
|
||||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return VPassmark();
|
return VPassmark();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1089,7 +1089,7 @@ VPassmark VPiece::CreatePassmark(const QVector<VPieceNode> &path, int previousIn
|
||||||
const QString infoMsg = tr("Notch for point '%1' in piece '%2' will be disabled. Manual length is less than "
|
const QString infoMsg = tr("Notch for point '%1' in piece '%2' will be disabled. Manual length is less than "
|
||||||
"allowed value.")
|
"allowed value.")
|
||||||
.arg(VPiecePath::NodeName(path, passmarkIndex, data), GetName());
|
.arg(VPiecePath::NodeName(path, passmarkIndex, data), GetName());
|
||||||
qInfo() << VAbstractValApplication::patternMessageSignature + infoMsg;
|
qInfo() << VAbstractValApplication::warningMessageSignature + infoMsg;
|
||||||
return VPassmark();
|
return VPassmark();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -162,7 +162,7 @@ qreal VPieceNode::GetSABefore(const VContainer *data) const
|
||||||
const QString errorMsg = QObject::tr("Cannot calculate seam allowance before for point '%1'. Reason: %2.")
|
const QString errorMsg = QObject::tr("Cannot calculate seam allowance before for point '%1'. Reason: %2.")
|
||||||
.arg(nodeName, formula.Reason());
|
.arg(nodeName, formula.Reason());
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
return formula.getDoubleValue();
|
return formula.getDoubleValue();
|
||||||
|
@ -193,7 +193,7 @@ qreal VPieceNode::GetSABefore(const VContainer *data, Unit unit) const
|
||||||
const QString errorMsg = QObject::tr("Cannot calculate seam allowance before for point '%1'. Reason: %2.")
|
const QString errorMsg = QObject::tr("Cannot calculate seam allowance before for point '%1'. Reason: %2.")
|
||||||
.arg(nodeName, formula.Reason());
|
.arg(nodeName, formula.Reason());
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -245,7 +245,7 @@ qreal VPieceNode::GetSAAfter(const VContainer *data) const
|
||||||
const QString errorMsg = QObject::tr("Cannot calculate seam allowance after for point '%1'. Reason: %2.")
|
const QString errorMsg = QObject::tr("Cannot calculate seam allowance after for point '%1'. Reason: %2.")
|
||||||
.arg(nodeName, formula.Reason());
|
.arg(nodeName, formula.Reason());
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -277,7 +277,7 @@ qreal VPieceNode::GetSAAfter(const VContainer *data, Unit unit) const
|
||||||
const QString errorMsg = QObject::tr("Cannot calculate seam allowance after for point '%1'. Reason: ")
|
const QString errorMsg = QObject::tr("Cannot calculate seam allowance after for point '%1'. Reason: ")
|
||||||
.arg(nodeName, formula.Reason());
|
.arg(nodeName, formula.Reason());
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -343,7 +343,7 @@ qreal VPieceNode::GetPassmarkLength(const VContainer *data, Unit unit) const
|
||||||
const QString errorMsg = QObject::tr("Cannot calculate passmark length for point '%1'. Reason: %2.")
|
const QString errorMsg = QObject::tr("Cannot calculate passmark length for point '%1'. Reason: %2.")
|
||||||
.arg(nodeName, formula.Reason());
|
.arg(nodeName, formula.Reason());
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
return VSAPoint::maxPassmarkLength;
|
return VSAPoint::maxPassmarkLength;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -385,7 +385,7 @@ QVector<QPointF> VPiecePath::PathPoints(const VContainer *data, const QVector<QP
|
||||||
"point with cutting countour")
|
"point with cutting countour")
|
||||||
.arg(GetName());
|
.arg(GetName());
|
||||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -402,7 +402,7 @@ QVector<QPointF> VPiecePath::PathPoints(const VContainer *data, const QVector<QP
|
||||||
"point with cutting countour")
|
"point with cutting countour")
|
||||||
.arg(GetName());
|
.arg(GetName());
|
||||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -533,6 +533,9 @@ void VTranslateVars::InitFunctions()
|
||||||
functionsDescriptions.insert(fmod_F, translate("VTranslateVars", "Returns the floating-point remainder of "
|
functionsDescriptions.insert(fmod_F, translate("VTranslateVars", "Returns the floating-point remainder of "
|
||||||
"numer/denom (rounded towards zero)",
|
"numer/denom (rounded towards zero)",
|
||||||
"function fmod"));
|
"function fmod"));
|
||||||
|
functions.insert(warning_F, translate("VTranslateVars", "warning", "Calculation warning"));
|
||||||
|
functionsDescriptions.insert(warning_F, translate("VTranslateVars", "Show a warning in calculations",
|
||||||
|
"function warning"));
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef translate
|
#undef translate
|
||||||
|
|
|
@ -145,7 +145,7 @@ VToolCurveIntersectAxis *VToolCurveIntersectAxis::Create(VToolCurveIntersectAxis
|
||||||
" through point '%3' with angle %4°")
|
" through point '%3' with angle %4°")
|
||||||
.arg(initData.name, curve->ObjectName(), basePoint->name()).arg(angle);
|
.arg(initData.name, curve->ObjectName(), basePoint->name()).arg(angle);
|
||||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
const qreal segLength = curve->GetLengthByPoint(fPoint);
|
const qreal segLength = curve->GetLengthByPoint(fPoint);
|
||||||
|
|
|
@ -137,7 +137,7 @@ VToolLineIntersectAxis *VToolLineIntersectAxis::Create(VToolLineIntersectAxisIni
|
||||||
"through point '%4' and angle %5°")
|
"through point '%4' and angle %5°")
|
||||||
.arg(initData.name, firstPoint->name(), secondPoint->name(), basePoint->name()).arg(axis.angle());
|
.arg(initData.name, firstPoint->name(), secondPoint->name(), basePoint->name()).arg(axis.angle());
|
||||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
VPointF *p = new VPointF(fPoint, initData.name, initData.mx, initData.my);
|
VPointF *p = new VPointF(fPoint, initData.name, initData.mx, initData.my);
|
||||||
|
|
|
@ -152,7 +152,7 @@ VToolLineIntersect* VToolLineIntersect::Create(VToolLineIntersectInitData initDa
|
||||||
"intersection")
|
"intersection")
|
||||||
.arg(initData.name, p1Line1->name(), p2Line1->name(), p1Line2->name(), p2Line2->name());
|
.arg(initData.name, p1Line1->name(), p2Line1->name(), p1Line2->name(), p2Line2->name());
|
||||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
VPointF *p = new VPointF(fPoint, initData.name, initData.mx, initData.my);
|
VPointF *p = new VPointF(fPoint, initData.name, initData.mx, initData.my);
|
||||||
|
|
|
@ -124,7 +124,7 @@ VToolPointFromArcAndTangent *VToolPointFromArcAndTangent::Create(VToolPointFromA
|
||||||
const QString errorMsg = tr("Error calculating point '%1'. Tangent to arc '%2' from point '%3' cannot be found")
|
const QString errorMsg = tr("Error calculating point '%1'. Tangent to arc '%2' from point '%3' cannot be found")
|
||||||
.arg(initData.name, arc.ObjectName(), tPoint.name());
|
.arg(initData.name, arc.ObjectName(), tPoint.name());
|
||||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my);
|
VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my);
|
||||||
|
|
|
@ -133,7 +133,7 @@ VToolPointFromCircleAndTangent *VToolPointFromCircleAndTangent::Create(VToolPoin
|
||||||
.arg(initData.name, cPoint.name()).arg(radius).arg(tPoint.name());
|
.arg(initData.name, cPoint.name()).arg(radius).arg(tPoint.name());
|
||||||
|
|
||||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my);
|
VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my);
|
||||||
|
|
|
@ -219,7 +219,7 @@ VToolPointOfContact* VToolPointOfContact::Create(VToolPointOfContactInitData &in
|
||||||
"intersection with line (%4;%5)")
|
"intersection with line (%4;%5)")
|
||||||
.arg(initData.name, centerP->name()).arg(result).arg(firstP->name(), secondP->name());
|
.arg(initData.name, centerP->name()).arg(result).arg(firstP->name(), secondP->name());
|
||||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
VPointF *p = new VPointF(fPoint, initData.name, initData.mx, initData.my);
|
VPointF *p = new VPointF(fPoint, initData.name, initData.mx, initData.my);
|
||||||
|
|
|
@ -123,7 +123,7 @@ VToolPointOfIntersectionArcs *VToolPointOfIntersectionArcs::Create(VToolPointOfI
|
||||||
const QString errorMsg = tr("Error calculating point '%1'. Arcs '%2' and '%3' have no point of intersection")
|
const QString errorMsg = tr("Error calculating point '%1'. Arcs '%2' and '%3' have no point of intersection")
|
||||||
.arg(initData.name, firstArc->ObjectName(), secondArc->ObjectName());
|
.arg(initData.name, firstArc->ObjectName(), secondArc->ObjectName());
|
||||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my);
|
VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my);
|
||||||
|
|
|
@ -137,7 +137,7 @@ VToolPointOfIntersectionCircles::Create(VToolPointOfIntersectionCirclesInitData
|
||||||
const QString errorMsg = tr("Error calculating point '%1'. Circles with centers in points '%2' and '%3' have "
|
const QString errorMsg = tr("Error calculating point '%1'. Circles with centers in points '%2' and '%3' have "
|
||||||
"no point of intersection").arg(initData.name, c1Point.name(), c2Point.name());
|
"no point of intersection").arg(initData.name, c1Point.name(), c2Point.name());
|
||||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my);
|
VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my);
|
||||||
|
|
|
@ -128,7 +128,7 @@ VToolPointOfIntersectionCurves *VToolPointOfIntersectionCurves::Create(VToolPoin
|
||||||
const QString errorMsg = tr("Error calculating point '%1'. Curves '%2' and '%3' have no point of intersection")
|
const QString errorMsg = tr("Error calculating point '%1'. Curves '%2' and '%3' have no point of intersection")
|
||||||
.arg(initData.name, curve1->name(), curve2->name());
|
.arg(initData.name, curve1->name(), curve2->name());
|
||||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my);
|
VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my);
|
||||||
|
|
|
@ -150,7 +150,7 @@ VToolTriangle* VToolTriangle::Create(VToolTriangleInitData initData)
|
||||||
const QString errorMsg = tr("Error calculating point '%1'. Point of intersection cannot be found")
|
const QString errorMsg = tr("Error calculating point '%1'. Point of intersection cannot be found")
|
||||||
.arg(initData.name);
|
.arg(initData.name);
|
||||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my);
|
VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my);
|
||||||
|
|
|
@ -1321,7 +1321,7 @@ void VToolSeamAllowance::RefreshGeometry(bool updateChildren)
|
||||||
const QString errorMsg = QObject::tr("Piece '%1'. Seam allowance is not valid.")
|
const QString errorMsg = QObject::tr("Piece '%1'. Seam allowance is not valid.")
|
||||||
.arg(detail.GetName());
|
.arg(detail.GetName());
|
||||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
}
|
}
|
||||||
path.addPath(detail.SeamAllowancePath(futureSeamAllowance.result()));
|
path.addPath(detail.SeamAllowancePath(futureSeamAllowance.result()));
|
||||||
path.setFillRule(Qt::OddEvenFill);
|
path.setFillRule(Qt::OddEvenFill);
|
||||||
|
|
|
@ -129,15 +129,6 @@ DEPENDPATH += $$PWD/../../libs/vpatterndb
|
||||||
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/vpatterndb.lib
|
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/vpatterndb.lib
|
||||||
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/libvpatterndb.a
|
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/libvpatterndb.a
|
||||||
|
|
||||||
#VMisc static library
|
|
||||||
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vmisc/$${DESTDIR} -lvmisc
|
|
||||||
|
|
||||||
INCLUDEPATH += $$PWD/../../libs/vmisc
|
|
||||||
DEPENDPATH += $$PWD/../../libs/vmisc
|
|
||||||
|
|
||||||
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/vmisc.lib
|
|
||||||
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/libvmisc.a
|
|
||||||
|
|
||||||
## VGeometry static library (depend on ifc)
|
## VGeometry static library (depend on ifc)
|
||||||
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vgeometry/$${DESTDIR} -lvgeometry
|
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vgeometry/$${DESTDIR} -lvgeometry
|
||||||
|
|
||||||
|
@ -156,6 +147,15 @@ DEPENDPATH += $$PWD/../../libs/ifc
|
||||||
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/ifc/$${DESTDIR}/ifc.lib
|
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/ifc/$${DESTDIR}/ifc.lib
|
||||||
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/ifc/$${DESTDIR}/libifc.a
|
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/ifc/$${DESTDIR}/libifc.a
|
||||||
|
|
||||||
|
#VMisc static library
|
||||||
|
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vmisc/$${DESTDIR} -lvmisc
|
||||||
|
|
||||||
|
INCLUDEPATH += $$PWD/../../libs/vmisc
|
||||||
|
DEPENDPATH += $$PWD/../../libs/vmisc
|
||||||
|
|
||||||
|
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/vmisc.lib
|
||||||
|
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/libvmisc.a
|
||||||
|
|
||||||
# QMuParser library
|
# QMuParser library
|
||||||
win32:CONFIG(release, debug|release): LIBS += -L$${OUT_PWD}/../../libs/qmuparser/$${DESTDIR} -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/$${DESTDIR} -lqmuparser2
|
else:win32:CONFIG(debug, debug|release): LIBS += -L$${OUT_PWD}/../../libs/qmuparser/$${DESTDIR} -lqmuparser2
|
||||||
|
|
|
@ -186,6 +186,15 @@ DEPENDPATH += $$PWD/../../libs/vpatterndb
|
||||||
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/vpatterndb.lib
|
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/vpatterndb.lib
|
||||||
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/libvpatterndb.a
|
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/libvpatterndb.a
|
||||||
|
|
||||||
|
# VGeometry static library (depend on ifc, VMisc)
|
||||||
|
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vgeometry/$${DESTDIR} -lvgeometry
|
||||||
|
|
||||||
|
INCLUDEPATH += $$PWD/../../libs/vgeometry
|
||||||
|
DEPENDPATH += $$PWD/../../libs/vgeometry
|
||||||
|
|
||||||
|
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/vgeometry.lib
|
||||||
|
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/libvgeometry.a
|
||||||
|
|
||||||
# IFC static library (depend on QMuParser, VMisc)
|
# IFC static library (depend on QMuParser, VMisc)
|
||||||
unix|win32: LIBS += -L$$OUT_PWD/../../libs/ifc/$${DESTDIR}/ -lifc
|
unix|win32: LIBS += -L$$OUT_PWD/../../libs/ifc/$${DESTDIR}/ -lifc
|
||||||
|
|
||||||
|
@ -204,15 +213,6 @@ DEPENDPATH += $$PWD/../../libs/vmisc
|
||||||
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/vmisc.lib
|
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/vmisc.lib
|
||||||
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/libvmisc.a
|
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/libvmisc.a
|
||||||
|
|
||||||
# VGeometry static library (depend on ifc)
|
|
||||||
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vgeometry/$${DESTDIR} -lvgeometry
|
|
||||||
|
|
||||||
INCLUDEPATH += $$PWD/../../libs/vgeometry
|
|
||||||
DEPENDPATH += $$PWD/../../libs/vgeometry
|
|
||||||
|
|
||||||
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/vgeometry.lib
|
|
||||||
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/libvgeometry.a
|
|
||||||
|
|
||||||
# VDxf static library
|
# VDxf static library
|
||||||
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vdxf/$${DESTDIR}/ -lvdxf
|
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vdxf/$${DESTDIR}/ -lvdxf
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user