X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_ModelWidget.cpp;h=dd17a65d83edddf770475a99311d68f2f03732a2;hb=3c521abdcd7ca02cf3a2575dea7ee8f6ce97130e;hp=ff4f88a9dc1b875f95a3f3ce23a1505da7afa2b2;hpb=2714903267d23cd0c81166c506fb3edd1e069d40;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_ModelWidget.cpp b/src/ModuleBase/ModuleBase_ModelWidget.cpp index ff4f88a9d..dd17a65d8 100644 --- a/src/ModuleBase/ModuleBase_ModelWidget.cpp +++ b/src/ModuleBase/ModuleBase_ModelWidget.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-2019 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 @@ -12,10 +12,9 @@ // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or -// email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "ModuleBase_ModelWidget.h" @@ -49,6 +48,7 @@ //#define DEBUG_WIDGET_INSTANCE //#define DEBUG_ENABLE_SKETCH_INPUT_FIELDS +//************************************************************** ModuleBase_ModelWidget::ModuleBase_ModelWidget(QWidget* theParent, const Config_WidgetAPI* theData) : QWidget(theParent), @@ -85,6 +85,7 @@ ModuleBase_ModelWidget::ModuleBase_ModelWidget(QWidget* theParent, connect(this, SIGNAL(valuesModified()), this, SLOT(onWidgetValuesModified())); } +//************************************************************** ModuleBase_ModelWidget::~ModuleBase_ModelWidget() { #ifdef DEBUG_WIDGET_INSTANCE @@ -92,6 +93,7 @@ ModuleBase_ModelWidget::~ModuleBase_ModelWidget() #endif } +//************************************************************** bool ModuleBase_ModelWidget::reset() { bool aResult = resetCustom(); @@ -101,11 +103,29 @@ bool ModuleBase_ModelWidget::reset() return aResult; } +//************************************************************** bool ModuleBase_ModelWidget::isInitialized(ObjectPtr theObject) const { return theObject->data()->attribute(attributeID())->isInitialized(); } +//************************************************************** +void ModuleBase_ModelWidget::selectionModes(int& theModuleSelectionModes, QIntList& theModes) +{ + theModuleSelectionModes = -1; + if (myWidgetValidator) + myWidgetValidator->selectionModes(theModuleSelectionModes, theModes); +} + +//************************************************************** +void ModuleBase_ModelWidget::selectionFilters(QIntList& theModuleSelectionFilters, + SelectMgr_ListOfFilter& theSelectionFilters) +{ + if (myWidgetValidator) + myWidgetValidator->selectionFilters(theModuleSelectionFilters, theSelectionFilters); +} + +//************************************************************** bool ModuleBase_ModelWidget::isValueEnabled() const { bool anEnabled = true; @@ -124,12 +144,14 @@ bool ModuleBase_ModelWidget::isValueEnabled() const return anEnabled; } +//************************************************************** void ModuleBase_ModelWidget::processValueState() { if (myState == ModifiedInPP || myState == ModifiedInViewer) storeValue(); } +//************************************************************** Events_InfoMessage ModuleBase_ModelWidget::getValueStateError() const { Events_InfoMessage aMessage; @@ -157,6 +179,7 @@ Events_InfoMessage ModuleBase_ModelWidget::getValueStateError() const return aMessage; } +//************************************************************** QString ModuleBase_ModelWidget::getError(const bool theValueStateChecked) const { QString anError; @@ -194,6 +217,7 @@ QString ModuleBase_ModelWidget::getError(const bool theValueStateChecked) const return anError; } +//************************************************************** void ModuleBase_ModelWidget::enableFocusProcessing() { QList aMyControls = getControls(); @@ -203,6 +227,7 @@ void ModuleBase_ModelWidget::enableFocusProcessing() } } +//************************************************************** void ModuleBase_ModelWidget::setHighlighted(bool isHighlighted) { QList aWidgetList = getControls(); @@ -217,6 +242,7 @@ void ModuleBase_ModelWidget::setHighlighted(bool isHighlighted) } } +//************************************************************** void ModuleBase_ModelWidget::setFeature(const FeaturePtr& theFeature, const bool theToStoreValue, const bool isUpdateFlushed) { @@ -234,6 +260,7 @@ void ModuleBase_ModelWidget::setFeature(const FeaturePtr& theFeature, const bool myFlushUpdateBlocked = false; } +//************************************************************** bool ModuleBase_ModelWidget::focusTo() { #ifdef DEBUG_WIDGET_INSTANCE @@ -252,6 +279,7 @@ bool ModuleBase_ModelWidget::focusTo() return isFocusAccepted; } +//************************************************************** void ModuleBase_ModelWidget::activate() { #ifdef DEBUG_WIDGET_INSTANCE @@ -265,13 +293,10 @@ void ModuleBase_ModelWidget::activate() if (anAttribute.get() != NULL && !anAttribute->isInitialized()) initializeValueByActivate(); } - - if (myWidgetValidator) - myWidgetValidator->activateFilters(true); - activateCustom(); } +//************************************************************** void ModuleBase_ModelWidget::deactivate() { #ifdef DEBUG_WIDGET_INSTANCE @@ -280,9 +305,10 @@ void ModuleBase_ModelWidget::deactivate() myIsValueStateBlocked = false; myState = Stored; if (myWidgetValidator) - myWidgetValidator->activateFilters(false); + myWidgetValidator->clearValidatedCash(); } +//************************************************************** void ModuleBase_ModelWidget::initializeValueByActivate() { if (isComputedDefault()) { @@ -295,6 +321,7 @@ void ModuleBase_ModelWidget::initializeValueByActivate() } } +//************************************************************** QWidget* ModuleBase_ModelWidget::getControlAcceptingFocus(const bool isFirst) { QWidget* aControl = 0; @@ -317,11 +344,13 @@ QWidget* ModuleBase_ModelWidget::getControlAcceptingFocus(const bool isFirst) return aControl; } +//************************************************************** void ModuleBase_ModelWidget::setDefaultValue(const std::string& theValue) { myDefaultValue = theValue; } +//************************************************************** bool ModuleBase_ModelWidget::storeValue() { setValueState(Stored); @@ -348,6 +377,8 @@ bool ModuleBase_ModelWidget::storeValue() return isDone; } #ifdef DEBUG_VALUE_STATE + +//************************************************************** std::string getDebugInfo(const ModuleBase_ModelWidget::ValueState& theState) { std::string anInfo; @@ -360,8 +391,9 @@ std::string getDebugInfo(const ModuleBase_ModelWidget::ValueState& theState) } return anInfo; } - #endif + +//************************************************************** ModuleBase_ModelWidget::ValueState ModuleBase_ModelWidget::setValueState (const ModuleBase_ModelWidget::ValueState& theState) { @@ -379,6 +411,7 @@ ModuleBase_ModelWidget::ValueState ModuleBase_ModelWidget::setValueState return aState; } +//************************************************************** bool ModuleBase_ModelWidget::blockValueState(const bool theBlocked) { bool isBlocked = myIsValueStateBlocked; @@ -386,6 +419,7 @@ bool ModuleBase_ModelWidget::blockValueState(const bool theBlocked) return isBlocked; } +//************************************************************** bool ModuleBase_ModelWidget::restoreValue() { emit beforeValuesRestored(); @@ -395,6 +429,7 @@ bool ModuleBase_ModelWidget::restoreValue() return isDone; } +//************************************************************** void ModuleBase_ModelWidget::updateObject(ObjectPtr theObject) { if (!myFlushUpdateBlocked) { @@ -406,6 +441,7 @@ void ModuleBase_ModelWidget::updateObject(ObjectPtr theObject) } } +//************************************************************** bool ModuleBase_ModelWidget::canProcessAction(ModuleBase_ActionType theActionType, bool& isActionEnabled) { @@ -414,6 +450,7 @@ bool ModuleBase_ModelWidget::canProcessAction(ModuleBase_ActionType theActionTyp case ActionEnter: return false; case ActionEscape: return false; case ActionDelete: return true; + case ActionSelection: return true; case ActionUndo: case ActionRedo: default: @@ -421,7 +458,9 @@ bool ModuleBase_ModelWidget::canProcessAction(ModuleBase_ActionType theActionTyp } } -bool ModuleBase_ModelWidget::processAction(ModuleBase_ActionType theActionType) +//************************************************************** +bool ModuleBase_ModelWidget::processAction(ModuleBase_ActionType theActionType, + const ActionParamPtr& theParam) { switch (theActionType) { case ActionEnter: @@ -430,6 +469,8 @@ bool ModuleBase_ModelWidget::processAction(ModuleBase_ActionType theActionType) return processEscape(); case ActionDelete: return processDelete(); + case ActionSelection: + processSelection(); case ActionUndo: case ActionRedo: default: @@ -437,16 +478,19 @@ bool ModuleBase_ModelWidget::processAction(ModuleBase_ActionType theActionType) } } +//************************************************************** bool ModuleBase_ModelWidget::processEnter() { return false; } +//************************************************************** bool ModuleBase_ModelWidget::processEscape() { return false; } +//************************************************************** bool ModuleBase_ModelWidget::processDelete() { // we consider that model objects eats delete key in order to @@ -454,6 +498,13 @@ bool ModuleBase_ModelWidget::processDelete() return true; } +//************************************************************** +bool ModuleBase_ModelWidget::processSelection() +{ + return false; +} + +//************************************************************** bool ModuleBase_ModelWidget::eventFilter(QObject* theObject, QEvent *theEvent) { QWidget* aWidget = qobject_cast(theObject);