Commit Graph
2511 Commits
Author SHA1 Message Date
jonjenssen 52df6fd283 Snapshot work in progress 2026-06-17 13:55:32 +02:00
Jon Jenssen 361b4bc3db Work in progress: Support capturing snapshots with a given size. 2026-06-17 13:55:32 +02:00
Jon Jenssen c2811b1db8 Minor fixes 2026-06-17 13:55:32 +02:00
Jon Jenssen 9823f9c5a3 Update to latest qt adv docking version
Make sure copied 3d or plot views get a unique id
2026-06-17 13:55:32 +02:00
Jon Jenssen 3b43dac7d4 Use unique id for all 3d and plot dock widgets. 2026-06-17 13:55:32 +02:00
jonjenssen ba5308881b Some fixes 2026-06-17 13:55:32 +02:00
jonjenssen 2faa1cd149 Some cleanup 2026-06-17 13:55:32 +02:00
jonjenssen 3efc8ba144 Sync plot toolbars with active plot view 2026-06-17 13:55:32 +02:00
jonjenssen a82b8f5753 Fix reading old projects and restore plot views
Fix crash at exit in plot window
2026-06-17 13:55:32 +02:00
Jon Jenssen 09ea2e7028 Store dock state in project 2026-06-17 13:55:32 +02:00
Jon Jenssen bb2e0d2948 Work in progress 2026-06-17 13:55:32 +02:00
Jon Jenssen a1fe3739d1 Remove last traces of MDI 2026-06-17 13:55:32 +02:00
Jon Jenssen 967975828c Use global event handler for tracking active plot window 2026-06-17 13:55:32 +02:00
jonjenssen ff4a54121f Clean up main window ids 2026-06-17 13:55:32 +02:00
jonjenssen 6fd7888a6d Build fix 2026-06-17 13:55:32 +02:00
jonjenssen 797d9ac2db Work in progress 2026-06-17 13:55:32 +02:00
Jon Jenssen 7fd55a0b91 Active view tracking for 3d window 2026-06-17 13:55:32 +02:00
jonjenssen ad73f8d26c Work in progress 2026-06-17 13:55:32 +02:00
jonjenssen fce05bdb81 Work in progress 2026-06-17 13:55:32 +02:00
jonjenssen ff40662366 Work in progress 2026-06-17 13:55:32 +02:00
Jon Jenssen 122cb01592 Work in progress 2026-06-17 13:55:32 +02:00
jonjenssen 6adb5cb881 Update title in 3d window 2026-06-17 13:55:32 +02:00
Jon Jenssen d2d7c6ac61 First non-MDI version. Still some missing links and features. 2026-06-17 13:55:32 +02:00
jonjenssen fee0599139 Work in progress 2026-06-17 13:55:32 +02:00
Jon Jenssen a28340063f Work in progress 2026-06-17 13:55:32 +02:00
jonjenssen 2c9e148fc6 Work in progress 2026-06-17 13:55:32 +02:00
Jon Jenssen aa9edc43bb Work in progress 2026-06-17 13:55:32 +02:00
jonjenssen cc9a075fc6 Testing 2026-06-17 13:55:32 +02:00
Kristian Bendiksen 8c17130714 #14223 Calculate geometry grid properties when creating grid from python API
Compute the depth related geometry properties (DEPTH, DX, DY, DZ, TOPS, BOTTOM) in RimCornerPointCase::createFromCoordinatesArray and replaceGridFromCoordinatesArray, matching the behavior when importing a grid from file. The computation is guarded by the same autoComputeDepthRelatedProperties preference used by the file importers.
2026-06-15 15:29:33 +02:00
Kristian Bendiksen 6199beb3c9 #12313 Investigate null pointer when destructing RimProject
Fixes #12313.
2026-06-12 16:31:22 +02:00
Kristian Bendiksen 8636180ee5 #13801 Fix invalid progress max when reading well logs
The countWellLogs lambda in RimWellPathCollection::loadDataAndUpdate()
declared its return type as bool, truncating the well log count to 0 or 1.
The progress max was then too low, and loading projects with two or more
well logs ran the progress value past max, triggering reportError() in
caf::ProgressInfo during regression tests.
2026-06-12 16:30:10 +02:00
Magne Sjaastad 44e32b840b #14205 Fix crash when reloading Roff or GRDECL grid
Guard against a null case pointer in findSummaryCaseFromEclipseResultCase. The reload path passes dynamic_cast<RimEclipseResultCase*> of the case, which is null for Roff and GRDECL input cases, causing a null dereference in RimCase::gridFileName().
2026-06-11 22:26:33 +02:00
Magne Sjaastad 7b4ca01160 Display ensemble file set name in RimReservoirGridEnsemble 2026-06-11 16:29:04 +02:00
Kristian Bendiksen d78d7cf430 #14192 Update color legend in place on roff property re-import
Reuse RimColorLegendCollection::updateColorLegend in the two roff import
sites that previously deleted and recreated the legend bound to a result,
so views referencing the legend keep their binding on re-import.

Extract the rock color matching from createColorLegendMatchDefaultRockColors
into matchDefaultRockColors so the facies branch can pass matched colors to
updateColorLegend. Remove the now-unused
RimColorLegendCollection::createColorLegend.
2026-06-10 18:02:07 +02:00
Kristian Bendiksen a4fe22508a #14192 Python: Update discrete property color legend in place instead of delete/create
Address review feedback on #14199: deleting and recreating the legend left
views bound to the old legend pointing at a deleted object. Add
RimColorLegendCollection::updateColorLegend and a matching UpdateColorLegend
scriptable method that mutate the existing custom legend (name and items) so
referring views keep their binding and are notified once. A new legend is only
created when none is registered for the result or the registered legend is a
standard legend.

set_discrete_property_category_names now performs a single atomic call instead
of delete + create + per-item appends. The empty-dict removal path still uses
DeleteColorLegend.
2026-06-10 18:02:07 +02:00
Kristian Bendiksen 5a083331b0 #14192 Python: Fix duplicate discrete property legend on repeated category-name calls
RimColorLegendCollection::deleteColorLegend erased the default-legend map
entry before looking the legend up, so findDefaultLegendForResult always
returned null and the old legend was never removed from m_customColorLegends.
Each set_discrete_property_category_names call for the same property left an
orphaned legend behind and appended a new one.

Look up the legend before erasing the map key, and guard against deleting a
standard legend that may have been registered as a default.
2026-06-10 18:02:07 +02:00
Kristian Bendiksen b274641e0c #14198 Exclude ResInsight-generated faults from default fault distance selection
When a new Fault Distance defaults to all faults, the ResInsight-generated
undefined grid faults were ticked by default. Add RimFaultInView::isGeneratedFault
and filter these faults out of the default selection in both the UI feature and
the Python command. An explicit fault selection is still honored.
2026-06-10 13:11:16 +02:00
Kristian Bendiksen 5b6658f099 #14198 Remove generated cell result entry when fault distance is deleted
When a fault distance object is deleted or renamed, the generated cell
result was only emptied via clearScalarResult, leaving its name in the
GENERATED result-variable dropdown. Follow the RimGridCalculation
deletion pattern: reset any view displaying the result to None and tag
the result entry as REMOVED so it disappears from the dropdown.
2026-06-10 13:11:16 +02:00
Magne Sjaastad 01ce94d539 #14174 Fix crash when creating Correlation Report Plot
Guard against empty curve definitions and time steps in
RimCorrelationPlotCollection. When the first ensemble has no FOPT
summary vector, the tornado/cross-plot curve definition vector was
empty and calling .front() on it dereferenced invalid memory,
causing a segfault in RiaSummaryCurveDefinition::summaryAddressY().
2026-06-10 13:09:43 +02:00
Magne Sjaastad ed96d155fc #14007 Contour Map: rebuild projection when cached case data is stale
Reloading a grid file frees and recreates RigEclipseCaseData. The contour map projection caches raw pointers into the case data and previously only refreshed them when reset explicitly via RimReloadCaseTools::updateAll3dViews(). Callers of RimEclipseCase::reloadEclipseGridFile() that bypass updateAll3dViews(), such as RimOpmFlowJob::onCompleted(), left the projection holding dangling pointers that crashed in generateResults/hasResultEntry on the next redraw. The projection now detects that its cached RigEclipseCaseData no longer matches the current case and rebuilds itself before the stale pointers are dereferenced.
2026-06-10 12:33:45 +02:00
Magne Sjaastad 96aceb23a7 #14168 Fix crash creating grid statistics plot for result without statistics cache entry
When creating a grid statistics plot from a view result whose address is valid by name but not present in the case result cache, statistics() was indexed with UNDEFINED_SIZE_T and the CAF_ASSERT aborted. Guard the all-cells branch with hasResultEntry() so an empty histogram is produced instead.
2026-06-10 12:33:25 +02:00
Magne Sjaastad 221305b741 Fix null dereference in 2D intersection view synchronization
In Rim2dIntersectionViewCollection::syncFromExistingIntersections the
branch reusing an existing view dereferenced the RimGridView ancestor
without a null check, while the branch creating a new view already
guarded it with "if ( view )".

