MarcusWolschon / osmeditor4android

Vespucci is a OpenStreetMap editor for Android
http://vespucci.io
Other
381 stars 83 forks source link

Reinitialize the validator engine every time something (relevant) with the presets was changed #2632

Closed jajajaneeneenee closed 3 months ago

jajajaneeneenee commented 3 months ago

Vespucci Version

20.1.0 Beta4 (but this problem has existed for a long time, I know it since 2020).

Problem

It would be necessary for the validator to be reinitialized every time something in the presets (relevant for a validator check key) was changed.

If there are changes in the presets (e.g. if you have made validator check keys optional in preset items which weren't optional before – and the „Require optional“ checkbox is off), the validator engine will not immediately/automatically recognize this after using "Update preset". You must for example first change something in the validator check keys to trigger a re-initialization of the validator. Restarting Vespucci doesn't help either.

Of course, changes to the presets also include activating/deactivating other presets, adding/removing presets etc.

My current workaround to trigger a re-initialization of the validator looks like this:

But that is very cumbersome and easy to forget.

jajajaneeneenee commented 3 months ago

I checked it today the first time and I got a strange effect.

Have you checked/tested your change (#2637) at all or can you reproduce what is described here?

Maybe something else needs to be reset with the loaded objects / the data styling? Or simply some kind of refresh of the displayed objects?

simonpoole commented 3 months ago

The result of validating an object is cached in the object itself and only reset when the object is changed or an actual validation is changed (for example the connected node tolerance). The later should probably be changed to reset when any validation aspect is changed.