Commit Graph

67 Commits

Author SHA1 Message Date
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
40803581dd Add line style and symbol type to ensemble curves 2023-09-28 14:33:05 +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
Kristian Bendiksen
959c9d48fa #10649 ApplicationLibCode: Use collection.empty() instead of comparing with size 2023-09-27 10:16:37 +02:00
Magne Sjaastad
fb288f602d Support ensemble cross plot curves
* Remove use of RifEnsembleStatisticsReader
* Add RimSummaryAddressSelector and RimEnsembleCrossPlotStatisticsCase
* Remove RifEnsembleStatisticsReader
* Add support for cross plot x-axis selection
* Support source stepping on ensemble cross plot curves
* Add isXAxisSummaryVector
2023-09-25 12:45:47 +02:00
Magne Sjaastad
146412c600 Add support for summary cross plot curves in summary plots 2023-09-20 13:58:22 +02:00
Magne Sjaastad
f07a5db559 Use post fix Y in RiaSummaryCurveDefinition 2023-09-20 09:58:48 +02:00
Magne Sjaastad
806f367566 Rename to SummaryCategory 2023-09-20 09:58:48 +02:00
Magne Sjaastad
e8aada80c5 Rename to plotAxis() 2023-09-20 09:58:48 +02:00
Magne Sjaastad
96b3bef878 Reduce memory use for summary address object
* Use one common variable for object name, use three ints
* Move enums to separate file
* Refactor use of enums
* Move implementation to cpp
* Refactor includes
2023-08-21 07:12:08 +02:00
Kristian Bendiksen
5bf2c2a89d #10367 Janitor: Remove unneccessary 'this' pointers 2023-08-07 13:38:27 +02:00
Kristian Bendiksen
94f7bd3c1a 10214 ensemble appearance
* Regression Analysis: Use only positive values for Power Fit regression.

* Add visible tag short cut for changning curve color.
* #10214 Ensemble Curve Set: Fix color mode text.
* #10214 Ensemble: Switch P10 and P90 symbols to point towards mean.
* Cache hit rects for tree item tags.
* #10214 Ensemble curve set: allow reordering with tree view tag
* #10214 Keep curve legend text when ensemble curves are hidden
2023-05-23 08:10:35 +02:00
Magne Sjaastad
40080a99de 9978 Improve UI for long drop-down lists, use tree selection more
* Improve tree selection editor
- always call defineEditorAttributes
- use heightHint in editor attributes 
- use tree selection editor as default editor for std::vector

* Use tree selection editor instead of list selection editor
List selection editor must be used when editing std::vector<cvf::vec3d> and similar. Replace other use of list selection editor with tree selection editor.

* Set checked state based on text string for integer only models
For models with only integer values, use text string to define the items to be selected. The full list will always be visible, and the checked state will be updated when editing the filter text.

Example: "1, 5-7" will set items 1, 5, 6, 7 checked and all other items unchecked

* Minor fixes
- Set placeholder text after content is added (to ensure correct data type)
- Fix check of integers. `canConvert<int>()`returns true for both QString and int. Thus convert to string and then check for int conversion.

* Activate filtering when unchecking all items in list with only integers
- Reactivate filtering when uncheck of all items for a list with only integer values (to keep consistency between filter and list)
- Update function name for clarity

---------

Co-authored-by: Jørgen Herje <jorgen.herje@ceetronsolutions.com>
2023-05-22 15:44:37 +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
643ccd67b8 Improve ensemble curve colors
* Use unique_ptr
* Improve default assignment of curve appearance
* Improve display of color tags in tree view items
* Select curve or ensemble instead of plot
* Only change curves connected to a Rim-object

* Improve color management for ensemble curves
Use a base color for statistics curves and set realization curves transparent
Make sure new curves are assigned a unique color
Harmonize how dropped addresses are handled

* Update all tags always
The update of tags for a subset of tree nodes is currently broken. Always update all tags.

* Add const
2023-04-19 15:36:06 +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
Magne Sjaastad
064c0adb8c #9956 Summary Plot: Fix update of operations on multiple ensembles
When multiple ensemble curve sets are toggled on/off, it is required to do a full RimSummaryPlot::loadDataAndUpdate() that will call RimEnsembleCurveSet::updateCurves() on all ensembles in the plot. This can be a heavy operation, but will happen only once.
2023-03-13 19:33:36 +01:00
jonjenssen
3772fbac79 Turn off statistics curve legends by default and add option to turn them on, 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
Magne Sjaastad
8768e186d8 #9671 summary calculations for summary items
* Summary Calculation: use shorter name in title
* Sort summary addresses to group calculated results last.
* Summary Calculation: add option to distribute calculation to other items.
* Add support for summary calculation for RimGridSummaryCase.
* Use short name for calculations in plot titles.
* Update ensembles in Data Sources when calculation is added.
* Summary Calculation: allow drag-and-drop of ensembles
* Summary Plot: fix axis range aggregation for calculated ensemble addresses.

---------

