Для поля email некоторого столбца написал делегата, в котором используется lineEditor типа QLineEdit с валидатором (рег. выражение упрощено):
QRegExp rxe("^[a-z]+@[a-z]+$");
QValidator *validator = new QRegExpValidator(rxe,parent);
lineEditor->setValidator(validator);
В делегате это код работает в методах: createEditor, setEditorData, setModelData. Валидатор не пускает лишние символы, все+. Но, если прекратить редактирование и выполнить commit, то может сохраниться и неверный емайл, например без @. Вопрос: как в пределах класса делегата (думаю в setModelData) не дать невалидному тексту сохраниться?