VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtElementEditorWidget.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #if !defined(Q_MOC_RUN)
13 #include <vrvCoreQt/vrvCoreQt.h>
17 #include <vrvUtil/signalslib.h>
18 #include <vrvUtil/DtUnicode.h>
20 #endif
21 
22 #include <QtWidgets/QWidget>
23 #include <QtCore/QList>
24 #include <QtCore/QMap>
25 #include <boost/bind.hpp>
26 #include <vrvUtil/signalslib.h>
27 
28 class QComboBox;
29 class QHBoxLayout;
30 class QLabel;
31 class QPushButton;
32 class QSplitter;
33 class QTreeWidget;
34 class QTreeWidgetItem;
35 class QVBoxLayout;
36 class QTextEdit;
37 
38 namespace makVrv
39 {
40  class DtElementEditorLogic;
41  class DtPersistenceControlsInterface;
42  class DtDeselectableTreeWidget;
43 
46  class DT_DLL_VRVCOREQT DtElementEditorWidget : public QWidget,
48  {
49  Q_OBJECT
50  public:
51 
56  DtDe& de, QWidget* parent,
57  DtPersistenceControlsInterface* persistenceToolbar);
58 
60  virtual ~DtElementEditorWidget();
61 
63  virtual void activate();
64 
66  virtual void deactivate();
67 
69  virtual void changeElementsStart();
70  virtual void setDuplicate(const DtUnicode& name, bool isDuplicate);
71  virtual void addElement(const DtUnicode& name, bool valid, bool bold = false);
72  virtual void addElement(const DtUnicode& name, const DtUnicode& parentName, bool valid,
73  bool bold = false);
75  virtual void setBold(const DtUnicode& name, bool bold);
76  virtual void removeElement(const DtUnicode& name);
77  virtual void changeElementsStop();
78  virtual void clearElements();
79 
82  virtual void modifiedList(std::string& list);
83  virtual void selectElement(const DtUnicode& name);
84 
85  virtual void setModelSets(const std::vector<DtUnicode>& modelSets);
86 
89  virtual void setFileSaveTo(const std::vector<std::string>& FileSaveTo);
90 
91  virtual void setCurrentModelSet(int index);
92 
95  virtual void setCurrentFileSaveTo(int index);
96 
99  virtual std::string getCurrentFileSaveTo();
100 
103  virtual void setVisDefList(std::vector<std::string>& visDefList);
104 
105  virtual void changeDefinitionStart();
106  virtual void clearDefinitions();
107  virtual void addDefinition(int index, const DtUnicode& name, bool inherited);
108  virtual void removeDefinition(int index);
109  virtual void changeDefinitionStop();
110 
111 
112  virtual void changeAttributeStart();
113  virtual void addAttribute(int defIndex, const std::string& name, const DtUnicode& value,
114  bool inherited, bool valid = true);
115  virtual void removeAttribute(int defIndex, const std::string& name);
116  virtual void changeAttributeStop();
117  virtual void selectAttribute(int defIndex, const std::string& name);
118  virtual void updateAttribute(int defIndex, const std::string& name,
119  const DtUnicode& value);
120 
121  QTreeWidgetItem* findAttributeItem( int defIndex, const std::string& name);
122  virtual void setAttributeDescription(const DtUnicode& desc);
123  virtual void createAttributeEditor(int defIndex, const std::string& name,
124  const std::string& attrClass);
125  virtual void destroyAttributeEditor(int defIndex, const std::string& name);
126  bool wasAttributeEditorValueModified(int defIndex, const std::string& name);
127 
130  virtual void setDefinitionErrorHint(const DtUnicode& hints);
131 
132  virtual std::string chooseNewVisualizerDefinitionType();
133  virtual int chooseNewAttributeName(const std::vector< std::pair< std::string, DtUnicode> >& nameTypePairs);
134 
136  virtual void setRemoveElementEnabled( bool b );
137 
141  virtual void setRemoveElementToolTip(const std::string& s);
142 
144  virtual void setAddVisualDefEnabled( bool b );
145 
147  virtual void setRemoveVisualDefEnabled( bool b );
148 
150  virtual void setChangeFileNameEnabled(bool b);
151 
153  virtual void setAddAttributeEnabled( bool b );
154 
156  virtual void setRemoveAttributeEnabled( bool b );
157 
159  virtual void showAddedElements(std::vector<DtUnicode>& addedNames,
160  std::vector<DtUnicode>& skippedNames);
161 
163  virtual std::vector<std::string> selectedInstancesNames();
164 
165 
168  virtual const DtUnicode getElementNameAbove(const DtUnicode& name);
169 
172  virtual const DtUnicode getElementNameBelow(const DtUnicode& name);
173 
175  virtual bool isLastElementUnder(const DtUnicode& name, const DtUnicode& parentName);
176 
178  virtual bool isFirstElementUnder(const DtUnicode& name, const DtUnicode& parentName);
179 
181  virtual void expandItem(const DtUnicode& name);
182 
184  virtual void checkIfModified();
185 
187 
188  protected:
189 
190  void setupGui();
191 
194  QString nameOfSelectedElement() const;
195 
196  //Utility function.
197  int indexOfSelectedVisualizer();
198 
201  QString nameOfSelectedAttribute() const;
202 
204  virtual bool isEmpty();
205 
208  virtual void slot_jumpToDefinition(const DtUnicode& element);
209 
213  virtual void slot_jumpToDefByModelDef(const DtUnicode& modelDef);
214 
215  public slots:
216 
217  void slot_currentElementItemChanged ( QTreeWidgetItem * current,
218  QTreeWidgetItem * previous );
219 
220  void slot_currentVisualizerDefItemChanged ( QTreeWidgetItem * current,
221  QTreeWidgetItem * previous );
222 
223  void slot_addElementDefinition();
224  void slot_removeElementDefinition();
225  void slot_renameElementDefinition();
226 
227  void slot_addVisualizerDef();
228  void slot_removeVisualizerDef();
229  void slot_changeFileName();
230 
231  void slot_addAttribute();
232  void slot_removeAttribute();
233  void slot_removeOverrideAttribute();
234  void slot_changeFileFilter();
235  void slot_copyVisualizerDefinition();
236  void slot_pasteAndReplaceVisualizerDefinition();
237  void slot_pasteAndAddVisualizerDefinition();
238  void slot_clearVisualizerDefinitions();
239  void slot_modelSetChanged(int index);
240  void slot_fileSaveToChanged(int index);
241 
242  void destroyEditors();
243 
245  void slot_displayContextMenu(const QPoint& point);
246 
249  void slot_jumpToModelDefinition();
250 
251  protected:
252 
257  QMap<QString,QTreeWidgetItem*> myCacheMap;
259  std::vector<std::string> myCopiedVisDefs;
260 
264 
265  QVBoxLayout* myMainLayout;
266  QSplitter* mySplitter;
268  QVBoxLayout* myLeftWidgetLayout;
270  QVBoxLayout* myRightWidgetLayout;
271 
274 
275  QHBoxLayout* myElementButtonLayout;
279 
292 
294 
295  QHBoxLayout* myModelSetLayout;
296  QHBoxLayout* myFileSaveToLayout;
298 
302 
306 
308  QTextEdit* myDescriptionText;
309 
311 
313  };
314 }
A tree widget that allows for selecting no item.
Definition: DtDeselectableTreeWidget.h:27
QWidget * myLeftWidgetPane
Definition: DtElementEditorWidget.h:267
QVBoxLayout * myRightWidgetLayout
Definition: DtElementEditorWidget.h:270
Definition: DtElementEditorInterface.h:19
QPushButton * myRemoveElementButton
Definition: DtElementEditorWidget.h:277
QPushButton * myRenameElementButton
Definition: DtElementEditorWidget.h:278
A unicode string.
Definition: DtUnicode.h:33
QMap< QString, QTreeWidgetItem * > myCacheMap
Definition: DtElementEditorWidget.h:257
DtDeselectableTreeWidget * myTreeWidget
Definition: DtElementEditorWidget.h:273
QHBoxLayout * myModelSetLayout
Definition: DtElementEditorWidget.h:295
QLabel * myVisualDefinitionLabel
Definition: DtElementEditorWidget.h:293
Contains makVrv::DtElementEditorInterface class.
DtStateVisualizer::Type myVisType
Definition: DtElementEditorWidget.h:255
DtElementEditorLogic * myLogic
Definition: DtElementEditorWidget.h:256
QHBoxLayout * myFileSaveToLayout
Definition: DtElementEditorWidget.h:296
bool myShowDeleteDialog
Definition: DtElementEditorWidget.h:258
QWidget * myRightWidgetPane
Definition: DtElementEditorWidget.h:269
DtElementDefinitionTypeManager::ElementDefinitionType myType
Definition: DtElementEditorWidget.h:254
The main widget for editing element definitions.
Definition: DtElementEditorWidget.h:46
QVBoxLayout * myLeftWidgetLayout
Definition: DtElementEditorWidget.h:268
#define DT_DLL_VRVCOREQT
Definition: vrvCoreQt.h:20
QPushButton * myRemoveLocalOverrideVisualizerButton
Definition: DtElementEditorWidget.h:286
Contains DLL export macros.
DtPersistenceControlsInterface * myPersistenceToolbar
Definition: DtElementEditorWidget.h:310
QTreeWidget * myVisualizerDefinitionTreeWidget
Definition: DtElementEditorWidget.h:307
Abstract interface for controlling persistence of state in a dialog.
Definition: DtPersistenceControlsInterface.h:20
QHBoxLayout * myVisualizerDefinitionButtonLayout
Definition: DtElementEditorWidget.h:280
QPushButton * myAddElementButton
Definition: DtElementEditorWidget.h:276
unsigned int ElementDefinitionType
Identifier for a type of element definition.
Definition: DtElementDefinitionManager.h:506
QComboBox * myCopiedVisDefComboBox
Definition: DtElementEditorWidget.h:305
QPushButton * myPasteAndAddVisualizerDefinitionButton
Definition: DtElementEditorWidget.h:290
QPushButton * myAddVisualizerAttributeButton
Definition: DtElementEditorWidget.h:284
QPushButton * myChangeFilePathButton
Definition: DtElementEditorWidget.h:283
QComboBox * myFileSaveToComboBox
Definition: DtElementEditorWidget.h:304
QPushButton * myAddVisualizerDefButton
Definition: DtElementEditorWidget.h:281
QPushButton * myChangeFileFilterButton
Definition: DtElementEditorWidget.h:287
Logic class for the DtElementEditorWidget.
Definition: DtElementEditorLogic.h:31
QList< QTreeWidgetItem * > myDeleteCache
Definition: DtElementEditorWidget.h:262
QVBoxLayout * myMainLayout
Definition: DtElementEditorWidget.h:265
QHBoxLayout * myCopiedVisDefListLayout
Definition: DtElementEditorWidget.h:297
QPushButton * myRemoveVisualizerDefButton
Definition: DtElementEditorWidget.h:282
Type
Visualizer class types that are supportable via visualizers.
Definition: DtStateVisualizer.h:41
Contains makVrv:DtStateVisualizer class.
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
QPushButton * myClearVisualizerDefinitionsButton
Definition: DtElementEditorWidget.h:291
QLabel * myFileSaveToLabel
Definition: DtElementEditorWidget.h:300
DtSignalConnectionManager myConnectionManager
Definition: DtElementEditorWidget.h:312
QPushButton * myRemoveVisualizerAttributeButton
Definition: DtElementEditorWidget.h:285
QPushButton * myCopyVisualizerDefinitionButton
Definition: DtElementEditorWidget.h:288
QLabel * myModelSetLabel
Definition: DtElementEditorWidget.h:299
QSplitter * mySplitter
Definition: DtElementEditorWidget.h:266
std::vector< std::string > myCopiedVisDefs
Definition: DtElementEditorWidget.h:259
Base class to provide boost signal/slot management.
QHBoxLayout * myElementButtonLayout
Definition: DtElementEditorWidget.h:275
QComboBox * myModelSetComboBox
Definition: DtElementEditorWidget.h:303
QLabel * myCopiedVisDefListLabel
Definition: DtElementEditorWidget.h:301
QList< QTreeWidgetItem * > myVisualizerDefinitionTreeItemDeleteWidgetCache
Definition: DtElementEditorWidget.h:263
QLabel * myElementDefinitionLabel
Definition: DtElementEditorWidget.h:272
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
QList< QTreeWidgetItem * > myTopItemCache
Definition: DtElementEditorWidget.h:261
QPushButton * myPasteAndReplaceVisualizerDefinitionButton
Definition: DtElementEditorWidget.h:289
DtDe & myDe
Definition: DtElementEditorWidget.h:253
QTextEdit * myDescriptionText
Definition: DtElementEditorWidget.h:308

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)