I need to write a QTreeView which will store an icon based that is their default an a icon when they are away and will have like other icons too. And also will have 2 colours based on what the user sets in the options menu.

Right now I have a NickDelegate (QStyledItemDelegate) and a NickTree(QTreeView). Well so far the NickDelegate handles the text colour changing based on away and online. This is the other part that confuses me with MVC. Is where do I return the icons? Since pretty much a delegate, view, and model can all handle it (correct me if I'm wrong) has the ability. Which one do I put it.

And how do I handle custom roles?