Update parent form

Two things still needs doing:

* [x] Cache the parent object, rather than recalculating it again.
* [x] Reduce the height of Parent view. it is too big.
maybe we should use c++11 `nullptr` here.