Removes conditional compilation for OpenTelemetry, ensuring it is always included.
Reinitializes OpenTelemetry based on user preferences, ensuring that changes to telemetry settings are applied immediately.
Configures cloud services, including OpenTelemetry, after the logger is initialized, ensuring that telemetry data is properly captured and transmitted.
Retrieves system username for telemetry tracking.
Replaces the usage of `QIntValidator` with the `setRange` function available in the PDM framework for limiting integer input in UI fields.
This approach provides a more direct and maintainable way to specify value ranges for UI elements.
This change simplifies the code and reduces dependencies.
Adds a new action to the test menu that allows users to manually
trigger the sending of test telemetry data (logging and stack trace)
to the OpenTelemetry endpoint.
This is useful for verifying that the OpenTelemetry integration is
working correctly and for testing different telemetry scenarios.
Extends the relative permeability plot to support PCGW curves, which are relevant in gas/water systems.
This involves:
- Adding PCGW curve styling to the plot's QSS themes.
- Modifying the plot panel to handle PCGW curves, including
dynamically updating checkbox labels based on the available phases
to reflect the correct PC* name (PCOG or PCGW).
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.
* Add sector model export wizard
* GUI cleanup
* Use job name as deck name for simulation runs
* Remove new things from old export GUI
* Use radio-buttons for enum dropdowns
* Configures automated spell checking with codespell
Adds GitHub workflows and configuration files for automated spell checking using `codespell`.
This includes:
- A workflow for checking pull requests and preventing new typos
- A workflow for automatically fixing typos in the main codebase
- Configuration files for `codespell` to ignore specific terms and file types
- Documentation on how to use and configure the spell checking workflows.
* Corrects minor spelling and grammar errors.
* Add job settings, with default settings in preferences.
* Move opm flow settings to separate preferences tab
* Add warning/error detection add display count next to progress
* Adjust size of preference window
Use improved opm-common reader with less throws.
Add reload selected cases button
Add timer for auto-reload of cases
Add include in auto update option for cases and ensembles
Do not enable auto reload option for cases in an ensemble
Updates the relative permeability plot's X-axis title to use shorter, more standard labels ("SWAT" and "SGAS") instead of the longer "Water" and "Gas" versions. This improves readability and consistency with common saturation representations.
Enhances the relative permeability plot by:
- Adding support for SATNUM and IMBNUM result display in cell reference information.
- Disabling the imbibition curve selection by default and enabling it dynamically based on the IMBNUM value.
- Removing the `satnum` argument from `calculateRelPermCurves` as it's no longer needed.
Adds styling for imbibition relative permeability curves to the plot, differentiating them visually from drainage curves.
Adds UI elements (checkboxes) to control the visibility of drainage and imbibition curve sets. Also introduces a tracker that displays curve values near the cursor position.
Simplifies the implementation of the tracker text provider by using a `std::function` instead of a dedicated interface.
This change improves code maintainability and reduces complexity.
* Deletes the copy of the code in ThirdPary folder
* Replace code with opm-flowdiagnostics-applications as submodule
* Refactors ECL data handling for flow diagnostics
Updates flow diagnostics to utilize ECL init data consistently.
This change streamlines the passing and usage of initialization
data within the flow diagnostics routines, enhancing code
clarity and maintainability. Removes redundant passing of grid
data, simplifying function signatures.
Adds a null check for the eclResDef pointer before accessing its members.
This prevents a potential crash if eclResDef is null.
Additionally, the unnecessary assertions are removed.
Improves result info handling by ensuring the result
definition is valid before accessing it, preventing
potential crashes.
Uses `if (auto)` to check for null result definitions,
and displays a user-friendly message when no result
definition is available.
* Add view job log command.
* Add stop job command.
* Do not block ui while job is running.
* Show progress while job is running
* Make sure user gets notified of running jobs when exiting ResInsight or closing current project.
When working with a summary ensemble in a Debug build on Windows, a crash happened in RiuQwtPlotWidget::resetPlotCurveHighlighting(). When iterating over list of plot items, one pointer to item pointed to 0xddddddd, a clear indication that the underlying list had been updated during the loop and the iterator invalidated.
The change ensures that modifications to the item list during iteration do not cause unexpected behavior, particularly in scenarios involving grid lines and curve highlighting.
This is achieved by making a copy of the item list before iteration when modifications may occur. For cases where no add/remove will be performed during the iteration, a comment is added to clarify that it is safe to access the reference to the list.
2025-10-06 12:48:32.779] [rotating_logger] [error] Stack trace:
[0] manageSegFailure(int) at :0
[1] at :0
[2] __dynamic_cast at :0
[3] RimSummaryMultiPlot::updateReadOutLines(double, double) at :0
[4] CoordinatePicker::trackerText(QPoint const&) const at :0
[5] QwtPicker::trackerRect(QFont const&) const at :0
[6] QwtPicker::updateDisplay() at :0
[7] QwtPicker::begin() at :0
[8] QwtPicker::transition(QEvent const*) at :0
[9] QwtPicker::eventFilter(QObject*, QEvent*) at :0
[10] QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) at :0
[11] QApplicationPrivate::notify_helper(QObject*, QEvent*) at :0
[12] RiaGuiApplication::notify(QObject*, QEvent*) at :0
[13] QCoreApplication::notifyInternal2(QObject*, QEvent*) at :0
[14] at :0
[15] QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) at :0
[16] at :0
[17] at :0
[18] QApplicationPrivate::notify_helper(QObject*, QEvent*) at :0
[19] RiaGuiApplication::notify(QObject*, QEvent*) at :0
[20] QCoreApplication::notifyInternal2(QObject*, QEvent*) at :0
[21] QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) at :0
[22] QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) at :0
[23] at :0
[24] g_main_context_dispatch at :0
[25] g_main_context_iterate.isra.20 at :0
[26] g_main_context_iteration at :0
[27] QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) at :0
[28] QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) at :0
[29] QCoreApplication::exec() at :0
Replaces custom linear interpolation logic with
`std::upper_bound` for improved efficiency.
Refactors the permeability plot panel to utilize the improved
interpolation tool.
* Add radial display mode to preferences
* Adds isRadial to grid
* Improve mesh lines for radial cells
For temporary radial LGRs, show mesh outline based on the aggregated geometry of all LGRs of the parent cell clicked on.
* Improve warning message
* Modify cell selection in pick event handler
If the angular cell count is low, especially 1, the geometry representation of a cell requires refinement in angular(J) direction. Show this geometry as a cylinder segment when holding CTRL and clicking on the radial geometry.
Address sanitizer detected a memory leak in CmdFeatureMenuBuilder::MenuItem
objects caused by RiuContextMenuLauncher objects that were never deleted.
Problem: The RiuContextMenuLauncher class has two constructors:
1. RiuContextMenuLauncher(widget, CmdFeatureMenuBuilder&) - sets parent ✓
2. RiuContextMenuLauncher(widget, QStringList&) - missing parent ✗
The second constructor was missing the parent initialization, causing all
RiuContextMenuLauncher objects created with QStringList (used in 10+ locations)
to never be deleted, leading to memory leaks of their internal MenuItem vectors.
Root cause: Missing parent-child relationship meant Qt couldn't automatically
clean up these objects when their associated widgets were destroyed.
Fix: Added `: QObject( widget )` to the second constructor to match the first
constructor's behavior. This ensures Qt's automatic parent-child cleanup
handles the RiuContextMenuLauncher lifecycle properly.
This fixes the systemic issue affecting multiple plot types including:
- Correlation plots, Analysis plots, VFP plots, Well allocation plots
- All locations using `new RiuContextMenuLauncher(widget, {commands})`
Address sanitizer detected a memory leak in CmdFeatureMenuBuilder::MenuItem
objects allocated during context menu creation.
Problem: The RiuContextMenuLauncher constructor was creating a temporary
CmdFeatureMenuBuilder object, populating it with menu items, then copying
the entire object to the member variable m_menuBuilder. This caused
unnecessary memory allocation and copying of std::vector<MenuItem> data.
Root cause: Inefficient constructor implementation:
caf::CmdFeatureMenuBuilder menuBuilder; // temp object
for (cmd : commandIds) menuBuilder << cmd; // populate temp
m_menuBuilder = menuBuilder; // copy entire vector (leak source)
Fix: Build the menu directly into the member variable instead of creating
a temporary object and copying it:
for (cmd : commandIds) m_menuBuilder << cmd; // direct construction
This eliminates the unnecessary temporary object creation and copy operation
that was causing the MenuItem vector allocation detected by the sanitizer.
The fix maintains identical functionality while being more efficient.
Address sanitizer detected a memory leak in QProxyStyle objects
created during GUI theme updates.
Problem: The updateGuiTheme() function was called multiple times (e.g., during
initialization) and repeatedly created new PdmUiTreeViewStyle objects for
every PdmUiTreeViewWidget without checking if the widget already had the
correct style set.
Root cause: Each call to updateGuiTheme() would:
1. Iterate through ALL widgets in the application
2. Create a new PdmUiTreeViewStyle for every tree view widget
3. Call setStyle() which should take ownership, but repeated calls
were causing memory leaks
Fix: Added a check to only create and set a new PdmUiTreeViewStyle if the
widget doesn't already have one. This prevents repeatedly creating new
styles for the same widgets during multiple theme update calls.
The fix uses dynamic_cast to check if the current style is already a
PdmUiTreeViewStyle before creating a new one.
* Add drag'n'drop support for ensemble summary vectors and ensembles into histogram plots
* Make sure histogram plot is shown and all update signals are connected when loading a project.
* Support ensemble parameter drag'n'drop from data sources into histogram plots.
* Show ensemble parameters in data sources tree.
* Add copy/paste of histogram curves
* Re-use all existing parameters in a plot when dragging a new ensemble into it
* Adds a bounds check on the node index to prevent accessing invalid memory locations.
This prevents potential crashes caused by out-of-bounds access when retrieving summary variable values.
* Updates warning message for incomplete deltas
* Plot based on a single realization from a file set ensemble is not restored correctly on project load
* Populate result addresses if no addresses are present
* Adds CNV_ (convergence) result name
* Avoid include of RiaResultNames.h in header file