VR-Forces 4.10 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;
26 
28 {
29  Q_OBJECT
30 protected:
31  typedef std::map<std::string, QWidget*> ControlsMap;
32 
33 public:
34 
37  (
38  makVrv::DtDe& de,
39  const std::string& uiFile
40  );
41 
43  virtual ~DtUiForParameter();
44 
48  virtual QWidget* createControls(DtSimulationModelSet*);
49 
51  virtual QString findAppropriateFile(DtSimulationModelSet* set, const DtString&,
52  bool tryLikeUiMap = true) const;
53 
55  static void addUiMapping(const char* like, const char* parameter);
56  static std::string likeUi(const char* parameter);
57 
58  virtual void init(const std::set<makVrf::DtEntityMapperKey>&, DtElementChangedCallbackFcn);
59  virtual void init(const std::vector<DtComponentSystemDefinition*>&, DtElementChangedCallbackFcn);
60 
61  virtual DtUiElement* findElement(const DtString&) const;
62  virtual bool isModified() const;
63 
65  virtual void buildMapOfAvailableControls(QWidget* parent, ControlsMap&) const;
66 
70 
71  static void elementChangedCallback(DtUiElement* element, void* usr);
72  virtual void processElementChanged(DtUiElement* element);
74 
75  virtual bool eventFilter(QObject*, QEvent*);
76 
77  QWidget* canvas()
78  {
79  return myCanvas;
80  }
81 
82  QWidget* controls()
83  {
84  return myControls;
85  }
86 
88  {
89  return myUiFile.c_str();
90  }
91 
92  virtual void clearUiElements();
93 
94 protected:
95  typedef std::vector<DtReaderWriter*> RwVector;
96  typedef std::map<DtString, RwVector> RwDataItems;
97 
98  virtual void setupCommonControls(ControlsMap& controlsMap, ControlsMap& originalMap, RwDataItems& original, RwDataItems& modified, bool canBeModified,
99  bool multpleSelection, const DtString& platform = "",const std::vector<DtObjectType>& objectTypes = std::vector<DtObjectType>());
100 
101  virtual void connectAndSetUpTabWidget(QTabWidget*);
102 
104  virtual void findParameterDocumentationFor(const DtString& param, QWidget* widget, QWidget* label) const;
105 
106  virtual bool bindSignalSlot(DtUiElement*, QObject*, ControlsMap& map);
107  virtual bool bindSignalSlot(std::string signalSlot, DtUiElement* container, QObject* widget, ControlsMap& controlsMap);
108 
111  virtual std::string uiElementName(const DtString& elementName) const;
112 
115  virtual void convertDataElementsToUiElements(const std::vector<DtSimulationModelSetLoader::EntityData*>&);
116  virtual void convertDataElementsToUiElements(const std::vector<DtComponentSystemDefinition*>&);
117 
120  virtual void commonBindings(const std::vector<DtSimulationModelSetLoader::EntityData*>&,
121  RwDataItems& original, RwDataItems& modified) const;
122 
123  virtual void commonBindings(const std::vector<DtComponentSystemDefinition*>&,
124  RwDataItems& original, RwDataItems& modified) const;
125 
127  virtual void addAllRwItems(RwDataItems&, DtVariableBindingsList*, bool recurse = false) const;
128 
130  virtual void addAllRwItems(RwDataItems&, const DtReaderWriter*, bool recurse = false) const;
131 
133  virtual void intersectRwItems(RwDataItems&, DtVariableBindingsList*, bool recurse = false) const;
134  virtual void intersectRwItems(RwDataItems&, const DtReaderWriter*, bool recurse = false) const;
135  virtual void intersectRwItems(RwDataItems&, RwDataItems&, const DtReaderWriter*, bool recurse = false) const;
136 
137  virtual bool anyEnabledChildren(const QObjectList&) const;
138 
139  virtual bool hasScrollContainer(QWidget*) const;
140  virtual bool parameterDoc(const DtString& mainClass, const DtString& param, DtReaderWriterClassMemberDataRecord& ) const;
141 
142 signals:
143  void uiEventSignal(const DtUiElementEvent&);
144 
145 public slots:
146  virtual void uiEvent(const DtUiElementEvent&);
147 
148 protected slots:
149  virtual void splitterDestroyed();
150  virtual void splitterMoved(int, int);
151  virtual void canvasDestroyed();
152  virtual void controlsDestroyed();
153  virtual void elementDestroyed();
154 
156  virtual const DtReaderWriter* containerWithVariables(const DtObjectType&, QString element, const QString& container) const;
157  virtual void showHiddenControls(bool);
158 
159  virtual void popUpDialogForEditing();
160  virtual void tabChanged(int);
161 
162 protected:
164  QWidget* myCanvas;
165  QWidget* myControls;
166  mutable QSplitter* myMainSplitter;
167  static QSize theSplitterWidgetSize;
168  std::string myUiFile;
170  std::set<makVrf::DtEntityMapperKey> myEditing;
171  std::vector<DtComponentSystemDefinition*> mySystemDefinitions;
172 
173  typedef std::map<std::string, DtUiElement*> UiElements;
175  static std::map<QString, QString> theTabMap;
176  static std::map<std::string, std::string> theLikeUiMap;
177  std::vector<DtUiElement*> myAdvancedControls;
178 
179 
181 
182  std::set<QTabWidget*> myTabWidgets;
183 
185  {
186  QWidget* widget;
187  QString title;
188  int index;
189  };
190 
191  std::map<QTabWidget*, std::vector<HiddenStruct> > myHiddenTabs;
192 };
Instances of DtVrfObjectParameters are the readable/writeable objects that contain the information ne...
Definition: vrfObjectParameters.h:59
QSplitter * myMainSplitter
Definition: uiForParameter.h:166
std::map< QTabWidget *, std::vector< HiddenStruct > > myHiddenTabs
Definition: uiForParameter.h:191
std::vector< DtReaderWriter * > RwVector
Definition: uiForParameter.h:95
Definition: uiForParameter.h:184
DtString parameterType() const
Definition: uiForParameter.h:87
std::string myUiFile
Definition: uiForParameter.h:168
std::map< std::string, QWidget * > ControlsMap
Definition: uiForParameter.h:31
UiElements myUiElements
Definition: uiForParameter.h:174
Definition: uiForParameter.h:27
QWidget * myControls
Definition: uiForParameter.h:165
Definition: readerWriter.h:85
File: rwClassDocumenation.h.
Definition: rwClassDocumenation.h:24
std::map< DtString, RwVector > RwDataItems
Definition: uiForParameter.h:96
QWidget * canvas()
Definition: uiForParameter.h:77
Definition: objectType.h:27
DtComponentSystemDefinition.
Definition: componentSystemDefinition.h:25
Description: A model is a set of items that defines a model to create in the back-end from the front-...
Definition: modelSetEntry.h:24
std::vector< DtUiElement * > myAdvancedControls
Definition: uiForParameter.h:177
QWidget * controls()
Definition: uiForParameter.h:82
QString title
Definition: uiForParameter.h:187
DtElementChangedCallbackFcn myElementChangedCallbackFunction
Definition: uiForParameter.h:180
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
boost::function< void(DtUiElement *)> DtElementChangedCallbackFcn
Definition: uiElement.h:41
std::vector< DtComponentSystemDefinition * > mySystemDefinitions
Definition: uiForParameter.h:171
static std::map< std::string, std::string > theLikeUiMap
Definition: uiForParameter.h:176
QWidget * widget
Definition: uiForParameter.h:186
int index
Definition: uiForParameter.h:188
std::set< QTabWidget * > myTabWidgets
Definition: uiForParameter.h:182
A simulation model set contains all the information that can be used to support a scenario either for...
Definition: simulationModelSet.h:31
makVrv::DtDe & myDe
Definition: uiForParameter.h:163
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
std::set< makVrf::DtEntityMapperKey > myEditing
Definition: uiForParameter.h:170
std::map< std::string, DtUiElement * > UiElements
Definition: uiForParameter.h:173
The DtUiElement class is the base for which all UI elements are defined.
Definition: uiElement.h:95
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
static QSize theSplitterWidgetSize
Definition: uiForParameter.h:167
static std::map< QString, QString > theTabMap
Definition: uiForParameter.h:175
QWidget * myCanvas
Definition: uiForParameter.h:164
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:32
Base class of the ui element class chain.
Definition: uiElement.h:172
QFile myLoadedUiFile
Definition: uiForParameter.h:169

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)