VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
uiForParameter.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2013 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
14 
15 #include <QFile>
16 
17 class QWidget;
18 class QPushButton;
20 class DtModelSetEntry;
21 class DtUiForParameter;
22 class QTabWidget;
23 class QSplitter;
25 
27 {
28  Q_OBJECT
29 protected:
30  typedef std::map<std::string, QWidget*> ControlsMap;
31 
32 public:
33 
36  (
37  makVrv::DtDe& de,
38  const std::string& uiFile
39  );
40 
42  virtual ~DtUiForParameter();
43 
47  virtual QWidget* createControls(DtSimulationModelSet*);
48 
50  virtual QString findAppropriateFile(DtSimulationModelSet* set, const DtString&,
51  bool tryLikeUiMap = true) const;
52 
54  static void addUiMapping(const char* like, const char* parameter);
55  static std::string likeUi(const char* parameter);
56 
57  virtual void init(const std::set<makVrf::DtEntityMapperKey>&, DtElementChangedCallbackFcn);
58  virtual void init(const std::vector<DtComponentSystemDefinition*>&, DtElementChangedCallbackFcn);
59 
60  virtual DtUiElement* findElement(const DtString&) const;
61  virtual bool isModified() const;
62 
64  virtual void buildMapOfAvailableControls(QWidget* parent, ControlsMap&) const;
65 
69 
70  static void elementChangedCallback(DtUiElement* element, void* usr);
71  virtual void processElementChanged(DtUiElement* element);
73 
74  virtual bool eventFilter(QObject*, QEvent*);
75 
76  QWidget* canvas()
77  {
78  return myCanvas;
79  }
80 
81  QWidget* controls()
82  {
83  return myControls;
84  }
85 
86  DtString parameterType() const
87  {
88  return myUiFile.c_str();
89  }
90 
91  virtual void clearUiElements();
92 
93 protected:
94  typedef std::vector<DtReaderWriter*> RwVector;
95  typedef std::map<DtString, RwVector> RwDataItems;
96 
97  virtual void setupCommonControls(ControlsMap& controlsMap, ControlsMap& originalMap, RwDataItems& original, RwDataItems& modified, bool canBeModified,
98  bool multpleSelection, const DtString& platform = "",const std::vector<DtObjectType>& objectTypes = std::vector<DtObjectType>());
99 
100  virtual void connectAndSetUpTabWidget(QTabWidget*);
101 
103  virtual void findParameterDocumentationFor(const DtString& param, QWidget* widget, QWidget* label) const;
104 
105  virtual bool bindSignalSlot(DtUiElement*, QObject*, ControlsMap& map);
106  virtual bool bindSignalSlot(std::string signalSlot, DtUiElement* container, QObject* widget, ControlsMap& controlsMap);
107 
110  virtual std::string uiElementName(const DtString& elementName) const;
111 
114  virtual void convertDataElementsToUiElements(const std::vector<DtSimulationModelSetLoader::EntityData*>&);
115  virtual void convertDataElementsToUiElements(const std::vector<DtComponentSystemDefinition*>&);
116 
119  virtual void commonBindings(const std::vector<DtSimulationModelSetLoader::EntityData*>&,
120  RwDataItems& original, RwDataItems& modified) const;
121 
122  virtual void commonBindings(const std::vector<DtComponentSystemDefinition*>&,
123  RwDataItems& original, RwDataItems& modified) const;
124 
126  virtual void addAllRwItems(RwDataItems&, DtVariableBindingsList*, bool recurse = false) const;
127 
129  virtual void addAllRwItems(RwDataItems&, const DtReaderWriter*, bool recurse = false) const;
130 
132  virtual void intersectRwItems(RwDataItems&, DtVariableBindingsList*, bool recurse = false) const;
133  virtual void intersectRwItems(RwDataItems&, const DtReaderWriter*, bool recurse = false) const;
134  virtual void intersectRwItems(RwDataItems&, RwDataItems&, const DtReaderWriter*, bool recurse = false) const;
135 
136  virtual bool anyEnabledChildren(const QObjectList&) const;
137 
138  virtual bool hasScrollContainer(QWidget*) const;
139 
140 signals:
141  void uiEventSignal(const DtUiElementEvent&);
142 
143 public slots:
144  virtual void uiEvent(const DtUiElementEvent&);
145 
146 protected slots:
147  virtual void splitterDestroyed();
148  virtual void splitterMoved(int, int);
149  virtual void canvasDestroyed();
150  virtual void controlsDestroyed();
151  virtual void elementDestroyed();
152 
154  virtual const DtReaderWriter* containerWithVariables(const DtObjectType&, QString element, const QString& container) const;
155  virtual void showHiddenControls(bool);
156 
157  virtual void popUpDialogForEditing();
158  virtual void tabChanged(int);
159 
160 protected:
162  QWidget* myCanvas;
163  QWidget* myControls;
164  mutable QSplitter* myMainSplitter;
165  static QSize theSplitterWidgetSize;
166  std::string myUiFile;
168  std::set<makVrf::DtEntityMapperKey> myEditing;
169  std::vector<DtComponentSystemDefinition*> mySystemDefinitions;
170 
171  typedef std::map<std::string, DtUiElement*> UiElements;
173  static std::map<QString, QString> theTabMap;
174  static std::map<std::string, std::string> theLikeUiMap;
175  std::vector<DtUiElement*> myAdvancedControls;
176 
177 
179 
180  std::set<QTabWidget*> myTabWidgets;
181 
183  {
184  QWidget* widget;
185  QString title;
186  int index;
187  };
188 
189  std::map<QTabWidget*, std::vector<HiddenStruct> > myHiddenTabs;
190 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)