SMTK  @SMTK_VERSION@
Simulation Modeling Tool Kit
qtDateTimeItem.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 // .NAME qtDateTimeItem - UI components for attribute DateTimeItem
11 // .SECTION Description
12 // .SECTION See Also
13 // qtItem
14 
15 #ifndef smtk_extension_qtDateTimeItem_h
16 #define smtk_extension_qtDateTimeItem_h
17 
18 #include "smtk/extension/qt/Exports.h"
19 #include "smtk/extension/qt/qtItem.h"
20 #include <QString>
21 
22 class QAction;
23 class QDateTime;
24 class QDateTimeEdit;
25 
26 namespace smtk
27 {
28 namespace extension
29 {
30 class SMTKQTEXT_EXPORT qtDateTimeItem : public qtItem
31 {
32  Q_OBJECT
33 
34 public:
35  static qtItem* createItemWidget(const qtAttributeItemInfo& info);
37  ~qtDateTimeItem() override;
38  void setLabelVisible(bool) override;
39  bool eventFilter(QObject* filterObj, QEvent* ev) override;
40 
41 public Q_SLOTS:
42  void setOutputOptional(int);
43  void updateItemData() override;
44 
45 Q_SIGNALS:
46 
47 protected Q_SLOTS:
48  void onChildWidgetSizeChanged() override;
49  /* virtual void onAddNewValue(); */
50  /* virtual void onRemoveValue(); */
51 
52  void onDateTimeChanged(const QDateTime& newValue);
53 
54  // Time zone menu actions
55  void onTimeZoneUnset();
56  void onTimeZoneUTC();
57  void onTimeZoneRegion();
58 
59  // Time zone dialog actions
60  void onRegionSelected();
61 
62 protected:
63  void createWidget() override;
64  QWidget* createDateTimeWidget(int elementIdx);
65  virtual void loadInputValues();
66  virtual void updateUI();
67  virtual void addInputEditor(int i);
68  /* virtual void updateExtensibleState(); */
69  virtual void clearChildWidgets();
70  void updateBackground(QDateTimeEdit* dtEdit, bool valid);
71  void updateTimeZoneMenu(QAction* selectedAction = nullptr);
72 
73  void setTimeZone(std::size_t element, const QString& region);
74  void setTimeZoneToUTC(std::size_t element);
75 
76 private:
78  qtDateTimeItemInternals* Internals;
79 }; // class qDateTimeItem
80 }; // namespace extension
81 }; // namespace smtk
82 
83 #endif
smtk
The main namespace for the Simulation Modeling Tool Kit (SMTK).
Definition: doc.h:33
smtk::extension::qtItem
an abstract UI class for attribute item
Definition: qtItem.h:61
smtk::extension::qtDateTimeItem::qtDateTimeItemInternals
Definition: qtDateTimeItem.cxx:52
smtk::extension::qtAttributeItemInfo
Class used to generate widgets for Attribute Items.
Definition: qtAttributeItemInfo.h:39
smtk::extension::qtDateTimeItem
Definition: qtDateTimeItem.h:30