X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_WidgetFactory.h;h=1292cec57fdd47a674a2d7121e596c3233f0baef;hb=a2982d2108f929cf9e7f996cfd590c4ce59dc21c;hp=5193be3dbcf01bf874ef7f17d8687c37ddf790e3;hpb=2af0a78ca612a60f2a54f1269cea3344d823b400;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_WidgetFactory.h b/src/ModuleBase/ModuleBase_WidgetFactory.h index 5193be3db..1292cec57 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 * @@ -8,8 +10,8 @@ #ifndef ModuleBase_WidgetFactory_H_ #define ModuleBase_WidgetFactory_H_ -#include -#include +#include "ModuleBase.h" +#include "ModuleBase_ModelWidget.h" #include #include @@ -17,37 +19,96 @@ class QObject; class QWidget; class Config_WidgetAPI; -class ModuleBase_PropPanelOperation; +class ModuleBase_IWorkshop; +/** +* \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_PropPanelOperation*); + 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(); + /// Creates content widget for property panel + /// \param theParent a parent widget void createWidget(QWidget* theParent); - QList getWrappedWidgets() const + /// Returns list of model widgets + QList getModelWidgets() const { - return myWidgets; + return myModelWidgets; } -protected: - //Widgets + protected: + /// Create widget by its type + /// \param theType a type + /// \param theParent a parent widget QWidget* createWidgetByType(const std::string& theType, QWidget* theParent = NULL); - QWidget* labelControl(QWidget* theParent); - QWidget* doubleSpinBoxControl(); - QWidget* pointSelectorControl(QWidget* theParent); + + /// Create a widget of container type + /// \param theType a type + /// \param theParent a parent widget QWidget* createContainer(const std::string& theType, QWidget* theParent = NULL); - bool connectWidget(QObject*, const QString&); - QString qs(const std::string& theStdString) const; + /// Create label widget + /// \param theParent a parent widget + QWidget* labelControl(QWidget* theParent); + + /// Create double spin box widget + /// \param theParent a parent widget + QWidget* doubleSpinBoxControl(QWidget* theParent); + + /// Create double value editor widget + /// \param theParent a parent widget + QWidget* doubleValueEditor(QWidget* theParent); + + /// Create shape selector widget + /// \param theParent a parent widget + QWidget* shapeSelectorControl(QWidget* theParent); + + /// Create boolean input widget + /// \param theParent a parent widget + QWidget* booleanControl(QWidget* theParent); -private: + /// Create file selector widget + /// \param theParent a parent widget + QWidget* fileSelectorControl(QWidget* theParent); + + /// Create choice widget (combo box) + /// \param theParent a parent widget + QWidget* choiceControl(QWidget* theParent); + + /// Create line edit widget + /// \param theParent a parent widget + QWidget* lineEditControl(QWidget* theParent); + + /// Create multi selector widget + /// \param theParent a parent widget + QWidget* multiSelectorControl(QWidget* theParent); + + /// Convert STD string to QT string + /// \param theStdString is STD string + static QString qs(const std::string& theStdString); + + private: + /// API object for XML reading Config_WidgetAPI* myWidgetApi; - ModuleBase_PropPanelOperation* myOperation; - QList myWidgets; + /// Reference to workshop + ModuleBase_IWorkshop* myWorkshop; + + /// List of created model widgets + QList myModelWidgets; + + /// Id of current parent + std::string myParentId; }; #endif /* ModuleBase_WidgetFactory_H_ */