Commit Graph
178 Commits
Author SHA1 Message Date
Magne Sjaastad 1660e333ff #14493 Delete curves for all cases in one pass when deleting a summary ensemble
deleteSummaryCaseCollection() looped over every case in the ensemble, and for each case scanned every summary plot and called updateConnectedEditors() on every multi plot. For an ensemble with many realizations this scanned each plot once per realization, and updated the connected editors once per realization and multi plot. This showed up as a hot spot in the profiler.

Replace deleteCurvesAssosiatedWithCase() with deleteCurvesAssosiatedWithCases(), which takes a set of cases and returns whether anything was deleted. Each plot is now scanned once, and the connected editors of a multi plot are updated only when that multi plot actually lost a curve.

RicCloseSummaryCaseFeature and RicCloseObservedDataFeature are updated to the new signature. RicCloseSummaryCaseFeature also scans each plot once instead of once per case.
2026-08-10 12:38:41 +02:00
Magne Sjaastad 56e98ba1c4 #14476 ApplicationLibCode: Replace CVF_ASSERT with CAF_ASSERT
Migrate all assert macros in ApplicationLibCode to CAF_ASSERT and remove every
use of cvfAssert.h.

CVF_ASSERT is replaced one to one. CVF_TIGHT_ASSERT is also replaced by
CAF_ASSERT, which is semantically exact: CVF_ENABLE_TIGHT_ASSERTS is 1 only
under _DEBUG, and that is what CAF_ASSERT now does. The two CVF_FAIL_MSG sites
become CAF_ASSERT( false && "message" ), preserving the message with the idiom
already used elsewhere in the code base.

Counts before and after: CVF_ASSERT 1044 to 0, CVF_TIGHT_ASSERT 66 to 0,
CVF_FAIL_MSG 2 to 0, cvfAssert.h references 154 to 0.

Include handling: files that included cvfAssert.h directly now include
cafAssert.h instead, includes left dead by the migration are removed, and files
that were relying on cvfAssert.h transitively get an explicit cafAssert.h. Files
that reach cafAssert.h through another caf header are left unchanged; a missing
include here is a compile error, not a silently disabled assert.

ResultStatisticsCache links only LibCore and therefore had no path to
cafAssert.h. Add the cafPdmCore directory as a private include path rather than
linking the library, since cafAssert.h is header only.

Note that this stops these asserts from firing in Release and RelWithDebInfo,
where CVF_ASSERT was previously active.
2026-08-07 15:05:57 +02:00
jonjenssen 2faa1cd149 Some cleanup 2026-06-17 13:55:32 +02:00
jonjenssen 797d9ac2db Work in progress 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
Kristian Bendiksen bb0afbf962 #13126 RiaLogging: Extract errorInMessageBox to RiuMessageDialog
Move the QMessageBox-displaying helper out of the logging utility into a
dedicated UI class. RiaLogging.h no longer pulls QMessageBox/QWidget into
the ~270 files that include it. Behavior is preserved: showError displays
the dialog when running interactively (and not under regression tests),
then forwards the text to RiaLogging::error.
2026-05-08 10:11:09 +02:00
Magne Sjaastad bd3836ba25 #13901 ShowPlotData: Invert dependencies via capability mixins and text-dialog signal 2026-04-20 14:09:25 +02:00
Magne Sjaastad ba1055fbc4 #13813 Remove duplicated snapshotWindowContent overrides that replicate base class behavior 2026-03-30 17:59:01 +02:00
Magne Sjaastad c49b6986c0 CorrelationReportPlot: Refinements, fixes, and simplifications
- Use RimViewWindow in RiuCorrelationReportPlotWidget constructor
- Update default dock layout to match desired screenshot
- Generalize context menu selection fixer to use caf::PdmObject
- Simplify code, fix event filter lifetime, plot titles, and disable summary plot zoom

RiuSummaryQwtPlot: Add missing override keyword to setZoomEnabled
2026-03-30 12:06:57 +02:00
Magne Sjaastad 8e4000590c Add RiaSummaryAddressCollectionTools utility module
Refactor summary address collection logic into a new utility module, RiaSummaryAddressCollectionTools, with functions for object identification, curve definition generation, duplicate filtering, and address-to-case/ensemble mapping. Update RimSummaryPlot to use these utilities, improving modularity and maintainability. Add comprehensive
unit tests for the new module.

