Implement visualRect() so that it returns a rectangle where each index should be positioned. You'll have to calculate the position based on the width of the viewport and size of all items prior to the one which you calculate the position for.
Yes, you should draw the controls in paint() and handle clicks in editorEvent() - process mousePress events and check the position of the cursor against the region occupied by a particular "mini widget". Then you can emit a signal or do whatever else you want.2) I don't know how to provide the mini-widgets for editing. I can draw them in the delegate's paint() just fine, but it'd be a manual process determining if a mini-widget was clicked.
Bookmarks