mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Several RFT plot adjustments
* #9923 Call loadDataAndUpdate() after visibility of curves is updated This will ensure that all zoom ranges are recalculated based on visible curves. * #9923 Put new segment plots in RFT Plot collection * #9923 Add "Create Rft Sement Plot" to RFT plot collection * #9923 Make sure the main window is displayed when required Make sure the main window is opened and views updated when a grid model is opened from a summary case. * #9923 Make sure fieldChanged is triggered when required Exclude field having the target state. If these fields are included, the one and only call to setValueWithFieldChanged() can contain a field with the target state value. When setting a value to a field with the same value, nothing happens and the UI will get an inconsistent state (some curves toggled off are still visible in a plot).
This commit is contained in:
@@ -99,11 +99,36 @@ bool RicToggleItemsFeatureImpl::isToggleCommandsForSubItems()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicToggleItemsFeatureImpl::setObjectToggleStateForSelection( SelectionToggleType state )
|
||||
{
|
||||
auto fields = findToggleFieldsFromSelection( state );
|
||||
if ( fields.empty() ) return;
|
||||
auto selectedFields = findToggleFieldsFromSelection( state );
|
||||
|
||||
auto lastField = fields.back();
|
||||
for ( auto field : fields )
|
||||
std::vector<caf::PdmField<bool>*> fieldsToUpdate;
|
||||
if ( state == TOGGLE_OFF || state == TOGGLE_ON )
|
||||
{
|
||||
// Exclude field having the target state. If these fields are included, the one and only call to setValueWithFieldChanged() can
|
||||
// contain a field with the target state value. When setting a value to a field with the same value, nothing happens and the UI will
|
||||
// get an inconsistent state (some curves toggled off are still visible in a plot).
|
||||
|
||||
const bool targetState = ( state == TOGGLE_ON ) ? true : false;
|
||||
|
||||
for ( const auto& field : selectedFields )
|
||||
{
|
||||
bool currentValue = field->v();
|
||||
if ( currentValue != targetState )
|
||||
{
|
||||
fieldsToUpdate.push_back( field );
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// All fields will be updated when toggling
|
||||
fieldsToUpdate = selectedFields;
|
||||
}
|
||||
|
||||
if ( fieldsToUpdate.empty() ) return;
|
||||
|
||||
auto lastField = fieldsToUpdate.back();
|
||||
for ( auto field : fieldsToUpdate )
|
||||
{
|
||||
bool value = !( field->v() );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user