This is kind of extension to : viewtopic.php?t=39258
When closing my application I'm using IPXV_Inst::SaveUserSettings to save user settings to a file on disk.
When launching my application and calling IPXV_Inst::Init I'm specifying the pUserSettingsSrc of the above saved settings file.
All works as expected.
I've now included some .oxt dictionaries inside "pxv.DLL\Common\Dictionaries" and they get loaded and displayed inside spell checker settings list of dictionaries.
Upon Init, if the pUserSettingsSrc file does exists (so SaveUserSettings created it before .oxt's existed) - none of dictionaries will be enabled in "Spell Checker Settings". A user must manually enable at least one for the SpellChecker to work.
Note that before the "last call" to SaveUserSettings there were no loaded dictionaries (because I was not including *.oxt files).
I guess when Init is called - and the saved user settings file exist - you somehow treat it as if the user has manually disabled all loaded dictionaries (even though there were no dictionaries loaded).
If the pUserSettingsSrc file does NOT exists (let's say "first run") - at least one dictionary will be magically pre-enabled in "Spell Checker Settings".
My conclusion: when Init is called if the pUserSettingsSrc does not exist, and there's at least one loaded oxt) you somehow pre-enable one dictionary - I guess you are looking into Windows locale or something like that.
If I'm correct (?) - can you make it so that when Init reads user settings and if none of the dictionaries is enabled - and there are now some oxt's loaded - pre-enable one (as if the settings file did not exist).
SaveUserSettings should (I guess) store a different value for "enabled dictionaries" if no dictionaries are loaded ("null" or "-1") vs there are dictionaries loaded but none enabled ("0").
p.s.
Am hoping above is clear enough
-žarko