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  ;
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() override;
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) override;
69 
71  virtual void setDefaultValue(const std::string&) override;
72 
74  virtual void setVariableData(const QString&) override;
75 
77  virtual void setupFrom(const std::set<makVrv::DtUniqueID>& data) override;
78 
80  virtual DtReaderWriter* createBoundVariable(const std::string& variableName) override;
81 
83  virtual void setupFromBoundVariable(const DtReaderWriter* variableName) override;
84 
88  virtual void requestWeaponsFor(const std::set<makVrv::DtUniqueID>& 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<DtEntityType> selectedWeaponResources() const;
128 
130  virtual std::list<DtEntityType> 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 DtEntityType&);
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(
176  const QDomElement& element, const DtScriptedTaskVariableLayoutConverter& converter) const override;
177  virtual std::vector<DtString> parseBoundVariable() const;
178  virtual DtString getAmmo() const;
179  virtual DtString getWeapon() const;
180 
181  virtual void addWeapon(const WeaponSystem&);
182  virtual void weaponUpdated(const WeaponSystem&);
183  virtual void weaponChanged();
184  virtual void weaponCheckingDisabled();
185  virtual void weaponCheckComplete();
186  virtual void nextRequest();
187  virtual void setupForComboBox();
188 
190  virtual QString weaponName(const QString& weaponId) const;
191 
193  virtual std::list<DtEntityType> weaponResources(const QString& qweaponId) const;
194 
195  virtual DtTaskSetVariableWidgetExtensionInterface* parameterContents(QWidget* parent, const Qt::WindowFlags& flags = 0) const override;
196 
197  protected slots:
198  virtual void weaponSelectionChanged();
199  virtual void resourceSelectionChanged();
200 
201  protected:
202  std::set<DtUUID> myToRequest;
204  std::set<DtUUID> myDidRequest;
205  std::vector<DtUUID> myCurrSelected;
206 
208  DtEntityType myResourceToSelect;
209 
214 
220 
227 
231 
233  std::vector<DtSimTaskMessageType> myFireTaskTypes;
234 
235  public:
238  QHBoxLayout* myWeaponContentLayout;
242  QString myDefaultValue;
243  };
244 
247  {
248  Q_OBJECT
249 
250  public:
251  DtDirectFireWeaponSelectionWidget(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0, const CreationFlags& cflags = NormalMode);
252 
253  //DTOR
254  virtual ~DtDirectFireWeaponSelectionWidget() override;
255 
256  static std::string designerGroup()
257  {
258  return tr("VR-Forces Weapon Selection").toUtf8().constData();
259  }
260 
261  static std::string headerFile()
262  {
263  return tr("<vrfGuiDataEntryWidgets/weaponSelectionWidget.h>").toUtf8().constData();
264  }
265 
266  static std::string variableName()
267  {
268  return tr("directFire").toUtf8().constData();
269  }
270 
271  protected:
272  virtual void addWeapon(const WeaponSystem&) override;
273  };
274 
277  {
278  Q_OBJECT
279 
280  public:
281  DtIndirectFireWeaponSelectionWidget(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0, const CreationFlags& cflags = NormalMode);
282 
283  //DTOR
284  virtual ~DtIndirectFireWeaponSelectionWidget() override;
285 
286  static std::string designerGroup()
287  {
288  return tr("VR-Forces Weapon Selection").toUtf8().constData();
289  }
290 
291  static std::string headerFile()
292  {
293  return tr("<vrfGuiDataEntryWidgets/weaponSelectionWidget.h>").toUtf8().constData();
294  }
295 
296  static std::string variableName()
297  {
298  return tr("indirectFire").toUtf8().constData();
299  }
300 
301  protected:
302  virtual void addWeapon(const WeaponSystem&) override;
303  };
304 
308 
310  {
311  Q_OBJECT
312  public:
313  DtWeaponSelectionWidgetExtension(makVrv::DtDe&, QWidget* w, const Qt::WindowFlags& f = 0);
314  virtual ~DtWeaponSelectionWidgetExtension() override;
315 
316  virtual int setFrom(const DtScriptedTaskVariable&, QGridLayout* parentLayout, int startRow) override;
317  virtual void setTo(DtScriptedTaskVariable&) const override;
318 
319  virtual void setReadOnly(bool) override;
320 
321  public:
326  };
327 }
std::vector< DtSimTaskMessageType > myFireTaskTypes
Filters the weapon systems on their capability to execute tasks.
Definition: weaponSelectionWidget.h:233
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:118
static std::string headerFile()
Definition: weaponSelectionWidget.h:154
Widget that only displays direct fire weapons.
Definition: weaponSelectionWidget.h:246
bool myDisplayResources
Specifies if the resources list combo-box will be displayed - so the user to select a resource for a ...
Definition: weaponSelectionWidget.h:226
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:237
Definition: readerWriter.h:85
static std::string variableName()
Definition: weaponSelectionWidget.h:159
Widget that only displays indirect fire weapons.
Definition: weaponSelectionWidget.h:276
QLabel * myResourcesLabel
Definition: weaponSelectionWidget.h:239
static makVrv::DtUnicode codeVariableType()
Definition: weaponSelectionWidget.h:145
Contains the DtUUID class declaration.
static std::string headerFile()
Definition: weaponSelectionWidget.h:291
DtWeaponSystemType
This now allows us to query the backend for specific types of weapons.
Definition: weaponListResponseAdmin.h:17
DtTaskSetVariableWidgetCreator< DtDirectFireWeaponSelectionWidget > DtDirectFireWeaponSelectionWidgetCreator
Definition: weaponSelectionWidget.h:306
std::set< DtUUID > myDidRequest
Definition: weaponSelectionWidget.h:204
bool myIncludeResources
Indicates whether the back end will be asked to include resources with the weapon names it returns; a...
Definition: weaponSelectionWidget.h:213
static std::string designerGroup()
Definition: weaponSelectionWidget.h:256
Basic implementation that has a label at the top.
Definition: taskSetVariableWidget.h:231
static std::string variableName()
Definition: weaponSelectionWidget.h:266
std::vector< DtUUID > myCurrSelected
Definition: weaponSelectionWidget.h:205
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
QString myDefaultValue
Definition: weaponSelectionWidget.h:242
Definition: taskSetVariableWidget.h:422
static std::string headerFile()
Definition: weaponSelectionWidget.h:261
std::set< DtUUID > myAwaitingWeaponSystemResponse
Definition: weaponSelectionWidget.h:203
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:202
QCheckBox * myDisplayWeapons
Definition: weaponSelectionWidget.h:324
DtWeaponSystemType myWeaponFilterType
Used for pre VRF-5.1 scenarios - should be deprecated. Option to allow user to filter by a particular...
Definition: weaponSelectionWidget.h:230
QLabel * myFireTaskTypeLabel
Definition: weaponSelectionWidget.h:322
QHBoxLayout * myResourcesContentLayout
Definition: weaponSelectionWidget.h:241
QHBoxLayout * myWeaponContentLayout
Definition: weaponSelectionWidget.h:238
QComboBox * myResourcesCombo
Definition: weaponSelectionWidget.h:240
QLabel * myWeaponLabel
Definition: weaponSelectionWidget.h:236
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:219
QCheckBox * myDisplayResources
Definition: weaponSelectionWidget.h:325
DtTaskSetVariableWidgetCreator< DtWeaponSelectionWidget > DtWeaponSelectionWidgetCreator
Definition: weaponSelectionWidget.h:305
QLineEdit * myFireTaskType
Definition: weaponSelectionWidget.h:323
static std::string designerGroup()
Definition: weaponSelectionWidget.h:286
DtEntityType myResourceToSelect
If no resources yet when selectResource is called, hold on until the resources come in from the back-...
Definition: weaponSelectionWidget.h:208
Definition: weaponListResponseAdmin.h:27
static std::string variableName()
Definition: weaponSelectionWidget.h:296
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
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:307
Extension interface for contents for definition of variables in the scripted task meta data variable ...
Definition: taskSetVariableWidget.h:83
Definition: weaponSelectionWidget.h:309

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)