//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RimEclipseInputCaseOpm::appendPropertiesFromStandaloneFiles(const QStringList& fileNames) { for (auto filename : fileNames) { QFileInfo fi(filename); if (!fi.exists()) continue; RifReaderOpmParserPropertyReader propertyReader(filename); std::set<std::string> fileKeywordSet = propertyReader.keywords(); std::vector<std::string> knownKeywords = RifReaderOpmParserInput::knownPropertyKeywords(); for (auto knownKeyword : knownKeywords) { if (fileKeywordSet.count(knownKeyword) > 0) { QString qtKnownKeyword = QString::fromStdString(knownKeyword); QString resultName = this->reservoirData()->results(RifReaderInterface::MATRIX_RESULTS)->makeResultNameUnique(qtKnownKeyword); if (propertyReader.copyPropertyToCaseData(knownKeyword, this->reservoirData(), resultName)) { RimEclipseInputProperty* inputProperty = new RimEclipseInputProperty; inputProperty->resultName = resultName; inputProperty->eclipseKeyword = qtKnownKeyword; inputProperty->fileName = filename; inputProperty->resolvedState = RimEclipseInputProperty::RESOLVED; m_inputPropertyCollection->inputProperties.push_back(inputProperty); } } } m_additionalFileNames.v().push_back(filename); } }
UINT32 Codecs::__LoadFormats(const CodecLibrary &codecLibrary) { auto getHandlerProperty2 = codecLibrary.GetProc<GetHandlerProperty2Func>( "GetHandlerProperty2", true); auto getHandlerProperty = getHandlerProperty2 ? nullptr : codecLibrary.GetProc<GetHandlerPropertyFunc>("GetHandlerProperty"); UINT32 unNumberOfFormats = 1u; if (!getHandlerProperty) { auto getNumberOfFormats = codecLibrary.GetProc<GetNumberOfFormatsFunc>( "GetNumberOfFormats"); getNumberOfFormats(&unNumberOfFormats); } UINT32 result = 0; LibraryPropertyReader propertyReader( getHandlerProperty, getHandlerProperty2); for (UINT32 i = 0; i != unNumberOfFormats; ++i) { try { m_vupCodecFormat.push_back(make_unique<CodecFormat>( codecLibrary, i, propertyReader)); ++result; } catch (const LibraryException &) { } } return result; }
void QShaderData::copy(const QNode *ref) { QNode::copy(ref); const QShaderData *shaderData = static_cast<const QShaderData *>(ref); // We need to copy the properties // At the moment we assume that the properties are copyable // this may change in a later refactoring const QMetaObject *metaObject = shaderData->metaObject(); const int propertyOffset = QShaderData::staticMetaObject.propertyOffset(); const int propertyCount = metaObject->propertyCount(); // Copy properties of shaderData for (int i = propertyOffset; i < propertyCount; ++i) { const QMetaProperty property = metaObject->property(i); setProperty(property.name(), propertyReader()->readProperty(shaderData->property(property.name()))); } }
//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RimEclipseInputCaseOpm::loadAndSyncronizeInputProperties() { // Make sure we actually have reservoir data CVF_ASSERT(this->reservoirData()); CVF_ASSERT(this->reservoirData()->mainGrid()->gridPointDimensions() != cvf::Vec3st(0, 0, 0)); // Then read the properties from all the files referenced by the InputReservoir for (QString filename : m_additionalFileNames()) { QFileInfo fileNameInfo(filename); bool isExistingFile = fileNameInfo.exists(); // Find the input property objects referring to the file std::vector<RimEclipseInputProperty*> ipsUsingThisFile = this->m_inputPropertyCollection()->findInputProperties(filename); if (!isExistingFile) { for (auto inputProperty : ipsUsingThisFile) { inputProperty->resolvedState = RimEclipseInputProperty::FILE_MISSING; } } else { RifReaderOpmParserPropertyReader propertyReader(filename); std::set<std::string> fileKeywordSet = propertyReader.keywords(); for (auto inputProperty : ipsUsingThisFile) { QString kw = inputProperty->eclipseKeyword(); inputProperty->resolvedState = RimEclipseInputProperty::KEYWORD_NOT_IN_FILE; if (fileKeywordSet.count(kw.toStdString())) { if (propertyReader.copyPropertyToCaseData(kw.toStdString(), this->reservoirData(), inputProperty->resultName)) { inputProperty->resolvedState = RimEclipseInputProperty::RESOLVED; } } fileKeywordSet.erase(kw.toStdString()); } if (!fileKeywordSet.empty()) { std::vector<std::string> knownKeywords = RifReaderOpmParserInput::knownPropertyKeywords(); for (auto knownKeyword : knownKeywords) { if (fileKeywordSet.count(knownKeyword) > 0) { QString qtKnownKeyword = QString::fromStdString(knownKeyword); QString resultName = this->reservoirData()->results(RifReaderInterface::MATRIX_RESULTS)->makeResultNameUnique(qtKnownKeyword); if (propertyReader.copyPropertyToCaseData(knownKeyword, this->reservoirData(), resultName)) { RimEclipseInputProperty* inputProperty = new RimEclipseInputProperty; inputProperty->resultName = resultName; inputProperty->eclipseKeyword = qtKnownKeyword; inputProperty->fileName = filename; inputProperty->resolvedState = RimEclipseInputProperty::RESOLVED; m_inputPropertyCollection->inputProperties.push_back(inputProperty); } } } } } } for(auto inputProperty : m_inputPropertyCollection->inputProperties()) { if (inputProperty->resolvedState() == RimEclipseInputProperty::UNKNOWN) { inputProperty->resolvedState = RimEclipseInputProperty::FILE_MISSING; } } }