mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-30 17:10:19 -05:00
Fix ADL lookup for cvf pdmToVariant/pdmFromVariant overloads
Move pdmToVariant/pdmFromVariant overloads for cvf::Color3f, Vec3d, Mat4d, and Mat3d from namespace caf to namespace cvf. Templates in cafInternalPdmFieldTypeSpecializations.h use "using caf::pdmToVariant" followed by an unqualified call, so ADL searches the argument's namespace (cvf). With the overloads only in caf, the default template was selected, causing cvf::Color3f to be stored raw in a QVariant instead of as QColor — breaking color field editing and producing QVariant::save warnings. All call sites now use the unqualified "using caf::pdmXxx; pdmXxx(value)" pattern so ADL finds the correct overload without depending on cvf:: as a visible prefix. Add AdlVariantTest to cafPdmCoreColor3fTest.cpp that exercises this exact pattern. Adds caf::toVariant<T> and caf::fromVariant<T> to cafPdmFieldTraits.h as thin wrappers that encapsulate the ADL two-step internally. Client code can now call caf::toVariant(x) directly instead of requiring a using-declaration at every call site.
This commit is contained in:
1 parent
700549fb3b
commit
e8223485b1
13 files changed
+107
-38
No files matched your search
@@ -94,7 +94,7 @@ void RicApplyUserDefinedCameraFeature::readCameraFromSettings( cvf::Vec3d& eye,
|
||||
QVariant upVariant = settings.value( RicStoreUserDefinedCameraFeature::upName() );
|
||||
if ( eyeVariant.isNull() || vrpVariant.isNull() || upVariant.isNull() ) return;
|
||||
|
||||
caf::pdmFromVariant( eyeVariant, eye );
|
||||
caf::pdmFromVariant( vrpVariant, vrp );
|
||||
caf::pdmFromVariant( upVariant, up );
|
||||
caf::fromVariant( eyeVariant, eye );
|
||||
caf::fromVariant( vrpVariant, vrp );
|
||||
caf::fromVariant( upVariant, up );
|
||||
}
|
||||
@@ -104,14 +104,9 @@ void RicStoreUserDefinedCameraFeature::onActionTriggered( bool isChecked )
|
||||
|
||||
camera->toLookAt( &eye, &vrp, &up );
|
||||
|
||||
QVariant eyeVariant = caf::pdmToVariant( eye );
|
||||
settings.setValue( RicStoreUserDefinedCameraFeature::eyeName(), eyeVariant );
|
||||
|
||||
QVariant vrpVariant = caf::pdmToVariant( vrp );
|
||||
settings.setValue( RicStoreUserDefinedCameraFeature::viewReferencePointName(), vrpVariant );
|
||||
|
||||
QVariant upVariant = caf::pdmToVariant( up );
|
||||
settings.setValue( RicStoreUserDefinedCameraFeature::upName(), upVariant );
|
||||
settings.setValue( RicStoreUserDefinedCameraFeature::eyeName(), caf::toVariant( eye ) );
|
||||
settings.setValue( RicStoreUserDefinedCameraFeature::viewReferencePointName(), caf::toVariant( vrp ) );
|
||||
settings.setValue( RicStoreUserDefinedCameraFeature::upName(), caf::toVariant( up ) );
|
||||
|
||||
RiuMainWindow::instance()->refreshViewActions();
|
||||
}
|
||||
|
||||
@@ -177,7 +177,7 @@ void RicTextAnnotation3dEditor::updatePoint( caf::PdmUiFieldHandle* uiField, con
|
||||
|
||||
cvf::Vec3d domainPos = dispXf->transformToDomainCoord( newPos );
|
||||
domainPos.z() = -domainPos.z();
|
||||
QVariant originVariant = caf::pdmToVariant( domainPos );
|
||||
QVariant originVariant = caf::toVariant( domainPos );
|
||||
|
||||
caf::PdmUiCommandSystemProxy::instance()->setUiValueToField( uiField, originVariant );
|
||||
}
|
||||
+1
-1
@@ -142,7 +142,7 @@ void RicPolylineTarget3dEditor::slotUpdated( const cvf::Vec3d& origin, const cvf
|
||||
|
||||
cvf::Vec3d domainOrigin = dispXf->transformToDomainCoord( origin );
|
||||
domainOrigin.z() = -domainOrigin.z();
|
||||
QVariant originVariant = caf::pdmToVariant( domainOrigin );
|
||||
QVariant originVariant = caf::toVariant( domainOrigin );
|
||||
|
||||
caf::PdmUiCommandSystemProxy::instance()->setUiValueToField( target->targetPointUiCapability(), originVariant );
|
||||
}
|
||||
|
||||
@@ -520,7 +520,7 @@ void RimWellPathGeometryDef::fieldChangedByUi( const caf::PdmFieldHandle* change
|
||||
linkedDefs.end() );
|
||||
|
||||
cvf::Vec3d oldPos;
|
||||
caf::pdmFromVariant( oldValue, oldPos );
|
||||
caf::fromVariant( oldValue, oldPos );
|
||||
|
||||
auto delta = m_referencePointUtmXyd() - oldPos;
|
||||
|
||||
|
||||
Reference in new issue
Block a user