/** @copydoc Configurable::configFromWidget */ void Configurable::configFromNextWidget(QObject* cur,ConfigParamList& paramList){ //parametres de configuration const QObjectList& list = cur->children(); for(int i=0;i<list.size();i++) { QObject* child = list.at(i); if(!child->objectName().isEmpty() && child->isWidgetType()) { QString value; // QLineEdit ? QLineEdit *lineEdit = qobject_cast<QLineEdit *>(child); if(lineEdit) value = lineEdit->text(); // QComboBox ? QComboBox *comboBox = qobject_cast<QComboBox *>(child); if(comboBox) value = comboBox->currentText(); // QSpinBox ? QSpinBox *spinBox = qobject_cast<QSpinBox *>(child); if(spinBox) value = spinBox->text(); // QDoubleSpinBox ? QDoubleSpinBox *doubleSpinBox = qobject_cast<QDoubleSpinBox *>(child); if(doubleSpinBox) value = doubleSpinBox->text(); // QTextEdit ? QTextEdit *textEdit = qobject_cast<QTextEdit *>(child); if(textEdit) value = textEdit->toPlainText(); // QPlainTextEdit ? QPlainTextEdit *plainTextEdit = qobject_cast<QPlainTextEdit *>(child); if(plainTextEdit) value = plainTextEdit->toPlainText(); // QTimeEdit ? QTimeEdit *timeEdit = qobject_cast<QTimeEdit *>(child); if(timeEdit) value = timeEdit->text(); // QDateTimeEdit ? QDateTimeEdit *dateTimeEdit = qobject_cast<QDateTimeEdit *>(child); if(dateTimeEdit) value = timeEdit->text(); // QDateEdit ? QDateEdit *dateEdit = qobject_cast<QDateEdit *>(child); if(dateEdit) value = dateEdit->text(); // QDial ? QDial *dial = qobject_cast<QDial *>(child); if(dial) value = QString::number(dial->value()); // QSlider ? QSlider *slider = qobject_cast<QSlider *>(child); if(slider) value = QString::number(slider->value()); //sauvegarde la valeur if(!value.isNull()){ /*#ifdef _DEBUG QPRINT("loadConfig >> "+child->objectName()+"="+value); #endif*/ if(paramList.find(child->objectName()) != paramList.end()) paramList[child->objectName()]->setValue(value); else paramList[child->objectName()] = new ConfigParam(value,""); } } Configurable::configFromNextWidget(child,paramList); } }
void tst_QDial::wrappingCheck() { //This tests if dial will wrap past the maximum value back to the minimum //and vice versa when changing the value with a keypress QDial dial; dial.setMinimum(0); dial.setMaximum(100); dial.setSingleStep(1); dial.setWrapping(true); dial.setValue(99); dial.show(); { //set value to maximum but do not wrap QTest::keyPress(&dial, Qt::Key_Up); QCOMPARE( dial.value(), 100); } { //step up once more and wrap clockwise to minimum + 1 QTest::keyPress(&dial, Qt::Key_Up); QCOMPARE( dial.value(), 1); } { //step down once, and wrap anti-clockwise to minimum, then again to maximum - 1 QTest::keyPress(&dial, Qt::Key_Down); QCOMPARE( dial.value(), 0); QTest::keyPress(&dial, Qt::Key_Down); QCOMPARE( dial.value(), 99); } { //when wrapping property is false no wrapping will occur dial.setWrapping(false); dial.setValue(100); QTest::keyPress(&dial, Qt::Key_Up); QCOMPARE( dial.value(), 100); dial.setValue(0); QTest::keyPress(&dial, Qt::Key_Down); QCOMPARE( dial.value(), 0); } { //When the step is really big or small, wrapping should still behave dial.setWrapping(true); dial.setValue(dial.minimum()); dial.setSingleStep(305); QTest::keyPress(&dial, Qt::Key_Up); QCOMPARE( dial.value(), 5); dial.setValue(dial.minimum()); QTest::keyPress(&dial, Qt::Key_Down); QCOMPARE( dial.value(), 95); dial.setMinimum(-30); dial.setMaximum(-4); dial.setSingleStep(200); dial.setValue(dial.minimum()); QTest::keyPress(&dial, Qt::Key_Down); QCOMPARE( dial.value(), -22); } }