Ok, that helps a bit. I wasn't crazy about trying to enforce any sort of strict heirarchy anyway...
So far as extensiblity goes, we can start with a basic dialog that contains all property pages in one tab widget. Each page may have one of two basic "structures" - a split view (with a list of property "groups" on the left and corresponding property widgets on the right) or a stanard single view of all properties.
In the case of plugins, I'm assuming it's possible that the number of installed plugins could grow quite large? Assuming so, a single "Plugins" tab with a split view page (listing the installed plugins at left) is probably the approach to take. Selecting a plugin then displays it's associated properties at right.
So what if a plugin has a lot of properties? It may be unlikely, but in that case, I can only suggest displaying a command button which opens a settings window specifically for that plugin's property list. And, of course, if I do it right, it'd be just another instance of the user settings dialog...
One other issue arises in my mind - namely if any number of people are building plugins, creation and management of property pages in the user settings dialog gets a bit hairy. pvdk's original approach was to implement a unique settingsPage class for each page in the dialog. I think for a small, fixed dialog, it's certainly fine. But for a more complex case (as may be the case with plugins), I'm having rather unhappy visions of developing a scripting system of sorts for property pages...
I'm certain that won't be necessary, but I fear that the current class structure might be unsuitable for an extensible settings model. I can think of possibly better approaches, but what do you think?