Space before &, not after.
AFAICT this is the only place where m_effectsDirty is read. So I think you can remove that flag altogether, which should bring further simplifications.
Are you sure you need this m_previousStyle? I'd expect it to be exactly m_settings->widgetStyle().
m_effectsDirty is checked line 291, to trigger or not a refresh of all applications.
This check before save is now useless, since if we can save, it means a modification has occured, style or effects.
m_model->selectedStyle() is bound to m_settings->widgetStyle() and vice versa, so I need to save previous state to allow a rollback.
As far as rollback goes (might not be enough in your case), wouldn't checking for isSaveNeeded() on the settings and rollbacking it all be enough?
We can't rollback a single item though, I guess that would be the main limitation in your case... Maybe that's something to add to KConfigSkeletonItem?
Answer might be no to both, I'm just looking for opportunities to simplify code in modules. :-)