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>
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 
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 DtObjectType 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 DtObjectType&, 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<DtObjectType>&);
117  virtual bool selectedIsInMasterSMS() const;
118  virtual bool selectedParentIsInMasterSMS() const;
119  virtual bool canAddSubordinateToSelected() const;
120  virtual int selectedItemsCount() const;
121  virtual bool selectedIsPartOfSimulationObjectGroup() const;
122  virtual void redisplayListIcons();
123  virtual void resetVisuals();
124  virtual void elementModified(DtUiElement*);
125 
126  virtual void selectSystemFromFilename(DtFilename, std::vector<DtUiElementEvent> = std::vector<DtUiElementEvent>(), bool forceReselect = true);
127  virtual void selectSystem(DtComponentSystemDefinition*, std::vector<DtUiElementEvent> = std::vector<DtUiElementEvent>(), bool forceReselect = true);
128 
129  virtual void selectMunition(const DtObjectType&, std::vector<DtUiElementEvent> = std::vector<DtUiElementEvent>(), bool forceReselect = true);
130  virtual void scheduleMunitionSelection(const DtObjectType&, std::vector<DtUiElementEvent> = std::vector<DtUiElementEvent>(), bool forceReselect = true);
131 
132  virtual int currentTab() const;
133  virtual void setCurrentTab(int);
134 
135  virtual void copyListContentsToClipboard();
136 
137  virtual void labelModified(const std::vector<DtObjectType>&);
138 
139  boost::signals2::signal<void (const DtUiElementEvent&)> signal_uiEvent;
140  boost::signals2::signal<void (int)> signal_tabChanged;
141  boost::signals2::signal<void ()> signal_elementModified;
142  boost::signals2::signal<void ()> signal_objectSelected;
143  boost::signals2::signal<void (std::set<makVrf::DtEntityMapperKey>)> signal_revertedMunitions;
144  boost::signals2::signal<void (const std::vector<DtObjectType>&)> signal_labelModified;
145 
146 protected:
147  virtual void completeCategoriesChange();
148 
149  virtual void completeTypeChange(DtModelSetEntry*);
150 
152  virtual void setup();
153 
154  virtual void readOnlyChanged(bool);
155 
157  virtual void setApplicationTitle(const std::string& appName);
158 
160  virtual std::string applicationTitle() const;
161 
163  virtual void setApplicationIcon(const std::string& iconName);
164 
166  virtual void setShowQuitDialogOnClose(bool);
167 
169  virtual void destroyWindow();
170 
172  virtual void quit();
173 
174  virtual void categoriesReverted();
175  virtual void deployedCountriesReverted();
176  virtual void overlayLayersReverted();
177  virtual void scheduledSelectSystemFilename(DtFilename, std::vector<DtUiElementEvent> = std::vector<DtUiElementEvent>(), bool forceReselect = true);
178 
179 public:
181  {
182  return myTree;
183  }
184 
186  {
187  return mySystemTree;
188  }
189 
191  {
192  return myMunitionTree;
193  }
194 
195  virtual void clear();
196 
197 public slots:
198  virtual void preSimulationModelSetSave();
199  virtual void deleteExisting();
200  virtual void revertExisting();
201  virtual void opdEntryAdded(DtModelSetEntry*);
202  virtual void simulationModelSetLoaded();
203  virtual void newDataFileAdded(std::vector<DtSimulationModelSetLoader::EntityData*> data);
204  virtual void preloadSimulationModelSet();
205  virtual void loadUiFiles(const DtFilename&);
206  virtual void creationStatusModified();
207  virtual void categoriesModified();
208 
209  virtual void selectEntity();
210  virtual void selectSystem();
211  virtual void selectMunition();
212  virtual void reselectModel();
213  virtual void entityTypeChanged(DtModelSetEntry* oldType, DtModelSetEntry* newType);
214 
216  virtual void setSplashScreen(makVrv::DtDeSplashScreen* splashScreen);
217 
220  virtual void showBasedOnSettings();
221 
222 protected:
223  virtual void simulationModelSetSaved();
224  virtual void tick();
225 
226  virtual void createBehaviorUi();
227  virtual void closeEvent(QCloseEvent* e);
228 
229 protected slots:
230  virtual void itemStatusChanged();
231  virtual void deployableCountriesModified();
232  virtual void uiEvent(const DtUiElementEvent&);
233  virtual void enableEditing();
234  virtual void tabChanged(int);
235  virtual void healthCheckResults(const QString&);
236 
237 protected:
238  virtual bool eventFilter(QObject*, QEvent*);
239  virtual void hierarchyChanged(const DtUiElementEvent&);
240 
241 public:
248 
249  QSplitter* mySplitter;
250  QWidget* myMainWidget;
252 
253 protected:
254  boost::signals2::connection myScheduledModelSelection;
255  boost::signals2::connection myScheduledSystemSelection;
258  bool myClosing;
263 
266 };
267 
269 {
270  return myBehaviorUi;
271 }
272 
275 {
276 public:
279 
282 
285 };
286 
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:245
boost::signals2::connection myScheduledModelSelection
Definition: simulationObjectEditorWindow.h:254
DtSimulationObjectEditorAppEventController * myAppEventController
Definition: simulationObjectEditorWindow.h:260
bool myFirstTick
Definition: simulationObjectEditorWindow.h:256
DtModelSetEntry * myEntryToReselectedOnFocus
Definition: simulationObjectEditorWindow.h:264
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
QWidget * myMainWidget
Definition: simulationObjectEditorWindow.h:250
virtual void quit()=0
Quit the application.
DtSimulationObjectEditorCanvas * myEntityEditorCanvas
Definition: simulationObjectEditorWindow.h:242
The abstract main window provider.
Definition: DtDeMainWindow.h:74
A simple widget with an embedded de.
Definition: displayDefinitionWidget.h:86
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.
Definition: objectType.h:27
DtComponentSystemDefinition.
Definition: componentSystemDefinition.h:25
boost::signals2::signal< void()> signal_elementModified
Definition: simulationObjectEditorWindow.h:141
Definition: modelSetEntry.h:34
boost::signals2::signal< void(int)> signal_tabChanged
Definition: simulationObjectEditorWindow.h:140
DtBehaviorUi * behaviorUi()
Definition: simulationObjectEditorWindow.h:268
QSplitter * mySplitter
Definition: simulationObjectEditorWindow.h:249
QString myPreSaveSelectedPath
Definition: simulationObjectEditorWindow.h:259
DtSimulationObjectEditorSystemList * systemEditorList()
Definition: simulationObjectEditorWindow.h:185
makVrv::DtSignalConnectionManager myTreeConnections
Definition: simulationObjectEditorWindow.h:262
Definition: simulationObjectEditorMunitionList.h:13
DtSimulationObjectEditorList * entityEditorList()
Definition: simulationObjectEditorWindow.h:180
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:251
DtSimulationObjectEditorMunitionList * munitionEditorList()
Definition: simulationObjectEditorWindow.h:190
makVrv::DtSignalConnectionManager myConnectionManager
Definition: simulationObjectEditorWindow.h:261
Description: A readable, writable list of DtForceType.
Definition: rwForces.h:34
Creator to create the entity editor window.
Definition: simulationObjectEditorWindow.h:274
bool myClosing
Definition: simulationObjectEditorWindow.h:258
DtSimulationObjectEditorSystemList * mySystemTree
Definition: simulationObjectEditorWindow.h:244
boost::signals2::signal< void()> signal_objectSelected
Definition: simulationObjectEditorWindow.h:142
Base class to provide boost signal/slot management.
DtBehaviorUi * myBehaviorUi
Definition: simulationObjectEditorWindow.h:247
Definition: simulationObjectEditorCanvas.h:29
virtual std::string applicationTitle() const =0
Get the application&#39;s name.
DtSimulationObjectEditorList * myTree
Definition: simulationObjectEditorWindow.h:243
The DtUiElement class is the base for which all UI elements are defined. If you wish to create a new ...
Definition: uiElement.h:97
The VR-Vantage Splash Screen Interface.
Definition: DtDeSplashScreen.h:33
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:72
makVrv::DtDeSplashScreen * mySplashScreen
Definition: simulationObjectEditorWindow.h:265
Definition: simulationObjectEditorSystemList.h:97
boost::signals2::connection myScheduledSystemSelection
Definition: simulationObjectEditorWindow.h:255
Definition: simulationObjectEditorList.h:169
DtModelSetEntry * mySelectedModel
Definition: simulationObjectEditorWindow.h:257
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:183
QTabWidget * myTabWidget
Definition: simulationObjectEditorWindow.h:246
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:139

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)