VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
visualMetaDataSelectionWidget.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2018 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #if !defined(Q_MOC_RUN)
15 #endif
16 
17 class QLabel;
18 class QComboBox;
19 class QScrollArea;
20 class QWidget;
21 class QGridLayout;
22 class QHBoxLayout;
23 class QSpacerItem;
24 
25 namespace makVrf
26 {
27  class DtCountrySelectionEntryWidget;
28 
31  {
32  Q_OBJECT
33 
34  public:
35  typedef std::pair<DtString, DtString> Marking;
36  typedef std::vector<Marking> Markings;
37 
38  struct Combo
39  {
40  Combo() : label(0), combo(0), widget(0), layout(0) {};
41  Combo(const Combo& orig) : label(orig.label), combo(orig.combo), widget(orig.widget), layout(orig.layout) {};
42 
43  QHBoxLayout* layout;
47  };
48 
49  public:
50  DtVisualMetaDataSelectionWidget(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0, const CreationFlags& cflags = NormalMode);
51 
52  //DTOR
53  virtual ~DtVisualMetaDataSelectionWidget() override;
54 
56  {
57  return makVrv::DtUnicode::tr("String Attribute List (key/value pair)");
58  }
59 
60  static std::string designerGroup()
61  {
62  return tr("VR-Forces Visual Meta Data Manipulation").toUtf8().constData();
63  }
64 
65  static std::string headerFile()
66  {
67  return tr("<vrfGuiDataEntryWidgets/visualMetaDataSelectionWidget.h>").toUtf8().constData();
68  }
69 
70  static std::string variableName()
71  {
72  return tr("metadata").toUtf8().constData();
73  }
74 
76  virtual void setRange(double bottom, double top) override;
77 
79  virtual void setDefaultValue(const std::string&) override;
80 
82  virtual void setupFrom(const std::set<makVrv::DtUniqueID>& data) override;
83  virtual void setupFrom(const std::vector<DtEntityType>& data);
84 
86  virtual DtReaderWriter* createBoundVariable(const std::string& variableName) override;
87 
89  virtual void setupFromBoundVariable(const DtReaderWriter* variableName) override;
90 
92  virtual void addWidget(const std::string&, QWidget*, int col);
93 
95  virtual DtString selectedMarking(const std::string&) const;
96 
98  virtual void selectMarking(const std::string&, const std::string&);
99 
102  virtual Markings markings(const std::string&) const;
103 
105  virtual Combo combo(int row) const;
106 
107  virtual void clear();
108 
111  virtual void setVariableData(const QString& s) override;
112  virtual void setVariantMode(bool);
113  bool variantMode() const
114  {
115  return myVariantMode;
116  }
117 
118  virtual void setVisualMarking(const std::string& linkageName, const std::string& value, bool updateSubvariants = true);
119 
120  virtual void setCacheMarkingSelections(bool b);
122  {
123  return myCacheMarkingSelections;
124  }
125 
126  virtual void setBlockSelectionUpdate(bool);
127  bool blockSelectionUpdate() const
128  {
129  return myBlockSelectionUpdate;
130  }
131 
132  protected:
133  virtual bool isValid() const override;
134  virtual Combo createMetaDataEntryLine(const std::string& linkage,
135  const DtVisualMetaDataManager::Marking& marking, int indent = 0);
136  virtual void addComboToLayout(Combo&, int indent = 0);
137  virtual bool allowDataMarkingToBeDisplayed(const DtVisualMetaDataManager::Marking& marking) const;
138  virtual void createVariantModeLayout(const std::vector<DtEntityType>&);
139  virtual void comboActivated(QComboBox*);
140  virtual void updateSubvariants(const std::string& linkageName, const std::string& value);
141 
144  virtual void updateLinkageSelection(const std::string& linkage, const std::string& marking);
145 
146  virtual QString configNameValue(const std::string& linkage, const std::string& configName) const;
147 
148  virtual std::string codeFromConfigName(const std::string& linkage, const std::string& config) const;
149  virtual DtTaskSetVariableWidgetExtensionInterface* parameterContents(
150  QWidget* parent, const Qt::WindowFlags& flags) const override;
151 
152  signals:
153  void markingChanged(QComboBox*, const QString&, const QString&);
154 
155  protected slots:
156  virtual void comboActivated();
157 
158  public:
160 
161  typedef std::map<std::string, Combo> Combos;
163  std::vector<QComboBox*> myTabOrder;
164 
165  QGridLayout* myComboLayout;
166  QWidget* myInsideWidget;
167  QVBoxLayout* myMainLayout;
169 
170  protected:
172  {
173  QString displayName;
174  std::string configName;
175  std::string pattern;
176  };
177 
178  typedef std::map<int, ConfigStruct> MarkingToConfigStruct;
179  typedef std::map<std::string, MarkingToConfigStruct> LinkageMarkings;
181 
182  std::vector<makVrv::DtUniqueID> myCurrentIds;
183  std::vector<DtEntityType> myCurrentEntityTypes;
184  struct Variant
185  {
187  std::vector<DtVisualMetaDataManager::Marking> subvariants;
188  };
189 
190  std::map<std::string, Variant> mySubvariantMap;
191 
193  {
194  std::string marking;
195  std::map<std::string, std::string> subvariantMarkings;
196  };
197 
198  typedef std::map<std::string, SubvariantSelections> VariantSelections;
200 
204  };
205 
207 }
LinkageMarkings myLinkageMarkings
Definition: visualMetaDataSelectionWidget.h:180
QLabel * myNoDataAvailableLabel
Definition: visualMetaDataSelectionWidget.h:159
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
std::string pattern
Definition: visualMetaDataSelectionWidget.h:175
VariantSelections myVariantSelections
Definition: visualMetaDataSelectionWidget.h:199
CreationFlags
Definition: taskSetVariableWidget.h:118
static std::string headerFile()
Definition: visualMetaDataSelectionWidget.h:65
std::map< std::string, Combo > Combos
Definition: visualMetaDataSelectionWidget.h:161
bool myCacheMarkingSelections
Definition: visualMetaDataSelectionWidget.h:202
QWidget * myInsideWidget
Definition: visualMetaDataSelectionWidget.h:166
Definition: visualMetaDataSelectionWidget.h:171
std::map< std::string, MarkingToConfigStruct > LinkageMarkings
Definition: visualMetaDataSelectionWidget.h:179
QString displayName
Definition: visualMetaDataSelectionWidget.h:173
Definition: readerWriter.h:85
bool blockSelectionUpdate() const
Definition: visualMetaDataSelectionWidget.h:127
DtVisualMetaDataManager::Marking variant
Definition: visualMetaDataSelectionWidget.h:186
std::map< int, ConfigStruct > MarkingToConfigStruct
Definition: visualMetaDataSelectionWidget.h:178
static std::string variableName()
Definition: visualMetaDataSelectionWidget.h:70
Widget for selecting radar emitter.
Definition: visualMetaDataSelectionWidget.h:30
static std::string designerGroup()
Definition: visualMetaDataSelectionWidget.h:60
Definition: visualMetaDataSelectionWidget.h:38
DtTaskSetVariableWidgetCreator< DtVisualMetaDataSelectionWidget > DtVisualMetaDataSelectionWidgetCreator
Definition: visualMetaDataSelectionWidget.h:206
Basic implementation that has a label at the top.
Definition: taskSetVariableWidget.h:231
QLabel * label
Definition: visualMetaDataSelectionWidget.h:44
std::map< std::string, Variant > mySubvariantMap
Definition: visualMetaDataSelectionWidget.h:190
std::vector< makVrv::DtUniqueID > myCurrentIds
Definition: visualMetaDataSelectionWidget.h:182
static DtUnicode tr(const char *ascii)
Ascii translation function, used to be compatible with Qt&#39;s translation tools. This will simply call ...
Definition: DtUnicode.h:92
Definition: taskSetVariableWidget.h:422
DtCountrySelectionEntryWidget * widget
Definition: visualMetaDataSelectionWidget.h:46
static makVrv::DtUnicode codeVariableType()
Definition: visualMetaDataSelectionWidget.h:55
#define DT_DLL_VRFGUIDATAENTRYWIDGETS
Definition: vrfGuiDataEntryWidgets.h:22
bool myBlockSelectionUpdate
Definition: visualMetaDataSelectionWidget.h:203
std::vector< Marking > Markings
Pair is display name and internal name.
Definition: visualMetaDataSelectionWidget.h:36
QVBoxLayout * myMainLayout
Definition: visualMetaDataSelectionWidget.h:167
std::map< std::string, std::string > subvariantMarkings
Definition: visualMetaDataSelectionWidget.h:195
QGridLayout * myComboLayout
Definition: visualMetaDataSelectionWidget.h:165
Definition: visualMetaDataSelectionWidget.h:184
Combo()
Definition: visualMetaDataSelectionWidget.h:40
bool cacheMarkingSelections() const
Definition: visualMetaDataSelectionWidget.h:121
Definition: visualMetaDataSelectionWidget.h:192
bool myVariantMode
Definition: visualMetaDataSelectionWidget.h:201
IMGUI_API bool Combo(const char *label, int *current_item, const char *const items[], int items_count, int popup_max_height_in_items=-1)
std::map< std::string, SubvariantSelections > VariantSelections
Definition: visualMetaDataSelectionWidget.h:198
std::string configName
Definition: visualMetaDataSelectionWidget.h:174
Definition: visualMetaDataManager.h:48
QComboBox * combo
Definition: visualMetaDataSelectionWidget.h:45
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:76
std::vector< DtVisualMetaDataManager::Marking > subvariants
Definition: visualMetaDataSelectionWidget.h:187
std::vector< QComboBox * > myTabOrder
Definition: visualMetaDataSelectionWidget.h:163
bool variantMode() const
Definition: visualMetaDataSelectionWidget.h:113
std::vector< DtEntityType > myCurrentEntityTypes
Definition: visualMetaDataSelectionWidget.h:183
Widget that allows the selection of a country.
Definition: countrySelectionEntryWidget.h:39
Extension interface for contents for definition of variables in the scripted task meta data variable ...
Definition: taskSetVariableWidget.h:83
std::pair< DtString, DtString > Marking
Definition: visualMetaDataSelectionWidget.h:35
std::string marking
Definition: visualMetaDataSelectionWidget.h:194
QScrollArea * myScrollArea
Definition: visualMetaDataSelectionWidget.h:168
Combos myCombos
Definition: visualMetaDataSelectionWidget.h:162

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)