Here I think it should be just plotType and not the dimensions.  You get the dimensions, just to open that dimension group just to get the plot2dtype / plot3dtype.  If you directly replace this with get a plot type and a single layer case statement it looks like it would work fine and be simpler.  Then have the plot constructors actually open their relevant sections in the qsettings