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
|
||||
- Fix crash for Line tool notes.
|
||||
- Restored support for Mac OS 10.11+.
|
||||
|
|
|
@ -150,23 +150,30 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
|
|||
type = QtDebugMsg;
|
||||
}
|
||||
|
||||
QString logMsg = msg;
|
||||
const bool isWarningMessage = qApp->IsWarningMessage(msg);
|
||||
if (isWarningMessage)
|
||||
{
|
||||
logMsg = logMsg.remove(VAbstractApplication::warningMessageSignature);
|
||||
}
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case QtDebugMsg:
|
||||
vStdOut() << QApplication::translate("mNoisyHandler", "DEBUG:") << msg << "\n";
|
||||
vStdOut() << QApplication::translate("mNoisyHandler", "DEBUG:") << logMsg << "\n";
|
||||
return;
|
||||
case QtWarningMsg:
|
||||
vStdErr() << QApplication::translate("mNoisyHandler", "WARNING:") << msg << "\n";
|
||||
vStdErr() << QApplication::translate("mNoisyHandler", "WARNING:") << logMsg << "\n";
|
||||
break;
|
||||
case QtCriticalMsg:
|
||||
vStdErr() << QApplication::translate("mNoisyHandler", "CRITICAL:") << msg << "\n";
|
||||
vStdErr() << QApplication::translate("mNoisyHandler", "CRITICAL:") << logMsg << "\n";
|
||||
break;
|
||||
case QtFatalMsg:
|
||||
vStdErr() << QApplication::translate("mNoisyHandler", "FATAL:") << msg << "\n";
|
||||
vStdErr() << QApplication::translate("mNoisyHandler", "FATAL:") << logMsg << "\n";
|
||||
break;
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)
|
||||
case QtInfoMsg:
|
||||
vStdOut() << QApplication::translate("mNoisyHandler", "INFO:") << msg << "\n";
|
||||
vStdOut() << QApplication::translate("mNoisyHandler", "INFO:") << logMsg << "\n";
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
|
@ -216,7 +223,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
|
|||
{
|
||||
if (topWinAllowsPop)
|
||||
{
|
||||
messageBox.setText(msg);
|
||||
messageBox.setText(VAbstractApplication::ClearMessage(logMsg));
|
||||
messageBox.setStandardButtons(QMessageBox::Ok);
|
||||
messageBox.setWindowModality(Qt::ApplicationModal);
|
||||
messageBox.setModal(true);
|
||||
|
@ -335,6 +342,11 @@ bool MApplication::notify(QObject *receiver, QEvent *event)
|
|||
qUtf8Printable(e.ErrorMessage()), qUtf8Printable(e.DetailedInformation()));
|
||||
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.
|
||||
// Somehow program doesn't waite untile an error dialog will be closed. But if ignore this program will hang.
|
||||
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
|
||||
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)
|
||||
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
|
||||
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
|
||||
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
|
||||
|
|
|
@ -147,10 +147,10 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
|
|||
}
|
||||
|
||||
QString logMsg = msg;
|
||||
const bool isPatternMessage = qApp->IsPatternMessage(msg);
|
||||
const bool isPatternMessage = qApp->IsWarningMessage(msg);
|
||||
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:
|
||||
if (isPatternMessage)
|
||||
{
|
||||
qApp->PostPatternMessage(logMsg, type);
|
||||
qApp->PostWarningMessage(logMsg, type);
|
||||
}
|
||||
debugdate += QStringLiteral(":WARNING:%1(%2)] %3: %4: %5").arg(context.file).arg(context.line)
|
||||
.arg(context.function, context.category, logMsg);
|
||||
|
@ -175,7 +175,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
|
|||
case QtCriticalMsg:
|
||||
if (isPatternMessage)
|
||||
{
|
||||
qApp->PostPatternMessage(logMsg, type);
|
||||
qApp->PostWarningMessage(logMsg, type);
|
||||
}
|
||||
debugdate += QStringLiteral(":CRITICAL:%1(%2)] %3: %4: %5").arg(context.file).arg(context.line)
|
||||
.arg(context.function, context.category, logMsg);
|
||||
|
@ -190,7 +190,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
|
|||
case QtInfoMsg:
|
||||
if (isPatternMessage)
|
||||
{
|
||||
qApp->PostPatternMessage(logMsg, type);
|
||||
qApp->PostWarningMessage(logMsg, type);
|
||||
}
|
||||
debugdate += QStringLiteral(":INFO:%1(%2)] %3: %4: %5").arg(context.file).arg(context.line)
|
||||
.arg(context.function, context.category, logMsg);
|
||||
|
@ -412,6 +412,11 @@ bool VApplication::notify(QObject *receiver, QEvent *event)
|
|||
qUtf8Printable(e.ErrorMessage()), qUtf8Printable(e.DetailedInformation()));
|
||||
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.
|
||||
// Somehow program doesn't wait until an error dialog will be closed. But if ignore the exception the program will
|
||||
// hang.
|
||||
|
|
|
@ -297,7 +297,7 @@ void VWidgetDetails::ShowContextMenu(const QPoint &pos)
|
|||
catch (const VExceptionBadId &)
|
||||
{
|
||||
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);
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
|
||||
++i;
|
||||
|
@ -1629,7 +1629,7 @@ void MainWindow::customEvent(QEvent *event)
|
|||
{
|
||||
ZoomFitBestCurrent();
|
||||
}
|
||||
else if (event->type() == PATTERN_MESSAGE_EVENT)
|
||||
else if (event->type() == WARNING_MESSAGE_EVENT)
|
||||
{
|
||||
PrintPatternMessage(event);
|
||||
}
|
||||
|
@ -6523,7 +6523,7 @@ void MainWindow::ToolSelectDetail()
|
|||
void MainWindow::PrintPatternMessage(QEvent *event)
|
||||
{
|
||||
SCASSERT(event != nullptr)
|
||||
auto *patternMessage = static_cast<PatternMessageEvent *>(event);
|
||||
auto *patternMessage = static_cast<WarningMessageEvent *>(event);
|
||||
|
||||
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());
|
||||
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());
|
||||
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 <sstream>
|
||||
#include <string>
|
||||
#include <QtDebug>
|
||||
|
||||
#include "qmuparserdef.h"
|
||||
#include "qmuparsererror.h"
|
||||
|
@ -414,10 +415,7 @@ QmuParser::QmuParser():QmuParserBase()
|
|||
{
|
||||
AddValIdent(IsVal);
|
||||
|
||||
InitCharSets();
|
||||
InitFun();
|
||||
InitConst();
|
||||
InitOprt();
|
||||
Init();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -1383,7 +1383,6 @@ void QmuParserBase::CreateRPN() const
|
|||
stVal.push(opt);
|
||||
const QString &str = opt.GetAsString();
|
||||
m_vStringBuf.push_back(str); // Store string in internal buffer
|
||||
m_Tokens.insert(m_pTokenReader->GetPos()-str.length(), str);
|
||||
break;
|
||||
}
|
||||
case cmVAR:
|
||||
|
|
|
@ -301,4 +301,45 @@ QmuParserError *QmuParserError::clone() const
|
|||
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
|
||||
|
|
|
@ -129,6 +129,31 @@ inline QString QmuParserErrorMsg::operator[] ( int a_iIdx ) const
|
|||
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.
|
||||
@author Ingo Berg
|
||||
|
|
|
@ -63,6 +63,8 @@ QmuTokenParser::QmuTokenParser(const QString &formula, bool osSeparator,
|
|||
SetVarFactory(AddVariable, this);
|
||||
SetSepForTr(osSeparator, fromUser);
|
||||
|
||||
DefineFun(QStringLiteral("warning"), Warning);
|
||||
|
||||
// Fix for issue #776. Valentina cannot recognize translated functions.
|
||||
QMap<QString, QString>::const_iterator i = translatedFunctions.constBegin();
|
||||
while (i != translatedFunctions.constEnd())
|
||||
|
@ -100,4 +102,12 @@ bool QmuTokenParser::IsSingle(const QString &formula)
|
|||
return ok;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
qreal QmuTokenParser::Warning(const QString &warningMsg, qreal value)
|
||||
{
|
||||
Q_UNUSED(warningMsg);
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
}// namespace qmu
|
||||
|
|
|
@ -42,6 +42,9 @@ public:
|
|||
|
||||
static bool IsSingle(const QString &formula);
|
||||
|
||||
protected:
|
||||
static qreal Warning(const QString &warningMsg, qreal value);
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(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'.")
|
||||
.arg(cp.c_str());
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
|
||||
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. "
|
||||
"Please, check your calculations.").arg(fm.name));
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
|
||||
SetAttribute(recipeFinalMeasurement, QStringLiteral("value"), result);
|
||||
|
|
|
@ -146,7 +146,7 @@ QVector<QPointF> VAbstractCurve::GetSegmentPoints(const QPointF &begin, const QP
|
|||
.arg(piece, name(), error);
|
||||
}
|
||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
|
||||
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);
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
return QVector<QPointF>();
|
||||
}
|
||||
|
||||
|
|
|
@ -335,7 +335,7 @@ bool VBank::PrepareUnsorted()
|
|||
const qint64 square = details.at(i).Square();
|
||||
if (square <= 0)
|
||||
{
|
||||
qCCritical(lBank) << VAbstractValApplication::patternMessageSignature +
|
||||
qCCritical(lBank) << VAbstractValApplication::warningMessageSignature +
|
||||
tr("Preparing data for layout error: Detail '%1' square <= 0")
|
||||
.arg(details.at(i).GetName());
|
||||
prepare = false;
|
||||
|
@ -360,7 +360,7 @@ bool VBank::PrepareDetails()
|
|||
{
|
||||
if (layoutWidth <= 0)
|
||||
{
|
||||
qCCritical(lBank) << VAbstractValApplication::patternMessageSignature +
|
||||
qCCritical(lBank) << VAbstractValApplication::warningMessageSignature +
|
||||
tr("Preparing data for layout error: Layout paper sheet <= 0");
|
||||
prepare = false;
|
||||
return prepare;
|
||||
|
@ -368,7 +368,7 @@ bool VBank::PrepareDetails()
|
|||
|
||||
if (details.isEmpty())
|
||||
{
|
||||
qCCritical(lBank) << VAbstractValApplication::patternMessageSignature +
|
||||
qCCritical(lBank) << VAbstractValApplication::warningMessageSignature +
|
||||
tr("Preparing data for layout error: List of details is empty");
|
||||
prepare = false;
|
||||
return prepare;
|
||||
|
@ -391,7 +391,7 @@ bool VBank::PrepareDetails()
|
|||
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());
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
|
||||
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.")
|
||||
.arg(pData.nodeName, piece.GetName());
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -283,7 +283,7 @@ QVector<VLayoutPassmark> ConvertPassmarks(const VPiece &piece, const VContainer
|
|||
"empty.")
|
||||
.arg(pData.nodeName, piece.GetName());
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
return;
|
||||
}
|
||||
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'.")
|
||||
.arg(pData.nodeName, piece.GetName());
|
||||
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.")
|
||||
.arg(pData.nodeName, piece.GetName());
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
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.")
|
||||
.arg(pData.nodeName, piece.GetName());
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -362,7 +362,7 @@ QVector<VLayoutPassmark> ConvertPassmarks(const VPiece &piece, const VContainer
|
|||
QObject::tr("Passmark '%1' is not part of piece '%2'.")
|
||||
.arg(pData.nodeName, piece.GetName());
|
||||
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.")
|
||||
.arg(piece.GetName());
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
|
||||
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;
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
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());
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
return data;
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ enum CustomEventType {
|
|||
UndoEventType = 1,
|
||||
LiteParseEventType = 2,
|
||||
FitBestCurrentEventType = 3,
|
||||
PatternMessageEventType = 4,
|
||||
WarningMessageEventType = 4,
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
@ -84,19 +84,19 @@ public:
|
|||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
const QEvent::Type PATTERN_MESSAGE_EVENT = static_cast<QEvent::Type>(QEvent::User +
|
||||
CustomEventType::PatternMessageEventType);
|
||||
const QEvent::Type WARNING_MESSAGE_EVENT = static_cast<QEvent::Type>(QEvent::User +
|
||||
CustomEventType::WarningMessageEventType);
|
||||
|
||||
class PatternMessageEvent : public QEvent
|
||||
class WarningMessageEvent : public QEvent
|
||||
{
|
||||
public:
|
||||
PatternMessageEvent(const QString &message, QtMsgType severity)
|
||||
: QEvent(PATTERN_MESSAGE_EVENT),
|
||||
WarningMessageEvent(const QString &message, QtMsgType severity)
|
||||
: QEvent(WARNING_MESSAGE_EVENT),
|
||||
m_message(message),
|
||||
m_severity(severity)
|
||||
{}
|
||||
|
||||
virtual ~PatternMessageEvent() =default;
|
||||
virtual ~WarningMessageEvent() =default;
|
||||
|
||||
QString Message() const;
|
||||
|
||||
|
@ -107,12 +107,12 @@ private:
|
|||
QtMsgType m_severity;
|
||||
};
|
||||
|
||||
inline QString PatternMessageEvent::Message() const
|
||||
inline QString WarningMessageEvent::Message() const
|
||||
{
|
||||
return m_message;
|
||||
}
|
||||
|
||||
inline QtMsgType PatternMessageEvent::Severity() const
|
||||
inline QtMsgType WarningMessageEvent::Severity() const
|
||||
{
|
||||
return m_severity;
|
||||
}
|
||||
|
|
|
@ -108,44 +108,31 @@ const QString max_F = QStringLiteral("max");
|
|||
const QString sum_F = QStringLiteral("sum");
|
||||
const QString avg_F = QStringLiteral("avg");
|
||||
const QString fmod_F = QStringLiteral("fmod");
|
||||
const QString warning_F = QStringLiteral("warning");
|
||||
|
||||
const QStringList builInFunctions = QStringList() << degTorad_F
|
||||
<< radTodeg_F
|
||||
<< sin_F
|
||||
<< cos_F
|
||||
<< tan_F
|
||||
<< asin_F
|
||||
<< acos_F
|
||||
<< atan_F
|
||||
<< sinh_F
|
||||
<< cosh_F
|
||||
<< tanh_F
|
||||
<< asinh_F
|
||||
<< acosh_F
|
||||
<< atanh_F
|
||||
<< sinD_F
|
||||
<< cosD_F
|
||||
<< tanD_F
|
||||
<< asinD_F
|
||||
<< acosD_F
|
||||
<< atanD_F
|
||||
<< log2_F
|
||||
<< log10_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 QStringList builInFunctions
|
||||
{
|
||||
degTorad_F, radTodeg_F,
|
||||
sin_F, cos_F, tan_F,
|
||||
asin_F, acos_F, atan_F,
|
||||
sinh_F, cosh_F, tanh_F,
|
||||
asinh_F, acosh_F, atanh_F,
|
||||
sinD_F, cosD_F, tanD_F,
|
||||
asinD_F, acosD_F, atanD_F,
|
||||
log2_F, log10_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,
|
||||
warning_F
|
||||
};
|
||||
|
||||
const QString pl_size = QStringLiteral("size");
|
||||
const QString pl_height = QStringLiteral("height");
|
||||
|
|
|
@ -397,6 +397,7 @@ extern const QString max_F;
|
|||
extern const QString sum_F;
|
||||
extern const QString avg_F;
|
||||
extern const QString fmod_F;
|
||||
extern const QString warning_F;
|
||||
|
||||
extern const QStringList builInFunctions;
|
||||
|
||||
|
|
|
@ -50,6 +50,8 @@
|
|||
# include "appimage.h"
|
||||
#endif // defined(APPIMAGE) && defined(Q_OS_LINUX)
|
||||
|
||||
const QString VAbstractApplication::warningMessageSignature = QStringLiteral("[PATTERN MESSAGE]");
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
VAbstractApplication::VAbstractApplication(int &argc, char **argv)
|
||||
:QApplication(argc, argv),
|
||||
|
@ -288,3 +290,26 @@ void VAbstractApplication::ClearTranslation()
|
|||
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 IsPedantic() const;
|
||||
|
||||
static QString ClearMessage(QString msg);
|
||||
|
||||
static const QString warningMessageSignature;
|
||||
bool IsWarningMessage(const QString &message) const;
|
||||
|
||||
#if defined(Q_OS_WIN)
|
||||
static void WinAttachConsole();
|
||||
#endif
|
||||
|
|
|
@ -30,8 +30,6 @@
|
|||
|
||||
#include <QWidget>
|
||||
|
||||
const QString VAbstractValApplication::patternMessageSignature = QStringLiteral("[PATTERN MESSAGE]");
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
VAbstractValApplication::VAbstractValApplication(int &argc, char **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,
|
||||
new PatternMessageEvent(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);
|
||||
new WarningMessageEvent(VAbstractValApplication::ClearMessage(message), severity));
|
||||
}
|
||||
|
|
|
@ -98,12 +98,7 @@ public:
|
|||
bool getOpeningPattern() const;
|
||||
void setOpeningPattern();
|
||||
|
||||
void PostPatternMessage(const QString &message, QtMsgType severity) const;
|
||||
|
||||
static QString ClearMessage(QString msg);
|
||||
|
||||
static const QString patternMessageSignature;
|
||||
bool IsPatternMessage(const QString &message) const;
|
||||
void PostWarningMessage(const QString &message, QtMsgType severity) const;
|
||||
|
||||
qreal GetDimensionHeight() const;
|
||||
void SetDimensionHeight(qreal dimensionHeight);
|
||||
|
|
|
@ -33,10 +33,12 @@
|
|||
#include <QStringDataPtr>
|
||||
#include <QStringList>
|
||||
#include <QSharedPointer>
|
||||
#include <QtDebug>
|
||||
|
||||
#include "../vmisc/def.h"
|
||||
#include "../qmuparser/qmuparsererror.h"
|
||||
#include "variables/vinternalvariable.h"
|
||||
#include "../vmisc/vabstractapplication.h"
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
/**
|
||||
|
@ -63,6 +65,8 @@ Calculator::Calculator()
|
|||
// set value to 0.
|
||||
SetVarFactory(VarFactory, this);
|
||||
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);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
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);
|
||||
protected:
|
||||
static qreal* VarFactory(const QString &a_szName, void *a_pUserData);
|
||||
static qreal Warning(const QString &warningMsg, qreal value);
|
||||
private:
|
||||
Q_DISABLE_COPY(Calculator)
|
||||
QVector<QSharedPointer<qreal>> m_varsValues;
|
||||
|
|
|
@ -579,7 +579,7 @@ QVector<QLineF> PassmarkBisectorBaseLine(PassmarkStatus seamPassmarkType, const
|
|||
"than minimal allowed.")
|
||||
.arg(passmarkData.nodeName, passmarkData.pieceName);
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
return QVector<QLineF>();
|
||||
}
|
||||
|
||||
|
@ -788,7 +788,7 @@ QVector<QLineF> VPassmark::BuiltInSAPassmarkBaseLine(const VPiece &piece) const
|
|||
"than minimal allowed.")
|
||||
.arg(m_data.nodeName, m_data.pieceName);
|
||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
return QVector<QLineF>();
|
||||
}
|
||||
}
|
||||
|
@ -804,7 +804,7 @@ QVector<QLineF> VPassmark::BuiltInSAPassmarkBaseLine(const VPiece &piece) const
|
|||
"seam allowance. User must manually provide length.")
|
||||
.arg(m_data.nodeName, m_data.pieceName);
|
||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
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 "
|
||||
"empty.").arg(m_data.nodeName, m_data.pieceName);
|
||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
return QVector<QLineF>(); // Something wrong
|
||||
}
|
||||
|
||||
|
@ -860,7 +860,7 @@ QVector<QLineF> VPassmark::SAPassmarkBaseLine(const QVector<QPointF> &seamAllowa
|
|||
"position for a notch.")
|
||||
.arg(m_data.nodeName, m_data.pieceName);
|
||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
return QVector<QLineF>(); // Something wrong
|
||||
}
|
||||
|
||||
|
@ -870,7 +870,7 @@ QVector<QLineF> VPassmark::SAPassmarkBaseLine(const QVector<QPointF> &seamAllowa
|
|||
"notch position.")
|
||||
.arg(m_data.nodeName, m_data.pieceName);
|
||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
|
||||
auto PassmarkIntersection = [this, seamAllowance] (QLineF line, qreal width)
|
||||
|
@ -897,7 +897,7 @@ QVector<QLineF> VPassmark::SAPassmarkBaseLine(const QVector<QPointF> &seamAllowa
|
|||
"less than minimal allowed.")
|
||||
.arg(m_data.nodeName, m_data.pieceName);
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
return QLineF();
|
||||
}
|
||||
line.setLength(length);
|
||||
|
@ -914,7 +914,7 @@ QVector<QLineF> VPassmark::SAPassmarkBaseLine(const QVector<QPointF> &seamAllowa
|
|||
"collapse.")
|
||||
.arg(m_data.nodeName, m_data.pieceName);
|
||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -923,7 +923,7 @@ QVector<QLineF> VPassmark::SAPassmarkBaseLine(const QVector<QPointF> &seamAllowa
|
|||
"intersection.")
|
||||
.arg(m_data.nodeName, m_data.pieceName);
|
||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
|
||||
return QLineF();
|
||||
|
@ -938,7 +938,7 @@ QVector<QLineF> VPassmark::SAPassmarkBaseLine(const QVector<QPointF> &seamAllowa
|
|||
"than minimal allowed.")
|
||||
.arg(m_data.nodeName, m_data.pieceName);
|
||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
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'.")
|
||||
.arg(VPiecePath::NodeName(path, passmarkIndex, data), GetName());
|
||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
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'.")
|
||||
.arg(VPiecePath::NodeName(path, passmarkIndex, data), GetName());
|
||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
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'.")
|
||||
.arg(VPiecePath::NodeName(path, passmarkIndex, data), GetName());
|
||||
qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
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 "
|
||||
"allowed value.")
|
||||
.arg(VPiecePath::NodeName(path, passmarkIndex, data), GetName());
|
||||
qInfo() << VAbstractValApplication::patternMessageSignature + infoMsg;
|
||||
qInfo() << VAbstractValApplication::warningMessageSignature + infoMsg;
|
||||
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.")
|
||||
.arg(nodeName, formula.Reason());
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
return -1;
|
||||
}
|
||||
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.")
|
||||
.arg(nodeName, formula.Reason());
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
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.")
|
||||
.arg(nodeName, formula.Reason());
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
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: ")
|
||||
.arg(nodeName, formula.Reason());
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
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.")
|
||||
.arg(nodeName, formula.Reason());
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
return VSAPoint::maxPassmarkLength;
|
||||
}
|
||||
|
||||
|
|
|
@ -385,7 +385,7 @@ QVector<QPointF> VPiecePath::PathPoints(const VContainer *data, const QVector<QP
|
|||
"point with cutting countour")
|
||||
.arg(GetName());
|
||||
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")
|
||||
.arg(GetName());
|
||||
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 "
|
||||
"numer/denom (rounded towards zero)",
|
||||
"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
|
||||
|
|
|
@ -145,7 +145,7 @@ VToolCurveIntersectAxis *VToolCurveIntersectAxis::Create(VToolCurveIntersectAxis
|
|||
" through point '%3' with angle %4°")
|
||||
.arg(initData.name, curve->ObjectName(), basePoint->name()).arg(angle);
|
||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
|
||||
const qreal segLength = curve->GetLengthByPoint(fPoint);
|
||||
|
|
|
@ -137,7 +137,7 @@ VToolLineIntersectAxis *VToolLineIntersectAxis::Create(VToolLineIntersectAxisIni
|
|||
"through point '%4' and angle %5°")
|
||||
.arg(initData.name, firstPoint->name(), secondPoint->name(), basePoint->name()).arg(axis.angle());
|
||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
|
||||
VPointF *p = new VPointF(fPoint, initData.name, initData.mx, initData.my);
|
||||
|
|
|
@ -152,7 +152,7 @@ VToolLineIntersect* VToolLineIntersect::Create(VToolLineIntersectInitData initDa
|
|||
"intersection")
|
||||
.arg(initData.name, p1Line1->name(), p2Line1->name(), p1Line2->name(), p2Line2->name());
|
||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
|
||||
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")
|
||||
.arg(initData.name, arc.ObjectName(), tPoint.name());
|
||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
|
||||
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());
|
||||
|
||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
|
||||
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)")
|
||||
.arg(initData.name, centerP->name()).arg(result).arg(firstP->name(), secondP->name());
|
||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
|
||||
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")
|
||||
.arg(initData.name, firstArc->ObjectName(), secondArc->ObjectName());
|
||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
|
||||
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 "
|
||||
"no point of intersection").arg(initData.name, c1Point.name(), c2Point.name());
|
||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
|
||||
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")
|
||||
.arg(initData.name, curve1->name(), curve2->name());
|
||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
|
||||
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")
|
||||
.arg(initData.name);
|
||||
qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
|
||||
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.")
|
||||
.arg(detail.GetName());
|
||||
qApp->IsPedantic() ? throw VException(errorMsg) :
|
||||
qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
|
||||
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||
}
|
||||
path.addPath(detail.SeamAllowancePath(futureSeamAllowance.result()));
|
||||
path.setFillRule(Qt::OddEvenFill);
|
||||
|
|
|
@ -129,15 +129,6 @@ DEPENDPATH += $$PWD/../../libs/vpatterndb
|
|||
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
|
||||
|
||||
#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)
|
||||
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
|
||||
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
|
||||
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
|
||||
|
|
|
@ -186,6 +186,15 @@ DEPENDPATH += $$PWD/../../libs/vpatterndb
|
|||
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
|
||||
|
||||
# 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)
|
||||
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
|
||||
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
|
||||
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vdxf/$${DESTDIR}/ -lvdxf
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user