Uri setdata respect part

Hi,

I was trying to use setData to set part of a fragment on a URI and it didn't work as expected. Only the new data was present. I seems that setData always got the current data from the default place (query string) and my query string was empty.

So here's a patch.