bool BitcoinAmountField::eventFilter(QObject *object, QEvent *event) { if (event->type() == QEvent::FocusIn) { // Clear invalid flag on focus setValid(true); } else if (event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease) { QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event); if (keyEvent->key() == Qt::Key_Comma) { // Translate a comma into a period QKeyEvent periodKeyEvent(event->type(), Qt::Key_Period, keyEvent->modifiers(), ".", keyEvent->isAutoRepeat(), keyEvent->count()); qApp->sendEvent(object, &periodKeyEvent); return true; } } else if (event->type() == QEvent::Wheel && qobject_cast<QAbstractSpinBox*>(object)) { if(qobject_cast<QAbstractSpinBox*>(object)->focusPolicy() == Qt::WheelFocus) { event->accept(); return false; } else { event->ignore(); return true; } } return QWidget::eventFilter(object, event); }
bool CryptobullionAmountField::eventFilter(QObject *object, QEvent *event) { if (event->type() == QEvent::FocusIn) { // Clear invalid flag on focus setValid(true); } else if (event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease) { QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event); if (keyEvent->key() == Qt::Key_Comma) { // Translate a comma into a period QKeyEvent periodKeyEvent(event->type(), Qt::Key_Period, keyEvent->modifiers(), ".", keyEvent->isAutoRepeat(), keyEvent->count()); qApp->sendEvent(object, &periodKeyEvent); return true; } } return QWidget::eventFilter(object, event); }