bool ItemEditorWidget::eventFilter(QObject *object, QEvent *event) { if ( object == m_editor && event->type() == QEvent::KeyPress ) { QKeyEvent *keyevent = static_cast<QKeyEvent *>(event); int k = keyevent->key(); if (k == Qt::Key_Return || k == Qt::Key_Enter) { Qt::KeyboardModifiers mods = keyevent->modifiers(); if ( (mods & (Qt::ShiftModifier | Qt::AltModifier | Qt::MetaModifier)) == 0 ) { bool controlPressed = mods.testFlag(Qt::ControlModifier); if (m_saveOnReturnKey && controlPressed ) { keyevent->setModifiers(mods & ~Qt::ControlModifier); return false; } if ( m_saveOnReturnKey || controlPressed ) { saveAndExit(); return true; } } } } return false; }