MCPcopy Create free account
hub / github.com/KDE/labplot / numberSpinBoxFeedback

Method numberSpinBoxFeedback

tests/commonfrontend/widgets/SpinBoxTest.cpp:906–950  ·  view source on GitHub ↗

Testing feedback feature

Source from the content-addressed store, hash-verified

904
905// Testing feedback feature
906void SpinBoxTest::numberSpinBoxFeedback() {
907 NumberSpinBox sb(5);
908 sb.setFeedback(true);
909
910 int valueChangedCounter = 0;
911 double lastValue = NAN;
912 connect(&sb, QOverload<double>::of(&NumberSpinBox::valueChanged), [&sb, &valueChangedCounter, &lastValue](double value) {
913 lastValue = value;
914 valueChangedCounter++;
915
916 QCOMPARE(sb.m_waitFeedback, true);
917 switch (valueChangedCounter) {
918 case 1:
919 QCOMPARE(sb.setValue(6), true);
920 break;
921 case 2:
922 QCOMPARE(sb.setValue(0), false);
923 break;
924 case 3:
925 QCOMPARE(sb.setValue(8), true);
926 break;
927 }
928 });
929
930 sb.lineEdit()->setCursorPosition(1);
931 QKeyEvent event(QKeyEvent::Type::KeyPress, Qt::Key_Up, Qt::KeyboardModifier::NoModifier);
932
933 sb.keyPressEvent(&event);
934 QCOMPARE(valueChangedCounter, 1);
935 QCOMPARE(lastValue, 6);
936 QCOMPARE(sb.toolTip(), sb.errorToString(NumberSpinBox::Errors::NoError));
937 QCOMPARE(sb.m_waitFeedback, false);
938
939 sb.keyPressEvent(&event);
940 QCOMPARE(valueChangedCounter, 2);
941 QCOMPARE(lastValue, 7);
942 QCOMPARE(sb.toolTip(), i18n("Invalid value entered. Valid value: %1", QString::number(0)));
943 QCOMPARE(sb.m_waitFeedback, false);
944
945 sb.keyPressEvent(&event);
946 QCOMPARE(valueChangedCounter, 3);
947 QCOMPARE(lastValue, 8);
948 QCOMPARE(sb.toolTip(), sb.errorToString(NumberSpinBox::Errors::NoError));
949 QCOMPARE(sb.m_waitFeedback, false);
950}
951
952// set value called directly when valueChanged() is called. This can happen if the other side directly sets another
953// value, because the received value is invalid.

Callers

nothing calls this directly

Calls 7

setFeedbackMethod · 0.80
setCursorPositionMethod · 0.80
lineEditMethod · 0.80
errorToStringMethod · 0.80
setValueMethod · 0.45
keyPressEventMethod · 0.45
toolTipMethod · 0.45

Tested by

no test coverage detected