Commit Graph
25 Commits
Author SHA1 Message Date
Magne Sjaastad e8223485b1 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.
2026-04-08 23:12:49 +02:00
Magne Sjaastad ab97381d94 Add ADL-based field traits, migrate all call sites, remove cafInternalPdmValueFieldSpecializations.h
Introduce cafPdmFieldTraits.h with ADL-based pdmToVariant/pdmFromVariant/pdmVariantEqual
as a replacement for PdmValueFieldSpecialization. Migrate all types (AppEnum, FilePath,
PdmPointer, cvf types) and all call sites (PdmDataValueField, PdmProxyValueField, UI
framework, ApplicationLibCode). Delete cafInternalPdmValueFieldSpecializations.h.
Add cafPdmFieldTraits unit tests and fix std::optional support.
2026-04-08 12:37:36 +02:00
Magne Sjaastad 211ae24241 Auto-update MSW segments on UI changes (opt-in)
Adds an 'Auto Update Segments' toggle (default: on) to the MSW Segment
Visualization group in WellPathCollection. When enabled, MSW segments
are automatically recomputed and redrawn whenever the user modifies:
- Well path geometry or targets
- Perforation intervals
- Fishbone laterals
- Fractures
- Well path fields

The update is triggered via a new updateMswSegmentsForObject()
method, which resolves the top-level well from the changed object, clears
existing segments for all lateral wells in that group, recomputes segments
using updateSegments(), and schedules a full redraw.

When auto-update is disabled, an 'Update Segments' button is shown
instead, allowing manual control.
2026-03-17 20:15:07 +01:00
Magne Sjaastad dbe08064ce Refactor double editor config to use attribute map
Remove custom editor attribute classes and migrate all double field validation and formatting (range, decimals, number format) to the attribute map system. Refactor PdmUiDoubleValueEditor to read settings from the field's attributes and always display formatted values. Remove redundant defineEditorAttribute overrides. Add tests for pair<bool, double> field validation. Centralize and simplify double field UI configuration for improved maintainability.
2026-02-16 16:54:22 +01:00
Magne Sjaastad cfd634e206 Updates PDM UI label positioning
Updates the way UI label positions are set for PDM fields.
2026-01-08 21:44:58 +01:00
Kristian Bendiksen a222b8fdcb #1479 RigWellPath: improve api to force pairs of points and measured depths.
Refactored RigWellPath to ensure that a well path points and measured depths
always come pairs, as their usage often relies on both being present.

Fixes #1479.
2025-03-12 13:35:05 +01:00
jonjenssen da683bed9e Move Rig well related things to subfolder and update include statements 2024-10-31 15:08:59 +01:00
Magne Sjaastad a0ebb6e496 Add copyObject to PdmObjectHandle
New syntax to copy an object

    auto curveCopy = curve->copyObject<RimSummaryCurve>();

Previous deprecated syntax

    RimColorLegend* customLegend = dynamic_cast<RimColorLegend*>(
            standardLegend->xmlCapability()->copyByXmlSerialization( caf::PdmDefaultObjectFactory::instance() ) );
2024-06-14 17:18:28 +02:00
Magne Sjaastad 6fe997b3c9 Add and use caf::PdmUiPushButtonEditor::configureEditorLabelHidden 2024-02-23 08:47:52 +01:00
Kristian Bendiksen 959c9d48fa #10649 ApplicationLibCode: Use collection.empty() instead of comparing with size 2023-09-27 10:16:37 +02:00
Kristian Bendiksen 5bf2c2a89d #10367 Janitor: Remove unneccessary 'this' pointers 2023-08-07 13:38:27 +02:00
Jørgen Herje b83fe73395 Displacement curves fault faces (#10243) 2023-05-22 11:37:57 +02:00
Magne Sjaastad ab0b958884 Well Targets: Add scaling factor for well targets 2023-03-24 15:37:30 +01:00
Magne Sjaastad f8c5cf389f clang-format: Set column width to 140
* Set column width to 140
* Use c++20
* Remove redundant virtual
2023-02-26 10:48:40 +01:00
Kristian BendiksenandMagne Sjaastad 254c74be13 #9439 Fix unstable location of generated well target at sea level
NB! This fix will update the location of well target at sea level, and can potentially change the MD from sea level to first user defined well target. This will affect completions defined for the modelled well, as they are defined by MD.

* #9439 Make MD more predictable when toggling sea level target.
* #9439 Avoid updating well path tangents when toggling sea level target
* Disable IO of well target at sea level


Co-authored-by: Magne Sjaastad <magne.sjaastad@ceetronsolutions.com>
2022-12-19 13:24:04 +01:00
Magne Sjaastad a577545212 Allow well target list to consume available space 2022-10-31 18:52:45 +01:00
Magne Sjaastad 4d5ceb0441 Skip duplicate well target locations to avoid numerical issues in curve generator 2022-10-31 18:52:45 +01:00
Magne Sjaastad c74701b687 Rename several child() and children() functions 2022-05-31 15:05:07 +02:00
Magne Sjaastad f0ce04597d Merge pull request #8985 from OPM/8926-remove-useoptionsonly
AppFwk : Remove obsolete useOptionsOnly
2022-05-29 13:01:27 +02:00
Magne Sjaastad 74075cc9ab Merge pull request #8888 from OPM/8887-fix-reorder-capability
Fix reorder capability
2022-05-06 10:52:08 +02:00
Magne Sjaastad 5c72d31cc9 Improve well path target configuration (#8570)
Improve the scripting possibilities for well targets
Added tests and examples
2022-02-19 13:18:49 +01:00
Magne Sjaastad 3c35244809 #8420 Janitor: Remove empty parameters in initialization macros 2022-01-07 08:31:52 +01:00
Magne Sjaastad 2a65636ba3 #8250 Use variadic macros and remove obsolete parameters 2021-11-14 15:26:09 +01:00
Magne Sjaastad 8dbb1d5ccd Improve well path modeling
* Improve handling of MD at first target
* When sea level well target is disabled, update MD of first target
* Show well target spheres by default, allow toggling of spheres
* Activate well target modifiers when clicking on well targets
* Remove selection update causing an unstable 3D view
* Improve display and handling of multiple locations
* Add special 3D target for tie in well target
* Add slider to tie in MD input field
* Show MD in well path target table
* Delete all well path laterals when deleting a well path

* Python : Add lateral to parent well
* Python : Add perforation interval
2021-08-13 16:48:33 +02:00
jonjenssen ca0433ca3a Move well related pdm files into subfolders to clean up a bit 2021-07-15 13:47:16 +02:00