QStringLiteral should be used for a constant string that we know is not going to change so those will be created at compile time and not every time. Here seem all the options have to run and build at runtime.
Why used QLatin1Char instead of only "0"? This is a constant leading zero.
Consider renaming all of the NV record modules/classes with record_ or nv_record_ prefix or maybe putting them in a sub-folder of dg so they are easily identified for their general purpose.
This one might be on_ not do_. and should be private! A little confusing that if the signal comes from the interface how come the doAdd.... is public access? What happens if it has been called on the qml side. Could you please explain?
Thanks, only a Numeric keyboard in this case. Please also take a look at the KDAB training about the QtQuick keyboard handling, in https://www.youtube.com/watch?v=ilCekEOpNYM @ 5:40 using the Keys API to be able to navigate on 'enter' pressed. that might be helpful. I think it should be "enterPressed", "returnPressed", or both.