title: How does QLineEdit triger QAbstractItemDelegate::commitData
body: <p>I am developing a Qt application using <code>QTreeView</code> and <code>QAbstractItemModel</code>.
  The model contains somewhat heterogenous data, which requires different controls for editing. I am implementing it by having a custom delegate, that queries <code>model.data(Qt::EditRole)</code> and the model would return the <code>QWidget</code> to be used as an editor.</p>
  
  <p>I like how it works for <code>QLineEdit</code> - when I hit enter, <code>delegate::setModelData</code> is called automatically, so I do <strong>not</strong> have to connect <code>QLineEdit::editingFinished</code> to <code>QAbstractItemDelegate::setModelData()</code>, which is very convenient since the QLineEdit is returned from the model as <code>QWidget</code> to the delegate and it doesn't have to care what kind of widget it is.
  With <code>QComboBox</code> it's a bit tricky - I want the comboBox to commit once the selection is made, so far I can only do it by <code>connect(myComboBox, SIGNAL(activated(QString)), myDelegate, commitData()));</code>
  However, my delegate doesn't know the type of the editor widget and I do not want to edit the delegate's code for each new editor the model ends up passing it. I would really like to force combobox to do the same thing as QLineEdit does when the enter is clicked in the slot connected to its <code>activated()</code> signal.</p>
  
  <p>So, what does the <code>QLineEdit</code> do to call delegate's <code>setModelData</code>?
  Is there a generic way in Qt for the editor whatever it is to say "I'm done editing, take the data and pass it to the model"?</p>