VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 
15 #include <vrvUtil/DtUnicode.h>
16 
17 #include <QtGui/QDialog>
18 
19 #include <set>
20 #include <map>
21 
22 class QPushButton;
23 class QHBoxLayout;
24 class QLabel;
25 class QTableWidget;
26 class QComboBox;
27 class QTabWidget;
28 
29 namespace makVrv
30 {
31  class DtDe;
32 }
33 
36 {
37  Q_OBJECT
38 
39 public:
40  DtAssembliesEditor(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = Qt::Tool);
41  virtual ~DtAssembliesEditor();
42 
43 protected:
45  virtual void accept();
46 
47  virtual void convertTableToAssembly(const std::string&,
49  virtual void setupTableForAssembly(const DtAssembliesReaderWriter::RwRootNode&);
50 
51  virtual QComboBox* createComboForAmmunition(int row, const std::string&);
52  virtual QComboBox* createComboForEquipment(int row, const std::string&);
53  virtual QComboBox* createComboForWeapon(int row, const std::string&);
54  virtual QComboBox* createComboForVariable(int row, const std::string&);
55  virtual QComboBox* createComboForSystem(int row, const std::string& keyword, const makVrv::DtUnicode& value);
56  virtual QComboBox* createComboBoxFor(int row, const std::string& keyword, const std::string& type);
57  virtual void setupRowFor(int type, int row, const std::string& keyword, const std::string& value);
58 
59  virtual void removeFromAllButThis(int type, const QString&, QComboBox*);
60  virtual void removeFromAllButThis(int type, QComboBox*);
61  virtual void addToAllButThis(int type, const QString&, const QString&, QComboBox*);
62  virtual void modifyComboBoxesFor(int type, QComboBox* value);
63  virtual void variableSelectionChanged(QComboBox*);
64  virtual void systemSelectionChanged(QComboBox*);
65  virtual void setupAvailableMap(const std::string& type, const std::map<std::string, std::string>&);
66  virtual void setupAvailableItemsForCurrentRoot();
67  virtual QString getUniqueName(const QString&);
68  void createTableTabFor(int type, const QString& tab);
69  virtual int mapAvailableToType(const std::string&) const;
70  virtual std::string mapTypeToAvailable(int) const;
71  virtual void addUnusedSystemsTo(QComboBox*);
72  virtual bool canAddItem(int type) const;
73  virtual void setupVariablesForSystem(const std::string& system,
75  virtual void setupVariableDefaultValueFor(QComboBox*);
76  virtual void editSystemProperties(bool edit);
77  virtual void elementSelectionChanged(QComboBox*);
78 
79 protected slots:
80  virtual void addRow();
81  virtual void removeRow();
82  virtual void itemSelectionChanged();
83  virtual void assemblyChanged();
84  virtual void elementSelectionChanged();
85  virtual void editAssembly();
86  virtual void removeAssembly();
87  virtual void addAssembly();
88  virtual void onEditSystemProperties();
89 
90 public:
92  QHBoxLayout* myButtonLayout;
96 
97  QHBoxLayout* myButtonModifyLayout;
103 
106 
112  typedef std::map<int, QTableWidget*> TableWidgets;
114 
115 protected:
119 
120  std::string myCurrentAssembly;
121 
122  QStringList myAvailableSystems;
123  QStringList myUnusedSystems;
124 
126  {
127  std::map<std::string, std::string> all;
128  std::map<std::string, std::string> available;
129  };
130 
131  typedef std::map<int, AssemblyItemStruct> AvailableAssemblyItems;
133 
134  typedef std::map<std::string, DtRwVariableBindings*> SystemVariables;
136 };
137 
140 {
141 public:
144 
146  virtual ~DtAssembliesEditorCreator();
147 
149  static DtAssembliesEditorCreator& instance(makVrv::DtDe&);
150 
152  static void registerInstance(makVrv::DtDe&, DtAssembliesEditorCreator*);
153 
155  virtual DtAssembliesEditor* create(QWidget* parent);
156 
157 protected:
159 };

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)