Here is a better description of what I just implemented
The Control view displays the present value in use for i_range (Current Range) and v_range (Voltage Range). Changing these values effect the device’s present operating mode and no more. Changes here are not persisted.
If you open the Preferences dialog, it will display the value of i_range and v_range that will be applied whenever you restart the software or connect a new device. This may be different that the present values in the Control view. If you open Preferences and don’t change i_range or v_range, Control will not be affected. Any changes to i_range or v_range will be applied to the Control view and active device.
This implementation makes it safe to open the Preferences and adjust other settings without affecting the operation of the active device, which meets your objective. If I end up adding a mode that fully persists the present view, then the Control changes would also be persisted, which means Preferences and Control would always match for i_range and v_range. So, this change still works going forward.
This change is in commit 0d086e. Either way, you can try out 0.4.6 when it’s released to make sure that it does what you want.