VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
assembliesEditor.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #if !defined(Q_MOC_RUN)
16 #include <vrvUtil/DtUnicode.h>
17 #endif
18 
19 #include <QtWidgets/QDialog>
20 
21 #include <set>
22 #include <map>
23 
24 class QPushButton;
25 class QHBoxLayout;
26 class QLabel;
27 class QTableWidget;
28 class QComboBox;
29 class QTabWidget;
30 class QToolButton;
31 
32 namespace makVrv
33 {
34  class DtDe;
35 }
36 
39 {
40  Q_OBJECT
41 
42 public:
43  DtAssembliesEditor(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = Qt::Tool);
44  virtual ~DtAssembliesEditor() override;
45 
46 protected:
48  virtual void accept() override;
49 
50  virtual void convertTableToAssembly(const std::string&,
52  virtual void setupTableForAssembly(const DtAssembliesReaderWriter::RwRootNode&);
53  virtual void keyPressEvent(QKeyEvent* e) override;
54 
55  virtual QComboBox* createComboForAmmunition(int row, const std::string&);
56  virtual QComboBox* createComboForEquipment(int row, const std::string&);
57  virtual QComboBox* createComboForWeapon(int row, const std::string&);
58  virtual QComboBox* createComboForVariable(int row, const std::string&);
59  virtual QComboBox* createComboForSystem(int row, const std::string& keyword, const makVrv::DtUnicode& value);
60  virtual QComboBox* createComboBoxFor(int row, const std::string& keyword, const std::string& type);
61  virtual void setupRowFor(int type, int row, const std::string& keyword, const std::string& value);
62 
63  virtual void removeFromAllButThis(int type, const QString&, QComboBox*);
64  virtual void removeFromAllButThis(int type, QComboBox*);
65  virtual void addToAllButThis(int type, const QString&, const QString&, QComboBox*);
66  virtual void modifyComboBoxesFor(int type, QComboBox* value);
67  virtual void variableSelectionChanged(QComboBox*);
68  virtual void systemSelectionChanged(QComboBox*);
69  virtual void setupAvailableMap(const std::string& type, const std::map<std::string, std::string>&);
70  virtual void setupAvailableItemsForCurrentRoot();
71  virtual QString getUniqueName(const QString&);
72  void createTableTabFor(int type, const QString& tab);
73  virtual int mapAvailableToType(const std::string&) const;
74  virtual std::string mapTypeToAvailable(int) const;
75  virtual void addUnusedSystemsTo(QComboBox*);
76  virtual bool canAddItem(int type) const;
77  virtual void setupVariablesForSystem(const std::string& system,
79  virtual void setupVariableDefaultValueFor(QComboBox*);
80  virtual void editSystemProperties(bool edit);
81  virtual void elementSelectionChanged(QComboBox*);
82  virtual bool inMasterSMS() const;
83  virtual bool inMasterSMS(const std::string&) const;
84  virtual void setupRootNode(DtAssembliesReaderWriter::RwRootNode* root);
85 
86 protected slots:
87  virtual void addRow();
88  virtual void promoteAssembly();
89  virtual void removeRow();
90  virtual void itemSelectionChanged();
91  virtual void assemblyChanged();
92  virtual void elementSelectionChanged();
93  virtual void editAssembly();
94  virtual void removeAssembly();
95  virtual void addAssembly();
96  virtual void onEditSystemProperties();
97 
98 public:
100  QHBoxLayout* myButtonLayout;
104 
105  QHBoxLayout* myButtonModifyLayout;
112 
115 
121  typedef std::map<int, QTableWidget*> TableWidgets;
123 
124 protected:
128  mutable std::map<std::string, bool> myPromoted;
129 
130  std::string myCurrentAssembly;
131 
132  QStringList myAvailableSystems;
133  QStringList myUnusedSystems;
134 
136  {
137  std::map<std::string, std::string> all;
138  std::map<std::string, std::string> available;
139  };
140 
141  typedef std::map<int, AssemblyItemStruct> AvailableAssemblyItems;
143 
144  typedef std::map<std::string, DtRwVariableBindings*> SystemVariables;
146 };
147 
150 {
151 public:
154 
156  virtual ~DtAssembliesEditorCreator() override;
157 
159  static DtAssembliesEditorCreator& instance(makVrv::DtDe&);
160 
162  static void registerInstance(makVrv::DtDe&, DtAssembliesEditorCreator*);
163 
165  virtual DtAssembliesEditor* create(QWidget* parent);
166 
167 protected:
169 };
std::map< int, AssemblyItemStruct > AvailableAssemblyItems
Definition: assembliesEditor.h:141
QToolButton * myPromoteAssembly
Definition: assembliesEditor.h:111
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
QPushButton * myCancelButton
Definition: assembliesEditor.h:102
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
std::map< std::string, std::string > all
Definition: assembliesEditor.h:137
QToolButton * myEditAssembly
Definition: assembliesEditor.h:108
makVrv::DtDe & myDe
Definition: assembliesEditor.h:168
QLabel * myInstructions
Definition: assembliesEditor.h:103
std::map< std::string, DtRwVariableBindings * > SystemVariables
Definition: assembliesEditor.h:144
std::map< std::string, std::string > available
Definition: assembliesEditor.h:138
Definition: assembliesEditor.h:135
std::map< std::string, bool > myPromoted
Definition: assembliesEditor.h:128
Definition: assembliesReaderWriter.h:31
Definition: assembliesReaderWriter.h:112
QStringList myAvailableSystems
Definition: assembliesEditor.h:132
This class will allow editing of the assemblies available to roll up for aggregates.
Definition: assembliesEditor.h:38
QHBoxLayout * myButtonModifyLayout
Definition: assembliesEditor.h:105
AvailableAssemblyItems myAvailableAssemblyItems
Definition: assembliesEditor.h:142
DtAssembliesReaderWriter::RwRootNode myCurrentRoot
Definition: assembliesEditor.h:127
Creator for the canvas.
Definition: assembliesEditor.h:149
QToolButton * myRemoveAssembly
Definition: assembliesEditor.h:107
QLabel * myAssemblyLabel
Definition: assembliesEditor.h:113
Contains makVrv::DtVirtualBaseClass class.
SystemVariables mySystemVariables
Definition: assembliesEditor.h:145
QHBoxLayout * myButtonLayout
Definition: assembliesEditor.h:100
QComboBox * myAssembly
Definition: assembliesEditor.h:114
QToolButton * myAddAssemblyItem
Definition: assembliesEditor.h:109
QStringList myUnusedSystems
Definition: assembliesEditor.h:133
std::map< int, QTableWidget * > TableWidgets
0 - Equipment 1 - Weapons 2 - Ammunition 3 - Variables 4 - Systems
Definition: assembliesEditor.h:121
QTabWidget * myTabWidget
Definition: assembliesEditor.h:99
DtAssembliesReaderWriter::RootNodeContainer myAssembliesRootNode
Definition: assembliesEditor.h:126
TableWidgets myTableWidgets
Definition: assembliesEditor.h:122
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::string myCurrentAssembly
Definition: assembliesEditor.h:130
makVrv::DtDe & myDe
Definition: assembliesEditor.h:125
QToolButton * myAddAssembly
Definition: assembliesEditor.h:106
QPushButton * myOKButton
Definition: assembliesEditor.h:101
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:33
QToolButton * myRemoveAssemblyItem
Definition: assembliesEditor.h:110

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)