VR-Forces 4.6 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) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCoreQt/vrvCoreQt.h>
16 #include <vrvUtil/signalslib.h>
17 #include <vrvUtil/DtUnicode.h>
18 
19 #include <QtWidgets/QWidget>
20 #include <QtCore/QList>
21 #include <QtCore/QMap>
22 #include <boost/bind.hpp>
23 #include <boost/signals.hpp>
24 
25 class QComboBox;
26 class QHBoxLayout;
27 class QLabel;
28 class QPushButton;
29 class QSplitter;
30 class QTreeWidget;
31 class QTreeWidgetItem;
32 class QVBoxLayout;
33 class QTextEdit;
34 
35 namespace makVrv
36 {
37  class DtElementEditorLogic;
38  class DtPersistenceControlsInterface;
39  class DtDeselectableTreeWidget;
40 
43  class DT_DLL_VRVCOREQT DtElementEditorWidget : public QWidget,
45  {
46  Q_OBJECT
47  public:
48 
53  DtDe& de, QWidget* parent,
54  DtPersistenceControlsInterface* persistenceToolbar);
55 
57  virtual ~DtElementEditorWidget();
58 
60  virtual void activate();
61 
63  virtual void deactivate();
64 
66  virtual void changeElementsStart();
67  virtual void addElement(const DtUnicode& name, bool valid, bool bold = false);
68  virtual void addElement(const DtUnicode& name, const DtUnicode& parentName, bool valid, bool bold = false);
69  virtual void removeElement(const DtUnicode& name);
70  virtual void changeElementsStop();
71  virtual void clearElements();
72  virtual void selectElement(const DtUnicode& name);
73 
74  virtual void setModelSets(const std::vector<DtUnicode>& modelSets);
75  virtual void setCurrentModelSet(int index);
76 
77  virtual void changeDefinitionStart();
78  virtual void clearDefinitions();
79  virtual void addDefinition(int index, const DtUnicode& name, bool inherited);
80  virtual void removeDefinition(int index);
81  virtual void changeDefinitionStop();
82 
83  virtual void changeAttributeStart();
84  virtual void addAttribute(int defIndex, const std::string& name,
85  const DtUnicode& value, bool inherited);
86  virtual void removeAttribute(int defIndex, const std::string& name);
87  virtual void changeAttributeStop();
88  virtual void selectAttribute(int defIndex, const std::string& name);
89  virtual void updateAttribute(int defIndex, const std::string& name,
90  const DtUnicode& value);
91 
92  QTreeWidgetItem* findAttributeItem( int defIndex, const std::string& name);
93  virtual void setAttributeDescription(const DtUnicode& desc);
94  virtual void createAttributeEditor(int defIndex, const std::string& name,
95  const std::string& attrClass);
96  virtual void destroyAttributeEditor(int defIndex, const std::string& name);
97  bool wasAttributeEditorValueModified(int defIndex, const std::string& name);
98 
99  virtual std::string chooseNewVisualizerDefinitionType();
100  virtual int chooseNewAttributeName(const std::vector< std::pair< std::string, DtUnicode> >& nameTypePairs);
101 
103  virtual void setRemoveElementEnabled( bool b );
104 
106  virtual void setAddVisualDefEnabled( bool b );
107 
109  virtual void setRemoveVisualDefEnabled( bool b );
110 
112  virtual void setAddAttributeEnabled( bool b );
113 
115  virtual void setRemoveAttributeEnabled( bool b );
116 
118  virtual void showAddedElements(std::vector<DtUnicode>& addedNames,
119  std::vector<DtUnicode>& skippedNames);
120 
122  virtual std::vector<std::string> selectedInstancesNames();
123 
126  virtual const DtUnicode getElementNameAbove(const DtUnicode& name);
127 
130  virtual const DtUnicode getElementNameBelow(const DtUnicode& name);
131 
133  virtual bool isLastElementUnder(const DtUnicode& name, const DtUnicode& parentName);
134 
136  virtual bool isFirstElementUnder(const DtUnicode& name, const DtUnicode& parentName);
137 
139  virtual void expandItem(const DtUnicode& name);
140 
142  virtual void checkIfModified();
143 
145 
146  protected:
147 
148  void setupGui();
149 
152  QString nameOfSelectedElement() const;
153 
154  //Utility function.
155  int indexOfSelectedVisualizer();
156 
159  QString nameOfSelectedAttribute() const;
160 
162  virtual bool isEmpty();
163 
164  public slots:
165 
166  void slot_currentElementItemChanged ( QTreeWidgetItem * current,
167  QTreeWidgetItem * previous );
168 
169  void slot_currentVisualizerDefItemChanged ( QTreeWidgetItem * current,
170  QTreeWidgetItem * previous );
171 
172  void slot_addElementDefinition();
173  void slot_removeElementDefinition();
174  void slot_renameElementDefinition();
175 
176  void slot_addVisualizerDef();
177  void slot_removeVisualizerDef();
178 
179  void slot_addAttribute();
180  void slot_removeAttribute();
181  void slot_removeOverrideAttribute();
182 
183  void slot_modelSetChanged(int index);
184  void destroyEditors();
185 
186  protected:
187 
192  QMap<QString,QTreeWidgetItem*> myCacheMap;
194 
198 
199  QVBoxLayout* myMainLayout;
200  QSplitter* mySplitter;
202  QVBoxLayout* myLeftWidgetLayout;
204  QVBoxLayout* myRightWidgetLayout;
205 
208 
209  QHBoxLayout* myElementButtonLayout;
213 
221 
222  QHBoxLayout* myModelSetLayout;
226  QTextEdit* myDescriptionText;
227 
229  };
230 }

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)