autogenerate the "index" property to not bother the plugin developer with it
This commit is contained in:
parent
69bf56af09
commit
4beb296439
@ -289,9 +289,10 @@ QList<DeviceClass> DevicePlugin::supportedDevices() const
|
|||||||
QList<EventType> eventTypes;
|
QList<EventType> eventTypes;
|
||||||
|
|
||||||
// StateTypes
|
// StateTypes
|
||||||
|
int index = 0;
|
||||||
foreach (const QJsonValue &stateTypesJson, deviceClassObject.value("stateTypes").toArray()) {
|
foreach (const QJsonValue &stateTypesJson, deviceClassObject.value("stateTypes").toArray()) {
|
||||||
QJsonObject st = stateTypesJson.toObject();
|
QJsonObject st = stateTypesJson.toObject();
|
||||||
QStringList missingFields = verifyFields(QStringList() << "type" << "id" << "idName" << "name" << "index" << "defaultValue" << "eventTypeName", st);
|
QStringList missingFields = verifyFields(QStringList() << "type" << "id" << "idName" << "name" << "defaultValue" << "eventTypeName", st);
|
||||||
if (!missingFields.isEmpty()) {
|
if (!missingFields.isEmpty()) {
|
||||||
qCWarning(dcDeviceManager) << "Skipping device class" << deviceClass.name() << "because of missing" << missingFields.join(", ") << "in stateType" << st;
|
qCWarning(dcDeviceManager) << "Skipping device class" << deviceClass.name() << "because of missing" << missingFields.join(", ") << "in stateType" << st;
|
||||||
broken = true;
|
broken = true;
|
||||||
@ -301,7 +302,7 @@ QList<DeviceClass> DevicePlugin::supportedDevices() const
|
|||||||
QVariant::Type t = QVariant::nameToType(st.value("type").toString().toLatin1().data());
|
QVariant::Type t = QVariant::nameToType(st.value("type").toString().toLatin1().data());
|
||||||
StateType stateType(st.value("id").toString());
|
StateType stateType(st.value("id").toString());
|
||||||
stateType.setName(translateValue(m_metaData.value("idName").toString(), st.value("name").toString()));
|
stateType.setName(translateValue(m_metaData.value("idName").toString(), st.value("name").toString()));
|
||||||
stateType.setIndex(st.value("index").toInt());
|
stateType.setIndex(index++);
|
||||||
stateType.setType(t);
|
stateType.setType(t);
|
||||||
QPair<bool, Types::Unit> unitVerification = loadAndVerifyUnit(st.value("unit").toString());
|
QPair<bool, Types::Unit> unitVerification = loadAndVerifyUnit(st.value("unit").toString());
|
||||||
if (!unitVerification.first) {
|
if (!unitVerification.first) {
|
||||||
@ -374,9 +375,10 @@ QList<DeviceClass> DevicePlugin::supportedDevices() const
|
|||||||
deviceClass.setStateTypes(stateTypes);
|
deviceClass.setStateTypes(stateTypes);
|
||||||
|
|
||||||
// ActionTypes
|
// ActionTypes
|
||||||
|
index = 0;
|
||||||
foreach (const QJsonValue &actionTypesJson, deviceClassObject.value("actionTypes").toArray()) {
|
foreach (const QJsonValue &actionTypesJson, deviceClassObject.value("actionTypes").toArray()) {
|
||||||
QJsonObject at = actionTypesJson.toObject();
|
QJsonObject at = actionTypesJson.toObject();
|
||||||
QStringList missingFields = verifyFields(QStringList() << "id" << "name" << "index", at);
|
QStringList missingFields = verifyFields(QStringList() << "id" << "name", at);
|
||||||
if (!missingFields.isEmpty()) {
|
if (!missingFields.isEmpty()) {
|
||||||
qCWarning(dcDeviceManager) << "Skipping device class" << deviceClass.name() << "because of missing" << missingFields.join(", ") << "in actionTypes";
|
qCWarning(dcDeviceManager) << "Skipping device class" << deviceClass.name() << "because of missing" << missingFields.join(", ") << "in actionTypes";
|
||||||
broken = true;
|
broken = true;
|
||||||
@ -385,7 +387,7 @@ QList<DeviceClass> DevicePlugin::supportedDevices() const
|
|||||||
|
|
||||||
ActionType actionType(at.value("id").toString());
|
ActionType actionType(at.value("id").toString());
|
||||||
actionType.setName(translateValue(m_metaData.value("idName").toString(), at.value("name").toString()));
|
actionType.setName(translateValue(m_metaData.value("idName").toString(), at.value("name").toString()));
|
||||||
actionType.setIndex(at.value("index").toInt());
|
actionType.setIndex(index++);
|
||||||
QPair<bool, QList<ParamType> > paramVerification = parseParamTypes(at.value("paramTypes").toArray());
|
QPair<bool, QList<ParamType> > paramVerification = parseParamTypes(at.value("paramTypes").toArray());
|
||||||
if (!paramVerification.first) {
|
if (!paramVerification.first) {
|
||||||
broken = true;
|
broken = true;
|
||||||
@ -399,9 +401,10 @@ QList<DeviceClass> DevicePlugin::supportedDevices() const
|
|||||||
deviceClass.setActionTypes(actionTypes);
|
deviceClass.setActionTypes(actionTypes);
|
||||||
|
|
||||||
// EventTypes
|
// EventTypes
|
||||||
|
index = 0;
|
||||||
foreach (const QJsonValue &eventTypesJson, deviceClassObject.value("eventTypes").toArray()) {
|
foreach (const QJsonValue &eventTypesJson, deviceClassObject.value("eventTypes").toArray()) {
|
||||||
QJsonObject et = eventTypesJson.toObject();
|
QJsonObject et = eventTypesJson.toObject();
|
||||||
QStringList missingFields = verifyFields(QStringList() << "id" << "name" << "index", et);
|
QStringList missingFields = verifyFields(QStringList() << "id" << "name", et);
|
||||||
if (!missingFields.isEmpty()) {
|
if (!missingFields.isEmpty()) {
|
||||||
qCWarning(dcDeviceManager) << "Skipping device class" << deviceClass.name() << "because of missing" << missingFields.join(", ") << "in eventTypes";
|
qCWarning(dcDeviceManager) << "Skipping device class" << deviceClass.name() << "because of missing" << missingFields.join(", ") << "in eventTypes";
|
||||||
broken = true;
|
broken = true;
|
||||||
@ -410,7 +413,7 @@ QList<DeviceClass> DevicePlugin::supportedDevices() const
|
|||||||
|
|
||||||
EventType eventType(et.value("id").toString());
|
EventType eventType(et.value("id").toString());
|
||||||
eventType.setName(translateValue(m_metaData.value("idName").toString(), translateValue(m_metaData.value("idName").toString(), et.value("name").toString())));
|
eventType.setName(translateValue(m_metaData.value("idName").toString(), translateValue(m_metaData.value("idName").toString(), et.value("name").toString())));
|
||||||
eventType.setIndex(et.value("index").toInt());
|
eventType.setIndex(index++);
|
||||||
if (et.contains("ruleRelevant"))
|
if (et.contains("ruleRelevant"))
|
||||||
eventType.setRuleRelevant(et.value("ruleRelevant").toBool());
|
eventType.setRuleRelevant(et.value("ruleRelevant").toBool());
|
||||||
|
|
||||||
@ -710,7 +713,8 @@ QPair<bool, QList<ParamType> > DevicePlugin::parseParamTypes(const QJsonArray &a
|
|||||||
QJsonObject pt = paramTypesJson.toObject();
|
QJsonObject pt = paramTypesJson.toObject();
|
||||||
|
|
||||||
// Check fields
|
// Check fields
|
||||||
QStringList missingFields = verifyFields(QStringList() << "id" << "name" << "idName" << "index" << "type", pt);
|
int index = 0;
|
||||||
|
QStringList missingFields = verifyFields(QStringList() << "id" << "name" << "idName" << "type", pt);
|
||||||
if (!missingFields.isEmpty()) {
|
if (!missingFields.isEmpty()) {
|
||||||
qCWarning(dcDeviceManager) << pluginName() << "Error parsing ParamType: missing fields" << missingFields.join(", ") << endl << pt;
|
qCWarning(dcDeviceManager) << pluginName() << "Error parsing ParamType: missing fields" << missingFields.join(", ") << endl << pt;
|
||||||
return QPair<bool, QList<ParamType> >(false, QList<ParamType>());
|
return QPair<bool, QList<ParamType> >(false, QList<ParamType>());
|
||||||
@ -726,7 +730,7 @@ QPair<bool, QList<ParamType> > DevicePlugin::parseParamTypes(const QJsonArray &a
|
|||||||
}
|
}
|
||||||
|
|
||||||
ParamType paramType(ParamTypeId(pt.value("id").toString()), translateValue(m_metaData.value("idName").toString(), pt.value("name").toString()), t, pt.value("defaultValue").toVariant());
|
ParamType paramType(ParamTypeId(pt.value("id").toString()), translateValue(m_metaData.value("idName").toString(), pt.value("name").toString()), t, pt.value("defaultValue").toVariant());
|
||||||
paramType.setIndex(pt.value("index").toInt());
|
paramType.setIndex(index);
|
||||||
|
|
||||||
// Set allowed values
|
// Set allowed values
|
||||||
QVariantList allowedValues;
|
QVariantList allowedValues;
|
||||||
|
|||||||
Reference in New Issue
Block a user