Based on PyQt4