I have also thought about this. We have a little paradigm change here: Previously m_iNoStates defines the Toggle states. Now   m_iNoStates defines the number of Pixmaps available for a display connections. In most cases this is the same, but not in all. 
I am planning to use min(StatesSkin, StatesControl) for toggling in a following PR. IMHO this is a good compromise between new features and backward compatibility. What do you think? 

--

I had actually coded a version that ignores <NumberStates> but I have reverted the changes because without it, we have to move from a fast QVector to a slower QMap for Pixmps and Test.  I thought that it is worth to be able to check plausibility. 

If one find setting <NumberStates> too annoying, I can reintroduce it with the cos of a tiny bit CPU. 
@esbrandt: Do you have a specific opinion here?