I believe the global change of colors is achieved using QPalette like approach, I am afraid you may have to consider using either QPalette as is or write a similar class with custom color roles as per you needs. But again this is same as your initial idea of having a ColorManager Widget. You can have two classes, one as custom color palette, and other as a widget which can edit this custom color palette (like using a color picker). You can set this custom color palette on the model directly, and model can be implemented to used the custom color palette color roles. As you already considered QSettings, it is simple and nice ways make these settings persistent.
FYI, I ran into similar task some time back, I ended up writing a small class. It was not just color though, it had other application wide configurations like fonts, font size, buffer sizes, timing etc.
If it is just color you are looking for, and if is just the Qt::BackgroundRole you are supplying to View, then I would still go with QPalette. Writing a custom color palette may not be of much use as the View does not understand these custom color roles, unless you implement a custom view which I guess you are not doing.
anyways see if someone has any ideas.
Bookmarks