Сигнал QLineEdit::editingFinished() вызывается дважды

Добрый день. При работе с QLineEdit мне нужно, что бы после окончания редактирования происходили некоторые действия. Для этого я использую QLineEdit::editingFinished(). Внутри слота у меня есть проверка и варнинг. Проблема в том, что в документации написано: This signal is emitted when the Return or Enter key is pressed or the line edit loses focus. И происходит неприятная штука - при нажатии enter вызывается мой слот с варнингом, выскакивает варнинг и фокус с LineEdit слетает, что приводит к повторонму срабатыванию сигнала и вызову слота с варнингом второй раз. Логично, что если просто мышкой устанавливать фокус на другой элемент, то сигнал срабатывает один раз, так как фокус во время срабатывания варнинга уже снят.

И вот вопрос - можно ли как-то избежать двойного срабатывания сигнала при нажатии enter? Мне в голову приходит пока только вариант создать свой класс, унаследованный от QLineEdit, и перегрузить там эвент нажатия на enter. Но хотелось бы обойтись менее радикальными действиями.

C++ (Qt)Выделить код

1
2
3
4
5
6
7

void RangeEditorWindow::on_lineEditR_editingFinished()
{
    if (IsIntersectionRanges())
    {
        QMessageBox::warning(nullptr, "", QObject::tr("The intervals intersect!"));
    }
}

Ещё есть идея, что можно в виджете, который является родителем lineEdit обрабатывать нажатие enter и там находить виджет, на котором стоит фокус и снимать его принудительно. Но интересно, есть ли другие варианты. Да и думается мне, что это тоже приведёт к двойному срабатыванию сигнала.