Adds test for mock summary case
2026-02-18 14:27:36 +01:00
Magne Sjaastad 395ed06725 Update readout settings for created plot 2025-10-07 12:17:42 +02:00
Kristian Bendiksen f793abe46d #12558 Summary Plot: Fix crash when deleting sub plots.
The std::unique_ptr<RiuPlotWidget> would delete the widget when
RimSummaryPlot object was recreated. This would lead to a
double-delete since the RiuPlotWidget was already deleted by Qt
through the parent-child relationship.

Fixed by using QPointer, and leaving the cleanup to Qt.

Fixes #12558.
2025-08-11 15:04:24 +02:00
Kristian Bendiksen ade8e1d7e6 Remove QT_CHARTS dependency. 2025-07-30 13:39:02 +02:00
Magne Sjaastad 2f9971cb30 Enhances ensemble curve handling and performance
* Removes obsolete code
* Return first non-empty return value from reader
* Simplifies water cut curve visibility check
* Defers the page update until after all plots have been added.
* Add settings to control number of threads
* Refactors ensemble curve handling and visibility

Improves the efficiency of ensemble curve set management by separating realization and statistics curves into distinct collections. This allows for more targeted operations, such as selectively showing/hiding realization curves without affecting statistics.
Also defers data loading of curves until they are actually displayed, optimizing performance.
The visibility updates are modified to optionally skip updating the parent plot, providing more control over replotting behavior and preventing unnecessary updates.
2025-07-30 07:16:29 +02:00
Kristian Bendiksen ea0fb1bdd8 #12559 Fix crash when creating new summary cross plot curve.
Fixes #12559.
2025-07-04 18:54:35 +02:00
Magne Sjaastad b99a213ae7 Add resampling method to RiaCurveMerger
Delete unused parameter
2025-06-16 10:37:34 +02:00
Magne Sjaastad ad83985e62 #12457 Move management of time axis annotations
Use RimTimeAxisAnnotationUpdater for management of annotation objects.
2025-05-08 07:27:42 +02:00
Magne Sjaastad 5f0dd58de9 Improves zoom behavior in multi-plots
Refactors zoom handling in multi-plot scenarios to ensure consistent
axis ranges and proper synchronization between subplots, especially
when linking subplot axes.

Removes direct zoom event handling from subplots and centralizes zoom
logic in the multi-plot container.

