VR-Forces 4.1.1 Class Documentation
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 <QtGui/QWidget>
20 #include <QtCore/QMap>
21 #include <boost/bind.hpp>
22 #include <boost/signals.hpp>
23 
24 class QComboBox;
25 class QHBoxLayout;
26 class QLabel;
27 class QPushButton;
28 class QSplitter;
29 class QTreeWidget;
30 class QTreeWidgetItem;
31 class QVBoxLayout;
32 class QTextEdit;
33 
34 namespace makVrv
35 {
36  class DtElementEditorLogic;
37  class DtPersistenceControlsInterface;
38 
43  {
44  Q_OBJECT
45  public:
46 
51  DtDe& de, QWidget* parent,
52  DtPersistenceControlsInterface* persistenceToolbar);
53 
56 
58  virtual void activate();
59 
61  virtual void deactivate();
62 
64 
65  virtual void changeElementsStart();
66  virtual void addElement(const DtUnicode& name);
67  virtual void addElement(const DtUnicode& name, const DtUnicode& parentName);
68  virtual void removeElement(const DtUnicode& name);
69  virtual void changeElementsStop();
70  virtual void clearElements();
71  virtual void selectElement(const DtUnicode& name);
72 
73  virtual void setModelSets(const std::vector<DtUnicode>& modelSets);
74  virtual void setCurrentModelSet(int index);
75 
76  virtual void changeDefinitionStart();
77  virtual void clearDefinitions();
78  virtual void addDefinition(int index, const DtUnicode& name, bool inherited);
79  virtual void removeDefinition(int index);
80  virtual void changeDefinitionStop();
81 
82  virtual void changeAttributeStart();
83  virtual void addAttribute(int defIndex, const std::string& name,
84  const DtUnicode& value, bool inherited);
85  virtual void removeAttribute(int defIndex, const std::string& name);
86  virtual void changeAttributeStop();
87  virtual void selectAttribute(int defIndex, const std::string& name);
88  virtual void updateAttribute(int defIndex, const std::string& name,
89  const DtUnicode& value);
90 
91  QTreeWidgetItem* findAttributeItem( int defIndex, const std::string& name);
92  virtual void setAttributeDescription(const DtUnicode& desc);
93  virtual void createAttributeEditor(int defIndex, const std::string& name,
94  const std::string& attrClass);
95  virtual void destroyAttributeEditor(int defIndex, const std::string& name);
96 
97  virtual std::string chooseNewVisualizerDefinitionType();
98  virtual int chooseNewAttributeName(const std::vector< std::pair< std::string, DtUnicode> >& nameTypePairs);
99 
101  virtual void setRemoveElementEnabled( bool b );
102 
104  virtual void setAddVisualDefEnabled( bool b );
105 
107  virtual void setRemoveVisualDefEnabled( bool b );
108 
110  virtual void setAddAttributeEnabled( bool b );
111 
113  virtual void setRemoveAttributeEnabled( bool b );
114 
116  virtual void showAddedElements(std::vector<DtUnicode>& addedNames,
117  std::vector<DtUnicode>& skippedNames);
118 
120 
121  protected:
122 
123  void setupGui();
124 
127  QString nameOfSelectedElement() const;
128 
129  //Utility function.
130  int indexOfSelectedVisualizer();
131 
134  QString nameOfSelectedAttribute() const;
135 
136  public slots:
137 
138  void slot_currentElementItemChanged ( QTreeWidgetItem * current,
139  QTreeWidgetItem * previous );
140 
141  void slot_currentVisualizerDefItemChanged ( QTreeWidgetItem * current,
142  QTreeWidgetItem * previous );
143 
144  void slot_addElementDefinition();
145  void slot_removeElementDefinition();
146  void slot_renameElementDefinition();
147 
148  void slot_addVisualizerDef();
149  void slot_removeVisualizerDef();
150 
151  void slot_addAttribute();
152  void slot_removeAttribute();
153  void slot_removeOverrideAttribute();
154 
155  void slot_modelSetChanged(int index);
156  void destroyEditors();
157 
158  protected:
159 
164  QMap<QString,QTreeWidgetItem*> myCacheMap;
165 
169 
170  QVBoxLayout* myMainLayout;
171  QSplitter* mySplitter;
173  QVBoxLayout* myLeftWidgetLayout;
175  QVBoxLayout* myRightWidgetLayout;
176 
179 
180  QHBoxLayout* myElementButtonLayout;
184 
192 
193  QHBoxLayout* myModelSetLayout;
197  QTextEdit* myDescriptionText;
198 
200  };
201 }

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)