X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_IPropertyPanel.cpp;h=b83f29fca9f061021c601fd2a46fa4f5ddc18150;hb=374a366d81778aa27ed32cc080c0f95bdb03f1c5;hp=bb6d2276a9fe1736a4a2d1773d9498a60d973d4f;hpb=30c051954fe28016ee74f7aaf851dbdec4249d8c;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_IPropertyPanel.cpp b/src/ModuleBase/ModuleBase_IPropertyPanel.cpp index bb6d2276a..b83f29fca 100644 --- a/src/ModuleBase/ModuleBase_IPropertyPanel.cpp +++ b/src/ModuleBase/ModuleBase_IPropertyPanel.cpp @@ -1,11 +1,21 @@ -// Copyright (C) 2014-20xx CEA/DEN, EDF R&D - -/* - * ModuleBase_IPropertyPanel.cpp - * - * Created on: Oct 01, 2014 - * Author: vsv - */ +// Copyright (C) 2014-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 +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// 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 +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #include "ModuleBase_IPropertyPanel.h" #include "ModuleBase_ModelWidget.h" @@ -17,7 +27,24 @@ ModuleBase_IPropertyPanel::ModuleBase_IPropertyPanel(QWidget* theParent) : QDockWidget(theParent), myIsEditing(false) { +} + +ModuleBase_ModelWidget* ModuleBase_IPropertyPanel::modelWidget( + const std::string& theAttributeId) const +{ + ModuleBase_ModelWidget* aWidget = 0; + QList aWidgets = modelWidgets(); + ModelAPI_ValidatorsFactory* aValidators = ModelAPI_Session::get()->validators(); + for (QList::const_iterator anIt = aWidgets.begin(); + anIt != aWidgets.end() && !aWidget; anIt++) { + ModuleBase_ModelWidget* aCurrentWidget = *anIt; + if (aCurrentWidget->attributeID() == theAttributeId && + aCurrentWidget->canAcceptFocus() && + aValidators->isCase(aCurrentWidget->feature(), aCurrentWidget->attributeID())) + aWidget = aCurrentWidget; + } + return aWidget; } ModuleBase_ModelWidget* ModuleBase_IPropertyPanel::findFirstAcceptingValueWidget() @@ -34,7 +61,6 @@ ModuleBase_ModelWidget* ModuleBase_IPropertyPanel::findFirstAcceptingValueWidget ModuleBase_ModelWidget* aWgt; QList::const_iterator aWIt; - bool isOffToolBox = false; for (aWIt = theWidgets.begin(); aWIt != theWidgets.end() && !aFirstWidget; ++aWIt) { aWgt = (*aWIt); if (!aValidators->isCase(aWgt->feature(), aWgt->attributeID())) @@ -51,3 +77,14 @@ ModuleBase_ModelWidget* ModuleBase_IPropertyPanel::findFirstAcceptingValueWidget } return aFirstWidget; } + +bool ModuleBase_IPropertyPanel::isModified() const +{ + bool isModified = false; + QList aWidgets = modelWidgets(); + foreach(ModuleBase_ModelWidget* aWgt, aWidgets) { + bool aRes = aWgt->isModified(); + isModified |= aRes; + } + return isModified; +}