refs #450 Corrected emission of log messages from value cache validation.

This commit is contained in:
Mathew Sutcliffe
2015-09-05 16:41:16 +01:00
parent 91e54be78b
commit ca9256be82
3 changed files with 17 additions and 5 deletions

View File

@@ -207,7 +207,11 @@ namespace BlackMisc
element.m_value = m_cache->getValue(key);
auto error = validate(element, element.m_value);
if (! error.isEmpty()) { element.m_value = defaultValue; }
if (! error.isEmpty())
{
CLogMessage::preformatted(error);
element.m_value = defaultValue;
}
return element;
}
@@ -240,6 +244,11 @@ namespace BlackMisc
emit valuesWantToCache({ { element.m_key, value } });
}
}
else
{
CLogMessage::preformatted(error);
error.markAsRedundant();
}
return error;
}
@@ -314,15 +323,15 @@ namespace BlackMisc
{
if (! value.isValid())
{
return CLogMessage(this).warning("Uninitialized value for %1") << element.m_key;
return CStatusMessage(this, CStatusMessage::SeverityWarning, "Uninitialized value for " + element.m_key);
}
else if (value.userType() != element.m_metaType)
{
return CLogMessage(this).error("Expected %1, got %2 for %3") << QMetaType::typeName(element.m_metaType) << value.typeName() << element.m_key;
return CStatusMessage(this, CStatusMessage::SeverityError, QString("Expected ") + QMetaType::typeName(element.m_metaType) + " but got " + value.typeName() + " for " + element.m_key);
}
else if (element.m_validator && ! element.m_validator(value))
{
return CLogMessage(this).error("%1 is not valid for %2") << value << element.m_key;
return CStatusMessage(this, CStatusMessage::SeverityError, value.toQString() + " is not valid for " + element.m_key);
}
else
{