fix implementation of ListWidgetDelegate

• refactor to match new requirements, including adding missing methods