1 // File: ModuleBase_WidgetShapeSelector.h
2 // Created: 2 June 2014
3 // Author: Vitaly Smetannikov
5 #ifndef ModuleBase_WidgetShapeSelector_H
6 #define ModuleBase_WidgetShapeSelector_H
8 #include "ModuleBase.h"
9 #include "ModuleBase_ModelWidget.h"
11 #include <ModelAPI_Object.h>
13 #include <TopAbs_ShapeEnum.hxx>
15 #include <QStringList>
18 class Config_WidgetAPI;
23 class ModuleBase_IWorkshop;
25 class MODULEBASE_EXPORT ModuleBase_WidgetShapeSelector : public ModuleBase_ModelWidget
29 ModuleBase_WidgetShapeSelector(QWidget* theParent, ModuleBase_IWorkshop* theWorkshop,
30 const Config_WidgetAPI* theData, const std::string& theParentId);
32 virtual ~ModuleBase_WidgetShapeSelector();
34 /// Saves the internal parameters to the given feature
35 /// \param theObject a model feature to be changed
36 virtual bool storeValue() const;
38 virtual bool restoreValue();
40 virtual bool focusTo();
42 /// Returns the internal parent wiget control, that can be shown anywhere
43 /// \returns the widget
44 QWidget* getControl() const
49 /// Returns list of widget controls
50 /// \return a control list
51 virtual QList<QWidget*> getControls() const;
53 ObjectPtr selectedFeature() const
55 return mySelectedObject;
60 /// Activate or deactivate selection
61 void activateSelection(bool toActivate);
64 void onSelectionChanged();
67 void enableOthersControls(bool toEnable) const;
68 void updateSelectionName();
69 void raisePanel() const;
70 bool isAccepted(const ObjectPtr theObject) const;
72 static TopAbs_ShapeEnum shapeType(const QString& theType);
76 QLineEdit* myTextLine;
77 QToolButton* myActivateBtn;
79 ModuleBase_IWorkshop* myWorkshop;
81 ObjectPtr mySelectedObject;
82 QStringList myShapeTypes;
85 QPalette myInactivePalet;