ParametersConfiguration::ParametersConfiguration(ParametersConfiguration* parentData, const QString& valuesFile, bool resetValues) : QObject(parentData), parentData_(parentData), saveFileName_(valuesFile){ empty_ = false; if(!parentData) { empty_ = true; qDebug() << "CRITICAL: Cannot construct from empty cfg data."; return; } sections_.clear(); for (int i = 0; i < parentData_->sections_.size(); i++) { ParameterSectionData* parentSection = parentData_->sections_[i]; ParameterSectionData* localSection = new ParameterSectionData(parentSection->title(), this); sections_ << localSection; for (unsigned int j = 0; j < parentSection->size(); j++) { ParameterElementData* parentElement = parentData_->get((*parentSection)[j]->name()); ParameterElementData* localElement; if (parentElement->syncWithUpperLevel() && parentData_->lookup_.contains(parentElement->name().toLower())) { localElement = parentElement; } else { localElement = new ParameterElementData(parentElement->name(), localSection); localElement->setValue(parentElement->value().toString()); localElement->setLock(parentElement->locked()); localElement->setIsWrong(parentElement->isWrong()); } localSection->append(localElement); lookup_.insert(localElement->name().toLower(), localElement); } } setModified(false); if(resetValues) resetUserValues(valuesFile); }
QWidget* PreferencesDialog::getCfgPage(QString sectionIdentifier) { QStringList parameters; for (unsigned int ii = 0; ii < userPreferenceData.data()->size(); ii++) { if ((*userPreferenceData.data())[ii]->title().trimmed().toLower().contains(sectionIdentifier)) { ParameterSectionData* section = (*userPreferenceData.data())[ii]; for (unsigned int j = 0; j < section->size(); j++) parameters.append((*section)[j]->name()); } } ParametersWidget* widget = new ParametersWidget(userPreferenceData.data(), parameters, 1); return widget; }