VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtVisualizerAttributeEditor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 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>
16 #include <vrvUtil/DtUnicode.h>
17 #endif
18 
19 #include <QtWidgets/QWidget>
20 #include <QtWidgets/QDialog>
21 #include <QtCore/QMap>
22 
23 class QColorDialog;
24 class QComboBox;
25 class QLabel;
26 class QDoubleSpinBox;
27 class QLineEdit;
28 class QPushButton;
29 class QString;
30 class QStringList;
31 class QTreeWidget;
32 class QTreeWidgetItem;
33 class QHBoxLayout;
34 
35 namespace makVrv
36 {
37  class DtDe;
38  class DtVisualizerDefinition;
39  class DtModelDefinitionComboBox;
40 
43  {
44  Q_OBJECT
45 
46  public:
47 
50 
52  void setupGui();
53 
55  void createItemForWidget(QWidget * widget );
56 
58  QWidget* findWidgetForItem(QTreeWidgetItem* item) const;
59 
61  const QTreeWidget* treeWidget() const;
62 
64  boost::signalslib::signal<void (QTreeWidget*)> signal_addInstance;
65 
66  protected:
67 
71  virtual void updateRemoveButtons();
72 
73  protected slots:
74 
75  virtual void addInstance();
76  virtual void removeInstance();
77 
78  protected:
82  };
83 
88  {
89  public:
91 
92  virtual void setAttribute( const DtVisualizerDefinition* visDef,
93  DtVisualizerAttribute* visAttr) = 0;
94 
96  boost::signalslib::signal<void (const DtUnicode& original)> signal_attributeValueChanged;
97 
99  boost::signalslib::signal<void ()> signal_cancel;
100 
101  boost::signalslib::signal<void (DtVisualizerAttributeEditorInterface*)> signal_destroyed;
102  };
103 
104 
109  {
110  Q_OBJECT
111 
112  public:
113 
114  struct TypeInfo
115  {
117  : editsAttributeName()
118  , editsAttributeType("")
119  {
120  }
121 
122  TypeInfo(const std::string& str,
124  : editsAttributeName(str)
125  , editsAttributeType(info)
126  {
127  }
128 
129  std::string editsAttributeName;
131  };
132 
134  DtVisualizerAttributeEditor(DtDe& de, QWidget* parent);
135 
137  virtual ~DtVisualizerAttributeEditor();
138 
140  virtual void setType(
142 
143  virtual void setAttribute(
144  const DtVisualizerDefinition* visDef,
145  DtVisualizerAttribute* visAttr);
146 
148  virtual bool commited() const;
149 
151  virtual bool canceled() const;
152 
153  virtual const TypeInfo& typeInfo() const = 0;
154 
155  public slots:
156 
157  virtual void commitValue();
158 
159  virtual void cancelValue();
160 
162  virtual void onPopup();
163 
164  protected:
165 
167  virtual void addCancelButton();
168 
169  protected:
177  };
178 
182  {
183  public:
186  editorTypeInfo() const = 0;
187 
189  virtual DtVisualizerAttributeEditor* create(DtDe& de, QWidget* parent) = 0;
190 
193  };
194 
198  template <typename Editor>
201  {
202  public:
203 
206  {
207  return Editor::theTypeInfo();
208  }
209 
210  virtual DtVisualizerAttributeEditor* create(DtDe& de, QWidget* parent)
211  {
212  return new Editor(de,parent);
213  }
214  };
215 
221  {
222  Q_OBJECT
223 
224  public:
225 
226  DtVisualizerAttributeComboEditor(DtDe& de, QWidget* parent);
227 
228  virtual void setAttribute( const DtVisualizerDefinition* visDef,
229  DtVisualizerAttribute* visAttr);
230 
232  virtual void commitValue();
233 
234  protected:
235 
238  virtual void setCurrentIndex(int index);
239 
241  virtual void getValues(QStringList& values) = 0;
242 
244  virtual void commitValue(int currentIndex, const QString& value) = 0;
245 
246  protected:
248  };
249 
254  {
255  Q_OBJECT
256  public:
257 
258  DtVisualizerAttributeBoolEditor(DtDe& de, QWidget* parent);
259 
260  virtual void setAttribute( const DtVisualizerDefinition* visDef,
261  DtVisualizerAttribute* visAttr);
262 
264  virtual const TypeInfo& typeInfo() const;
265 
267  static const TypeInfo& theTypeInfo();
268 
269  protected:
270  virtual void commitValue(int index,const QString& value);
271  virtual void getValues(QStringList& values);
272  };
273 
277 
282  {
283  Q_OBJECT
284 
285  public:
286 
287  DtDefaultVisualizerAttributeEditor(DtDe& de, QWidget* parent);
288 
289  virtual void setAttribute( const DtVisualizerDefinition* visDef,
290  DtVisualizerAttribute* visAttr);
291 
292  virtual void commitValue();
293 
295  virtual const TypeInfo& typeInfo() const;
296 
298  static const TypeInfo& theTypeInfo();
299 
300  protected:
301 
303  };
304 
309  {
310  Q_OBJECT
311 
312  public:
313 
314  DtVisualizerAttributeStringEditor(DtDe& de, QWidget* parent);
315 
316  virtual void setAttribute( const DtVisualizerDefinition* visDef,
317  DtVisualizerAttribute* visAttr);
318 
319  virtual void commitValue();
320 
322  virtual const TypeInfo& typeInfo() const;
323 
325  static const TypeInfo& theTypeInfo();
326 
327  protected:
328 
330  };
331 
336 
337 
342  {
343  Q_OBJECT
344 
345  public:
346 
347  DtVisualizerAttributeFloatEditor(DtDe& de, QWidget* parent);
348 
349  virtual void setAttribute( const DtVisualizerDefinition* visDef,
350  DtVisualizerAttribute* visAttr);
351 
353  virtual void commitValue();
354 
356  virtual const TypeInfo& typeInfo() const;
357 
359  static const TypeInfo& theTypeInfo();
360 
361  protected:
362 
364  };
365 
369 
374  {
375  Q_OBJECT
376 
377  public:
378 
380  DtVisualizerAttributeFilenameEditor(DtDe& de, QWidget* parent);
381 
383  virtual void setAttribute( const DtVisualizerDefinition* visDef,
384  DtVisualizerAttribute* visAttr);
385 
387  virtual void commitValue();
388 
390  virtual const TypeInfo& typeInfo() const;
391 
393  static const TypeInfo& theTypeInfo();
394 
395  protected:
396 
398  virtual void onPopup();
399 
400  protected:
403  };
404 
409 
414  {
415  Q_OBJECT
416 
417  public:
418 
419  DtVisualizerAttributeTypeEditor(DtDe& de, QWidget* parent);
420 
421  virtual void setAttribute( const DtVisualizerDefinition* visDef,
422  DtVisualizerAttribute* visAttr);
423 
425  virtual const TypeInfo& typeInfo() const;
426 
428  static const TypeInfo& theTypeInfo();
429 
430  protected:
431  virtual void commitValue(int index,const QString& value);
432  virtual void getValues(QStringList& values);
433 
434  typedef QMap<QString,std::string> TextNameMap;
436  };
437 
442 
443 
448  {
449  Q_OBJECT
450 
451  public:
452 
455 
457  virtual void setAttribute( const DtVisualizerDefinition* visDef,
458  DtVisualizerAttribute* visAttr);
459 
461  virtual void commitValue();
462 
464  virtual const TypeInfo& typeInfo() const;
465 
467  static const TypeInfo& theTypeInfo();
468 
469  protected:
470 
471  void addInstance(QTreeWidget* parent);
472  void addItem(const QString& name);
473 
474  protected:
476 
477  };
478 
483 
484 
489  {
490  Q_OBJECT
491 
492  public:
493 
495  DtVisualizerAttributeModelDefinitionEditor(DtDe& de, QWidget* parent);
496 
498  virtual void setAttribute( const DtVisualizerDefinition* visDef,
499  DtVisualizerAttribute* visAttr);
500 
502  virtual void commitValue();
503 
505  virtual const TypeInfo& typeInfo() const;
506 
508  static const TypeInfo& theTypeInfo();
509 
510  protected:
511 
512  void addInstance(QTreeWidget* parent);
513  void addItem(const QString& name);
514 
515  protected:
518  };
519 
524 
525 
530  {
531  Q_OBJECT
532 
533  public:
534 
536  DtVisualizerAttributeStringVectorEditor(DtDe& de, QWidget* parent);
537 
539  virtual void setAttribute( const DtVisualizerDefinition* visDef,
540  DtVisualizerAttribute* visAttr);
541 
543  virtual void commitValue();
544 
546  virtual const TypeInfo& typeInfo() const;
547 
549  static const TypeInfo& theTypeInfo();
550 
551  protected:
552 
553  void addInstance(QTreeWidget* parent);
554  void addItem(const QString& name);
555 
556  protected:
558  };
559 
564 
567  {
568  Q_OBJECT
569 
570  public:
572  DtVisualizerAttributeFontGlyphEditor(DtDe& de, QWidget* parent);
573 
575  virtual void setAttribute( const DtVisualizerDefinition* visDef,
576  DtVisualizerAttribute* visAttr);
577 
579  virtual void commitValue();
580 
582  virtual const TypeInfo& typeInfo() const;
583 
585  static const TypeInfo& theTypeInfo();
586 
587  protected:
588 
590  void setupEditorValues();
591 
594  void addGlyphRange( unsigned int first, unsigned int last,
595  QFontMetrics &mets, QTreeWidget* widget, const QFont& font );
596 
597  protected slots:
598  virtual void fontSelectionChanged(const QString&);
599  virtual void itemSelectionChanged();
600 
601  public:
602 
605 
607  QHBoxLayout* myFontSelectionLayout;
610  };
611 
616 
619  {
620  Q_OBJECT
621 
622  public:
624  DtVisualizerAttributeColorEditor(DtDe& de, QWidget* parent);
625 
627  virtual void setAttribute( const DtVisualizerDefinition* visDef,
628  DtVisualizerAttribute* visAttr);
629 
631  virtual void commitValue();
632 
634  virtual const TypeInfo& typeInfo() const;
635 
637  static const TypeInfo& theTypeInfo();
638 
639  protected:
640 
642  QColorDialog* myEditor;
643  };
644 
645 
650 
655  {
656  Q_OBJECT
657 
658  public:
659 
662 
664  virtual void setAttribute( const DtVisualizerDefinition* visDef,
665  DtVisualizerAttribute* visAttr);
666 
668  virtual void commitValue();
669 
671  virtual const TypeInfo& typeInfo() const;
672 
674  static const TypeInfo& theTypeInfo();
675 
676  protected:
679  };
680 
685 
687  {
688  Q_OBJECT
689 
690  public:
691 
694 
696  void setupGui();
697 
699  QWidget* findWidgetForItem(QTreeWidgetItem* item) const;
700  QComboBox* findComboForItem(QTreeWidgetItem* item) const;
701  int findKeyForItem(QTreeWidgetItem* item) const;
702 
704  const QTreeWidget* treeWidget() const;
705 
707  boost::signalslib::signal<void (QTreeWidget*)> signal_addInstance;
708 
709  virtual void createItemForWidget(QWidget* widget,int key = -1);
710 
711  virtual void setDefaultComboValues(const std::vector<QString>&);
712 
713  protected slots:
714 
715  virtual void addInstance();
716  virtual void removeInstance();
717 
718  protected:
719  virtual void addToComboBoxes(int);
720 
721  protected:
725  QVector<int> myPossibleValues;
726  std::vector<QString> myDefaultValues;
727  };
728 
737  {
738  Q_OBJECT
739 
740  public:
741 
744 
746  virtual void setAttribute( const DtVisualizerDefinition* visDef,
747  DtVisualizerAttribute* visAttr);
748 
750  virtual void commitValue();
751 
753  virtual const TypeInfo& typeInfo() const;
754 
756  static const TypeInfo& theTypeInfo();
757 
758  boost::signalslib::signal<void (DtVisualizerAttributeForceSpecificModelDefinitionDialog*)> signal_dialogCreated;
759  boost::signalslib::signal<void (DtVisualizerAttributeForceSpecificModelDefinitionDialog*)> signal_dialogAboutToBeDestroyed;
760 
761  protected:
762  virtual void addInstance(QTreeWidget*);
763  virtual void addItem(int, const QString& def);
764  virtual DtModelDefinitionComboBox* createBox() const;
765 
769  virtual std::vector<QString> defaultForceTypeComboValues() const = 0;
770 
771  protected:
774  };
775 
776 }
const DtVisualizerAttributeStringVector * mySchemaAttribute
Definition: DtVisualizerAttributeEditor.h:517
Default type responsible for editing unknown attribute name/types.
Definition: DtVisualizerAttributeEditor.h:280
Base interface for the visualizer attribute editor to be passed to logics which will assign the attri...
Definition: DtVisualizerAttributeEditor.h:87
QLineEdit * myEdit
Definition: DtVisualizerAttributeEditor.h:329
DtVisualizerAttributeEditorCreatorTemplate< DtVisualizerAttributeFloatEditor > DtVisualizerAttributeFloatEditorCreator
Creator for float attribute editor.
Definition: DtVisualizerAttributeEditor.h:368
boost::signalslib::signal< void()> signal_cancel
Signal emitted if the editor changes the attribute&#39;s value.
Definition: DtVisualizerAttributeEditor.h:99
Default type responsible for editing filename attribute name/types.
Definition: DtVisualizerAttributeEditor.h:372
DtDe & myDe
Definition: DtVisualizerAttributeEditor.h:79
QPushButton * myBrowseButton
Definition: DtVisualizerAttributeEditor.h:402
QTreeWidget * myTreeWidget
Definition: DtVisualizerAttributeEditor.h:723
DtVisualizerAttributeEditorCreatorTemplate< DtVisualizerAttributeStringVectorEditor > DtVisualizerAttributeStringVectorEditorCreator
Creator for string vector attribute editor.
Definition: DtVisualizerAttributeEditor.h:563
Definition: DtVisualizerAttributeEditor.h:42
boost::signalslib::signal< void(const DtUnicode &original)> signal_attributeValueChanged
Signal emitted if the editor changes the attribute&#39;s value.
Definition: DtVisualizerAttributeEditor.h:96
bool myCancelFlag
Definition: DtVisualizerAttributeEditor.h:172
DtVisualizerAttributeMultiValueDialog * myEditDialog
Definition: DtVisualizerAttributeEditor.h:557
boost::signalslib::signal< void(DtVisualizerAttributeForceSpecificModelDefinitionDialog *)> signal_dialogCreated
Definition: DtVisualizerAttributeEditor.h:758
DtDe & myDe
Definition: DtVisualizerAttributeEditor.h:170
QHBoxLayout * myFontSelectionLayout
Text field for typing in hex value to select.
Definition: DtVisualizerAttributeEditor.h:607
QMap< QString, std::string > TextNameMap
Definition: DtVisualizerAttributeEditor.h:434
Default type responsible for editing unknown attribute name/types.
Definition: DtVisualizerAttributeEditor.h:446
boost::signalslib::signal< void(QTreeWidget *)> signal_addInstance
Signal emitted when an new instance should be created.
Definition: DtVisualizerAttributeEditor.h:64
DtVisualizerAttributeForceSpecificModelDefinitionDialog * myEditDialog
Definition: DtVisualizerAttributeEditor.h:772
TypeInfo()
Definition: DtVisualizerAttributeEditor.h:116
String vector type visualizer attribute.
Definition: DtVisualizerAttribute.h:108
QComboBox * myEdit
Definition: DtVisualizerAttributeEditor.h:247
QVector< int > myPossibleValues
Definition: DtVisualizerAttributeEditor.h:725
QTreeWidget * myEditor
The tree widget holding the glyphs to select from.
Definition: DtVisualizerAttributeEditor.h:604
const DtVisualizerDefinition * myVisualizerDefinition
Definition: DtVisualizerAttributeEditor.h:174
DtDe & myDe
Definition: DtVisualizerAttributeEditor.h:722
Definition: DtVisualizerAttributeEditor.h:114
#define DT_DLL_VRVCOREQT
Definition: vrvCoreQt.h:20
Definition: DtVisualizerAttribute.h:42
DtModelDefinitionComboBox * myEdit
Definition: DtVisualizerAttributeEditor.h:678
Contains DLL export macros.
Default type responsible for editing unknown attribute name/types.
Definition: DtVisualizerAttributeEditor.h:412
Definition: DtVisualizerAttributeEditor.h:686
DtVisualizerAttribute * myVisualizerAttribute
Definition: DtVisualizerAttributeEditor.h:175
unsigned int ElementDefinitionType
Identifier for a type of element definition.
Definition: DtElementDefinitionManager.h:506
Default type responsible for editing attribute with a set number of values.
Definition: DtVisualizerAttributeEditor.h:219
DtVisualizerAttributeEditorCreatorTemplate< DtVisualizerAttributeStringEditor > DtVisualizerAttributeStringEditorCreator
Creator for string attribute editor.
Definition: DtVisualizerAttributeEditor.h:335
TextNameMap myTextToNameMap
Definition: DtVisualizerAttributeEditor.h:435
Default type responsible for editing unknown attribute name/types.
Definition: DtVisualizerAttributeEditor.h:307
DtVisualizerAttributeEditorCreatorTemplate< DtVisualizerAttributeTypeEditor > DtVisualizerAttributeVisualTypeEditorCreator
Creator for visual type attribute editor.
Definition: DtVisualizerAttributeEditor.h:441
QTreeWidget * myTreeWidget
Definition: DtVisualizerAttributeEditor.h:80
DtVisualizerAttributeEditorCreatorTemplate< DtVisualizerAttributeColorEditor > DtVisualizerAttributeColorEditorCreator
Creator for color attribute editor.
Definition: DtVisualizerAttributeEditor.h:649
DtVisualizerAttributeMultiValueDialog * myEditDialog
Definition: DtVisualizerAttributeEditor.h:516
Definition: asyncJobServer.h:38
QLineEdit * myEdit
Definition: DtVisualizerAttributeEditor.h:302
boost::signalslib::signal< void(QTreeWidget *)> signal_addInstance
Signal emitted when an new instance should be created.
Definition: DtVisualizerAttributeEditor.h:707
std::vector< QString > myDefaultValues
Definition: DtVisualizerAttributeEditor.h:726
DtElementDefinitionTypeManager::ElementDefinitionType myType
Definition: DtVisualizerAttributeEditor.h:173
QLineEdit * myEdit
Definition: DtVisualizerAttributeEditor.h:401
DtVisualizerAttributeEditorCreatorTemplate< DtVisualizerAttributeModelDefinitionSelector > DtVisualizerAttributeModelDefinitionSelectorCreator
Creator for model definition selector attribute editor.
Definition: DtVisualizerAttributeEditor.h:684
Base class for the Qt based visualizer attribute editor.
Definition: DtVisualizerAttributeEditor.h:107
DtVisualizerAttributeEditorCreatorTemplate< DtVisualizerAttributeModelDefinitionEditor > DtVisualizerAttributeModelDefinitionEditorCreator
Creator for model definition attribute editor.
Definition: DtVisualizerAttributeEditor.h:523
virtual const DtVisualizerAttributeEditor::TypeInfo & editorTypeInfo() const
Get type info for the editor specifying what it edits.
Definition: DtVisualizerAttributeEditor.h:205
std::string editsAttributeName
Definition: DtVisualizerAttributeEditor.h:129
Definition: DtVisualizerAttributeEditor.h:617
DtVisualizerAttributeMultiValueDialog * myEditDialog
Definition: DtVisualizerAttributeEditor.h:475
Definition: DtVisualizerAttributeEditor.h:565
DtVisualizerAttributeEditorCreatorTemplate< DtVisualizerAttributeModelDefinitionSchemaEditor > DtVisualizerAttributeModelDefinitionSchemaEditorCreator
Creator for model definition schema attribute editor.
Definition: DtVisualizerAttributeEditor.h:482
Default type responsible for editing unknown attribute name/types.
Definition: DtVisualizerAttributeEditor.h:487
A visual attribute editor for force-specific model definitions. Using this editor, a user can map a model definition to a force type. The model definitions the user can select from can be filtered by schema by ensuring the Model Definition Schema attribute is also set on the element definition.
Definition: DtVisualizerAttributeEditor.h:735
virtual DtVisualizerAttributeEditor * create(DtDe &de, QWidget *parent)
Create an instance of the attribute editor.
Definition: DtVisualizerAttributeEditor.h:210
DtVisualizerAttributeEditorCreatorTemplate< DtVisualizerAttributeBoolEditor > DtVisualizerAttributeBoolEditorCreator
Creator for boolean attribute editor.
Definition: DtVisualizerAttributeEditor.h:276
QPushButton * myAddButton
Definition: DtVisualizerAttributeEditor.h:724
DtVisualizerAttributeEditorCreatorTemplate< DtVisualizerAttributeFontGlyphEditor > DtVisualizerAttributeFontGlyphEditorCreator
Creator for font glyph attribute editor.
Definition: DtVisualizerAttributeEditor.h:615
QPushButton * myAddButton
Definition: DtVisualizerAttributeEditor.h:81
The abstract base visualizer attribute class.
Definition: DtVisualizerAttribute.h:26
A definition of a visualizer. Visualizer definition are always members of a visualizer definition set...
Definition: DtVisualizerDefinition.h:22
DtVisualizerAttributeEditorCreatorTemplate< DtVisualizerAttributeFilenameEditor > DtVisualizerAttributeFilenameEditorCreator
Creator for filename attribute editor.
Definition: DtVisualizerAttributeEditor.h:408
const DtVisualizerAttributeStringVector * mySchemaAttribute
Definition: DtVisualizerAttributeEditor.h:773
Default type responsible for editing unknown attribute name/types.
Definition: DtVisualizerAttributeEditor.h:252
DtVisualizerAttribute::TypeInfo editsAttributeType
Definition: DtVisualizerAttributeEditor.h:130
A DtModelDefinitionComboBox populates itself with model definitions.
Definition: DtModelDefinitionComboBox.h:43
Template version for creating attributes using the default constructor and a static theTypeInfo funct...
Definition: DtVisualizerAttributeEditor.h:199
Default type responsible for editing unknown attribute name/types.
Definition: DtVisualizerAttributeEditor.h:340
const DtVisualizerAttributeStringVector * mySchemaAttribute
Definition: DtVisualizerAttributeEditor.h:677
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
QDoubleSpinBox * myEdit
Definition: DtVisualizerAttributeEditor.h:363
bool myCommitedFlag
Definition: DtVisualizerAttributeEditor.h:171
QLabel * myFontSelectionLabel
Definition: DtVisualizerAttributeEditor.h:608
Default type responsible for editing unknown attribute name/types.
Definition: DtVisualizerAttributeEditor.h:528
boost::signalslib::signal< void(DtVisualizerAttributeEditorInterface *)> signal_destroyed
Definition: DtVisualizerAttributeEditor.h:101
QLineEdit * myFontSelection
Definition: DtVisualizerAttributeEditor.h:609
boost::signalslib::signal< void(DtVisualizerAttributeForceSpecificModelDefinitionDialog *)> signal_dialogAboutToBeDestroyed
Definition: DtVisualizerAttributeEditor.h:759
Default type responsible for selecting a single model instance.
Definition: DtVisualizerAttributeEditor.h:653
QColorDialog * myEditor
The color dialog used to pick a new color.
Definition: DtVisualizerAttributeEditor.h:642
Abstract creator class for visualizer attributes.
Definition: DtVisualizerAttributeEditor.h:181
QPushButton * myCancel
Definition: DtVisualizerAttributeEditor.h:176
TypeInfo(const std::string &str, const DtVisualizerAttribute::TypeInfo &info)
Definition: DtVisualizerAttributeEditor.h:122

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)