aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Hartmann <Thomas.Hartmann@digia.com>2013-10-21 18:11:20 +0200
committerThomas Hartmann <Thomas.Hartmann@digia.com>2013-10-21 18:21:06 +0200
commitbbe0acb26aa936015d560e4b50e409777a7fefe3 (patch)
tree76b298a01815c10518e462f581f5d976f6e4dd77
parenta66c122df4dad077b30765f6e2220ea9af52dff1 (diff)
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>
-rw-r--r--src/plugins/qmldesigner/designercore/exceptions/exception.cpp12
-rw-r--r--src/plugins/qmldesigner/designercore/exceptions/invalidargumentexception.cpp2
-rw-r--r--src/plugins/qmldesigner/designercore/exceptions/invalididexception.cpp1
-rw-r--r--src/plugins/qmldesigner/designercore/exceptions/invalidmetainfoexception.cpp1
-rw-r--r--src/plugins/qmldesigner/designercore/exceptions/invalidmodelnodeexception.cpp1
-rw-r--r--src/plugins/qmldesigner/designercore/exceptions/invalidmodelstateexception.cpp1
-rw-r--r--src/plugins/qmldesigner/designercore/exceptions/invalidpropertyexception.cpp1
-rw-r--r--src/plugins/qmldesigner/designercore/exceptions/invalidqmlsourceexception.cpp1
-rw-r--r--src/plugins/qmldesigner/designercore/exceptions/invalidreparentingexception.cpp1
-rw-r--r--src/plugins/qmldesigner/designercore/exceptions/invalidslideindexexception.cpp1
-rw-r--r--src/plugins/qmldesigner/designercore/exceptions/modificationgroupexception.cpp1
-rw-r--r--src/plugins/qmldesigner/designercore/exceptions/removebasestateexception.cpp1
-rw-r--r--src/plugins/qmldesigner/designercore/exceptions/rewritingexception.cpp1
-rw-r--r--src/plugins/qmldesigner/designercore/include/exception.h3
14 files changed, 27 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/designercore/exceptions/exception.cpp b/src/plugins/qmldesigner/designercore/exceptions/exception.cpp
index 1076f18174..08b1917911 100644
--- a/src/plugins/qmldesigner/designercore/exceptions/exception.cpp
+++ b/src/plugins/qmldesigner/designercore/exceptions/exception.cpp
@@ -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.
*/
diff --git a/src/plugins/qmldesigner/designercore/exceptions/invalidargumentexception.cpp b/src/plugins/qmldesigner/designercore/exceptions/invalidargumentexception.cpp
index 6ce15aa9e3..aa5776bf3b 100644
--- a/src/plugins/qmldesigner/designercore/exceptions/invalidargumentexception.cpp
+++ b/src/plugins/qmldesigner/designercore/exceptions/invalidargumentexception.cpp
@@ -50,7 +50,7 @@ InvalidArgumentException::InvalidArgumentException(int line,
const QString &argument)
: Exception(line, function, file), m_argument(argument)
{
-
+ createWarning();
}
QString InvalidArgumentException::description() const
diff --git a/src/plugins/qmldesigner/designercore/exceptions/invalididexception.cpp b/src/plugins/qmldesigner/designercore/exceptions/invalididexception.cpp
index 264016ffd6..64a1ff27b4 100644
--- a/src/plugins/qmldesigner/designercore/exceptions/invalididexception.cpp
+++ b/src/plugins/qmldesigner/designercore/exceptions/invalididexception.cpp
@@ -56,6 +56,7 @@ InvalidIdException::InvalidIdException(int line,
m_id(id),
m_description(description)
{
+ createWarning();
}
QString InvalidIdException::type() const
diff --git a/src/plugins/qmldesigner/designercore/exceptions/invalidmetainfoexception.cpp b/src/plugins/qmldesigner/designercore/exceptions/invalidmetainfoexception.cpp
index 9d207b91d8..054c288a8d 100644
--- a/src/plugins/qmldesigner/designercore/exceptions/invalidmetainfoexception.cpp
+++ b/src/plugins/qmldesigner/designercore/exceptions/invalidmetainfoexception.cpp
@@ -48,6 +48,7 @@ InvalidMetaInfoException::InvalidMetaInfoException(int line,
const QString &file)
: Exception(line, function, file)
{
+ createWarning();
}
/*!
diff --git a/src/plugins/qmldesigner/designercore/exceptions/invalidmodelnodeexception.cpp b/src/plugins/qmldesigner/designercore/exceptions/invalidmodelnodeexception.cpp
index 058ff197f3..94235d15df 100644
--- a/src/plugins/qmldesigner/designercore/exceptions/invalidmodelnodeexception.cpp
+++ b/src/plugins/qmldesigner/designercore/exceptions/invalidmodelnodeexception.cpp
@@ -48,6 +48,7 @@ InvalidModelNodeException::InvalidModelNodeException(int line,
const QString &file)
: Exception(line, function, file)
{
+ createWarning();
}
/*!
diff --git a/src/plugins/qmldesigner/designercore/exceptions/invalidmodelstateexception.cpp b/src/plugins/qmldesigner/designercore/exceptions/invalidmodelstateexception.cpp
index 114379472f..b8e93a6c83 100644
--- a/src/plugins/qmldesigner/designercore/exceptions/invalidmodelstateexception.cpp
+++ b/src/plugins/qmldesigner/designercore/exceptions/invalidmodelstateexception.cpp
@@ -49,6 +49,7 @@ InvalidModelStateException::InvalidModelStateException(int line,
const QString &file)
: Exception(line, function, file)
{
+ createWarning();
}
/*!
diff --git a/src/plugins/qmldesigner/designercore/exceptions/invalidpropertyexception.cpp b/src/plugins/qmldesigner/designercore/exceptions/invalidpropertyexception.cpp
index 3f33734c63..1523699f73 100644
--- a/src/plugins/qmldesigner/designercore/exceptions/invalidpropertyexception.cpp
+++ b/src/plugins/qmldesigner/designercore/exceptions/invalidpropertyexception.cpp
@@ -48,6 +48,7 @@ InvalidPropertyException::InvalidPropertyException(int line,
const QString &argument)
: Exception(line, function, file), m_argument(argument)
{
+ createWarning();
}
/*!
diff --git a/src/plugins/qmldesigner/designercore/exceptions/invalidqmlsourceexception.cpp b/src/plugins/qmldesigner/designercore/exceptions/invalidqmlsourceexception.cpp
index acdecda042..027b766cad 100644
--- a/src/plugins/qmldesigner/designercore/exceptions/invalidqmlsourceexception.cpp
+++ b/src/plugins/qmldesigner/designercore/exceptions/invalidqmlsourceexception.cpp
@@ -49,6 +49,7 @@ InvalidQmlSourceException::InvalidQmlSourceException(int line,
: Exception(line, function, file),
m_qmlSource(qmlSource)
{
+ createWarning();
}
/*!
diff --git a/src/plugins/qmldesigner/designercore/exceptions/invalidreparentingexception.cpp b/src/plugins/qmldesigner/designercore/exceptions/invalidreparentingexception.cpp
index 3ba27caa90..ad2acfebdc 100644
--- a/src/plugins/qmldesigner/designercore/exceptions/invalidreparentingexception.cpp
+++ b/src/plugins/qmldesigner/designercore/exceptions/invalidreparentingexception.cpp
@@ -47,6 +47,7 @@ InvalidReparentingException::InvalidReparentingException(int line,
const QString &file)
: Exception(line, function, file)
{
+ createWarning();
}
/*!
diff --git a/src/plugins/qmldesigner/designercore/exceptions/invalidslideindexexception.cpp b/src/plugins/qmldesigner/designercore/exceptions/invalidslideindexexception.cpp
index c0fa1ee9b9..3c2d9d723d 100644
--- a/src/plugins/qmldesigner/designercore/exceptions/invalidslideindexexception.cpp
+++ b/src/plugins/qmldesigner/designercore/exceptions/invalidslideindexexception.cpp
@@ -48,6 +48,7 @@ InvalidSlideIndexException::InvalidSlideIndexException(int line,
const QString &file)
: Exception(line, function, file)
{
+ createWarning();
}
/*!
diff --git a/src/plugins/qmldesigner/designercore/exceptions/modificationgroupexception.cpp b/src/plugins/qmldesigner/designercore/exceptions/modificationgroupexception.cpp
index 3d7f935d0c..571505573c 100644
--- a/src/plugins/qmldesigner/designercore/exceptions/modificationgroupexception.cpp
+++ b/src/plugins/qmldesigner/designercore/exceptions/modificationgroupexception.cpp
@@ -47,6 +47,7 @@ ModificationGroupException::ModificationGroupException(int line,
const QString &file)
: Exception(line, function, file)
{
+ createWarning();
}
/*!
diff --git a/src/plugins/qmldesigner/designercore/exceptions/removebasestateexception.cpp b/src/plugins/qmldesigner/designercore/exceptions/removebasestateexception.cpp
index 436ba7943c..745492d042 100644
--- a/src/plugins/qmldesigner/designercore/exceptions/removebasestateexception.cpp
+++ b/src/plugins/qmldesigner/designercore/exceptions/removebasestateexception.cpp
@@ -48,6 +48,7 @@ RemoveBaseStateException::RemoveBaseStateException(int line,
const QString &file)
: Exception(line, function, file)
{
+ createWarning();
}
/*!
diff --git a/src/plugins/qmldesigner/designercore/exceptions/rewritingexception.cpp b/src/plugins/qmldesigner/designercore/exceptions/rewritingexception.cpp
index 03c4cca339..90d8391eaa 100644
--- a/src/plugins/qmldesigner/designercore/exceptions/rewritingexception.cpp
+++ b/src/plugins/qmldesigner/designercore/exceptions/rewritingexception.cpp
@@ -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
diff --git a/src/plugins/qmldesigner/designercore/include/exception.h b/src/plugins/qmldesigner/designercore/include/exception.h
index 34d9d5b496..8f0eae075f 100644
--- a/src/plugins/qmldesigner/designercore/include/exception.h
+++ b/src/plugins/qmldesigner/designercore/include/exception.h
@@ -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;