It's ok if the final string has multiple forward slashes concatenated together, the path will still be interpreted properly. On the off chance that a path being prepended does not happen to have the ending slash, then adding it here will catch that. Also, it makes it clear that the substituted string is meant to be a full path.
As we talked, if you have time to modify this and use the QAbstractListModel in C++ and all those beginReset... to leave the model management in C++ and notify the qml, instead of QML doing it.
I believe it has been decided to add only one, and if edited, edit the one that has been added, for the active treatment. This will be cleared for the next treatment and reset to the original settings. We already have the acidConcentrateOptions property as the view list of AcidTypes, and it should be used for the model on screen. We do not need to modify the original set configuration values in _Settings. Therefore, please remove any modifications to the _Settings class, content.
1) Add a new property for the new acidType 2) When the confirm button on the acidType is touched 2.1) Check if the acidType is unique; otherwise, notify the user and stay on the screen until the user adds a new type or just closes the dialog. 2.2) Remove the item with the acidType value from the acidConcentrateOptions list 2.3) Update the acidType property. 2.4) Add the acidType to the acidConcentrateOptions at the bottom (or top, whichever makes more sense, but always do the same). 3) For the next treatment 3.1) Just do step 2.2 to revert the acidConcentrateOptions to its original 3.2) Clear the acidType property.
function name and get get function's name suggest you are returning a target flow rate. If this is returning a target flow rate, the return comment should make that clear. Change to "... current target flow rate (in mL/min) for the given concentrate pump."
Looks like this is only being set in wet self-tests substate of pre-tx prime. Once we leave wet self-tests, should this 4th level state be set back to zero or something?
Actually, I think we should have the local variable to copy the payload into, then we should range check it (and potentially reject it if out of range), and if it is in range, only then should we assign new rate to your static variable.
this is handled by vTreatmentCreate.doClear() to synchronize the clearing on both the pretreatment create rx and popup. The call has been updated and moved to the onStandbyChanged slot in main.qml