Commit Graph
46 Commits
Author SHA1 Message Date
Magne Sjaastad 95bee61f91 Replace tree item tags attribute with virtual PdmUiObjectHandle::treeItemTags() 2026-10-17 13:23:22 +02:00
Magne Sjaastad 064ac45da0 ResInsight: Migrate project data model to attribute map 2026-10-17 13:23:22 +02:00
Magne Sjaastad 1fc5e424e4 #14539 Schedule tree updates and release user defined axis ranges for all plot types
Axis range and auto-zoom setters now schedule the editor update instead of
performing it immediately. Every immediate update rebuilds the tags of the whole
project tree, and zoom-all releases the range and re-enables auto zoom for every
axis of every subplot. Scheduling also avoids deleting the tag whose clicked
signal is still being emitted from onPinnedTagClicked().

Remove the m_isAutoZoom branches in fieldChangedByUi(). The field is not part of
any UI ordering, and both orderings end with skipRemainingFields(), so the
branches were unreachable. Comments referring to a "Set Range Automatically"
checkbox are updated accordingly.

The pinned tag no longer reuses pinned.svg, which is also the Quick Access dock
icon and must keep following the widget palette. The gray tag variant lives in
PinnedAxisRange.svg.

Zoom All is an explicit request for automatic ranges, but only summary plots
released the user defined range. Histogram, grid cross, VFP and analysis plots
share RimPlotAxisProperties and set the range as user defined when a min or max
is typed, so Zoom All left them with a stale pinned tag and permanently blocked
enableAutoValueMinMax().

Release the range for every axis owned by the window in RimViewWindow instead,
which makes the summary specific overrides redundant.
2026-09-09 12:08:10 +02:00
Magne Sjaastad 3284fd200a #14539 Add shared-axis, pinned-range indicators and Auto Zoom command for axis objects
Replace the chain/padlock icon with a simple two-headed-arrow icon
(SharedAxis.svg) for linked time/property axes.

Add a pinned-range project-tree tag shown when an axis range is
user-defined, using the standard gray pinned.svg icon. The tag
refreshes immediately regardless of the code path that changes the
range/auto-zoom state (Zoom All, data source changes, axis linking,
UI edits), and clicking the tag releases the user-defined range so
the axis auto-zooms again.

Add RicToggleAxisAutoZoomFeature, a checkable context-menu command
on Y-axis and time-axis objects that toggles auto-zoom and keeps the
pinned/user-defined-range tag in sync in both directions.

Move axis-specific context-menu entries out of RimContextCommandBuilder
into appendMenuItems() overrides on RimPlotAxisProperties and
RimSummaryTimeAxisProperties, per the project convention of keeping
object-specific menu logic in the object.

Fix RimSummaryPlot::timeAxisSettingsChanged() to actually re-apply
auto-scale to the plot widget when auto-zoom is re-enabled on the
time axis; previously only the property was updated, and no
recompute of the plotted range was triggered.
2026-09-09 12:08:10 +02:00
Magne Sjaastad 110bdbe0c7 #14539 Summary Plot: Preserve user defined axis ranges when the data source changes
An axis range defined by the user is now kept when a summary case or ensemble is added, reloaded or replaced. The range is marked as user defined when the user edits the min/max values, unchecks "Set Range Automatically" or zooms interactively in the plot.

The user defined range is released by "Zoom All", by double click in a plot, by checking "Set Range Automatically" or by changing the Y axis range aggregation of a summary multi plot.
2026-09-09 12:08:10 +02:00
Kristian Bendiksen d96159fb7c #7750 Histogram Plot: Add logarithmic binning and user-defined bin range
Add BinningMode (Linear/Logarithmic) and OutOfRangeHandling (Exclude/Include in
Boundary Bins) to RigHistogramCalculator, with defaulted constructor arguments so
existing callers are unaffected. All four histogram plot data sources get shared
options for binning mode and an optional user-defined bin range through new PDM
fields on RimHistogramDataSource.

The grid statistics data source computes non-default histograms through a new
non-caching RigStatisticsDataCache::computeHistogram() pass-through, leaving the
cached statistics used by the 3D overlay and the P10/P90/mean annotation lines
untouched.

Selecting logarithmic binning enables logarithmic scale on the plot X axis once,
via a new signal handled by RimHistogramCurve.

Also fix the bin index computation to use uniform bins of width range/nBins,
consistent with calculatePercentil() and the bin edges drawn by the plots. The
previous divisor (nBins - 1) shifted counts by up to one bin width relative to
the drawn bars and slightly biased histogram-based percentile estimates.
2026-08-13 07:19:18 +02:00
Magne Sjaastad 1c4c304064 #14476 ApplicationLibCode: Remove unused cvf includes
Remove 95 cvf include lines that the including file does not use. Found by
extracting the symbols declared by every VizFwk header, including symbols they
re-export, and flagging includes where none of those symbols appear anywhere in
the file. Each removal is verified by a full build.

