QmlDesigner.Model: allowing some diagnostics for exceptions

Setting QTCREATOR_QTQUICKDESIGNER_WARN_EXCEPTION will give detailed
information about any exception thrown.

Change-Id: Ia11b98324e6f0c27e086778ddcb1afec67d92e6a
Reviewed-by: Marco Bubke <marco.bubke@digia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
This commit is contained in:
Thomas Hartmann
2013-10-21 18:11:20 +02:00
parent a66c122df4
commit bbe0acb26a
14 changed files with 27 additions and 1 deletions

View File

@@ -84,6 +84,12 @@ bool Exception::shouldAssert()
return s_shouldAssert;
}
bool Exception::warnAboutException()
{
static bool warnException = !qgetenv("QTCREATOR_QTQUICKDESIGNER_WARN_EXCEPTION").isEmpty();
return warnException;
}
/*!
Constructs an exception. \a line uses the __LINE__ macro, \a function uses
the __FUNCTION__ or the Q_FUNC_INFO macro, and \a file uses
@@ -125,6 +131,12 @@ QString Exception::backTrace() const
return m_backTrace;
}
void Exception::createWarning() const
{
if (warnAboutException())
qDebug() << *this;
}
/*!
Returns the optional description of this exception as a string.
*/

View File

@@ -50,7 +50,7 @@ InvalidArgumentException::InvalidArgumentException(int line,
const QString &argument)
: Exception(line, function, file), m_argument(argument)
{
createWarning();
}
QString InvalidArgumentException::description() const

View File

@@ -56,6 +56,7 @@ InvalidIdException::InvalidIdException(int line,
m_id(id),
m_description(description)
{
createWarning();
}
QString InvalidIdException::type() const

View File

@@ -48,6 +48,7 @@ InvalidMetaInfoException::InvalidMetaInfoException(int line,
const QString &file)
: Exception(line, function, file)
{
createWarning();
}
/*!

View File

@@ -48,6 +48,7 @@ InvalidModelNodeException::InvalidModelNodeException(int line,
const QString &file)
: Exception(line, function, file)
{
createWarning();
}
/*!

View File

@@ -49,6 +49,7 @@ InvalidModelStateException::InvalidModelStateException(int line,
const QString &file)
: Exception(line, function, file)
{
createWarning();
}
/*!

View File

@@ -48,6 +48,7 @@ InvalidPropertyException::InvalidPropertyException(int line,
const QString &argument)
: Exception(line, function, file), m_argument(argument)
{
createWarning();
}
/*!

View File

@@ -49,6 +49,7 @@ InvalidQmlSourceException::InvalidQmlSourceException(int line,
: Exception(line, function, file),
m_qmlSource(qmlSource)
{
createWarning();
}
/*!

View File

@@ -47,6 +47,7 @@ InvalidReparentingException::InvalidReparentingException(int line,
const QString &file)
: Exception(line, function, file)
{
createWarning();
}
/*!

View File

@@ -48,6 +48,7 @@ InvalidSlideIndexException::InvalidSlideIndexException(int line,
const QString &file)
: Exception(line, function, file)
{
createWarning();
}
/*!

View File

@@ -47,6 +47,7 @@ ModificationGroupException::ModificationGroupException(int line,
const QString &file)
: Exception(line, function, file)
{
createWarning();
}
/*!

View File

@@ -48,6 +48,7 @@ RemoveBaseStateException::RemoveBaseStateException(int line,
const QString &file)
: Exception(line, function, file)
{
createWarning();
}
/*!

View File

@@ -38,6 +38,7 @@ RewritingException::RewritingException(int line,
const QString &documentTextContent):
Exception(line, function, file), m_description(description), m_documentTextContent(documentTextContent)
{
createWarning();
}
QString RewritingException::type() const

View File

@@ -53,8 +53,11 @@ public:
QString file() const;
QString backTrace() const;
void createWarning() const;
static void setShouldAssert(bool assert);
static bool shouldAssert();
static bool warnAboutException();
private:
int m_line;