This ensures that the 'Zoom All' operation correctly adjusts the
Y-axis ranges based on the configured aggregation method and linked
axes settings.
2025-04-04 13:37:53 +02:00
Magne Sjaastad 70e37e8f5d #12283 Add filter based on summary value at timestep
* Show collapsed range as a single line
* Improves plot annotation label placement
* Adds option to show/hide axis properties
* Adjusts plot info label alignment
* Adds filter by summary value functionality
* Enables ensemble creation from filtered cases
2025-04-01 14:51:13 +02:00
Magne Sjaastad 7e33fee1ac Avoid include in headers 2025-03-14 14:03:09 +01:00
Magne Sjaastad c728979bc1 #12203 Improve selection and highlight of curves in summary plot
Skip distance check when clicking in the plot, always select closest curve
When pressing CTRL, toggle highlighted curves
Allow multi select of realizations in Project Tree
Avoid curve highlight operation during zoom
Make sure wheel zoom works for a single plot
2025-03-07 11:05:39 +01:00
Magne Sjaastad 85abd0c51b #12181 Grid Cell Curve: Allow stacking of grid cell curves in summary plot
* Add stacking to grid cell curves in summary plot
* Add spacing in label text "Cell I J K"
* Add padlock icons and do not delete locked curves
* Show padlock icons only when summary plot is automated
2025-02-24 14:20:13 +01:00
Magne Sjaastad bbd79cca6a #12168 Allow highlight of curves based on selection of realization object
Use the first available highlighted curve as basis for display of horizontal readout value. Fallback to single realization curves.
When selecting a realization in project tree, highlight all related curves
Make sure zoom rect works when readout annotations are active
2025-02-18 11:04:40 +01:00
Magne Sjaastad b165488828 Remove settings settings from plot editor
Remove appearance and name settings
2025-02-13 15:12:24 +01:00
Magne Sjaastad 0604eea74b #12157 Always show vector name when underscore is present 2025-02-13 15:12:24 +01:00
Magne Sjaastad 04cd253fc6 Move files
Fix includes
2025-02-13 15:12:24 +01:00
Magne Sjaastad 037102196e #12090 Add option to hide time labels on x axis 2025-02-06 07:42:03 +01:00
Magne Sjaastad 2021b286ab Show time annotation in all sub plots (#11906)
* Prepare for more customization of annotation objects
* Move files
* Add configuration of readout lines in sub plots. The location along the time axis is based on the current mouse cursor position. The location is distributed to all sub plots. Optional support for readout of values at the current time.
2025-02-05 17:19:01 +01:00
Magne Sjaastad 67e6df28b5 #11857 Make sure the summary curve type is updated
Always compute curve type Rate or Accumulated based on address if Auto curve type is set.
2024-11-06 07:16:07 +01:00
Magne Sjaastad df091336e0 Move summary tools into separate folder 2024-10-22 07:28:43 +02:00
Magne Sjaastad 42d700ff7d Remove unused code 2024-10-16 14:32:36 +02:00
Kristian Bendiksen e9c46c5cec Rename RimSummaryCaseCollection to RimSummaryEnsemble. 2024-07-30 08:55:12 +02:00
Magne Sjaastad 34e30b38d3 #11372 Make sure regression curves can be resampled
Make sure a regression curve based on observed data can be resampled. Split display of curves, one section for resampled curves and one section for observed curves without resampling.
2024-07-25 10:29:16 +02:00
Magne Sjaastad aea804b161 Rename to improve readability 2024-05-03 14:39:39 +02:00
Magne Sjaastad ce513be638 Remove all use of .uiCapability()->setUiTreeHidden( true ); 2024-02-05 10:15:36 +01:00
Magne Sjaastad 01a082f9fc #11161 Change default tree visibility state for childField and childArrayField 2024-02-05 10:15:36 +01:00
Magne Sjaastad 57cb3c0a0b #11141 Improve curve and plot title for calculated summary curves
Remove obsolete special handling of calculated curves
2024-02-02 10:27:20 +01:00
Kristian Bendiksen 08f9e9b5bb Janitor: move historyIdentifier/differenceIdentifier. 2023-12-04 17:26:44 +01:00
Magne Sjaastad 163b742ad0 Remove drag/drop of individual summary curves
Drag/drop of individual curves is unstable. Remove drag/drop, as arrow buttons can be used to change ordering of curves.
2023-11-27 13:14:16 +01:00
Magne Sjaastad 4b0f2b362e Add support for placing legend at several positions
Show legends on top of preview plot
2023-11-27 13:14:16 +01:00
Magne Sjaastad 7d8b947a71 Make sure default left and right axis always is used if available 2023-11-27 13:14:16 +01:00
Magne Sjaastad 8bc7562e9e clang-format improvements 2023-11-27 13:14:16 +01:00
Magne Sjaastad 12f24af154 Remove obsolete source stepping code
After merging the cross plot with the summary plot, the sources stepping can be simplified. Remove obsolete sources stepping code, to prepare for other source stepping issues.
2023-11-06 10:20:22 +01:00
Magne Sjaastad 12794f80f2 Area Fill: Fix are fill issue related to stacking of curves 2023-10-20 15:43:18 +02:00
Magne Sjaastad c34d123dee Call zoomAll when curve stacking is changed 2023-10-13 08:08:35 +02:00
Magne Sjaastad 51fe80b897 Create cross plot menu from list of addresses in preferences 2023-10-09 13:28:36 +02:00
Magne Sjaastad 263e39b97b Add regression curves to ensemble statistics curves
* Add statistics enum
* Support ensemble statistics curve as data source for regression curves
* Allow creation of regression curves from statistics curves
* Make sure regression curves are updated after source curves
* Add state to use full or user defined range for regression source data
* Add isRegressionCurve
* Make sure source stepping works when regression curves are present
2023-09-30 11:07:23 +02:00
Magne Sjaastad d34bb8a64c Improve ensemble cross plot statistics
* Support cross plot in plot templates
* Fix source stepping for cross plots
* Show cross plot data in "Show Plot Data"
* Use bin size and realization count when computing cross plot statistics
2023-09-28 14:32:32 +02:00
Magne Sjaastad 1b1984e216 Adjustments related to cross plot curves
* Verify vector size only for cross plot regression curves
* Add filtering on axis orientation
Makes it possible to show only horizontal or vertical axes when selecting an axis to attach a curve to.

* Send curvesChanged signal to trigger multi plot updates
This signal will trigger update of axes and set correct scaling factor

* Use object name for axis object
* Use address for both x and y axis to create ensemble curve name
* Fix bug for drag/drop of ensemble object into plot
* Add RiaSummaryCurveAddress to RiaSummaryCurveDefinition
* Remove SummaryDataSource
* Use childFieldChangedByUi to trigger update of curves and titles
2023-09-27 10:18:52 +02:00
Magne Sjaastad 55687c4e3e Fix conversion into new cross plot structure
* Fix conversion into new cross plot structure
* Guard null pointer
* Create one multi plot per cross plot
2023-09-25 12:23:39 +02:00