Index: sources/view/hd/alarm/VAlarmStatus.cpp =================================================================== diff -u -r712f4c8a1b2382919300895b4422b831471044a3 -rf06b3645936db64dff09721cf625a6a8530e3f0a --- sources/view/hd/alarm/VAlarmStatus.cpp (.../VAlarmStatus.cpp) (revision 712f4c8a1b2382919300895b4422b831471044a3) +++ sources/view/hd/alarm/VAlarmStatus.cpp (.../VAlarmStatus.cpp) (revision f06b3645936db64dff09721cf625a6a8530e3f0a) @@ -25,6 +25,11 @@ ACTION_VIEW_CONNECTION(SettingsData ); ADJUST_VIEW_CONNECTION(AlarmSilenceRequestData ); ADJUST_VIEW_CONNECTION(AlarmUserActionRequestData ); + + _instructionsList.setRoleNames({ + { eRole_Instruction , "instruction" }, + { eRole_Image , "image" }, + }); } /*! @@ -153,6 +158,8 @@ // alarm is out of silence || ( _alarm_Flag_alarmsSilencedChanged && ! _alarm_Flag_alarmsSilenced ) ){ + + _instructionsList = _alarms[_alarm_AlarmID].instructions; emit didAlarmRaise(); } } @@ -177,10 +184,7 @@ return alarmIDText(static_cast(alarm_AlarmID())); } -QString VAlarmStatus::title () { if ( ! _alarm_AlarmID ) return {}; QString s = _alarms[_alarm_AlarmID].title ; if ( ! s.isEmpty()) return s; else return tr("Alarm") ; } -QString VAlarmStatus::message () { if ( ! _alarm_AlarmID ) return {}; QString s = _alarms[_alarm_AlarmID].message; if ( ! s.isEmpty()) return s; else return text() ; } -QStringList VAlarmStatus::instructionKeys () { if ( ! _alarm_AlarmID ) return {}; return _alarms[_alarm_AlarmID].instructions.keys () ; } -QStringList VAlarmStatus::instructionValues () { if ( ! _alarm_AlarmID ) return {}; return _alarms[_alarm_AlarmID].instructions.values () ; } +QString VAlarmStatus::title () { if ( ! _alarm_AlarmID ) return {}; QString s = _alarms[_alarm_AlarmID].title ; if ( ! s.isEmpty()) return s; else return tr("Alarm") ; } /*! * \brief View::VAlarmStatus::onActionReceive @@ -201,13 +205,24 @@ for (const QString &key : _Settings.keys(category, group)) { if (Storage::Settings::isKeyTitle ( key ) ) { alarmData.title = _Settings.value(category, group, key).toString(); - } else if (Storage::Settings::isKeyMessage ( key ) ) { - alarmData.message = _Settings.value(category, group, key).toString(); + } else if (Storage::Settings::isKeyListTitle ( key ) ) { + // do nothing.. } else { - instructionData[key] = _Settings.value(category, group, key).toString(); + const QString imagePath = QStringLiteral("%1%2").arg(_location) + .arg(_Settings.value(category, group, key).toString()); + + + QFileInfo fileInfo(imagePath); + + QHash instructionStep; + instructionStep.insert(eRole_Instruction, key); + instructionStep.insert(eRole_Image, fileInfo.exists() && fileInfo.isFile() ? "file:" + imagePath : "") ; + + instructionData.append(instructionStep); alarmData.instructions = instructionData; } } + _alarms[id] = alarmData; /// DEBUG: