X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_WidgetFactory.h;h=fd416271ecd652c380da60843ea9e5600d3124cf;hb=7d764bc51fb4ba0527f224e6ea6fb4898da82502;hp=3fa399e986193af203bc0755f4dec906d0cbd749;hpb=0233fc4277a766a0db60d017664ee1178b40002e;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_WidgetFactory.h b/src/ModuleBase/ModuleBase_WidgetFactory.h index 3fa399e98..fd416271e 100644 --- a/src/ModuleBase/ModuleBase_WidgetFactory.h +++ b/src/ModuleBase/ModuleBase_WidgetFactory.h @@ -7,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 @@ -20,8 +20,10 @@ class QObject; class QWidget; class Config_WidgetAPI; 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 */ @@ -36,8 +38,14 @@ class MODULEBASE_EXPORT ModuleBase_WidgetFactory virtual ~ModuleBase_WidgetFactory(); /// Creates content widget for property panel + /// \param thePage a parent page + void createWidget(ModuleBase_PageBase* thePage); + + /// Creates one widget for property panel for the widget with given index /// \param theParent a parent widget - void createWidget(QWidget* theParent); + /// \param theWidgetId a widget index + void createWidget(ModuleBase_PageBase* thePage, + const std::string& theWidgetId); /// Returns list of model widgets QList getModelWidgets() const @@ -45,57 +53,40 @@ class MODULEBASE_EXPORT ModuleBase_WidgetFactory return myModelWidgets; } - protected: - /// Create widget by its type - /// \param theType a type - /// \param theParent a parent widget - QWidget* createWidgetByType(const std::string& theType, QWidget* theParent = NULL); - - /// Create a widget of container type - /// \param theType a type - /// \param theParent a parent widget - QWidget* createContainer(const std::string& theType, QWidget* theParent = NULL); - - /// 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); - - /// Create file selector widget - /// \param theParent a parent widget - QWidget* fileSelectorControl(QWidget* theParent); + /// Returns the value of the title key from XML definition of the attribute in the feature + /// \param theFeatureKind a value of a kind of a feature + /// \param theAttributeId a value of a kind of the attribute under the feature + /// \param theTitle the result title + void getAttributeTitle(const std::string& theFeatureKind, + const std::string& theAttributeId, + std::string& theTitle); - /// Create choice widget (combo box) - /// \param theParent a parent widget - QWidget* choiceControl(QWidget* theParent); +protected: + /// check if ModuleBase_Widget has expandable widgets in getControls + bool hasExpandingControls(QWidget* theParent); - /// Create line edit widget + /// Create page by its type + /// \param theType a type /// \param theParent a parent widget - QWidget* lineEditControl(QWidget* theParent); + ModuleBase_PageBase* createPageByType(const std::string& theType, + QWidget* theParent); - /// Create multi selector widget + /// Create widget by its type + /// \param theType a type /// \param theParent a parent widget - QWidget* multiSelectorControl(QWidget* theParent); + ModuleBase_ModelWidget* createWidgetByType(const std::string& theType, + QWidget* theParent = NULL); /// Convert STD string to QT string /// \param theStdString is STD string static QString qs(const std::string& theStdString); + /// It updates internal config api to point in the structure to given id of widget + /// The method is recusive and it stops when the found flag is true + /// \param theWidgetId a widget id key value + /// \param theFound a flag about found windget and recursive search should be stopped + void moveToWidgetId(const std::string& theWidgetId, bool& theFound); + private: /// API object for XML reading Config_WidgetAPI* myWidgetApi;