Co-authored-by: Kristian Bendiksen <kristian.bendiksen@gmail.com>
2023-02-26 08:08:06 +01:00
Jørgen Herje
0601de4c18 Prevent update of show statistics selection in source stepping
- Refactor code into two functions
- Do not update selection when performing source stepping
2023-02-23 07:40:27 +01:00
Kristian Bendiksen
6b631b3d5a #9591 Janitor: remove unused parameter in RiuPlotWigdet::createPlotCurve. 2023-01-09 15:39:42 +01:00
Magne Sjaastad
752363a4b8 #9624 Add alphabetical and by value sorting 2023-01-05 12:14:49 +01:00
Magne Sjaastad
e29b310566 Summary improvements
* #9424 Show vector name in curve names when history vector is present
* #9426 Curve Legend disappears when curve is unchecked
* Remove duplicate call to visibilityChanged
* Remove unused code
2022-11-01 08:00:51 +01:00
Magne Sjaastad
506bfbd638 Remove control flag in setCollapsedByDefault
* Remove control flag in setCollapsedByDefault
* Set regions/annotations collapsed by default
2022-08-19 14:18:36 +02:00
jonjenssen
d4ff0a0175 Missing legend (#9095)
* Make sure ensemble curveset legends are shown in multiplot legend.
* Remove information already shown in title from curve legend.
* Fix missing legend when creating curve plot from ensemble curves
* Show actual curve color in legend
2022-06-29 11:49:46 +02:00
Magne Sjaastad
e5cf5f4cf3 Improve history curve color and symbols 2022-06-27 19:25:27 +02:00
Magne Sjaastad
b706192ea3 Performance updates (#9082)
* Avoid creation of curve legend widgets during construction of a multi plot
* Make sure default z-value is correct to avoid expensive Qwt updates
* Avoid duplicate plot updates
* Do not create internal Qwt legend by default
* RFT import: Avoid expensive method throwing exception if no data is found
2022-06-24 16:16:46 +02:00
Magne Sjaastad
fe0d009b25 Improve visual appearance for ensemble curves (#9016)
* Ensemble Curves : Improve visual appearance
Set line thickness to 1
If ensemble curves are bright, use a high saturation color for the highlight curve
Increase line thickness for highlighted curve
* Use color by summary vector phase for ensemble curves
* Do not create curves for non-existing history vectors
2022-06-13 15:08:15 +02:00
Magne Sjaastad
3b5139c24d #9023 Performance : Use cached analyzer
Remove min max from RimSummaryCaseCollection
Guard null pointer access
Improve default behaviour for axis range control
2022-06-10 06:25:41 +02:00
Magne Sjaastad
d36bf11c62 Several performance fixes (#9026)
* #9023 Performance: Use count instead of for loop

* #9023  Analyzer: Cache vector names for categories

* #9023 Performance : Use cached ensemble analyzer

* #9023 Performance : Add min/max values to ensemble statistics

* #9023 Performance : Improve statistics calculator

* #9023 Performance : Use high performance toInt()

* #9023 Performance : Build summary addresses in parallell
2022-06-07 21:09:36 +02:00
Magne Sjaastad
6a7e2f6033 #8993 Default Ensemble Curve : Do not show statistics for history vectors 2022-06-01 12:25:36 +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
jonjenssen
3b927e1c09 Split summary plot into multiple plots (#8910)
* Support splitting a summary plot with multiple curves into a new multiplot with one plot per curve
* Make sure the correct plot is deleted if using the plot context menu.
2022-05-13 16:36:30 +02:00
Magne Sjaastad
f52acd9a64 #8893 Rename quantity name -> vector name 2022-05-10 08:17:41 +02:00
jonjenssen
d156160daf Summary Multiplot: sync plot selection in tree with view (#8788)
* Make sure the subplot selected in the tree is shown in the multiplot viewer. 
* Clean up multiplot toolbar handling a bit
* Remove old summary plot toolbar.
2022-04-07 16:24:27 +02:00
Magne Sjaastad
0ca70249ae Move defines to RiaDateTimeDefines 2022-03-14 09:18:48 +01:00
Magne Sjaastad
806a149809 Fix several deprecation warnings (#8657)
* Use constructor instead of nullptr for WindowFlags
* Use constructor instead of nullptr for Alignment
* Disable deprecation warning for QProcess
* Add string split method to RaTextStringTools
* Add caf.cpp used to manage Qt function deprecations
* Use position()
2022-03-11 13:24:01 +01:00
Magne Sjaastad
0bab8a9834 Fix update issues when switching from axis side (#8664)
* #8610 Ensemble import : Set default axis
* Summary Axis : Delete previous axis when switching side
* Janitor: Use auto and empty()
2022-03-11 13:11:24 +01:00
jonjenssen
0cd965dd5b Summary plot crash fixes (#8595)
Disable assert for duplicated signal connections for now, just ignore everyone but the first one
Temp. workaround for crash when duplicating plot axis properties.
Update test
2022-03-01 17:27:46 +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
e92e2e8764 Summary Plot: Add support for multiple plot axis. 2022-02-07 09:55:11 +01:00
Kristian Bendiksen
f996b5383a #8453 Fix crash when changing plot type (QtCharts <-> Qwt). 2022-01-17 16:23:53 +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