Use cafPdmUiButton instead of bool in PdmField

* Adopts dynamic PDM buttons with lambda callbacks

Refactors PDM push buttons from boolean fields to use the `addNewButton` API with direct lambda callbacks.

This change enforces a new coding guideline to extract complex or multi-line lambdas to dedicated `on*Clicked()` methods, improving code readability and maintainability.

- Replaces `PdmField` button fields with `PdmUiOrdering::addNewButton` calls.
- Extracts multi-line/control-flow lambdas into named methods in `RimFlowCharacteristicsPlot`, `RimGeoMechCase`, and `RimStatisticsContourMap`.
- Removes obsolete `defineEditorAttribute` overrides and `fieldChangedByUi` logic for these buttons.
- Updates `RimWellPathFracture` to utilize base class-provided button creation.
- Adds new lambda line-count guideline to the coding style documentation.
- Includes minor build fixes, such as adding `cafPdmUiButton.h` and correcting tooltip API usage.
This commit is contained in:
Magne Sjaastad
2026-03-03 08:54:45 +01:00
committed by GitHub
parent 76fe5fd4d5
commit 61a69bacc4
16 changed files with 210 additions and 364 deletions
@@ -101,6 +101,7 @@ protected:
private:
void computeStatistics();
void onComputeStatisticsClicked();
void doStatisticsCalculation( std::map<size_t, std::vector<std::vector<double>>>& timestep_results );
RimFormationNames* activeFormationNames() const;
@@ -113,7 +114,6 @@ private:
caf::PdmField<RimContourMapProjection::ResultAggregation> m_resultAggregation;
caf::PdmField<std::vector<int>> m_selectedTimeSteps;
caf::PdmChildField<RimEclipseResultDefinition*> m_resultDefinition;
caf::PdmField<bool> m_computeStatisticsButton;
caf::PdmField<bool> m_enableFormationFilter;
caf::PdmField<std::vector<QString>> m_selectedFormations;
caf::PdmPtrField<RimEclipseCase*> m_primaryCase;