Commit Graph
192 Commits
Author SHA1 Message Date
Magne Sjaastad d76f67f3fb Use subset of enums
Use setEnumSubset instead of calculateValueOptions
2025-02-10 17:22:25 +01:00
Magne Sjaastad 7e523e340a Add static function to define a subset of enums to be used for AppEnum
Add a static map between field keyword and a subset of enum values to be displayed in the GUI
If a subset is defined, automatically calculate value options for this subset, otherwise, use all enums
Improve the macro so it is possible to use the `EnumType` instead of `AppEnum<EnumType>` when defining the default value
2025-02-08 09:24:55 +01:00
Magne Sjaastad ca0179d118 Remove obsolete CMake statements
When using modern CMake and Qt6 we can remove obsolete source_group() and QT_MOC_HEADERS
2025-01-28 07:01:42 +01:00
Magne Sjaastad 2814b92055 Qt6: Adjustments (#11804)
* Qt6: Avoid insertWidget, use addWidget
In Qt6, the insertWidget function checks if the index parameter is valid based on current widgets present in the layout. This is error prone, and use addWidget to avoid manual counting of index.

* Disable use of Qt keyword foreach

* Replace use of QRegExp with QRegularExpression
Replace use of QRegExp with QRegularExpression
Remove dependency on qt5compat module
Simplify an expression based on review

* Remove Qt5 ifdefs

* Guard access out of bounds seen in debug build

* Avoid reuse of string variable

* Disconnect all signals from the QOpenGLContext
The call stack when this assert happens indicates that there are more signals to be disconnected from the object. Crash is fixed by disconnecting all signals.

Assert seen in debug build:

ASSERT failure in caf::Viewer: "Called object is not of the correct type (class destructor may have already run)", file C:\Qt\6.6.3\msvc2019_64\include\QtCore/qobjectdefs_impl.h, line 130

* Fix issue related to delete of a linked view
Guard null pointer use in view linker. Remove complicated cleanup in destructor in Rim3dVew.
2024-10-28 13:09:18 +01:00
Magne Sjaastad b0d967ff40 Preparations for quick access features
* Add tool button editor with callback support
* Guard null pointer usage
* Allow proxy field with no getter
* Remove duplicated code
2024-10-21 14:08:15 +02:00
Magne Sjaastad ca4a7b9000 Remove obsolete code related to Qt5
* Remove bundling of openssl1.1
* Remove obsolete compile flags
* Remove use of obsolete RimCommandObject
* Use QColor::isValidColorName
QColor::isValidColor is deprecated in Qt 6.6, QColor::isValidColorName was introduced in 6.4

* Make sure debug DLLs are copied when required
* Remove Qt5 from AppFwk
* Remove obsolete copy of Qt  DLLs
2024-10-07 10:16:48 +02:00
Magne Sjaastad 33ffa10ec9 Janitor: Remove obsolete deleteChildren
Remove obsolete deleteChildren() in destructors. deleteChildren() is called in the destructor of PdmChildArrayField
2024-07-25 13:58:31 +02:00
Magne Sjaastad a0ebb6e496 Add copyObject to PdmObjectHandle
New syntax to copy an object

    auto curveCopy = curve->copyObject<RimSummaryCurve>();

Previous deprecated syntax

    RimColorLegend* customLegend = dynamic_cast<RimColorLegend*>(
            standardLegend->xmlCapability()->copyByXmlSerialization( caf::PdmDefaultObjectFactory::instance() ) );
2024-06-14 17:18:28 +02:00
Magne Sjaastad 13532b0fe4 Add partial specialization for float and double
In PdmFieldWriter::writeFieldData, the numeric values are converted to string with a selected precision. isEqual() is used when comparing values for field editors in PdmFieldUiCap<FieldType>::valueOptions()
2024-06-12 09:35:28 +02:00
Magne Sjaastad 1d57b9032b Custom vfp plot (#11450)
* AppFwk: When clearing a tree selection, make sure all values are cleared
* Fix deprecated implicit lambda
* Add support for using the closest value in addition to exact match
* Add table data source object and add plot with multiple data sources
Delete the temporary RimVfpDeck class
Add RimVfpTable to represent a table in a data source
Add plot able to show data from multiple tables

* AppFwk: Make it possible to call resolveReferences multiple times
Use case: Vfp tables are stored in files. Multiple tables can be present in one file. Pdm table objects are created after resolve references is done as part of parsing file. When the Pdm object are created, resolveReferences can be called once more.

* Call resolveReferencesRecursively() after RimVfpTable objects are created
2024-05-29 12:55:45 +02:00
Magne Sjaastad ef637e3053 Move stream operator from AppEnum header
This PR will reduce the compile time of code using AppEnum. 

* AppEnum: Move QTextStream operator to avoid include of QTextStream
* Avoid use of iostream in cafAssert
rator to avoid include of QTextStream

Include file profiling shows that include of QTextStream is a performance issue. Create a non-templated base class for AppEnum. Implement the QTextStream operator for this interface.
2024-03-25 15:14:04 +01:00
Magne Sjaastad bfda6519db Cleanup includes
Use new tools in Visual Studio to help cleaning up includes and remove redundant includes.
2024-03-07 19:45:43 +01:00
Eirik Marthinsen 5cfabbb8b8 Use correct qt version check for SkipEmptyParts
Qt::SkipEmptyParts was introduced in Qt 5.14 and QString::SkipEmptyParts
was deprecated in Qt 5.15. This will avoid warnings when compiling with
Qt 5.15.
2024-02-15 09:48:34 +01:00
Magne Sjaastad edf44cb4c0 Prepare CMake to support both Qt5 andf Qt6
CEE_USE_QT6 controls if Qt6 is used.
Improved install and package for Qt6, target version Qt 6.5.3
Added Qt6 to github action for AppFwkUnitTest
2024-01-09 11:02:41 +01:00
Magne Sjaastad 2c02d61846 Use QRegularExpression instead of QRegExp 2024-01-07 18:28:36 +01:00
Eirik Marthinsen 77e5d642e9 Fix insufficient forward declaration
It is not sufficient with a forward declaration of QString here. Since
the vector is created in PdmFieldCapability::attributes() the size of
QString must be known at that point.

closes #10950
2023-12-13 18:40:09 +01:00
Magne Sjaastad f1823da6d7 Performance: Cache the uiCapability to costly dynamic_cast 2023-10-13 16:31:14 +02:00
Magne Sjaastad 69b513bcb1 #10713 Add flag used to detect if resolveReferences is called from initAfterRead 2023-10-13 16:31:14 +02:00
Magne Sjaastad 21843820e6 Update clang-tidy.yml
* Make sure clang-tidy action use .clang-tidy config file
Use add-paths to instruct create-pull-request to a sub folder to avoid diff from Qt and vcpkg

* Use empty() in macro to avoid clang-tidy warning
* Add NOLINT to CAF_ASSERT
* Add NOLINT to cvfAssert
2023-10-03 09:04:08 +02:00
Kristian Bendiksen 98796b0dd9 #10649 Fwk: Use collection.empty() instead of comparing with size 2023-09-27 10:16: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 1c0649db77 Move caf.h/cpp to UiCore 2023-05-10 11:02:35 +02:00
Magne Sjaastad b7f8d0e0f1 Increase warning level
* Set warning level to /W3 for MSVC to catch more warnings
* remove several excluded checks for clang
* removed several unused variables
* Hide warnings qwt
* add missing parentheses in logical expressions
* Remove double check on same logical expression
2023-04-17 15:57:39 +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 ee1b363ae0 Add support for field of std::pair<T, U> 2023-03-31 10:21:56 +02:00
Magne Sjaastad d23c6b4bb6 Janitor: Several code hygiene adjustments (#9981)
* Include all libraries in APP_FWK_LIBRARIES
* Several fixes detected by Static Code Analysis
* Remove unused code
* Add .clang.tidy
* Use QElapsedTimer
* Use horizontalAdvance
* Avoid | between enum of different classes
* Avoid illegal character
* Renaming and reorder of constructor initialization
2023-03-23 15:49:06 +01:00
Magne Sjaastad 583c248cf9 Janitor issues
* Use horizontalAdvance
* Remove unused code
* Hide some warnings from Qt code
* Remove message for _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING
* Use CMP0077 NEW
* Move roff libraries to folder Thirdparty
* avoid operator()==
* Remove cmake_minimum_required and set version to 3.15
2023-01-24 12:29:27 +01:00
Magne Sjaastad abc9e82ff5 System: Enable and use c++20
Enable c++20 in top level cmake. Keep c++17 for GrpcInterface, as the protoc tool does not work with c++20.
Several code adjustments to fix compiler issues.
2023-01-19 08:33:02 +01:00
Jørgen Herje 95202ad36a Well allocation over time plot (#9655)
- Plot for showing well allocation over time. 
- Select time range
- Option to exclude time steps in selected range
- Possible value types: Flow rate, flow rate percentage, flow volume, accumulated flow volume, accumulated flow volume percentage
- Group small contributors into group "Others"
2023-01-18 09:18:00 +01:00
Magne Sjaastad e97a476d85 Add framework support for editor auto values
Add support for a field to be linked to a value updated by code outside the object itself. Mark the linked field by using a background color and icons for linked/unlinked state.
The auto value states is set as attributes in the project xml file. 
Add reference implementation in cafTestApplication, see Fwk/AppFwk/cafTests/cafTestApplication/MainWindow.cpp

* Tree View Editor: Avoid sending notification if selection is unchanged
* Use std++17 in test solution
* Move icons to icon factory
* add support for creating QIcon from SVG text string
2022-09-02 13:20:52 +02:00
Magne Sjaastad 3ff5d238b1 Remove unused members and remove includes 2022-08-25 13:56:53 +02:00
magnesj e1c1342957 Fwk : Remove obsolete helper template 2022-07-08 17:54:37 +02:00
Magne Sjaastad c74701b687 Rename several child() and children() functions 2022-05-31 15:05:07 +02:00
Magne Sjaastad b17e3813df #8966 Improve performance when changing multiple field values 2022-05-26 20:43:25 +02:00
Magne Sjaastad 74075cc9ab Merge pull request #8888 from OPM/8887-fix-reorder-capability
Fix reorder capability
2022-05-06 10:52:08 +02:00
Magne Sjaastad feb1c417c5 #8859 AppFwk : Enable TableView as optional drop target
A TableView can receive drag/drop data. The drop operations finds the PdmObject for a row, and delegates handling of the drop operation to this object.
2022-05-04 09:10:32 +02: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
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
Magne Sjaastad 5706c433d0 #8580 cafSignal : Assert if signal is connected twice to the same object 2022-02-26 16:35:59 +01:00
Magne Sjaastad e1dea1d34d #8197 AppEnum : Add alias list to support backwards compatibility 2021-10-27 08:38:38 +02:00
Magne Sjaastad 638f926429 cmake-format: Allow dangling parenthesis 2021-09-01 08:13:16 +02:00
Magne Sjaastad 3af8d32928 #7829 AppEnum : Make sure text used in XML serialization is trimmed
If the AppEnum text used to serialize the AppEnum contains whitespace at start or end, the serialization will fail and the AppEnum value will end up with a default value. 

This commit will make sure that this field is always trimmed ( text coming from the application, from xml parsing, text from scripting).
2021-06-29 20:54:40 +02:00
eb3c52aeb1 Python adjustments (#7809)
* #7797 Well Targets: Add scripting capability
* #7794 Python : Do not update childField or childFieldArray
* #7797: Python - Add scripting to well path collection
- Extend the pdmobject.py with method add_object()
- allow objects to be created from Python in well path collections
- add well targets to modelled well path

* #7795 Python : Make sure referenced generated classes are defined
* #7810 StimPlanModel: clean-up python generation
* Python : Always use empty string as default value for ptrFieldValue
It can happen that a ptrField is assigned to a pointer on object construction. (FaciesProperties) Make sure that constructor always assigns an empty string.

Co-authored-by: magnesj <magnesj@users.noreply.github.com>
Co-authored-by: Kristian Bendiksen <kristian.bendiksen@gmail.com>
2021-06-25 14:44:52 +02:00
Gaute Lindkvist 72614b0c00 Create Well Path Laterals from existing well paths
* Add cmakebuild/ to .gitignore
* Create Well Path Laterals from existing well paths
* Move ValidRegExpValidator to RiaValidRegExpValidator.h|cpp
* Minor code review fixups
* More minor code review fixups
* Another set of minor code review fixups
2021-01-04 11:09:01 +01:00
Gaute Lindkvist 49ffe9b53a Removal of new/delete from RiaApplication 2020-12-11 10:56:25 +01:00
Gaute Lindkvist c30f930886 Explicitly remove default constructor for caf::Signal 2020-12-08 09:27:29 +01:00
magnesj d11e109c7e Fixes by clang-format 2020-11-06 06:18:34 -05:00
github-actions[bot] 223fe756fe Fixes by cmake-format (#6874) 2020-10-30 12:31:16 +01:00
Gaute Lindkvist 069b427d10 Require CMake 3.12 2020-10-20 11:05:10 +02:00
Gaute Lindkvist f7aed637f8 Require CMake 3.6 2020-10-20 11:05:10 +02:00