Commit db27a9ea authored by Gus Grubba's avatar Gus Grubba

Fixed crash in FactMetadata constructor.

It did not like the use of the tr() macro within a static QString in the constructor.
parent 2af0422b
...@@ -32,8 +32,8 @@ const qreal FactMetaData::UnitConsts_s::milesToMeters = 1609.344; ...@@ -32,8 +32,8 @@ const qreal FactMetaData::UnitConsts_s::milesToMeters = 1609.344;
const qreal FactMetaData::UnitConsts_s::feetToMeters = 0.3048; const qreal FactMetaData::UnitConsts_s::feetToMeters = 0.3048;
const qreal FactMetaData::UnitConsts_s::inchesToCentimeters = 2.54; const qreal FactMetaData::UnitConsts_s::inchesToCentimeters = 2.54;
const QString FactMetaData::defaultCategory = tr("Other"); static const char* kDefaultCategory = QT_TRANSLATE_NOOP("FactMetaData", "Other");
const QString FactMetaData::defaultGroup = tr("Misc"); static const char* kDefaultGroup = QT_TRANSLATE_NOOP("FactMetaData", "Misc");
// Built in translations for all Facts // Built in translations for all Facts
const FactMetaData::BuiltInTranslation_s FactMetaData::_rgBuiltInTranslations[] = { const FactMetaData::BuiltInTranslation_s FactMetaData::_rgBuiltInTranslations[] = {
...@@ -84,8 +84,6 @@ FactMetaData::FactMetaData(QObject* parent) ...@@ -84,8 +84,6 @@ FactMetaData::FactMetaData(QObject* parent)
, _decimalPlaces (unknownDecimalPlaces) , _decimalPlaces (unknownDecimalPlaces)
, _rawDefaultValue (0) , _rawDefaultValue (0)
, _defaultValueAvailable(false) , _defaultValueAvailable(false)
, _category (defaultCategory)
, _group (defaultGroup)
, _rawMax (_maxForType()) , _rawMax (_maxForType())
, _maxIsDefaultForType (true) , _maxIsDefaultForType (true)
, _rawMin (_minForType()) , _rawMin (_minForType())
...@@ -97,7 +95,8 @@ FactMetaData::FactMetaData(QObject* parent) ...@@ -97,7 +95,8 @@ FactMetaData::FactMetaData(QObject* parent)
, _hasControl (true) , _hasControl (true)
, _readOnly (false) , _readOnly (false)
{ {
_category = kDefaultCategory;
_group = kDefaultGroup;
} }
FactMetaData::FactMetaData(ValueType_t type, QObject* parent) FactMetaData::FactMetaData(ValueType_t type, QObject* parent)
...@@ -106,8 +105,6 @@ FactMetaData::FactMetaData(ValueType_t type, QObject* parent) ...@@ -106,8 +105,6 @@ FactMetaData::FactMetaData(ValueType_t type, QObject* parent)
, _decimalPlaces (unknownDecimalPlaces) , _decimalPlaces (unknownDecimalPlaces)
, _rawDefaultValue (0) , _rawDefaultValue (0)
, _defaultValueAvailable(false) , _defaultValueAvailable(false)
, _category (defaultCategory)
, _group (defaultGroup)
, _rawMax (_maxForType()) , _rawMax (_maxForType())
, _maxIsDefaultForType (true) , _maxIsDefaultForType (true)
, _rawMin (_minForType()) , _rawMin (_minForType())
...@@ -119,7 +116,8 @@ FactMetaData::FactMetaData(ValueType_t type, QObject* parent) ...@@ -119,7 +116,8 @@ FactMetaData::FactMetaData(ValueType_t type, QObject* parent)
, _hasControl (true) , _hasControl (true)
, _readOnly (false) , _readOnly (false)
{ {
_category = kDefaultCategory;
_group = kDefaultGroup;
} }
FactMetaData::FactMetaData(const FactMetaData& other, QObject* parent) FactMetaData::FactMetaData(const FactMetaData& other, QObject* parent)
...@@ -134,8 +132,6 @@ FactMetaData::FactMetaData(ValueType_t type, const QString name, QObject* parent ...@@ -134,8 +132,6 @@ FactMetaData::FactMetaData(ValueType_t type, const QString name, QObject* parent
, _decimalPlaces (unknownDecimalPlaces) , _decimalPlaces (unknownDecimalPlaces)
, _rawDefaultValue (0) , _rawDefaultValue (0)
, _defaultValueAvailable(false) , _defaultValueAvailable(false)
, _category (defaultCategory)
, _group (defaultGroup)
, _rawMax (_maxForType()) , _rawMax (_maxForType())
, _maxIsDefaultForType (true) , _maxIsDefaultForType (true)
, _rawMin (_minForType()) , _rawMin (_minForType())
...@@ -148,7 +144,8 @@ FactMetaData::FactMetaData(ValueType_t type, const QString name, QObject* parent ...@@ -148,7 +144,8 @@ FactMetaData::FactMetaData(ValueType_t type, const QString name, QObject* parent
, _hasControl (true) , _hasControl (true)
, _readOnly (false) , _readOnly (false)
{ {
_category = kDefaultCategory;
_group = kDefaultGroup;
} }
const FactMetaData& FactMetaData::operator=(const FactMetaData& other) const FactMetaData& FactMetaData::operator=(const FactMetaData& other)
...@@ -181,6 +178,16 @@ const FactMetaData& FactMetaData::operator=(const FactMetaData& other) ...@@ -181,6 +178,16 @@ const FactMetaData& FactMetaData::operator=(const FactMetaData& other)
return *this; return *this;
} }
const QString FactMetaData::defaultCategory()
{
return QString(kDefaultCategory);
}
const QString FactMetaData::defaultGroup()
{
return QString(kDefaultGroup);
}
QVariant FactMetaData::rawDefaultValue(void) const QVariant FactMetaData::rawDefaultValue(void) const
{ {
if (_defaultValueAvailable) { if (_defaultValueAvailable) {
...@@ -253,7 +260,7 @@ QVariant FactMetaData::_minForType(void) const ...@@ -253,7 +260,7 @@ QVariant FactMetaData::_minForType(void) const
case valueTypeCustom: case valueTypeCustom:
return QVariant(); return QVariant();
} }
// Make windows compiler happy, even switch is full cased // Make windows compiler happy, even switch is full cased
return QVariant(); return QVariant();
} }
...@@ -285,7 +292,7 @@ QVariant FactMetaData::_maxForType(void) const ...@@ -285,7 +292,7 @@ QVariant FactMetaData::_maxForType(void) const
case valueTypeCustom: case valueTypeCustom:
return QVariant(); return QVariant();
} }
// Make windows compiler happy, even switch is full cased // Make windows compiler happy, even switch is full cased
return QVariant(); return QVariant();
} }
...@@ -293,9 +300,9 @@ QVariant FactMetaData::_maxForType(void) const ...@@ -293,9 +300,9 @@ QVariant FactMetaData::_maxForType(void) const
bool FactMetaData::convertAndValidateRaw(const QVariant& rawValue, bool convertOnly, QVariant& typedValue, QString& errorString) bool FactMetaData::convertAndValidateRaw(const QVariant& rawValue, bool convertOnly, QVariant& typedValue, QString& errorString)
{ {
bool convertOk = false; bool convertOk = false;
errorString.clear(); errorString.clear();
switch (type()) { switch (type()) {
case FactMetaData::valueTypeInt8: case FactMetaData::valueTypeInt8:
case FactMetaData::valueTypeInt16: case FactMetaData::valueTypeInt16:
...@@ -347,11 +354,11 @@ bool FactMetaData::convertAndValidateRaw(const QVariant& rawValue, bool convertO ...@@ -347,11 +354,11 @@ bool FactMetaData::convertAndValidateRaw(const QVariant& rawValue, bool convertO
typedValue = QVariant(rawValue.toByteArray()); typedValue = QVariant(rawValue.toByteArray());
break; break;
} }
if (!convertOk) { if (!convertOk) {
errorString += tr("Invalid number"); errorString += tr("Invalid number");
} }
return convertOk && errorString.isEmpty(); return convertOk && errorString.isEmpty();
} }
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
class FactMetaData : public QObject class FactMetaData : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
typedef enum { typedef enum {
valueTypeUint8, valueTypeUint8,
...@@ -45,7 +45,7 @@ public: ...@@ -45,7 +45,7 @@ public:
} ValueType_t; } ValueType_t;
typedef QVariant (*Translator)(const QVariant& from); typedef QVariant (*Translator)(const QVariant& from);
FactMetaData(QObject* parent = NULL); FactMetaData(QObject* parent = NULL);
FactMetaData(ValueType_t type, QObject* parent = NULL); FactMetaData(ValueType_t type, QObject* parent = NULL);
FactMetaData(ValueType_t type, const QString name, QObject* parent = NULL); FactMetaData(ValueType_t type, const QString name, QObject* parent = NULL);
...@@ -76,6 +76,9 @@ public: ...@@ -76,6 +76,9 @@ public:
/// Returns the string for distance units which has configued by user /// Returns the string for distance units which has configued by user
static QString appSettingsAreaUnitsString(void); static QString appSettingsAreaUnitsString(void);
static const QString defaultCategory ();
static const QString defaultGroup ();
int decimalPlaces (void) const; int decimalPlaces (void) const;
QVariant rawDefaultValue (void) const; QVariant rawDefaultValue (void) const;
QVariant cookedDefaultValue (void) const { return _rawTranslator(rawDefaultValue()); } QVariant cookedDefaultValue (void) const { return _rawTranslator(rawDefaultValue()); }
...@@ -160,9 +163,6 @@ public: ...@@ -160,9 +163,6 @@ public:
static ValueType_t stringToType(const QString& typeString, bool& unknownType); static ValueType_t stringToType(const QString& typeString, bool& unknownType);
static size_t typeToSize(ValueType_t type); static size_t typeToSize(ValueType_t type);
static const QString defaultCategory;
static const QString defaultGroup;
private: private:
QVariant _minForType(void) const; QVariant _minForType(void) const;
QVariant _maxForType(void) const; QVariant _maxForType(void) const;
......
...@@ -306,7 +306,7 @@ void APMParameterMetaData::correctGroupMemberships(ParameterNametoFactMetaDataMa ...@@ -306,7 +306,7 @@ void APMParameterMetaData::correctGroupMemberships(ParameterNametoFactMetaDataMa
foreach(const QString& groupName, groupMembers.keys()) { foreach(const QString& groupName, groupMembers.keys()) {
if (groupMembers[groupName].count() == 1) { if (groupMembers[groupName].count() == 1) {
foreach(const QString& parameter, groupMembers.value(groupName)) { foreach(const QString& parameter, groupMembers.value(groupName)) {
parameterToFactMetaDataMap[parameter]->group = FactMetaData::defaultGroup; parameterToFactMetaDataMap[parameter]->group = FactMetaData::defaultGroup();
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment