Commit Graph
4013 Commits
Author SHA1 Message Date
JJ 82aa009378 Dock system selection improvements and fixes (#14305)
* Make sure we don't trigger another select when a view in the project tree is selected.
* Fix for #14255 and related issues
* Make sure we can close and open a main window, keeping the layout when reopened.
2026-06-24 16:07:21 +02:00
Kristian Bendiksen ac97f76e97 #14312 Exclude user input events while pumping the event loop during crash reporting
reportCrash pumps a nested Qt event loop from within the signal handler to
let the async crash-report HTTP POST finish. Pumping all events also
dispatches buffered mouse/keyboard events, which re-enter arbitrary UI code
mid-crash and can re-trigger the faulting path, causing a double-fault
inside the handler. Pump with QEventLoop::ExcludeUserInputEvents so socket
and timer events still flow (the reply completes) while user input is held
back.

Fixes #14312
2026-06-24 16:06:12 +02:00
Kristian Bendiksen 1c39fed294 #14311 Fix crash selecting a polygon-in-view with no polygon assigned
The polygon field was added to the UI ordering by value rather than by
address, so an empty (null) polygon reference resolved to the
PdmObjectHandle overload of PdmUiOrdering::add and aborted on the null
assertion while building the property panel. Pass the field by address so
the field-handle overload is used, matching the other add calls.

Fixes #14311
2026-06-24 16:06:12 +02:00
Magne Sjaastad e3f7e3f1c7 #14309 Open summary case without UNSMRY data file as empty reader
A SMSPEC file without a UNSMRY data file is re-read on every request for a summary vector, since RifReaderEclipseSummary::open returns false and no reader is cached. For an ensemble with multiple realizations missing UNSMRY, this is a severe performance problem.

Guard RifReaderEclipseSummary::open so that when no ESMRY, h5 or resdata data file is present, it returns true and creates a valid but empty reader. Skip ESMRY conversion when no UNSMRY is present, and add RifEclipseSummaryTools::hasSummaryDataFiles to detect the missing data file.
2026-06-24 15:35:07 +02:00
Magne Sjaastad 1084684b3d #14309 Add tests for summary case without UNSMRY data file 2026-06-24 15:35:07 +02:00
Magne Sjaastad 592fe88d5b #14296 Fix spelling: tesselated -> tessellated 2026-06-24 11:52:33 +02:00
Magne Sjaastad 4e229c55d1 #14296 Fix contour map crash on degenerate grid bounds 2026-06-24 11:52:33 +02:00
Magne Sjaastad abe823c0ae #14298 Fix crash on out-of-range delta base time step in result info 2026-06-24 11:52:20 +02:00
Magne Sjaastad de10dcf0de #14300 Guard flow diagnostics frame access against out-of-range time step 2026-06-24 11:21:38 +02:00
Magne Sjaastad 81f4628fa6 #14302 Fix crash deleting all linked views with active cell filters 2026-06-24 11:21:13 +02:00
Magne Sjaastad dc7dc2f7db #14294 Fix crash duplicating GeoMech property filters into linked view 2026-06-23 13:07:51 +02:00
Magne Sjaastad 81f1aca0ba #14277 Hide property filter insert when not a collection child 2026-06-23 07:31:39 +02:00
Magne Sjaastad 203cf83334 #14283 Guard missing INTEHEAD keyword in Eclipse file readers
ecl_file_iget_named_kw() performs an unchecked vector access in ERT and
crashes (SIGSEGV) when the requested keyword does not exist in the active
file view. findAvailablePhases, readUnitsType and isExportedFromIntersect
called it for INTEHEAD without first checking the keyword is present. Guard
each call with ecl_file_get_num_named_kw(), matching the existing pattern in
this file.
2026-06-23 07:31:05 +02:00
Magne Sjaastad a4b8570b3a #14287 Fix out-of-range access when computing Max Fraction Tracer result 2026-06-23 07:29:51 +02:00
Magne Sjaastad 0df1df119e #14289 Guard against deleted result definition in geometry selection items 2026-06-23 07:29:21 +02:00
Magne Sjaastad 06cafed9bc #14275 Fix crash in multi-plot axis alignment when a plot lacks the queried axis
QwtPlot::axisWidget() returns NULL for an axis id that is not valid for a
given plot. RiuMultiPlotPage::alignAxis dereferenced the returned
QwtScaleWidget without a null check, causing a segmentation fault when a
plot in the grid does not have the queried axis. Guard the pointer in both
alignment loops, matching the existing null-check style in the function.
2026-06-22 15:29:44 +02:00
jonjenssen 6e6f29b86d Improve information icon in project trees. 2026-06-22 14:17:47 +02:00
jonjenssen 947680fdf9 Do not activate a 3d view that already is active. 2026-06-22 14:16:47 +02:00
Magne Sjaastad 033c2e06b0 #14262 Fix missing grid statistics context menu entries
The grid statistics plot and show commands were only added to the context menu when the cursor was inside the overlay info box, so right-clicking on the grid geometry no longer offered them. Always add the create and show commands, and keep only the copy-to-clipboard command gated by the info box position.
2026-06-22 12:13:53 +02:00
jonjenssen c4898a4f42 Fix crash when deleting non-visible plot from explorer 2026-06-19 20:41:49 +02:00
Magne Sjaastad 21d3869e44 Pass dock widget to internalCaptureSnapshot from the call site
Take the view's dock widget as a parameter instead of discovering it by walking the widget parent chain, so the caller supplies it directly. Also forward declare QImage in RimViewWindow.h instead of including it, and drop now unused includes in RimViewWindow.cpp.
2026-06-19 16:38:41 +02:00
Magne Sjaastad 8369fad029 Fix crash on project reset when accessing null project during teardown
RimProject::current() can return null while the project is being torn down. Guard the project access in the view-window lookups and valid-comparison-views query with an if-init statement so they return empty instead of dereferencing null.
2026-06-19 16:38:41 +02:00
Magne Sjaastad 3ae102ba6c #14241 MSW: Use valve segment MD for ICV COMPSEGS distances
ICV valve COMPSEGS rows used the cell overlap MD range within the valve coverage instead of the valve segment measured depth. The legacy tree export redirected the perforation intersections onto the ICV segment, so their COMPSEGS Start/End Length reflected the valve segment MD range. Restore that behavior by emitting the ICV COMPSEGS with the valve segment MD range while still selecting the overlapping cells. Fixes test_well_events test_wells_only_appear_at_their_event_dates.
2026-06-19 12:50:14 +02:00
Magne Sjaastad f4a7d2cb4a #14241 MSW: Fix dual-porosity perforation COMPSEGS over-reporting
The geometry-based MSW export emitted a COMPSEGS row for every cell a perforation overlaps in the whole-well geometric intersection. In dual-porosity models this splits a perforation across matrix cells at cell boundaries, producing extra connections that do not match the COMPDAT export. Restrict main-bore perforation COMPSEGS to the cells the perforation actually connects to, computed by clipping the well path to the perforation MD range and re-intersecting the grid, mirroring generatePerforationsCompdatValues. For single-porosity models the cell sets are identical, so this is a no-op.
2026-06-19 12:50:14 +02:00
Magne Sjaastad 3c5c160b93 #14241 MSW: Drop redundant FromGeometry suffix from branch builders
With the legacy tree-based path removed there is only one MSW branch construction approach, so the FromGeometry suffix is no longer needed. Rename buildMainBoreBranchFromGeometry, buildValveBranchesFromGeometry, buildFractureBranchesFromGeometry and buildFishbonesBranchesFromGeometry accordingly, and update the architecture diagrams.
2026-06-19 12:50:14 +02:00
Magne Sjaastad 3e0d2e22ff #14241 MSW: Remove obsolete TODO in buildMswWellExportData
The geometry-based MSW export now handles valve completions, fishbones laterals, fractures and tie-in laterals, so the comment describing these as unimplemented is no longer accurate.
2026-06-19 12:50:14 +02:00
Magne Sjaastad 5afdeac106 #14241 MSW: Update stale comments referencing deleted legacy classes
Remove references to the deleted RicMswItem/RicMswBranch/RicMswSegment tree and the removed collectWelsegsData collection functions from code comments in the geometry-based MSW export path.
2026-06-19 12:50:14 +02:00
Magne Sjaastad 313ed1e4fc #14241 MSW: Remove obsolete legacy MSW code and data structures
Remove the legacy tree-based MSW extraction path now that the geometry-based path is the only supported implementation. This deletes extractSingleWellMsw_Legacy and all unused tree-building helpers in RicWellPathExportMswTableData, trims RicMswTableDataTools to the shared helpers used by the geometry path, and removes the RicMswItem class family (RicMswBranch, RicMswSegment, RicMswCompletions, RicMswExportInfo, RicMswSegmentCellIntersection, RicMswValveAccumulators).

Also remove the useImprovedMswDataStructures preference and its keyword, and delete the obsolete legacy-vs-geometry comparison unit test.
2026-06-19 12:50:14 +02:00
Kristian Bendiksen a489db3e64 #14227 Compute depth-related geometry results once for both porosity models
The depth-related geometry results (DEPTH/DX/DY/DZ/TOPS/BOTTOM) are derived
purely from the shared grid geometry and were computed independently for the
matrix and fracture porosity models. For dual-porosity cases this recomputed the
identical per-cell geometry twice.

Replace the per-model computeDepthRelatedResults() with a single static routine
that traverses the shared main grid once, computing each cell's geometry a single
time and writing it to every porosity model in which the cell is active. The
per-property already-computed guards and the temporary-grid recompute path are
preserved, so the stored values are unchanged. All six matrix+fracture call sites
now go through a thin RigEclipseCaseData::computeDepthRelatedResults() wrapper.
2026-06-19 12:25:55 +02:00
Kristian Bendiksen f50b4d1291 #14227 Add dual-porosity regression test for depth-related results
Add a value-asserting unit test that loads the dual-porosity test model and
verifies that the geometry-derived depth results (DEPTH/DX/DY/DZ/TOPS/BOTTOM)
are identical between the matrix and fracture porosity models for cells active
in both. This guards the upcoming change that computes these results in a
single shared grid traversal.
2026-06-19 12:25:55 +02:00
JJ b187bf85a7 Add context menu to empty plot window area (#14243)
* Add context menu to empty plot window area
Improve drag'n'drop into empty plot window area
2026-06-19 09:25:33 +02:00
Jon Jenssen c1af78a281 Activate plot widgets before snapshotting in regression tests. 2026-06-19 08:27:22 +02:00
Jon Jenssen 113c39a02e Make sure we track all 3d views when changing active windows in 3d viewer 2026-06-19 02:08:49 +02:00
Jon Jenssen 13fdf40a36 Fix regression test crash 2026-06-18 15:06:29 +02:00
magnesj 2a46109f6b Fixes by clang-tidy 2026-06-18 07:56:15 +02:00
Kristian Bendiksen 8209bd3ecf #14230 Fix deadlock when importing wells from OSDU
The GUI thread deadlocked on a non-recursive QMutex during OSDU well
import. The download-completion slots and DataLoadController::onTaskFinished
held a mutex while triggering progress updates, which call
QApplication::processEvents(). That re-enters the event loop and dispatches
another queued parquet-download-complete event for a different well, whose
handler then blocks trying to lock the same mutex.

Release the mutex before emitting taskDone in the OSDU well path and well
log data loaders, and before calling incrementProgress() in onTaskFinished.
The map access that the mutex protects stays inside the locked scope; the
captured ProgressInfo outlives the call (kept alive by blockUntilDone) and
incrementProgress() is thread-safe via self-marshaling to the GUI thread.

Fixes #14230.
2026-06-18 07:55:04 +02:00
Jon Jenssen 576fb32a6e Build fix 2026-06-17 13:55:32 +02:00
Jon Jenssen 0973dfd62b Some cleanup 2026-06-17 13:55:32 +02:00
Jon Jenssen fa8ed95a37 Make sure to track active 3d view even if it docks in plot window 2026-06-17 13:55:32 +02:00
Jon Jenssen 0c8c3865f1 Show icon marker in explorer if 3d viewer is docked in plot window 2026-06-17 13:55:32 +02:00
Jon Jenssen 789f433d9d Support toggle titlebar on/off for plots and 3d viewers 2026-06-17 13:55:32 +02:00
Jon Jenssen b11727b546 Work in progress- hide/show titlebars 2026-06-17 13:55:32 +02:00
Jon Jenssen b42979c136 Track selection in 3d viewers 2026-06-17 13:55:32 +02:00
Jon Jenssen 82ad7d61f8 Trigger selection update when a new tab is activated 2026-06-17 13:55:32 +02:00
Jon Jenssen 18cf162ce0 Some cleanup 2026-06-17 13:55:32 +02:00
jonjenssen 44488996f3 Clean up PDF snapshots a bit 2026-06-17 13:55:32 +02:00
Jon Jenssen 7c9b9705b7 Fix advanced snapshot export. 2026-06-17 13:55:32 +02:00
Jon Jenssen 255576d53d Clean up delete 3d views and project close/open
Update to latest qtadv docking
2026-06-17 13:55:32 +02:00
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