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;
58 /// Set the given wrapped value to the current widget
59 /// This value should be processed in the widget according to the needs
60 /// \param theValue the wrapped widget value
61 virtual bool setValue(ModuleBase_WidgetValue* theValue);
65 /// Activate or deactivate selection
66 void activateSelection(bool toActivate);
69 void onSelectionChanged();
72 bool eventFilter(QObject* theObj, QEvent* theEvent);
75 void updateSelectionName();
76 void raisePanel() const;
77 bool isAccepted(const ObjectPtr theObject) const;
79 // Set the given object as a value of the widget
80 void setObject(ObjectPtr theObj);
82 static TopAbs_ShapeEnum shapeType(const QString& theType);
86 QLineEdit* myTextLine;
87 //QToolButton* myActivateBtn;
89 ModuleBase_IWorkshop* myWorkshop;
91 ObjectPtr mySelectedObject;
92 QStringList myShapeTypes;
95 QPalette myInactivePalet;