Use raw pointer instead of QPointer to track watchers
Using QPointer comes with a significant overhead since operator== performs internal syncronization
It's also not needed since the objects are removed when destroyed
Using QPointer comes with a significant overhead since operator== performs internal syncronization
It's also not needed since the objects are removed when destroyed