X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_WidgetCreatorFactory.cpp;h=946a282a68eb28d825bc9542b1f58ca392f94fbf;hb=5fea3f89cb0f16848b1217193c13fda0a596c754;hp=6fd77e0615ccea862d6e9118f1ebe82c38f2ed4f;hpb=818bc197ba38350efb1a88e5735687a9da5ed6c3;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_WidgetCreatorFactory.cpp b/src/ModuleBase/ModuleBase_WidgetCreatorFactory.cpp old mode 100755 new mode 100644 index 6fd77e061..946a282a6 --- a/src/ModuleBase/ModuleBase_WidgetCreatorFactory.cpp +++ b/src/ModuleBase/ModuleBase_WidgetCreatorFactory.cpp @@ -1,15 +1,28 @@ -// Copyright (C) 2014-20xx CEA/DEN, EDF R&D - -// File: ModuleBase_WidgetCreatorFactory.cpp -// Created: 03 Dec 2015 -// Author: Natalia ERMOLAEVA +// 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 +// 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 #include #include -#include +#include #include @@ -19,7 +32,8 @@ std::shared_ptr MY_WIDGET_CREATOR_FACTORY; std::shared_ptr ModuleBase_WidgetCreatorFactory::get() { if (!MY_WIDGET_CREATOR_FACTORY) { - MY_WIDGET_CREATOR_FACTORY = std::shared_ptr(new ModuleBase_WidgetCreatorFactory()); + MY_WIDGET_CREATOR_FACTORY = + std::shared_ptr(new ModuleBase_WidgetCreatorFactory()); } return MY_WIDGET_CREATOR_FACTORY; } @@ -36,38 +50,44 @@ void ModuleBase_WidgetCreatorFactory::registerCreator(const WidgetCreatorPtr& th { std::set::const_iterator anIt, aLast; /// fill map of panels - const std::set& aPanelTypes = theCreator->panelTypes(); + std::set aPanelTypes; + theCreator->panelTypes(aPanelTypes); for (anIt = aPanelTypes.begin(), aLast = aPanelTypes.end(); anIt != aLast; anIt++) { std::string aKey = *anIt; if (!myPanelToCreator.contains(aKey)) myPanelToCreator[aKey] = theCreator; else { - Events_Error::send("The" + aKey + " panel XML definition has been already \ -used by another widget creator"); + Events_InfoMessage("ModuleBase_WidgetCreatorFactory", + "The %1 panel XML definition has been already used by another widget creator") + .arg(aKey).send(); } } /// fill map of widgets - const std::set& aTypes = theCreator->widgetTypes(); + std::set aTypes; + theCreator->widgetTypes(aTypes); for (anIt = aTypes.begin(), aLast = aTypes.end(); anIt != aLast; anIt++) { std::string aKey = *anIt; if (!myCreators.contains(aKey)) myCreators[aKey] = theCreator; else { - Events_Error::send("The" + aKey + " widget XML definition has been already \ -used by another widget creator"); + Events_InfoMessage("ModuleBase_WidgetCreatorFactory", + "The %1 widget XML definition has been already used by another widget creator") + .arg(aKey).send(); } } /// fill map of pages - const std::set& aPTypes = theCreator->pageTypes(); + std::set aPTypes; + theCreator->pageTypes(aPTypes); for (anIt = aPTypes.begin(), aLast = aPTypes.end(); anIt != aLast; anIt++) { std::string aKey = *anIt; if (!myPageToCreator.contains(aKey)) myPageToCreator[aKey] = theCreator; else { - Events_Error::send("The" + aKey + " page XML definition has been already \ -used by another widget creator"); + Events_InfoMessage("ModuleBase_WidgetCreatorFactory", + "The %1 page XML definition has been already used by another widget creator") + .arg(aKey).send(); } } } @@ -77,12 +97,14 @@ bool ModuleBase_WidgetCreatorFactory::hasPanelWidget(const std::string& theType) return myPanelToCreator.contains(theType); } -QWidget* ModuleBase_WidgetCreatorFactory::createPanel(const std::string& theType, QWidget* theParent) +QWidget* ModuleBase_WidgetCreatorFactory::createPanelByType(const std::string& theType, + QWidget* theParent, + const FeaturePtr& theFeature) { QWidget* aPanel = 0; if (myPanelToCreator.contains(theType)) { WidgetCreatorPtr aCreator = myPanelToCreator[theType]; - aPanel = aCreator->createPanelByType(theType, theParent); + aPanel = aCreator->createPanelByType(theType, theParent, theFeature); } return aPanel; }