Intersections created without a RimGridView ancestor (for example via
the gRPC/Python API on a detached intersection collection) have a null
ancestor, causing a crash on the cellVisibilityChanged disconnect/connect
calls. Guard these calls with the same null check used in the new-view
branch and always push the existing view back into the collection.
2026-06-10 08:47:02 +02:00
Magne Sjaastad 093ee4f765 Faults: Always show faults against inactive cells by default 2026-06-09 09:38:00 +02:00
Kristian Bendiksen a90e7bb26a #14101 Make Fault Distance objects deletable
Enable the standard tree Delete action on RimFaultDistance via
setDeletable( true ). On deletion, remove the generated FAULTDIST result
from the case in the destructor; the object is still attached to the
project tree while the destructor body runs, so the owner case is
reachable.
2026-06-08 21:42:19 +02:00
Kristian Bendiksen 12cd173c62 #14101 Add Data Analytics PDM folder with right-click creation
Replace the transient Data Analytics tree label with a real
RimDataAnalyticsCollection object that owns the case-level fault distance
collection and the well target mappings. The folder shows its analytics
objects flattened and exposes a right-click menu to create a new Fault
Distance and a new Well Target Mapping.

Migrate case-level well target mappings from older project files into the
new collection via initAfterRead; fault distance is unreleased and needs
no migration. The case accessors faultDistanceCollection() and
addWellTargetMapping() now forward to the new object, and the creation
features resolve a selected Data Analytics folder.
2026-06-08 21:42:19 +02:00
Kristian Bendiksen 6681ba566f #14101 Show case-level Data Analytics folder when first Fault Distance is created
The Data Analytics folder is built in RimEclipseCase::defineUiTreeOrdering and
is hidden while the fault distance collection is empty. Adding the first result
only refreshed the view (or the collection itself), not the case, so the case
tree ordering was never re-run and the folder stayed hidden until an unrelated
event rebuilt the tree.

Refresh the owner case from the collection whenever items change, mirroring the
RimDataFilterCollection precedent. onItemsChanged adds the folder when the first
result appears, and onChildDeleted removes it when the last result is deleted.
2026-06-08 21:42:19 +02:00
Kristian Bendiksen c2b4f83643 #14101 Rename RimFaultDistanceResult/Collection classes and files to RimFaultDistance/RimFaultDistanceCollection
Carries the "Fault Distance" rename through to the C++ class names, file
names, PDM/scriptable keywords and the Python API (add_fault_distance,
class FaultDistance). The RicNewFaultDistanceResultFeature command class
keeps its name.
2026-06-08 21:42:19 +02:00
Kristian Bendiksen e2d1591edf #14101 Add Generate button for Fault Distance and stop auto-recompute on selection change 2026-06-08 21:42:19 +02:00
Kristian Bendiksen 74c507a5fa #14101 Move Fault Distance to a case-level Data Analytics folder above the first view 2026-06-08 21:42:19 +02:00
Kristian Bendiksen 2fc99a8ecb #14101 Rename Fault Distance Result object and collection to "Fault Distance" 2026-06-08 21:42:19 +02:00