VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
weaponSelectionWidget.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #if !defined(Q_MOC_RUN)
17 #include <vrfutil/rwUUID.h>
18 #endif
19 #include <boost/signals2.hpp>
20 
21 class QLabel;
22 class QBoxLayout;
23 class QString;
24 class QListWidget;
25 class QComboBox;
26 class QLineEdit;
27 class QCheckBox;
28 
29 namespace makVrv
30 {
31  class DtSimEntry;
32  class DtUnicode;
33 }
34 
35 namespace makVrf
36 {
39  {
40  Q_OBJECT
41 
48  Q_PROPERTY(bool allowMultipleSelecion READ allowMultipleSelection WRITE setAllowMultipleSelection)
49 
50  public:
51  DtWeaponSelectionWidget(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0, const CreationFlags& cflags = NormalMode);
52 
53  //DTOR
54  virtual ~DtWeaponSelectionWidget();
55 
58  virtual void setWeaponFilterType(DtWeaponSystemType type);
59  virtual DtWeaponSystemType weaponFilterType() const;
60 
63  virtual void setFireTaskType(DtSimTaskMessageType fireTaskType);
64  virtual void setFireTaskTypes(const std::vector<DtSimTaskMessageType>& fireTaskTypes);
65  virtual const std::vector<DtSimTaskMessageType>& fireTaskTypes() const;
66 
68  virtual void setRange(double bottom, double top);
69 
71  virtual void setDefaultValue(const std::string&);
72 
74  virtual void setVariableData(const QString&);
75 
77  virtual void setupFrom(const std::vector<makVrv::DtSimEntry*>& data);
78 
80  virtual DtReaderWriter* createBoundVariable(const std::string& variableName);
81 
83  virtual void setupFromBoundVariable(const DtReaderWriter* variableName);
84 
88  virtual void requestWeaponsFor(const std::vector<makVrv::DtSimEntry*>& data);
89  virtual void slot_receivedWeaponList(const DtUUID& entity);
90 
94  virtual bool includeResources() const;
95  virtual void setIncludeResources(const bool doInclude);
97 
100  virtual bool displayWeapons() const;
101  virtual void setDisplayWeapons(const bool doDisplay);
103 
106  virtual bool displayResources() const;
107  virtual void setDisplayResources(const bool doDisplay);
109 
116  virtual void setAllowMultipleSelection(bool);
117  virtual bool allowMultipleSelection() const;
118 
121  virtual QStringList selectedWeaponsNames() const;
122 
124  virtual QStringList selectedWeaponsIds() const;
125 
127  virtual std::list<DtString> selectedWeaponResources() const;
128 
130  virtual std::list<DtString> selectedResources() const;
131 
133  virtual void selectWeapons(const QStringList&);
134  virtual void selectWeaponsById(const QStringList&);
135 
137  virtual void updateWeapons();
138 
140  virtual void selectResource(const DtString&);
141 
143  virtual void updateResources();
144 
146  {
147  return makVrv::DtUnicode::tr("String (weapon name)");
148  }
149  static std::string designerGroup()
150  {
151  return tr("VR-Forces Weapon Selection").toUtf8().constData();
152  }
153 
154  static std::string headerFile()
155  {
156  return tr("<vrfGuiDataEntryWidgets/weaponSelectionWidget.h>").toUtf8().constData();
157  }
158 
159  static std::string variableName()
160  {
161  return tr("weapon").toUtf8().constData();
162  }
163 
164  boost::signals2::signal<void ()> signal_receivedWeaponsList;
165  boost::signals2::signal<void ()> signal_weaponSelectionChanged;
166  boost::signals2::signal<void()> signal_resourceSelectionChanged;
167 
168  protected:
175  virtual std::string variableDataFromUiDesigner(const QDomElement& element, const DtScriptedTaskVariableLayoutConverter& converter) const;
176 
177  virtual void addWeapon(const WeaponSystem&);
178  virtual void weaponUpdated(const WeaponSystem&);
179  virtual void weaponChanged();
180  virtual void weaponCheckingDisabled();
181  virtual void weaponCheckComplete();
182  virtual void nextRequest();
183  virtual void setupForComboBox();
184 
185 
186  virtual DtString getWeapon();
187  virtual DtString getAmmo();
188 
192  virtual std::vector<DtString> parseBoundVariable();
193 
195  virtual QString weaponId(const QString& qweaponName) const;
196 
197  virtual QString weaponName(const QString& weaponId) const;
198 
200  virtual std::list<DtString> weaponResources(QString& qweaponName) const;
201 
202  virtual DtTaskSetVariableWidgetExtensionInterface* parameterContents(QWidget* parent, const Qt::WindowFlags& flags = 0) const override;
203 
204  protected slots:
205  virtual void weaponSelectionChanged();
206  virtual void resourceSelectionChanged();
207 
208  protected:
209  std::set<DtUUID> myToRequest;
211  std::set<DtUUID> myDidRequest;
212  std::vector<DtUUID> myCurrSelected;
213 
216 
221 
227 
234 
238 
240  std::vector<DtSimTaskMessageType> myFireTaskTypes;
241 
242  public:
245  QHBoxLayout* myWeaponContentLayout;
249  QString myDefaultValue;
250  };
251 
254  {
255  Q_OBJECT
256 
257  public:
258  DtDirectFireWeaponSelectionWidget(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0, const CreationFlags& cflags = NormalMode);
259 
260  //DTOR
262 
263  static std::string designerGroup()
264  {
265  return tr("VR-Forces Weapon Selection").toUtf8().constData();
266  }
267 
268  static std::string headerFile()
269  {
270  return tr("<vrfGuiDataEntryWidgets/weaponSelectionWidget.h>").toUtf8().constData();
271  }
272 
273  static std::string variableName()
274  {
275  return tr("directFire").toUtf8().constData();
276  }
277 
278  protected:
279  virtual void addWeapon(const WeaponSystem&);
280  };
281 
284  {
285  Q_OBJECT
286 
287  public:
288  DtIndirectFireWeaponSelectionWidget(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0, const CreationFlags& cflags = NormalMode);
289 
290  //DTOR
292 
293  static std::string designerGroup()
294  {
295  return tr("VR-Forces Weapon Selection").toUtf8().constData();
296  }
297 
298  static std::string headerFile()
299  {
300  return tr("<vrfGuiDataEntryWidgets/weaponSelectionWidget.h>").toUtf8().constData();
301  }
302 
303  static std::string variableName()
304  {
305  return tr("indirectFire").toUtf8().constData();
306  }
307 
308  protected:
309  virtual void addWeapon(const WeaponSystem&);
310  };
311 
315 
317  {
318  Q_OBJECT
319  public:
320  DtWeaponSelectionWidgetExtension(makVrv::DtDe&, QWidget* w, const Qt::WindowFlags& f = 0);
322 
323  virtual int setFrom(const DtScriptedTaskVariable&, QGridLayout* parentLayout, int startRow);
324  virtual void setTo(DtScriptedTaskVariable&) const;
325 
326  virtual void setReadOnly(bool);
327 
328  public:
333  };
334 }
std::vector< DtSimTaskMessageType > myFireTaskTypes
Filters the weapon systems on their capability to execute tasks.
Definition: weaponSelectionWidget.h:240
UUID is a unique ID wrapper class.
Definition: uuid.h:59
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
Widget that allows users to select weapons for the given entity.
Definition: weaponSelectionWidget.h:38
CreationFlags
Definition: taskSetVariableWidget.h:119
static std::string headerFile()
Definition: weaponSelectionWidget.h:154
Widget that only displays direct fire weapons.
Definition: weaponSelectionWidget.h:253
bool myDisplayResources
Specifies if the resources list combo-box will be displayed - so the user to select a resource for a ...
Definition: weaponSelectionWidget.h:233
boost::signals2::signal< void()> signal_weaponSelectionChanged
Definition: weaponSelectionWidget.h:165
This class will parse the UI file for known scripted task variable types and pull out specified scrip...
Definition: scriptedTaskVariableLayoutConverter.h:32
QComboBox * myWeaponSystemsCombo
Definition: weaponSelectionWidget.h:244
Definition: readerWriter.h:85
static std::string variableName()
Definition: weaponSelectionWidget.h:159
Widget that only displays indirect fire weapons.
Definition: weaponSelectionWidget.h:283
QLabel * myResourcesLabel
Definition: weaponSelectionWidget.h:246
static makVrv::DtUnicode codeVariableType()
Definition: weaponSelectionWidget.h:145
Contains the DtUUID class declaration.
static std::string headerFile()
Definition: weaponSelectionWidget.h:298
DtWeaponSystemType
This now allows us to query the backend for specific types of weapons.
Definition: weaponListResponseAdmin.h:17
DtTaskSetVariableWidgetCreator< DtDirectFireWeaponSelectionWidget > DtDirectFireWeaponSelectionWidgetCreator
Definition: weaponSelectionWidget.h:313
std::set< DtUUID > myDidRequest
Definition: weaponSelectionWidget.h:211
bool myIncludeResources
Indicates whether the back end will be asked to include resources with the weapon names it returns; a...
Definition: weaponSelectionWidget.h:220
static std::string designerGroup()
Definition: weaponSelectionWidget.h:263
Basic implementation that has a label at the top.
Definition: taskSetVariableWidget.h:233
static std::string variableName()
Definition: weaponSelectionWidget.h:273
std::vector< DtUUID > myCurrSelected
Definition: weaponSelectionWidget.h:212
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
DtString myResourceToSelect
If no resources yet when selectResource is called, hold on until the resources come in from the back-...
Definition: weaponSelectionWidget.h:215
QString myDefaultValue
Definition: weaponSelectionWidget.h:249
Definition: taskSetVariableWidget.h:426
static std::string headerFile()
Definition: weaponSelectionWidget.h:268
std::set< DtUUID > myAwaitingWeaponSystemResponse
Definition: weaponSelectionWidget.h:210
A class for keeping track of meta data for variables of scripted tasks. The information is currently ...
Definition: scriptedTaskVariable.h:34
#define DT_DLL_VRFGUIDATAENTRYWIDGETS
Definition: vrfGuiDataEntryWidgets.h:22
std::set< DtUUID > myToRequest
Definition: weaponSelectionWidget.h:209
QCheckBox * myDisplayWeapons
Definition: weaponSelectionWidget.h:331
DtWeaponSystemType myWeaponFilterType
Used for pre VRF-5.1 scenarios - should be deprecated. Option to allow user to filter by a particular...
Definition: weaponSelectionWidget.h:237
QLabel * myFireTaskTypeLabel
Definition: weaponSelectionWidget.h:329
QHBoxLayout * myResourcesContentLayout
Definition: weaponSelectionWidget.h:248
QHBoxLayout * myWeaponContentLayout
Definition: weaponSelectionWidget.h:245
QComboBox * myResourcesCombo
Definition: weaponSelectionWidget.h:247
QLabel * myWeaponLabel
Definition: weaponSelectionWidget.h:243
static std::string designerGroup()
Definition: weaponSelectionWidget.h:149
bool myDisplayWeapons
Specifies if the weapons list combo-box will be displayed - so the user to select a weapon...
Definition: weaponSelectionWidget.h:226
QCheckBox * myDisplayResources
Definition: weaponSelectionWidget.h:332
DtTaskSetVariableWidgetCreator< DtWeaponSelectionWidget > DtWeaponSelectionWidgetCreator
Definition: weaponSelectionWidget.h:312
QLineEdit * myFireTaskType
Definition: weaponSelectionWidget.h:330
static std::string designerGroup()
Definition: weaponSelectionWidget.h:293
Definition: weaponListResponseAdmin.h:27
static std::string variableName()
Definition: weaponSelectionWidget.h:303
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:72
boost::signals2::signal< void()> signal_receivedWeaponsList
Definition: weaponSelectionWidget.h:164
boost::signals2::signal< void()> signal_resourceSelectionChanged
Definition: weaponSelectionWidget.h:166
DtTaskSetVariableWidgetCreator< DtIndirectFireWeaponSelectionWidget > DtIndirectFireWeaponSelectionWidgetCreator
Definition: weaponSelectionWidget.h:314
Extension interface for contents for definition of variables in the scripted task meta data variable ...
Definition: taskSetVariableWidget.h:84
Definition: weaponSelectionWidget.h:316

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)