Commit Graph
57 Commits
Author SHA1 Message Date
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
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
Jon Jenssen a1fe3739d1 Remove last traces of MDI 2026-06-17 13:55:32 +02:00
Kristian Bendiksen 90c7bcf743 #14008 MultiPlotPage: Avoid abort on stale visible-index mapping
Nested Qt event processing during toolbar clearing can trigger
performUpdate while the visible-index-to-position mapping is out of
sync with the current visible plot widgets. The lookup lambda in
alignAxis previously asserted on a miss, calling abort() which the
SIGABRT handler reported as a crash. Return std::optional and skip
widgets without a mapping entry instead, matching the defensive
null-pointer style used elsewhere in this file.

Fixes #14008.
2026-05-18 21:48:13 +02:00
Magne Sjaastad 387b19ef62 #12276 Add RFT correlation report plot with cross-plot and tornado plot
* Fix defensive guards and TVD interpolation

Guard against out-of-bounds IJK and invalid cells in RifReaderRftInterface.
Guard against null eclCase in RimDataSourceForRftPlt::address.
Guard against null plot widgets in RiuMultiPlotPage.
Fix interpolateMdFromTvd corrupting valid entries after infinity TVD values
by skipping infinity entries in the first pass and tracking only the last
two valid MD values for the startMD adjustment.

* Add RiuQwtCurveSelectorFilter for click-to-select realization in Qwt plots

New shared event filter class that installs on a QwtPlot canvas and calls a
user-supplied callback with the closest data point on each click.

Migrate the local CurveSelectorFilter in RimParameterResultCrossPlot to use
the new shared class. Add Z_HIGHLIGHTED_CURVE to ZIndex enum and replace all
raw z-order integers in RiuQwtPlotCurveDefines with named constants.

* Add RFT correlation report plot with cross-plot and tornado plot

New classes:
- RimRftCorrelationReportPlot: composite plot showing an RFT well log track
  alongside a parameter cross-plot and a tornado plot sub-plot.
- RimParameterRftCrossPlot: cross-plot of ensemble parameters vs RFT-derived
  measured depth values, with click-to-select realization support.
- RimRftTornadoPlot: tornado plot with correlation-sorted parameter list and
  click-to-select realization support.
- RicCreateRftCorrelationReportFeature: context menu command on RimWellRftPlot
  that creates a RimRftCorrelationReportPlot in the correlation plot collection.

Wire up in RimCorrelationPlotCollection and RimContextCommandBuilder.

* Add click-to-select and highlight selected realization in RFT plots

Install RiuQwtCurveSelectorFilter on RimWellRftPlot canvas to support
click-to-select realization. Highlight the selected realization using a
contrast color (orange-red) and increased line thickness. React to both
click-to-select in the plot and selection changes in the Data Sources panel.

Add Z_HIGHLIGHTED_CURVE z-order and replace raw z-order integers with
named constants in RimWellRftPlot.

Highlight selected realization with XCROSS symbol in RimParameterRftCrossPlot
via RimSummaryEnsembleTools::findSummaryCase.

* RimWellRftPlot: add Create RFT Correlation Report to canvas right-click menu

Override appendMenuItems in RimWellRftPlot to add RicCreateRftCorrelationReportFeature.
Call appendMenuItems from RiuMultiPlotPage::contextMenuEvent so any plot type
can contribute canvas menu items without modifying RiuMultiPlotPage.

* RicShowPlotDataFeature: support RimRftCorrelationReportPlot

