void ConfigObjectDialog::addParameters(CMethod* parentMethod, QFormLayout *parent, std::list<CParameter*> parameters) { for (std::list<CParameter*>::iterator i = parameters.begin(); i != parameters.end(); i++) { if (!(*i)->getHideFromUser()) { string paramName = (*i)->getName(); DataType* type =(*i)->getDataType(); if (paramName.compare("value") == 0) { //possibly referenced by a parameter_type_t if (parentMethod != NULL) { CParameter* tparam = parentMethod->getParameter("type"); if (tparam->getDataType() == DataTypeEnumeration::getType("parameter_type_t")) { string typeRef = ((DataTypeEnumeration*)tparam->getDataType())->getValueReference(tparam->getValue()); if (!typeRef.empty()) { if (typeRef.compare("none") == 0){ type = NULL; } else { type = DataType::getType(typeRef); } } } } } if (type != NULL) { QWidget* widget = type->getConfigWidget(dataLogger, *i); widget->setToolTip((*i)->getDescription().c_str()); parent->addRow(paramName.c_str(), widget); paramWidgets[*i] = widget; paramTypes[*i] = type; QComboBox* cb = dynamic_cast<QComboBox*>(widget); if (cb != NULL) { QObject::connect(cb, SIGNAL(currentIndexChanged(QString)), this, SLOT(objectSelectionChanged(QString))); } } } } }
void ConfigObjectDialog::addReqParametersGroup(QLayout *parent) { list<CParameter>* parameters = object->getInitMethod()->getParameters(); list<CParameter>::iterator i = parameters->begin(); i++; QFormLayout* layout = new QFormLayout(); for (; i != parameters->end(); i++) { DataType* type = (*i).getDataType(); if (!type->hasSuffix("_regs_t")) { if (!(*i).getHideFromUser()) { QWidget* widget = type->getConfigWidget(dataLogger, &*i); widget->setToolTip(i->getDescription().c_str()); layout->addRow(( *i).getName().c_str(), widget); paramWidgets[&*i] = widget; paramTypes[&*i] = type; QComboBox* cb = dynamic_cast<QComboBox*>(widget); if (cb != NULL) { QObject::connect(cb, SIGNAL(currentIndexChanged(QString)), this, SLOT(objectSelectionChanged(QString))); } } } } addGroup(parent, "benötigte Parameter", layout); }