I idly wonder if setValue should remove the key when given a null QVariant.. this pattern seems to show up a lot.