Most of them are cvfVector3.h and cvfObject.h, left behind as the files they
were once needed by changed.

pch.h is left untouched. It includes cvfObject.h and cvfVector3.h on purpose, so
that the files using the precompiled header do not have to.

Note that a clean build after removing an include does not prove the include was
unnecessary, only that the declarations still arrive some other way. That path
can differ between platforms and with RESINSIGHT_ENABLE_UNITY_BUILD, so this
needs a CI round on Linux as well.
2026-08-07 15:05:57 +02:00
Kristian Bendiksen d00d3f20b1 #13282 Histogram Plots: Add option for Logarithmic axis scale
Fixes #13282.
2026-01-20 11:44:01 +01:00
Magne Sjaastad 546edadf35 Refactors font size handling using RimFontSizeField
Replaces direct PdmField usage for font sizes with the new
RimFontSizeField. This provides a consistent way to manage font
size options across different plot types.

The RimFontSizeField encapsulates the logic for generating font size
options based on the default plot font size from preferences. This
removes redundant code in various plot classes and ensures that font
size settings are synchronized with user preferences.
2025-08-25 12:43:36 +02:00
Kristian Bendiksen f004cda2a1 Histogram: apply axis properties, and hide irrelevant options. 2025-08-11 15:26:10 +02:00
Magne Sjaastad fe63231db9 Add support for multiple curve sets in one VFP plot
- support selection of multiple values for multiple producer variables
- use one color for curves in a curve set representing a VFP curve collection
- use symbols to indicate individual family values for curves
- show all required values to identify curves as curve legend text and curve mouse hover text
- make sure all available settings of axis property object is applied to the plot axis
- support display of all curve data using "Show Plot Data"
2024-06-12 09:35:28 +02:00
Magne Sjaastad 28d281e1d6 Use polygon as data source for intersection
- Use polygon as data source for intersection
- Add padlock icon
- Show padlock icon on read only polygons
- Add Fwk function appendMenuItems() to make it possible to define context menu content in a PdmObject
- Context menu "Create Polygon Intersection"
- Updates to make visualization consistent with object and object collection enabled state
2024-02-25 09:21:48 +01:00
Magne Sjaastad ce513be638 Remove all use of .uiCapability()->setUiTreeHidden( true ); 2024-02-05 10:15:36 +01:00
Magne Sjaastad 146412c600 Add support for summary cross plot curves in summary plots 2023-09-20 13:58:22 +02:00
Magne Sjaastad e8aada80c5 Rename to plotAxis() 2023-09-20 09:58:48 +02:00
Magne Sjaastad 3800246b79 Performance: Slow performance for some plot and curve operations
* Performance: Cache registry value
* Performance: Avoid recursive update
Early return if values are identical
updateConnectedEditors is handled by setValueFromUiEditor
Avoid fieldChanged in analyzePlotsAndAdjustAppearanceSettings
2023-08-25 10:39:19 +02:00
Kristian Bendiksen 5bf2c2a89d #10367 Janitor: Remove unneccessary 'this' pointers 2023-08-07 13:38:27 +02:00
Magne Sjaastad 0c90f67dcc Change API for PdmObjectHandle and PdmFieldHandle
* Refactor interface to PdmObjectHandle and PdmFieldHandle
Return objects instead of passing in structures as parameters

* Add nodiscard to several functions
* Remove redundant this->
* Rename to ptrReferencedObjectsByType
2023-05-12 21:41:34 +02:00
Magne Sjaastad 6529b1760d #10003 Use auto-value features only for RimSummaryPlot 2023-03-23 15:45:30 +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
Magne Sjaastad 945f1b1902 Use field auto values for summary plots
Use auto value concept in summary plot configuration. Default behavior is unchanged, but it is now possible to unlink a field to specify a custom value for this field.

