I don't do much GUI design. I am working on an application and helping to define some requirements for a user preferences dialog. Some of the settings are boolean values that can be determined by a setting they are dependent on.
For example, SettingB can be true or false if SettingA is true but SettingB can only be false if SettingA is false. Note that this relationship is not symmetrical so changing SettingB has no affect on SettingA.
One proposed solution was to disable SettingB (grey out the control) and set it to False whenever SettingA is set to False.
Another solution could be to toggle SettingA to true when needed. So changing SettingB to true would also change SettingA to true if it were not true already.
I don't like the first solution because I'm not sure how to tell the user why a setting is disabled. I don't like the second solution because I don't like the idea of changing a setting on a user yet having no way of explaining why the app did it. Are either of these two solutions preferred or is there a better way that I'm not aware of? If one of these solutions work how can I address the shortcomings of that solution?