Exemplo n.º 1
0
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)));
                }
            }
        }
    }
}
Exemplo n.º 2
0
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);
}