VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simulationObjectEditorWindow.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 
12 
13 #if !defined(Q_MOC_RUN)
17 #include <vrvCore/DtDeMainWindow.h>
20 #include <vlpi/entityType.h>
21 #endif
22 
23 #include <set>
24 
25 #include <boost/signals2.hpp>
26 
27 #include <QtCore/QMap>
28 #include <QtCore/QVariant>
29 #include <QtWidgets/QMainWindow>
30 
36 class DtBehaviorUi;
38 class DtReadOnlyWidget;
39 class DtFilename;
40 class DtRwForces;
42 class DtModelSetEntry;
43 class QVBoxLayout;
44 class DtDisplayWidget;
45 class QLabel;
46 class QPushButton;
47 class QHBoxLayout;
48 class QSplitter;
49 class QTabWidget;
50 
51 namespace makVrf
52 {
53  class DtEntityMapperKey;
54 }
55 
56 namespace makVrv
57 {
58  class DtDeSplashScreen;
59 }
60 
62 {
63  Q_OBJECT
64 
65 public:
66 
68  DtSimulationObjectEditorWindow(makVrv::DtDe& de, QWidget* parent = NULL, Qt::WindowFlags flags = 0);
69 
71  virtual ~DtSimulationObjectEditorWindow() override;
72 
73 public:
74 
75  virtual bool canCreateExisting() const;
76  virtual bool canRevertExisting() const;
77  virtual bool canMakeTemplate() const;
78  virtual std::set<makVrf::DtEntityMapperKey> getSelectedInformation() const;
79 
81  virtual bool canDeleteExisting(bool any = false) const;
82 
83  virtual DtEntityType selectedObjectType() const;
84  virtual DtComponentSystemDefinition* selectedSystem() const;
85 
86  DtBehaviorUi* behaviorUi();
87 
88  virtual void bringToFront();
89 
91  virtual void getCategorySelections(DtRwForces&, DtRwNLengthStringVector&);
92 
94  virtual void getSelectedCategories(DtRwNLengthStringVector&);
95 
96  virtual void selectModel(DtModelSetEntry*, std::vector<DtUiElementEvent> = std::vector<DtUiElementEvent>(), bool forceReselect = true);
97  virtual void scheduleModelSelection(DtModelSetEntry*, std::vector<DtUiElementEvent> = std::vector<DtUiElementEvent>(), bool forceReselect = true);
98  virtual void scheduleModelSelection(const DtEntityType&, std::vector<DtUiElementEvent> = std::vector<DtUiElementEvent>(), bool forceReselect = true);
99  virtual void scheduleSystemSelection(DtComponentSystemDefinition*, std::vector<DtUiElementEvent> = std::vector<DtUiElementEvent>(), bool forceReselect = true);
100 
102  virtual void postSelectModel(DtModelSetEntry*);
103 
104  virtual std::vector<std::string> selectedCategories() const;
105  virtual void sendEvent(const DtUiElementEvent&);
106 
107  virtual void reselectModelWhenGetFocus(DtModelSetEntry* e);
108 
109  virtual void executeFilter();
110 
111  virtual void processElementChanged(DtUiElement*);
112 
114  virtual DtDisplayWidget* editingWindow();
115 
116  virtual void select(const std::vector<DtEntityType>&);
117  virtual bool selectedIsInMasterSMS() const;
118  virtual bool selectedParentIsInMasterSMS() const;
119  virtual bool parentIsUnit() const;
120  virtual bool canAddSubordinateToSelected() const;
121  virtual int selectedItemsCount() const;
122  virtual bool selectedIsPartOfSimulationObjectGroup() const;
123  virtual void redisplayListIcons();
124  virtual void resetVisuals();
125  virtual void elementModified(DtUiElement*);
126 
127  virtual void selectSystemFromFilename(DtFilename, std::vector<DtUiElementEvent> = std::vector<DtUiElementEvent>(), bool forceReselect = true);
128  virtual void selectSystem(DtComponentSystemDefinition*, std::vector<DtUiElementEvent> = std::vector<DtUiElementEvent>(), bool forceReselect = true);
129 
130  virtual void selectMunition(const DtEntityType&, std::vector<DtUiElementEvent> = std::vector<DtUiElementEvent>(), bool forceReselect = true);
131  virtual void scheduleMunitionSelection(const DtEntityType&, std::vector<DtUiElementEvent> = std::vector<DtUiElementEvent>(), bool forceReselect = true);
132 
133  virtual int currentTab() const;
134  virtual void setCurrentTab(int);
135 
136  virtual void copyListContentsToClipboard();
137 
138  virtual void labelModified(const std::vector<DtEntityType>&);
139 
141  virtual DtModelSetEntry* selectedModel() const;
142 
143  boost::signals2::signal<void (const DtUiElementEvent&)> signal_uiEvent;
144  boost::signals2::signal<void (int)> signal_tabChanged;
145  boost::signals2::signal<void ()> signal_elementModified;
146  boost::signals2::signal<void (DtModelSetEntry*)> signal_objectSelected;
147  boost::signals2::signal<void (std::set<makVrf::DtEntityMapperKey>)> signal_revertedMunitions;
148  boost::signals2::signal<void (const std::vector<DtEntityType>&)> signal_labelModified;
149 
150 protected:
151  virtual void completeCategoriesChange();
152 
153  virtual void completeTypeChange(DtModelSetEntry*);
154 
156  virtual void setup();
157 
158  virtual void readOnlyChanged(bool);
159 
161  virtual void setApplicationTitle(const std::string& appName) override;
162 
164  virtual std::string applicationTitle() const override;
165 
167  virtual void setApplicationIcon(const std::string& iconName) override;
168 
170  virtual void setShowQuitDialogOnClose(bool);
171 
173  virtual void destroyWindow() override;
174 
176  virtual void quit() override;
177 
178  virtual void categoriesReverted();
179  virtual void deployedCountriesReverted();
180  virtual void overlayLayersReverted();
181  virtual void scheduledSelectSystemFilename(DtFilename, std::vector<DtUiElementEvent> = std::vector<DtUiElementEvent>(), bool forceReselect = true);
182 
183 public:
185  {
186  return myTree;
187  }
188 
190  {
191  return mySystemTree;
192  }
193 
195  {
196  return myMunitionTree;
197  }
198 
199  virtual void clear();
200 
201 public slots:
202  virtual void preSimulationModelSetSave();
203  virtual void deleteExisting();
204  virtual void revertExisting();
205  virtual void opdEntryAdded(DtModelSetEntry*);
206  virtual void simulationModelSetLoaded();
207  virtual void newDataFileAdded(std::vector<DtSimulationModelSetLoader::EntityData*> data);
208  virtual void preloadSimulationModelSet();
209  virtual void loadUiFiles(const DtFilename&);
210  virtual void creationStatusModified();
211  virtual void categoriesModified();
212 
213  virtual void selectEntity();
214  virtual void selectSystem();
215  virtual void selectMunition();
216  virtual void reselectModel();
217  virtual void entityTypeChanged(DtModelSetEntry* oldType, DtModelSetEntry* newType);
218 
220  virtual void setSplashScreen(makVrv::DtDeSplashScreen* splashScreen) override;
221 
224  virtual void showBasedOnSettings() override;
225 
226 protected:
227  virtual void simulationModelSetSaved();
228  virtual void tick();
229 
230  virtual void createBehaviorUi();
231  virtual void closeEvent(QCloseEvent* e) override;
232 
233 protected slots:
234  virtual void itemStatusChanged();
235  virtual void deployableCountriesModified();
236  virtual void uiEvent(const DtUiElementEvent&);
237  virtual void enableEditing();
238  virtual void tabChanged(int);
239  virtual void healthCheckResults(const QString&);
240 
241 protected:
242  virtual bool eventFilter(QObject*, QEvent*) override;
243  virtual void hierarchyChanged(const DtUiElementEvent&);
244 
245 public:
252 
253  QSplitter* mySplitter;
254  QWidget* myMainWidget;
256 
257 protected:
258  boost::signals2::connection myScheduledModelSelection;
259  boost::signals2::connection myScheduledSystemSelection;
262  bool myClosing;
267 
270 };
271 
273 {
274  return myBehaviorUi;
275 }
276 
279 {
280 public:
283 
285  virtual ~DtSimulationObjectEditorMainWindowProvider() override;
286 
289 };
290 
Definition: behaviorUi.h:30
virtual void showBasedOnSettings()=0
Show the main window based on application settings. This also handles the creation of the startup dia...
DtSimulationObjectEditorMunitionList * myMunitionTree
Definition: simulationObjectEditorWindow.h:249
boost::signals2::connection myScheduledModelSelection
Definition: simulationObjectEditorWindow.h:258
DtSimulationObjectEditorAppEventController * myAppEventController
Definition: simulationObjectEditorWindow.h:264
bool myFirstTick
Definition: simulationObjectEditorWindow.h:260
DtModelSetEntry * myEntryToReselectedOnFocus
Definition: simulationObjectEditorWindow.h:268
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
QWidget * myMainWidget
Definition: simulationObjectEditorWindow.h:254
virtual void quit()=0
Quit the application.
DtSimulationObjectEditorCanvas * myEntityEditorCanvas
Definition: simulationObjectEditorWindow.h:246
The abstract main window provider.
Definition: DtDeMainWindow.h:74
A simple widget with an embedded de.
Definition: displayDefinitionWidget.h:91
A styled QMainWindow that maintains color mappings for icons. This styled main window support mapping...
Definition: DtStyledQMainWindow.h:39
virtual DtDeMainWindow * createMainWindow(DtDe &de)=0
Create a main window.
Contains makVrv::DtDeMainWindow class.
DtComponentSystemDefinition.
Definition: componentSystemDefinition.h:27
boost::signals2::signal< void()> signal_elementModified
Definition: simulationObjectEditorWindow.h:145
Definition: modelSetEntry.h:34
boost::signals2::signal< void(int)> signal_tabChanged
Definition: simulationObjectEditorWindow.h:144
DtBehaviorUi * behaviorUi()
Definition: simulationObjectEditorWindow.h:272
QSplitter * mySplitter
Definition: simulationObjectEditorWindow.h:253
QString myPreSaveSelectedPath
Definition: simulationObjectEditorWindow.h:263
DtSimulationObjectEditorSystemList * systemEditorList()
Definition: simulationObjectEditorWindow.h:189
makVrv::DtSignalConnectionManager myTreeConnections
Definition: simulationObjectEditorWindow.h:266
Definition: simulationObjectEditorMunitionList.h:13
DtSimulationObjectEditorList * entityEditorList()
Definition: simulationObjectEditorWindow.h:184
virtual void setSplashScreen(DtDeSplashScreen *splashScreen)=0
The main window will hide the splash screen when it is shown.
Definition: simulationObjectEditorAppEventController.h:42
Definition: readOnlyWidget.h:26
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
virtual void setApplicationIcon(const std::string &iconName)=0
Set the application&#39;s icon, typically use a resource name.
The abstract main window class.
Definition: DtDeMainWindow.h:24
DtReadOnlyWidget * myReadOnlyWidget
Definition: simulationObjectEditorWindow.h:255
DtSimulationObjectEditorMunitionList * munitionEditorList()
Definition: simulationObjectEditorWindow.h:194
makVrv::DtSignalConnectionManager myConnectionManager
Definition: simulationObjectEditorWindow.h:265
Description: A readable, writable list of DtForceType.
Definition: rwForces.h:34
Creator to create the entity editor window.
Definition: simulationObjectEditorWindow.h:278
bool myClosing
Definition: simulationObjectEditorWindow.h:262
DtSimulationObjectEditorSystemList * mySystemTree
Definition: simulationObjectEditorWindow.h:248
Base class to provide boost signal/slot management.
DtBehaviorUi * myBehaviorUi
Definition: simulationObjectEditorWindow.h:251
Definition: simulationObjectEditorCanvas.h:29
virtual std::string applicationTitle() const =0
Get the application&#39;s name.
DtSimulationObjectEditorList * myTree
Definition: simulationObjectEditorWindow.h:247
The DtUiElement class is the base for which all UI elements are defined. If you wish to create a new ...
Definition: uiElement.h:97
boost::signals2::signal< void(DtModelSetEntry *)> signal_objectSelected
Definition: simulationObjectEditorWindow.h:146
The VR-Vantage Splash Screen Interface.
Definition: DtDeSplashScreen.h:34
virtual void destroyWindow()=0
Destroy the window.
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
makVrv::DtDeSplashScreen * mySplashScreen
Definition: simulationObjectEditorWindow.h:269
Definition: simulationObjectEditorSystemList.h:97
boost::signals2::connection myScheduledSystemSelection
Definition: simulationObjectEditorWindow.h:259
Definition: simulationObjectEditorList.h:168
DtModelSetEntry * mySelectedModel
Definition: simulationObjectEditorWindow.h:261
Contains makVrv::DtStyledQMainWindow class.
Definition: simulationObjectEditorWindow.h:61
#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
QTabWidget * myTabWidget
Definition: simulationObjectEditorWindow.h:250
virtual void setApplicationTitle(const std::string &appName)=0
Set the application&#39;s name, typically for the Title Bar.
boost::signals2::signal< void(const DtUiElementEvent &)> signal_uiEvent
Definition: simulationObjectEditorWindow.h:143

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)