Add RimRftCorrelationReportPlot to the isCommandEnabled check and expand
it into its cross-plot and tornado sub-plots in onActionTriggered, matching
the pattern used for RimCorrelationReportPlot.
2026-04-16 16:45:44 +02:00
Magne Sjaastad a2535e5eeb #13288 Fix segmentation fault in multi-plot overlay frame clearing
Fix iterator invalidation issue in RiuPlotWidget::clearOverlayFrames() that caused segmentation faults when accessing QPointer objects during collection modification. The method now safely collects matching frames first, then removes them in a separate loop with proper null pointer checks.
2025-12-08 08:33:54 +01:00
Kristian Bendiksen 8f825c3cef #12534 Refactor: Simplify RiaDefines::MultiPlotPageUpdateType usage 2025-08-22 16:10:04 +02:00
Kristian Bendiksen ade8e1d7e6 Remove QT_CHARTS dependency. 2025-07-30 13:39:02 +02:00
Magne Sjaastad 5f7823b8d3 Use point size when defining font size
Avoid pixel size for easier config across multiple environments
Set default font size for plots to 10 points
Use Small instead of XSmall for default font in plot
Remove pt postfix to indicate point size
2025-03-10 16:56:16 +01:00
jonjenssen 711cb267fd Polygon UI updates (#11975)
* Polygon UI updates
2024-12-06 14:26:30 +01:00
Magne Sjaastad c759a11888 Cmake cleanup and selected Qt6 adjustments
- Avoid warning using newer CMake by removing obsolete cmake requirements in sub projects
- Several adjustments preparing for Qt6
2024-04-17 15:06:51 +02:00
Magne Sjaastad 030688cff6 Several adjustments related to Qt6
* Avoid ambiguous definition during unity build on Windows
* Add missing include
* Add Qt6 to expressionparser
* Add Qt6 to nightcharts
* Replace forward define of QStringList with include <QStringList>
* Use toMSecsSinceEpoch
* Use setContentsMargins
2024-04-16 14:22:15 +02:00
Magne Sjaastad 88a7ef342c Increase spacing between icon and text in label 2023-11-27 13:14:16 +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
Magne Sjaastad 9a6e37a2f9 Adjustments for release
* #9681 Disable auto plot title check box when typing a custom name
The Auto Plot Title check box is not possible to click on using the mouse. A useful workaround is to disable the check box when the user enter a custom name in the name field.

* #10361 Make sure all objects change color when selecting curve color
Add support for direct change of all selected curve objects when changing color

* Use title as first field in group to avoid Qt checkbox not reacting to mouse click

* #9681 Disable auto name when name is changed in sub plot

* #10344 Surfaces: Add option to exclude inactive cells

* #10369 Use one color for bars in tornado plot

* Update license info
2023-06-09 14:09:08 +02:00
Magne Sjaastad 952e766c2f Update clang-format.yml (#10068)
* Update to clang-format-15
Removed two custom .clang-format files in subfolders of AppFwk

* Fixes by clang-format
2023-04-13 07:05:53 +02:00
jonjenssen 4389b15e37 Reduce space around legend texts for better visuals. 2023-03-11 14:16:25 +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
Jon Jenssen 8c0719c75f Add "Add plot" to empty multiplot area context menu 2022-12-07 08:12:06 +01:00
Kristian Bendiksen 21a2f2b2c9 #9438 Multiplot: Avoid overwriting font sizes. 2022-11-29 19:29:58 +01:00
Magne Sjaastad f6bde92d81 Remove unused space caused by bottom margin 2022-10-27 12:43:46 +02:00
Magne Sjaastad 1d23e8f5c9 Show packer in RFT topology track
* Show packers in topology track
* Support optional display of property axis values
* Add legend item clickable option to RimPlotWindow
2022-10-13 13:03:55 +02:00
Kristian Bendiksen 52cee02ffe MultiPlot: Fix small empty legend when toggling legend position. 2022-09-14 16:01:39 +02:00
Kristian Bendiksen dfbdfaa726 #9293 MultiPlot: avoid removing non-legend overlays.
The plots can have other kinds of overlays that should not be removed.

Fixes #9293.
2022-09-14 16:01:39 +02:00
Magne Sjaastad c734a22bd6 Improve user interface for axis linking
Several adjustments to UI as discussed with Håkon and Alireza.

* add link/unlink command to right-click menu of axis
* select curve in project tree when clicking on legend item
* make sure internal legend is always visible when toggling plot
* fix issue when using sub plot as data source for axis range
2022-09-09 16:06:56 +02:00
jonjenssen 2aedf38f79 Highlight the curve belonging to the legend you click on. (#9259)
* Highlight the curve belonging to the legend you click on.
* Make sure legend curve order remains the same when changing hilited curve
2022-09-06 07:21:24 +02:00
Kristian Bendiksen 7f54703642 #9233 Correction Report Plot: disable axes alignment for better spacing.
Regression introduced in 71d18b9e76.
2022-08-30 06:42:51 +02:00
Kristian Bendiksen 5ed12b17cd #9233 Fix regression in correlation plot
Introduced in be236cb.
2022-08-30 06:42:51 +02:00
Jon Jenssen 9246f06b8f Make sure font size is updated in legend refresh. 2022-08-24 17:45:42 +02:00
Kristian Bendiksen 8eab80f446 #9209 Refactor RiuMultiPlotPage/RiuSummaryMultiPlotPage plot reinsertion. 2022-08-22 19:38:32 +02:00
Kristian Bendiksen 9d5a4e7939 #9202 Summary Multi Plot: add option for having the legend inside the plot 2022-08-18 08:50:16 +02:00
Kristian Bendiksen be236cb644 #9202 Well Log Plot: add option for having the legend inside the plot 2022-08-18 08:50:16 +02:00
Kristian Bendiksen c16264497d #9117 Summary/Well Log Plot: fix missing update on legend font size change. 2022-08-15 15:09:27 +02:00
Kristian Bendiksen ffc58fedc8 Multiplot/WLP: fix missing update of title font size 2022-08-15 15:09:27 +02:00
Kristian Bendiksen 71d18b9e76 #9093 MultiPlot: improve axis alignment by resizing scales 2022-08-10 16:39:34 +02:00
Kristian Bendiksen eedebd71a5 #9161 QtCharts: Refactor to make QtCharts optional again. 2022-08-08 13:29:41 +02:00
Magne Sjaastad d4edc15215 Regression test fixes (#9105)
* Do not show Open Summary Plot in 3D view Property Editor
* Regression Test: Fix missing update of correlation report plot
A fix was introduced in 73d598ee7e to avoid a crash when deleting a multi plot. This had a unintended side effect causing the sub plots in correlation report plot to not be inserted properly.

* Bump release version
2022-07-01 11:36:49 +02:00
Magne Sjaastad c199f960e3 #8949 Plot Update: Improve visual stability when clicking on curves
adjustSize() causes the plot to resize twice which is annoying. Cache the last child count to avoid calls to adjustSize().
2022-05-31 14:20:38 +02:00
Magne Sjaastad fe1acc93a6 #8938 Sub Plot : Fix visibility of legend
Make sure legends are set visible if any items are present in the legend
2022-05-31 14:20:38 +02:00
jonjenssen 3de8010c2b Source stepping and toolbar updates (#8866)
* Move layout options to separate toolbar
* Enable stepping on quantities, remove special history curve stepping for now
* Allow stepping ensembles and cases
* Add step next/prev and add new sub plot
2022-05-03 11:30:09 +02:00
Magne Sjaastad 73d598ee7e Fix crash during delete of multiplot 2022-04-26 15:05:00 +02:00
Magne Sjaastad 853b4a26d5 #8822 Summary Axis: Add tick mark count to y-axis 2022-04-22 23:14:48 +02:00
Magne Sjaastad dde0487024 Multiaxis: add support for Qwt multiaxis plot 2022-04-04 12:10:20 +02:00
jonjenssen 22d6e3f853 Merge pull request #8765 from OPM/summarymultiplot_performance2
Summary Multiplot performance improvements and fixes
2022-04-01 19:23:27 +02:00
jonjenssen ebba37a623 Merge pull request #8754 from OPM/multiplot_improvements
Summary Multiplot: add new plot from a single curve in an ensemble plot and improve general plot performance
2022-03-31 12:34:07 +02:00
jonjenssen 8d3f41ded8 Merge pull request #8732 from OPM/summarymultiplot_updates2
Summary Multiplot updates
2022-03-25 11:39:12 +01:00
Magne Sjaastad 696c6a15fa #8676 QtChart : Create curve legend widget for multiplot 2022-03-23 14:28:56 +01:00
jonjenssen e20adcdb69 Further Summary Multiplot improvements (#8707)
* Create a specialized summary plot page for showing multi plots
* Make summary plots always show in grid of selected size.
* Allow dragging summary addresses into empty main window area
* Limit grid to 4x4 cells
2022-03-21 11:31:25 +01:00
Magne Sjaastad 8d3f381b4f Janitor: Update qwt to 6.2.0 2022-03-18 13:16:07 +01:00