void AnalysisForm::bindTo(Options *options, DataSet *dataSet) { if (_options != NULL) unbind(); _dataSet = dataSet; _options = options; for(const string &name : options->names) { Option *option = options->get(name); QString qsName = QString::fromUtf8(name.c_str(), name.length()); qsName.replace('/', '_'); QWidget *child = this->findChild<QWidget*>(qsName); Bound *boundChild = dynamic_cast<Bound*>(child); if (boundChild != NULL) { _bounds.push_back(boundChild); boundChild->bindTo(option); boundChild->illegalChanged.connect(boost::bind(&AnalysisForm::illegalValueHandler, this, _1)); } else qDebug() << "child not found : " << qsName << " in AnalysisForm::setOptions()"; } updateIllegalStatus(); }
void AnalysisForm::bindTo(Options *options, DataSet *dataSet) { if (_options != NULL) unbind(); _dataSet = dataSet; vector<string> columnNames; BOOST_FOREACH(Column &column, dataSet->columns()) columnNames.push_back(column.name()); _availableVariablesModel.setInfoProvider(this); _availableVariablesModel.setVariables(columnNames); _options = options; BOOST_FOREACH(const string &name, options->names) { Option *option = options->get(name); QString qsName = QString::fromUtf8(name.c_str(), name.length()); qsName.replace('/', '_'); QWidget *child = this->findChild<QWidget*>(qsName); Bound *boundChild = dynamic_cast<Bound*>(child); if (boundChild != NULL) { _bounds.push_back(boundChild); boundChild->bindTo(option); boundChild->illegalChanged.connect(boost::bind(&AnalysisForm::illegalValueHandler, this, _1)); } else { qDebug() << "child not found : " << qsName << " in AnalysisForm::setOptions()"; } } updateIllegalStatus(); }