Other changes:
* Add missing requirement for Svg in test application
* Use calculator icon and rename panel text
Use icon and relevant text to make it clear that the content in Calculator Data can be used for Grid Property Calculator and nothing else.
* Add example with scoped enum and auto value
* Use enum value starting av 10 to make sure enum values (not option item index) are working as expected
2022-09-05 14:12:49 +02:00
Magne Sjaastad 5078f4072f Minor adjustments (#9070)
* Add system commands to test toolbar
* #9069 Summary Plot: Update only Y axis values during source stepping
* Reduce default brightness for ensemble summary curves
* Add a separate flag to control linking of time axis
* Make sure interactive zoom in plot is handled
* Move message dock window to right dock panel
2022-06-21 15:33:00 +02:00
Magne Sjaastad 95e9ef8bf1 Rename to RiaFieldHandleTools 2022-06-03 08:00:55 +02:00
Magne Sjaastad 2b8bab3bd8 #9011 Disable input controls controlled by automation
Disable fields controlled by automation and append label text with (overridden)
2022-06-03 08:00:55 +02:00
Magne Sjaastad a28cecd19b #8961 Auto scale factor : Do not use scale factor for some value ranges 2022-06-03 08:00:55 +02:00
Magne Sjaastad 6a5b9f7300 Use deleteChildren() when required to avoid memory leak 2022-05-31 15:05:07 +02:00
Magne Sjaastad c74701b687 Rename several child() and children() functions 2022-05-31 15:05:07 +02:00
Magne Sjaastad f0ce04597d Merge pull request #8985 from OPM/8926-remove-useoptionsonly
AppFwk : Remove obsolete useOptionsOnly
2022-05-29 13:01:27 +02:00
Magne Sjaastad f91fe41f1d Several minor issues (#8948)
* #8947 Plot Template : Split export dialog into file path and name
* #8946  Update multi plot title when curve is appended by copy/paste
* #8946 Separate axis object name and axis title text
* If multi plot auto name is empty, use plot title "Plot N"
* QwtPlotWidget: Double click activates Zoom All
* More testing on valid main window before use
* Return false if event is not handeled
* Improve fallback plot name
* Tree View Editor: Early exit if selected object is unchanged
Resetting selection causes flickering
* Summary Plot : Select curve object in project tree when clicking on curve
2022-05-24 15:24:38 +02:00
Magne Sjaastad 74ace7ea44 Summary Multi Plot : Improve default behaviour (#8885)
* Summary Multi Plot : Improve default behaviour

- Perform zoom when stepping to next item
- Set defaults for range aggregation and source stepping dimension based on content when creating a multi summary plot

* Plot Axis Appearance : Do not use bold for text configuration

* Improve how scale factor for legend values are computed

* Improve defaults for range aggregation and step dimension

* Reorder Capability : Get UI item before reordering is issued

Get UI item before reordering is issued, as this operation will invalidate the tree model
2022-05-06 12:09:55 +02:00
Magne Sjaastad 64bed1d611 Summary Multi Plot: Minor adjustments (#8856)
Remove obsolete single summary template code
Always use maximized state of the QMdiSubWindow when a plot or view is deleted.
Move time axis to top
Set correct text for unused axis
Avoid assert when layout is requested for non existing legend
2022-04-29 15:31:07 +02:00
Magne Sjaastad 774538868a #8844 Summary Multi Plot : Optional auto appearance settings 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 f099a8c89f #8779 Summary Multi Plot : Add flag to control visibility of axis number values
Useful for making plots anonymized
2022-04-07 17:49:07 +02:00
Magne Sjaastad a0507c85f4 #8779 Summary Multi Plot : Sync time axis properties across sub plots 2022-04-07 17:49:07 +02:00
Kristian Bendiksen 1407c6f96f RimPlotAxisProperties: reset "always required" bool on reload. 2022-04-06 09:03:53 +02:00
Kristian Bendiksen 449b4e4781 RimPlotAxisProperties: only allow plot axis positions left and right. 2022-04-06 09:03:53 +02:00
Magne Sjaastad 1563ae7b58 Merge pull request #8614 from OPM/minor-adjustments 2022-03-04 12:24:15 +01:00
Kristian Bendiksen 10cb2d7d0b #8522 Summary Plot: Prune unused axes after move or delete 2022-02-23 21:54:40 +01:00
Kristian Bendiksen 1a1acfa006 #8522 Summary Plot: handle plot axis deletion. 2022-02-23 21:54:40 +01:00
Kristian Bendiksen 6591de716b #8521 Summary Plot: Allow moving axis to other side of plot. 2022-02-11 10:31:01 +01:00
Kristian Bendiksen e92e2e8764 Summary Plot: Add support for multiple plot axis. 2022-02-07 09:55:11 +01:00
Kristian Bendiksen 258fbddc10 Merge pull request #8387 from OPM/qtcharts-summary-plots
Closes #8228 

Major refactoring of summary plotting. Now possible to create plots both with Qwt and QtChart as plotting tool.
2022-01-17 13:14:21 +01:00
Magne Sjaastad 3c35244809 #8420 Janitor: Remove empty parameters in initialization macros 2022-01-07 08:31:52 +01:00
Kristian Bendiksen 75fe73ee64 Refactor: Start using setUiTreeHidden where missing. 2021-10-24 09:11:20 +02:00
Gaute Lindkvist 81699db187 Rename ApplicationCode to ApplicationLibCode 2021-01-11 15:27:45 +01:00