VR-Forces 4.8 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) 2020 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 <boost/signals.hpp>
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  virtual void selectElement(const DtUnicode& name);
80 
81  virtual void setModelSets(const std::vector<DtUnicode>& modelSets);
82 
85  virtual void setFileSaveTo(const std::vector<std::string>& FileSaveTo);
86 
87  virtual void setCurrentModelSet(int index);
88 
91  virtual void setCurrentFileSaveTo(int index);
92 
95  virtual std::string getCurrentFileSaveTo();
96 
99  virtual void setVisDefList(std::vector<std::string>& visDefList);
100 
101  virtual void changeDefinitionStart();
102  virtual void clearDefinitions();
103  virtual void addDefinition(int index, const DtUnicode& name, bool inherited);
104  virtual void removeDefinition(int index);
105  virtual void changeDefinitionStop();
106 
107  virtual void changeAttributeStart();
108  virtual void addAttribute(int defIndex, const std::string& name, const DtUnicode& value,
109  bool inherited, bool valid = true);
110  virtual void removeAttribute(int defIndex, const std::string& name);
111  virtual void changeAttributeStop();
112  virtual void selectAttribute(int defIndex, const std::string& name);
113  virtual void updateAttribute(int defIndex, const std::string& name,
114  const DtUnicode& value);
115 
116  QTreeWidgetItem* findAttributeItem( int defIndex, const std::string& name);
117  virtual void setAttributeDescription(const DtUnicode& desc);
118  virtual void createAttributeEditor(int defIndex, const std::string& name,
119  const std::string& attrClass);
120  virtual void destroyAttributeEditor(int defIndex, const std::string& name);
121  bool wasAttributeEditorValueModified(int defIndex, const std::string& name);
122 
125  virtual void setDefinitionErrorHint(const DtUnicode& hints);
126 
127  virtual std::string chooseNewVisualizerDefinitionType();
128  virtual int chooseNewAttributeName(const std::vector< std::pair< std::string, DtUnicode> >& nameTypePairs);
129 
131  virtual void setRemoveElementEnabled( bool b );
132 
136  virtual void setRemoveElementToolTip(const std::string& s);
137 
139  virtual void setAddVisualDefEnabled( bool b );
140 
142  virtual void setRemoveVisualDefEnabled( bool b );
143 
145  virtual void setChangeFileNameEnabled(bool b);
146 
148  virtual void setAddAttributeEnabled( bool b );
149 
151  virtual void setRemoveAttributeEnabled( bool b );
152 
154  virtual void showAddedElements(std::vector<DtUnicode>& addedNames,
155  std::vector<DtUnicode>& skippedNames);
156 
158  virtual std::vector<std::string> selectedInstancesNames();
159 
160 
163  virtual const DtUnicode getElementNameAbove(const DtUnicode& name);
164 
167  virtual const DtUnicode getElementNameBelow(const DtUnicode& name);
168 
170  virtual bool isLastElementUnder(const DtUnicode& name, const DtUnicode& parentName);
171 
173  virtual bool isFirstElementUnder(const DtUnicode& name, const DtUnicode& parentName);
174 
176  virtual void expandItem(const DtUnicode& name);
177 
179  virtual void checkIfModified();
180 
182 
183  protected:
184 
185  void setupGui();
186 
189  QString nameOfSelectedElement() const;
190 
191  //Utility function.
192  int indexOfSelectedVisualizer();
193 
196  QString nameOfSelectedAttribute() const;
197 
199  virtual bool isEmpty();
200 
203  virtual void slot_jumpToDefinition(const DtUnicode& element);
204 
208  virtual void slot_jumpToDefByModelDef(const DtUnicode& modelDef);
209 
210  public slots:
211 
212  void slot_currentElementItemChanged ( QTreeWidgetItem * current,
213  QTreeWidgetItem * previous );
214 
215  void slot_currentVisualizerDefItemChanged ( QTreeWidgetItem * current,
216  QTreeWidgetItem * previous );
217 
218  void slot_addElementDefinition();
219  void slot_removeElementDefinition();
220  void slot_renameElementDefinition();
221 
222  void slot_addVisualizerDef();
223  void slot_removeVisualizerDef();
224  void slot_changeFileName();
225 
226  void slot_addAttribute();
227  void slot_removeAttribute();
228  void slot_removeOverrideAttribute();
229  void slot_changeFileFilter();
230  void slot_copyVisualizerDefinition();
231  void slot_pasteVisualizerDefinition();
232  void slot_clearVisualizerDefinitions();
233  void slot_modelSetChanged(int index);
234  void slot_fileSaveToChanged(int index);
235 
236  void destroyEditors();
237 
239  void slot_displayContextMenu(const QPoint& point);
240 
243  void slot_jumpToModelDefinition();
244 
245  protected:
246 
251  QMap<QString,QTreeWidgetItem*> myCacheMap;
253  std::vector<std::string> myCopiedVisDefs;
254 
258 
259  QVBoxLayout* myMainLayout;
260  QSplitter* mySplitter;
262  QVBoxLayout* myLeftWidgetLayout;
264  QVBoxLayout* myRightWidgetLayout;
265 
268 
269  QHBoxLayout* myElementButtonLayout;
273 
285 
287 
288  QHBoxLayout* myModelSetLayout;
289  QHBoxLayout* myFileSaveToLayout;
291 
295 
299 
301  QTextEdit* myDescriptionText;
302 
304 
306  };
307 }
A tree widget that allows for selecting no item.
Definition: DtDeselectableTreeWidget.h:27
QWidget * myLeftWidgetPane
Definition: DtElementEditorWidget.h:261
QVBoxLayout * myRightWidgetLayout
Definition: DtElementEditorWidget.h:264
Definition: DtElementEditorInterface.h:19
QPushButton * myRemoveElementButton
Definition: DtElementEditorWidget.h:271
QPushButton * myRenameElementButton
Definition: DtElementEditorWidget.h:272
A unicode string.
Definition: DtUnicode.h:33
QMap< QString, QTreeWidgetItem * > myCacheMap
Definition: DtElementEditorWidget.h:251
DtDeselectableTreeWidget * myTreeWidget
Definition: DtElementEditorWidget.h:267
QHBoxLayout * myModelSetLayout
Definition: DtElementEditorWidget.h:288
QPushButton * myPasteVisualizerDefinitionButton
Definition: DtElementEditorWidget.h:283
QLabel * myVisualDefinitionLabel
Definition: DtElementEditorWidget.h:286
Contains makVrv::DtElementEditorInterface class.
DtStateVisualizer::Type myVisType
Definition: DtElementEditorWidget.h:249
DtElementEditorLogic * myLogic
Definition: DtElementEditorWidget.h:250
QHBoxLayout * myFileSaveToLayout
Definition: DtElementEditorWidget.h:289
bool myShowDeleteDialog
Definition: DtElementEditorWidget.h:252
QWidget * myRightWidgetPane
Definition: DtElementEditorWidget.h:263
DtElementDefinitionTypeManager::ElementDefinitionType myType
Definition: DtElementEditorWidget.h:248
The main widget for editing element definitions.
Definition: DtElementEditorWidget.h:46
QVBoxLayout * myLeftWidgetLayout
Definition: DtElementEditorWidget.h:262
#define DT_DLL_VRVCOREQT
Definition: vrvCoreQt.h:20
QPushButton * myRemoveLocalOverrideVisualizerButton
Definition: DtElementEditorWidget.h:280
Contains DLL export macros.
DtPersistenceControlsInterface * myPersistenceToolbar
Definition: DtElementEditorWidget.h:303
QTreeWidget * myVisualizerDefinitionTreeWidget
Definition: DtElementEditorWidget.h:300
Abstract interface for controlling persistence of state in a dialog.
Definition: DtPersistenceControlsInterface.h:20
QHBoxLayout * myVisualizerDefinitionButtonLayout
Definition: DtElementEditorWidget.h:274
QPushButton * myAddElementButton
Definition: DtElementEditorWidget.h:270
unsigned int ElementDefinitionType
Identifier for a type of element definition.
Definition: DtElementDefinitionManager.h:500
QComboBox * myCopiedVisDefComboBox
Definition: DtElementEditorWidget.h:298
QPushButton * myAddVisualizerAttributeButton
Definition: DtElementEditorWidget.h:278
QPushButton * myChangeFilePathButton
Definition: DtElementEditorWidget.h:277
QComboBox * myFileSaveToComboBox
Definition: DtElementEditorWidget.h:297
QPushButton * myAddVisualizerDefButton
Definition: DtElementEditorWidget.h:275
QPushButton * myChangeFileFilterButton
Definition: DtElementEditorWidget.h:281
Logic class for the DtElementEditorWidget.
Definition: DtElementEditorLogic.h:30
QList< QTreeWidgetItem * > myDeleteCache
Definition: DtElementEditorWidget.h:256
QVBoxLayout * myMainLayout
Definition: DtElementEditorWidget.h:259
QHBoxLayout * myCopiedVisDefListLayout
Definition: DtElementEditorWidget.h:290
QPushButton * myRemoveVisualizerDefButton
Definition: DtElementEditorWidget.h:276
Type
Visualizer class types that are supportable via visualizers.
Definition: DtStateVisualizer.h:39
Contains makVrv:DtStateVisualizer class.
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
QPushButton * myClearVisualizerDefinitionsButton
Definition: DtElementEditorWidget.h:284
QLabel * myFileSaveToLabel
Definition: DtElementEditorWidget.h:293
DtSignalConnectionManager myConnectionManager
Definition: DtElementEditorWidget.h:305
QPushButton * myRemoveVisualizerAttributeButton
Definition: DtElementEditorWidget.h:279
QPushButton * myCopyVisualizerDefinitionButton
Definition: DtElementEditorWidget.h:282
QLabel * myModelSetLabel
Definition: DtElementEditorWidget.h:292
QSplitter * mySplitter
Definition: DtElementEditorWidget.h:260
std::vector< std::string > myCopiedVisDefs
Definition: DtElementEditorWidget.h:253
Base class to provide boost signal/slot management.
QHBoxLayout * myElementButtonLayout
Definition: DtElementEditorWidget.h:269
QComboBox * myModelSetComboBox
Definition: DtElementEditorWidget.h:296
QLabel * myCopiedVisDefListLabel
Definition: DtElementEditorWidget.h:294
QList< QTreeWidgetItem * > myVisualizerDefinitionTreeItemDeleteWidgetCache
Definition: DtElementEditorWidget.h:257
QLabel * myElementDefinitionLabel
Definition: DtElementEditorWidget.h:266
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
QList< QTreeWidgetItem * > myTopItemCache
Definition: DtElementEditorWidget.h:255
DtDe & myDe
Definition: DtElementEditorWidget.h:247
QTextEdit * myDescriptionText
Definition: DtElementEditorWidget.h:301

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)