X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_WidgetFactory.h;h=1e1f29fa76e8dfc54e6de9b682f1efc2881cc0f5;hb=592b8a38b3c9e2a6a7d3d1d180b1f9b5406c4415;hp=e20fd2d9cf7191ddfa151b9cdfb6d97fe0aefb89;hpb=41f1d330c5156c27a2b6163fea03a62fea0d602c;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_WidgetFactory.h b/src/ModuleBase/ModuleBase_WidgetFactory.h index e20fd2d9c..1e1f29fa7 100644 --- a/src/ModuleBase/ModuleBase_WidgetFactory.h +++ b/src/ModuleBase/ModuleBase_WidgetFactory.h @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + /* * ModuleBase_WidgetFactory.h * @@ -5,11 +7,11 @@ * Author: sbh */ -#ifndef ModuleBase_WidgetFactory_H_ -#define ModuleBase_WidgetFactory_H_ +#ifndef MODULEBASE_WIDGETFACTORY_H_ +#define MODULEBASE_WIDGETFACTORY_H_ -#include "ModuleBase.h" -#include "ModuleBase_ModelWidget.h" +#include +#include #include #include @@ -17,41 +19,60 @@ class QObject; class QWidget; class Config_WidgetAPI; -class ModuleBase_Operation; class ModuleBase_IWorkshop; +class ModuleBase_PageBase; +/** +* \ingroup GUI +* A class for creation of widgets instances in for property panel using XML deskription of +* a feature +*/ class MODULEBASE_EXPORT ModuleBase_WidgetFactory { -public: - ModuleBase_WidgetFactory(ModuleBase_Operation* theOperation, ModuleBase_IWorkshop* theWorkshop); + public: + /// Constructor + /// \param theXmlRepresentation content of XML file + /// \param theWorkshop reference to workshop instance + ModuleBase_WidgetFactory(const std::string& theXmlRepresentation, + ModuleBase_IWorkshop* theWorkshop); virtual ~ModuleBase_WidgetFactory(); - void createWidget(QWidget* theParent); + /// Creates content widget for property panel + /// \param theParent a parent widget + void createWidget(ModuleBase_PageBase* theParent); + + /// Returns list of model widgets QList getModelWidgets() const { return myModelWidgets; } -protected: - //Widgets - QWidget* createWidgetByType(const std::string& theType, QWidget* theParent = NULL); - QWidget* labelControl(QWidget* theParent); - QWidget* doubleSpinBoxControl(QWidget* theParent); - QWidget* pointSelectorControl(QWidget* theParent); - QWidget* createContainer(const std::string& theType, QWidget* theParent = NULL); - QWidget* selectorControl(QWidget* theParent); - QWidget* booleanControl(QWidget* theParent); + protected: + /// check if ModuleBase_Widget has expandable widgets in getControls + bool hasExpandingControls(QWidget* theParent); + /// Create widget by its type + /// \param theType a type + /// \param theParent a parent widget + ModuleBase_ModelWidget* createWidgetByType(const std::string& theType, + QWidget* theParent = NULL); - bool connectWidget(QObject*, const QString&); - QString qs(const std::string& theStdString) const; + /// Convert STD string to QT string + /// \param theStdString is STD string + static QString qs(const std::string& theStdString); -private: + private: + /// API object for XML reading Config_WidgetAPI* myWidgetApi; - ModuleBase_Operation* myOperation; - ModuleBase_IWorkshop* myWorkshop; + /// Reference to workshop + ModuleBase_IWorkshop* myWorkshop; + + /// List of created model widgets QList myModelWidgets; + + /// Id of current parent + std::string myParentId; }; #endif /* ModuleBase_WidgetFactory_H_ */