X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDCalc%2Fgui%2FMEDWidgetHelper.cxx;h=b01841bdb0fc45e3e4644e77c1c529d6c132c3a1;hb=0946beb4bbeefcdea393f97fcb63654e1dca2eab;hp=8935a3adeed524a01f18194eaa6a4e81ec98ea0d;hpb=e64ecc9b3c9ff16557c4d327e570cc17ba5d8d5d;p=modules%2Fmed.git diff --git a/src/MEDCalc/gui/MEDWidgetHelper.cxx b/src/MEDCalc/gui/MEDWidgetHelper.cxx index 8935a3ade..b01841bdb 100644 --- a/src/MEDCalc/gui/MEDWidgetHelper.cxx +++ b/src/MEDCalc/gui/MEDWidgetHelper.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2016 CEA/DEN, EDF R&D +// Copyright (C) 2016-2021 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -25,8 +25,8 @@ MEDWidgetHelper::MEDWidgetHelper(const PresentationController * presController, MEDCALC::MEDPresentationManager_ptr presManager, int presId, const std::string & presName, WidgetPresentationParameters * paramWidget): - _presController(presController), _presManager(presManager), + _presController(presController), _presId(presId), _presName(presName), _paramWidget(paramWidget) @@ -51,6 +51,14 @@ void MEDWidgetHelper::loadParametersFromEngine() _presManager->getPresentationIntProperty(_presId, MEDPresentation::PROP_COLOR_MAP.c_str())); _scalarBarRange = static_cast( _presManager->getPresentationIntProperty(_presId, MEDPresentation::PROP_SCALAR_BAR_RANGE.c_str())); + + _scalarBarVisibility = static_cast( + _presManager->getPresentationIntProperty(_presId, MEDPresentation::PROP_SCALAR_BAR_VISIBILITY.c_str())); + + _scalarBarRangeArray[0] = _presManager->getPresentationDoubleProperty(_presId, MEDPresentation::PROP_SCALAR_BAR_MIN_VALUE.c_str()); + _scalarBarRangeArray[1] = _presManager->getPresentationDoubleProperty(_presId, MEDPresentation::PROP_SCALAR_BAR_MAX_VALUE.c_str()); + + _hideDataOutsideCustomRange = _presManager->getPresentationIntProperty(_presId, MEDPresentation::PROP_HIDE_DATA_OUTSIDE_CUSTOM_RANGE.c_str()); } void MEDWidgetHelper::updateWidget(bool connect) @@ -64,16 +72,28 @@ void MEDWidgetHelper::updateWidget(bool connect) loadParametersFromEngine(); // Set properly color map and scalar bar range + STDLOG("MEDWidgetHelper::udpateWidget() colorMap is " << _colorMap); _paramWidget->setColorMap(_colorMap); + STDLOG("MEDWidgetHelper::udpateWidget() scalarBarRange is " << _scalarBarRange); _paramWidget->setScalarBarRange(_scalarBarRange); + _paramWidget->setScalarBarVisibility(_scalarBarVisibility); + + _paramWidget->setScalarBarRangeValue(_scalarBarRangeArray[0], _scalarBarRangeArray[1]); + + _paramWidget->setHideDataOutsideCustomRange(_hideDataOutsideCustomRange); + if (connect) { QObject::connect( this, SIGNAL(presentationUpdateSignal(const PresentationEvent *)), _presController, SIGNAL(presentationSignal(const PresentationEvent *)) ); QObject::connect( _paramWidget, SIGNAL(comboScalarBarRangeIndexChanged(int)), this, SLOT(onScalarBarRangeChanged(int)) ); QObject::connect( _paramWidget, SIGNAL(comboColorMapIndexChanged(int)), this, SLOT(onColorMapChanged(int)) ); - } + QObject::connect( _paramWidget, SIGNAL(checkboxScalarBarVisibilityChanged(int)), this, SLOT(onScalarBarVisibilityChanged(int)) ); + QObject::connect( _paramWidget, SIGNAL(checkboxCustomRangeChanged(int)), this, SLOT(onUseCustomRangeChanged(int))); + QObject::connect( _paramWidget, SIGNAL(spinboxCustomRangeChanged(double, double)), this, SLOT(onCustomRangeValueChanged(double, double))); + QObject::connect( _paramWidget, SIGNAL(checkboxHideDataOutsideCustomRangeChanged(int)), this, SLOT(onHideDataOutsideCustomRangeChanged(int))); + } } void MEDWidgetHelper::releaseWidget() @@ -82,12 +102,28 @@ void MEDWidgetHelper::releaseWidget() _presController, SIGNAL(presentationSignal(const PresentationEvent *)) ); QObject::disconnect( _paramWidget, SIGNAL(comboScalarBarRangeIndexChanged(int)), this, SLOT(onScalarBarRangeChanged(int)) ); QObject::disconnect( _paramWidget, SIGNAL(comboColorMapIndexChanged(int)), this, SLOT(onColorMapChanged(int)) ); + QObject::disconnect( _paramWidget, SIGNAL(checkboxScalarBarVisibilityChanged(int)), this, SLOT(onScalarBarVisibilityChanged(int))); + QObject::disconnect( _paramWidget, SIGNAL(checkboxCustomRangeChanged(int)), this, SLOT(onUseCustomRangeChanged(int))); + QObject::disconnect( _paramWidget, SIGNAL(spinboxCustomRangeChanged(double, double)), this, SLOT(onCustomRangeChanged(double, double))); + QObject::disconnect( _paramWidget, SIGNAL(checkboxHideDataOutsideCustomRangeChanged(int)), this, SLOT(onHideDataOutsideCustomRangeChanged(int))); + + // Reset default for color map and scalar bar range _paramWidget->setColorMap(MEDCALC::COLOR_MAP_DEFAULT); _paramWidget->setScalarBarRange(MEDCALC::SCALAR_BAR_RANGE_DEFAULT); } +void MEDWidgetHelper::onScalarBarVisibilityChanged(int flag) { + STDLOG("MEDWidgetHelper::onScalarBarVisibilityChanged"); + PresentationEvent* event = new PresentationEvent(); + event->eventtype = PresentationEvent::EVENT_SCALAR_BAR_VISIBILITY_CHANGED; + event->presentationId = _presId; + event->anInteger = flag; + + emit presentationUpdateSignal(event); // --> PresentationController::processPresentationEvent +} + void MEDWidgetHelper::onComponentChanged(int idx) { STDLOG("MEDWidgetHelper::onComponentChanged"); @@ -100,7 +136,7 @@ void MEDWidgetHelper::onComponentChanged(int idx) emit presentationUpdateSignal(event); // --> PresentationController::processPresentationEvent } -void MEDWidgetHelper::onColorMapChanged(int idx) +void MEDWidgetHelper::onColorMapChanged(int /*idx*/) { STDLOG("MEDWidgetHelper::onColorMapChanged"); PresentationEvent* event = new PresentationEvent(); @@ -124,3 +160,38 @@ void MEDWidgetHelper::onScalarBarRangeChanged(int idx) emit presentationUpdateSignal(event); // --> PresentationController::processPresentationEvent } + +void MEDWidgetHelper::onUseCustomRangeChanged(int flag) { + STDLOG("MEDWidgetHelper::onUseCustomRangeChanged"); + PresentationEvent* event = new PresentationEvent(); + event->eventtype = PresentationEvent::EVENT_CHANGE_TIME_RANGE; + event->presentationId = _presId; + event->anInteger = flag ? _paramWidget->getRangeComboBox()->count() : _paramWidget->getRangeComboBox()->currentIndex(); + event->aDouble1 = _paramWidget->getMixCustomRange(); + event->aDouble2 = _paramWidget->getMaxCustomRange(); + + emit presentationUpdateSignal(event); // --> PresentationController::processPresentationEvent +} + +void MEDWidgetHelper::onCustomRangeValueChanged(double min, double max) { + STDLOG("MEDWidgetHelper::onCustomRangeChanged"); + PresentationEvent* event = new PresentationEvent(); + event->eventtype = PresentationEvent::EVENT_CUSTOM_RANGE_CHANGED; + event->presentationId = _presId; + event->aDouble1 = min; + event->aDouble2 = max; + + emit presentationUpdateSignal(event); // --> PresentationController::processPresentationEvent +} + +void MEDWidgetHelper::onHideDataOutsideCustomRangeChanged(int flag) { + STDLOG("MEDWidgetHelper::onCustomRangeFlagChanged"); + PresentationEvent* event = new PresentationEvent(); + event->eventtype = PresentationEvent::EVENT_HIDE_DATA_OUTSIDE_CUSTOM_RANGE_CHANGED; + event->presentationId = _presId; + event->anInteger = flag; + event->aDouble1 = _paramWidget->getMixCustomRange(); + event->aDouble2 = _paramWidget->getMaxCustomRange(); + + emit presentationUpdateSignal(event); // --> PresentationController::processPresentationEvent +} \ No newline at end of file