SMTK  @SMTK_VERSION@
Simulation Modeling Tool Kit
pqSMTKAttributeItemWidget.h
1 //=========================================================================
2 // Copyright (c) Kitware, Inc.
3 // All rights reserved.
4 // See LICENSE.txt for details.
5 //
6 // This software is distributed WITHOUT ANY WARRANTY; without even
7 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
8 // PURPOSE. See the above copyright notice for more information.
9 //=========================================================================
10 #ifndef smtk_extension_paraview_widgets_pqSMTKAttributeItemWidget_h
11 #define smtk_extension_paraview_widgets_pqSMTKAttributeItemWidget_h
12 
13 #include "smtk/extension/paraview/widgets/smtkPQWidgetsExtModule.h"
14 #include "smtk/extension/qt/qtItem.h"
15 
16 class vtkSMProxy;
17 class pqInteractivePropertyWidget;
18 
32 class SMTKPQWIDGETSEXT_EXPORT pqSMTKAttributeItemWidget : public smtk::extension::qtItem
33 {
34  Q_OBJECT
35 public:
38 
39  void markForDeletion() override;
40 
44  enum class OverrideWhen
45  {
46  Unset,
47  Never
48  };
49 
53  enum class FallbackStrategy
54  {
55  Hide,
56  Force
57  };
58 
62  enum class GeometrySource
63  {
64  Item,
65  Associations,
66  Links,
67  Scene,
68  BestGuess,
69  None
70  };
71 
72  // Convert enums to/from strings
73  static OverrideWhen OverrideWhenConvert(const std::string& str);
74  static std::string OverrideWhenConvert(OverrideWhen val);
75 
76  static FallbackStrategy FallbackStrategyConvert(const std::string& str);
77  static std::string FallbackStrategyConvert(FallbackStrategy val);
78 
79  static GeometrySource GeometrySourceConvert(const std::string& str);
80  static std::string GeometrySourceConvert(GeometrySource val);
81 
83  static void setHideWidgetWhenInactive(bool val);
84  static bool hideWidgetWhenInactive();
85 
87  const qtAttributeItemInfo& info,
88  Qt::Orientation orient = Qt::Horizontal);
91  QWidget* p,
93  Qt::Orientation orient = Qt::Horizontal);
94  ~pqSMTKAttributeItemWidget() override;
95 
97  virtual bool createProxyAndWidget(vtkSMProxy*& source, pqInteractivePropertyWidget*& widget) = 0;
98  pqInteractivePropertyWidget* propertyWidget();
99 
100 public Q_SLOTS:
101  virtual void updateItemFromWidget();
102  virtual void updateWidgetFromItem();
103 
114  void setOutputOptional(int optionEnabled);
115 
118  void renderViewEventually() const;
119 
120 protected Q_SLOTS:
122  void updateItemData() override;
123  virtual void ignoreWidgetValues();
124  virtual void acceptWidgetValues();
126  virtual bool updateItemFromWidgetInternal() = 0;
128  virtual bool updateWidgetFromItemInternal() = 0;
129 
130 protected:
133  bool eventFilter(QObject* obj, QEvent* event) override;
139  virtual void update3DWidgetVisibility(bool visible);
140 
142  void createWidget() override;
147  virtual void clearChildWidgets();
148  virtual void updateUI();
149  virtual void createEditor();
150 
155  bool validateControlItem(const smtk::attribute::StringItemPtr& item);
156 
157  class Internal;
158  Internal* m_p;
159 };
160 
161 #endif // smtk_extension_paraview_widgets_pqSMTKAttributeItemWidget_h
smtk::extension::qtItem
an abstract UI class for attribute item
Definition: qtItem.h:61
pqSMTKAttributeItemWidget::FallbackStrategy
FallbackStrategy
Specify how to size/place a widget.
Definition: pqSMTKAttributeItemWidget.h:53
smtk::extension::qtBaseView
A base class for all view types implemented using Qt.
Definition: qtBaseView.h:46
pqSMTKAttributeItemWidget::OverrideWhen
OverrideWhen
Specify when the widget may override values in the item.
Definition: pqSMTKAttributeItemWidget.h:44
smtk::extension::qtItem::updateItemData
virtual void updateItemData()
Tell the qtItem to update itself based on changes to its underlying attribute item.
Definition: qtItem.cxx:69
smtk::attribute::StringItemPtr
smtk::shared_ptr< smtk::attribute::StringItem > StringItemPtr
Definition: PublicPointerDefs.h:516
smtk::extension::qtAttributeItemInfo
Class used to generate widgets for Attribute Items.
Definition: qtAttributeItemInfo.h:39
smtk::extension::qtItem::markForDeletion
virtual void markForDeletion()
Indicates that the item should be deleted.
Definition: qtItem.cxx:60
pqSMTKAttributeItemWidget::GeometrySource
GeometrySource
Specify how to size/place a widget.
Definition: pqSMTKAttributeItemWidget.h:62
pqSMTKAttributeItemWidget
A subclass of qtItem common to all ParaView property widgets.
Definition: pqSMTKAttributeItemWidget.h:32
smtk::attribute::ItemPtr
smtk::shared_ptr< smtk::attribute::Item > ItemPtr
Definition: PublicPointerDefs.h:467