VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
embarkationConfigurationDialog.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2013 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
8 #pragma once
9 
10 #if !defined(Q_MOC_RUN)
13 #endif
14 
15 #include <QtWidgets/QDialog>
16 #include <QtCore/QHash>
17 
20 class QVBoxLayout;
23 class QListWidget;
24 class QPushButton;
25 class QListWidgetItem;
26 class DtUiElement;
27 class QToolButton;
28 class QLabel;
29 class QHBoxLayout;
30 
31 namespace makVrv
32 {
33  class DtDe;
34 }
35 
37 {
38  Q_OBJECT
39 
40 public:
41  DtEmbarkationConfigurationDialog(makVrv::DtDe& de, QWidget* parent, Qt::WindowFlags flags);
42  virtual ~DtEmbarkationConfigurationDialog() override;
43 
44  static void ConfigureEmbarkation(makVrv::DtDe&, DtUiPushButtonElement*);
45 
46  virtual void init(DtUiElement* pushButton, const DtEntityType& t);
47 
48  const DtEmbarkationInformation& embarkationInformation() const;
49 
50 public:
53  static void addEntityType(const QString&, const DtRangedEntityType&);
54  static void removeEntityType(const QString&);
55  static void removeEntityType(const DtRangedEntityType&);
56  static void clearEntityTypes();
57  virtual DtRangedEntityType objectTypeFor(QListWidgetItem*);
58  virtual QString entityTypeText(const DtRangedEntityType&);
59  static std::map<QString, DtRangedEntityType>& entityTypes();
60  static void initializeEntityTypes();
62 
64  {
65  return myPushButton;
66  }
67 
68 protected:
69  virtual void closeEvent(QCloseEvent* ce) override;
70  virtual bool isComplex() const;
71  virtual bool isComplex(const DtEmbarkationInformation::LoadPoints&) const;
72  virtual bool isComplex(const DtEmbarkationSlotEntry&) const;
73  virtual bool isComplex(const DtLoadPoint&) const;
74 
75  virtual void createComplexEditor();
76  virtual void createBasicEditor(const DtEmbarkationInformation&);
77 
78  virtual void createBasicEntityTypesList();
79  virtual void validateBasicEmbarkationButtons();
80 
81  virtual QListWidgetItem* addSlot(const DtEmbarkationSlotEntry&);
82  virtual QListWidgetItem* addSlot(const DtRangedEntityType&);
83  virtual void removeSlot(int slot);
84 
85  virtual void reworkPointsFrom(int iIndex, DtEmbarkationInformation::LoadPoints& pnts) const;
86 
87  virtual QWidget* createLoadList(QWidget* parent, const QString& title, DtUiPositionElement*& position);
88 
89 protected slots:
90  virtual void switchToAdvanced();
91  virtual void switchToBasic();
92  virtual void selectedEntityTypeChanged();
93  virtual void addEntityType();
94  virtual void removeSelectedSlot();
95  virtual void elementDestroyed();
96  virtual void apply();
97 
98 public:
100  QVBoxLayout* myMainLayout;
101 
102  QWidget* myBasicCanvas;
103  QVBoxLayout* myBasicCanvasLayout;
109  QListWidget* myBasicEntityTypes;
113  QPushButton* myBasicCancelButton = nullptr;
114  QPushButton* myAdvancedCancelButton = nullptr;
115 
116  std::map<QString, DtRangedEntityType> myAvailableEntityTypes;
117 
118 protected:
119  DtEntityType myObjectType;
122  bool myInEditMode = false;
123 };
DtEmbarkationEditor * myEmbarkationEditor
Definition: embarkationConfigurationDialog.h:99
QToolButton * myBasicAddType
Definition: embarkationConfigurationDialog.h:107
DtLoadPoint; Readable/writeable object for describing position for entity loading/unloading.
Definition: loadPoint.h:22
QWidget * myBasicCanvas
Definition: embarkationConfigurationDialog.h:102
QLabel * myAllowedObjectTypesLabel
Definition: embarkationConfigurationDialog.h:111
UI Element for specify a push button that will trigger an action specified by the property &quot;slot&quot;...
Definition: uiPushButtonElement.h:21
QVBoxLayout * myBasicCanvasLayout
Definition: embarkationConfigurationDialog.h:103
QPushButton * myBasicOKButton
Definition: embarkationConfigurationDialog.h:106
DtUiElement * pushButton()
Definition: embarkationConfigurationDialog.h:63
QVBoxLayout * myMainLayout
Definition: embarkationConfigurationDialog.h:100
std::map< QString, DtRangedEntityType > myAvailableEntityTypes
Definition: embarkationConfigurationDialog.h:116
DtEmbarkationSlotEntry.
Definition: embarkationSlotEntry.h:27
Class that will keep track of all embarkation information.
Definition: embarkationInformation.h:22
UI Element for specifying a body position on an entity. Fills is a DtVector.
Definition: uiPositionElement.h:23
DtEmbarkationInformation myBasicEmbarkationInformation
Definition: embarkationConfigurationDialog.h:121
DtUiPositionElement * myBasicIngressPoint
Definition: embarkationConfigurationDialog.h:104
Definition: rangedEntityType.h:19
Definition: embarkationEditor.h:54
DtUiElement * myPushButton
Definition: embarkationConfigurationDialog.h:110
makVrv::DtDe & myDe
Definition: embarkationConfigurationDialog.h:120
std::vector< DtLoadPoint > LoadPoints
Definition: embarkationInformation.h:25
QToolButton * myBasicRemoveType
Definition: embarkationConfigurationDialog.h:108
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
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
QHBoxLayout * myAllowedObjectTypesLayout
Definition: embarkationConfigurationDialog.h:112
Definition: embarkationConfigurationDialog.h:36
QListWidget * myBasicEntityTypes
Definition: embarkationConfigurationDialog.h:109
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:33
Base class of the ui element class chain. Properties available through designer for all ui elements a...
Definition: uiElement.h:185
DtUiPositionElement * myBasicEgressPoint
Definition: embarkationConfigurationDialog.h:105
DtEntityType myObjectType
Definition: embarkationConfigurationDialog.h:119

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)