VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
commonScenarioManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
7 
8 #pragma once
9 
10 #if !defined(Q_MOC_RUN)
13 
15 #include <vrfGuiCore/vrfMenu.h>
19 #include <vrvCore/DtUniqueID.h>
22 
25 
27 
28 #include <vrfutil/scenario.h>
31 #include <vrfutil/stealthCommand.h>
32 #include <vlutil/vlPerformanceStats.h>
33 #endif
34 
35 #include <boost/signals2.hpp>
36 
37 #include <QtCore/QVector>
38 #include <QtCore/QFileInfo>
39 #include <QtCore/QEvent>
40 #include <QtWidgets/QDialog>
41 
43 #include <QtCore/qnamespace.h>
44 
45 class QLabel;
46 class DtScenario;
47 class DtScenarioExplorer;
48 class QFileDialog;
49 class DtSimMessage;
50 class DtIfServerMessage;
51 class DtModelSetEntry;
52 class QTranslator;
55 class QWidget;
56 
57 namespace makArchives
58 {
59  class DtTerrainOperationRecord;
60  class DtTerrainRecord;
61 }
62 
63 namespace makVrv
64 {
65  class DtRecordSettingsBackupInterface;
66  class DtMenuConfiguration;
67  class DtDe;
68 }
69 
70 #define DtFavoritesTopLevelIconRank -99999
71 #define DtRecentTopLevelIconRank 99998
72 
73 namespace makVrf
74 {
75  class DtUnifiedControlToolbarConfiguration;
76  class DtFileCommChannel;
77  class DtVrfScenarioRemapFunction;
78  class DtVrfSimBackendManager;
79  class DtVrfBackendState;
80  class DtNeverAskAgainMessageBox;
81  class DtSessionStatusBox;
82  class DtSessionStartupDialog;
83  class DtSubMenuConfiguration;
84  class DtVrfModelSetManager;
85  class DtEventManagerEventInterface;
86 
89  {
90  public:
93 
94  virtual ~DtVrfGuiRecentScenarios() override;
95 
96  virtual DtVrfGuiApplicationSetting* clone() const override;
97 
98  const std::vector<std::string> recentScenarios() const
99  {
100  return myRecentScenarios;
101  }
102 
103  int maxSize() const
104  {
105  return myMaxSize;
106  }
107 
109  void setMaxSize(int);
110 
111  void insertScenario(const std::string&, int pos = -1);
112  int removeScenario(const std::string&);
113 
114  virtual std::string classType() const override;
115 
116  protected:
117  friend class boost::serialization::access;
118 
119  virtual void write(boost::archive::xml_oarchive& out, const unsigned int) override;
120  virtual void read(boost::archive::xml_iarchive& in, const unsigned int) override;
121 
122  protected:
123  std::vector<std::string> myRecentScenarios;
124  unsigned int myMaxSize;
125  };
126 
129  {
130  Q_OBJECT
131 
132  public:
133  friend class DtSessionStatusBox;
134 
136  {
144  DtTerrainActionWaitingToJoin
145  };
146 
148  {
149  Loading = 0x00000001,
150  Saving = 0x00000002,
151  Closing = 0x00000004,
152  Importing = 0x00000008,
153  CreatingSimulationObjectGroup = 0x00000010,
154  Reinitializing = 0x00000020,
155  AllStatusDialogs = Loading | Saving | Closing | Importing | CreatingSimulationObjectGroup | Reinitializing
156  };
157 
158  public:
159  static const QEvent::Type LoadScenarioFromDialogEventType = (QEvent::Type)(QEvent::User + 302);
160  static const QEvent::Type LoadScenarioFromScenarioInformationEventType = (QEvent::Type)(QEvent::User + 303);
161 
163  {
164  public:
167  virtual ~LoadScenarioFromScenarioInformationEvent() override;
169  };
170 
172  {
173  public:
174  LoadScenarioFromDialogEvent(const DtString& s, bool useDefault);
175  virtual ~LoadScenarioFromDialogEvent() override;
176 
179  };
180 
181  public:
183  virtual ~DtCommonScenarioManager() override;
184 
186  static DtCommonScenarioManager& instance(makVrv::DtDe& de);
187 
189  static void init(makVrv::DtDe&);
190 
192  {
193  return myExplorer;
194  }
195 
196  const std::vector<DtEntityMapperKey>& controlObjects() const
197  {
198  return myControlObjectTypes;
199  }
200 
202  {
203  return myLoadingSessionTerrain;
204  }
205 
207  {
208  return mySimulationObjectGroupEditingMode;
209  }
210 
211  virtual void addControlObject(const DtEntityMapperKey& key);
212  virtual void removeControlObject(const DtEntityMapperKey& key);
213  virtual void clearControlObjects();
214 
215  virtual bool isControlObject(const DtEntityMapperKey& key) const;
216 
222  virtual bool wantsToSaveTerrain(bool& ignoredModifications);
223 
225  virtual bool saveGuiTerrain(bool askForName = false);
226 
228  virtual bool saveSimTerrain(bool askForName = false);
229 
231  bool importingScenario() const { return myImportingScenario; };
232 
235  virtual bool generateNavigationArea(makVrv::DtUniqueID);
236 
239  virtual bool regenerateNavigationAreas(bool);
240 
242  virtual DtFilename loadingScenarioFile() const;
243 
245  virtual void goToAerodrome(const std::string&);
246 
248  virtual std::string language() const;
249 
250  virtual void loadScenarioFromSessionDialog(QWidget*);
251 
254  virtual void closeScenario(bool resetScenario = true, const DtFilename& databaseToOpen = "", bool forceCloseAll = false);
255  virtual bool loadScenario(std::string, DtVrfScenarioRemapFunction* remapping = 0);
256  virtual bool loadScenario(const DtScenarioLoadInformation& s);
257  virtual bool importScenario(const DtScenarioLoadInformation& s);
258  virtual void runScenario();
259  virtual void pauseScenario();
260  virtual void postSaveLoadFromSession(QWidget* p);
261 
264  virtual bool rewindScenario(double toSimTime = -1);
265 
270 
271  virtual void setCreateMenuBuilderFlags(int);
272  virtual int createMenuBuilderFlags() const;
274 
276  virtual void loadBatchScenario(QWidget* p);
277 
279  virtual void tickedLoadScenario(const DtString& scenario = "", bool useDefaultRemappingFunction = false);
280 
285 
286  virtual void setHelpFile(const std::string&, bool save = false);
287  virtual std::string helpFile() const;
289 
292 
293  virtual void setDefaultScenarioFile(const std::string& f, bool save = false);
294  virtual std::string defaultScenarioFile() const;
296 
298 
299  virtual void setSimulationObjectGroupTerrain(const std::string& f, bool save = false);
300  virtual std::string simulationObjectGroupTerrain() const;
302 
306 
307  virtual void setDefaultSimulationModelSetFile(const std::string& f, bool save = false);
308  virtual std::string defaultSimulationModelSetFile() const;
310 
313  virtual void rebuildCreateMenu(bool recreate = true);
314 
316  virtual void reloadVisuals();
317 
319  virtual DtString scenarioSaveExtension(bool includesDot = true) const;
320 
324  virtual void recreateCreateMenu();
325 
327  virtual void cleanupBackupFile(double simTime) const;
328 
330  virtual void loadTaskMenu(const DtScenarioExplorer& explorer);
331 
333  virtual void loadUnifiedControlToolbar(const DtScenarioExplorer& explorer);
334 
336  virtual void loadSetMenu(const DtScenarioExplorer& explorer);
337 
340  virtual void removeSimulationObjectGroupTasksSets(const DtScenarioExplorer& explorer);
341 
344  virtual DtFilename saveScenarioName(bool askIfDoesNotExist = true, bool* asked = 0, bool createDefaultIfEmpty = false,
345  bool useScenarioNameAsSeed = true) const;
346 
349  {
350  return mySimulationObjectsCategoryInformation;
351  }
352 
354  {
355  return mySimulationObjectsCategoryInformation;
356  }
357 
359  virtual void setupWindowTitleBasedOnScenario();
360 
363  virtual makArchives::DtObserverStateRecordsList scenarioObserverViews() const;
364  virtual void setScenarioObserverViews(const makArchives::DtObserverStateRecordsList&) const;
366 
371  virtual void newScenario(const std::string&, const std::string& sms = "");
372 
382  virtual bool joinSession(DtJoinSessionTerrainAction terrainAction = DtTerrainActionUseSessionTerrain);
383 
384  virtual void resignSession(bool closeTerrain = true);
385 
386  virtual bool saveScenarioAs();
387 
390  virtual int saveScenario();
391 
392  virtual bool canRewind() const;
393 
397  {
398  myValidateForVrfObjects = b;
399  }
400 
402  {
403  return myValidateForVrfObjects;
404  }
405 
406  virtual void setScenarioDirty(bool b);
407 
408  void setReadyToQuit(bool b)
409  {
410  myReadyToQuit = b;
411  }
412 
413  bool scenarioDirty() const
414  {
415  return myScenarioDirty;
416  }
417 
418  const DtScenario* scenario() const
419  {
420  return myScenario;
421  }
422 
424  {
425  myAskSaveIfScenarioModified = b;
426  }
427 
429  {
430  return myAskSaveIfScenarioModified;
431  }
432 
433  bool joinedToSession() const
434  {
435  return myJoinedToSession;
436  }
437 
439  {
440  myDisplayExistingGdbWarningMessage = b;
441  }
442 
444  {
445  return myDisplayExistingGdbWarningMessage;
446  }
447 
448  virtual void setCorrelated(bool);
449 
450  bool correlated() const
451  {
452  return myCorrelated;
453  }
454 
456  {
457  return myMenu;
458  }
459 
460  bool initialized() const
461  {
462  return myInitialized;
463  }
464 
466  {
467  return myDeadReckoningSettings;
468  }
469 
471  {
472  myAllowEditingOnScenarioJoin = b;
473  }
474 
476  {
477  return myAllowEditingOnScenarioJoin;
478  }
479 
480  virtual std::string currentlyLoadedTerrain() const;
481 
482  virtual void processJoinSession(bool startupMessage = false);
483  virtual void processGuiEvent(DtEventManagerEventInterface* msg);
484 
485  virtual void setFromRecord(const DtVrfScriptedTaskSettingsRecord& rec);
486  virtual void loadDefaultScriptedTaskSettings(bool loadOnlyFactorySettings = false);
487  virtual void saveScriptedTaskSettingsAsDefaults();
488  virtual void getRecord(DtVrfScriptedTaskSettingsRecord& rec) const;
489 
492  virtual void getSplitRecord(std::vector<DtVrfScriptedTaskSettingsRecord>& rec,
493  std::vector<std::string>& fileNames) {
494  };
495 
499  DtVrfScriptedTaskSettingsRecord& combinedRec) {
500  };
501 
504 
505  virtual bool autoJoinSession() const;
506  virtual bool automaticallyOpenSessionDatabaseWithoutJoiningSession() const;
507  virtual bool askToJoin() const;
508  virtual bool alwaysJoinWithSessionDatabase() const;
509  virtual bool zoomToScenarioExtentsOnLoad() const;
510  virtual bool alwaysJoinWithOpenDatabase() const;
511  virtual bool displaySessionDialogs() const;
512  virtual bool displayCorrelationWarningMessages() const;
513  virtual void displayCorrelationWarningMessage();
515 
518  virtual bool isDefaultObserverView(const std::string&);
519  virtual std::string defaultObserverView(bool& is2D) const;
520  virtual void setDefaultObserverView(const std::string&);
521  virtual void setTerrainViewVisible(const std::string&, bool vis);
522 
524  virtual void setHiddenTerrainViews(const std::string&);
525 
526  virtual bool terrainViewHidden(const std::string&) const;
527  virtual const std::set<std::string>& hiddenTerrainViews() const;
528  virtual std::set<std::string>& hiddenTerrainViews();
529 
530  virtual bool defaultObserverViewStateRecord(makArchives::DtObserverStateRecord&) const;
531 
534  virtual void showObserverView(const std::string& view, int ticksBeforeShow = 0, bool inPreTick = true,
535  bool zoomToExtents = false);
536 
537  virtual void resetObserverForCommandLineTerrain(int count, bool inPreTick);
538 
540 
542  virtual void requestSpotReports();
543 
546  virtual void requestStealthCommands();
548  {
549  return myStealthCommands;
550  }
551 
554  {
555  return mySimulationObjectGroupSaveInformation;
556  }
557 
560  virtual bool isScenarioFile(const DtFilename&, bool exact = false) const;
561 
564  virtual void setAsynchLoadBufferTime(double);
565 
567  virtual void setSaveScenarioToZipFile(bool);
568 
570  virtual void zoomToExtentsFromScenario(const DtScenario&) const;
571 
573  virtual void setFavorite(const DtEntityMapperKey&, bool f);
574 
576  {
577  return myScriptedTaskSettingsBackup;
578  }
579 
581  void exportSessionSettings(const std::string& fileName);
582 
584  void importSessionSettings(const std::string& fileName);
585 
587  void exportScriptedTaskSettings(const std::string& fileName);
588 
590  void importScriptedTaskSettings(const std::string& fileName);
591 
593 
594  virtual void setDoNotShowSessionStartupDialog(bool);
595  bool showSessionStartupDialog() const;
597 
599 
600  virtual void setUserDefinedSmoothing(bool);
601  bool userDefinedSmoothing() const;
603 
605  virtual void setWindowTitle(const QString&);
606 
608  virtual void setShowSessionStatusDialogs(SessionStatusDialogs);
610  {
611  return myShowSessionStatusDialogs;
612  }
613 
615  virtual void setDenySystemScriptEditing(bool);
616  virtual bool denySystemScriptEditing() const;
617 
619  virtual void setIndent(int);
620  virtual int indent() const;
621 
623  virtual void setWarnOnSystemScriptChange(bool);
624  virtual bool warnOnSystemScriptChange() const;
625 
627  virtual void setMonitorScriptedTaskFrameRates(bool);
628  virtual bool monitorScriptedTaskFrameRates() const;
629 
631  virtual QString filenameToSaveUnder() const;
632 
634  virtual void setAutoSave(bool);
635  virtual bool autoSave() const;
636 
638  virtual void setShowScenarioDescriptionMessageBox(bool b);
639  virtual bool showScenarioDescriptionMessageBox() const;
640 
642  virtual void setCheckMissingSimTerrain(bool b);
643  virtual bool checkMissingSimTerrain() const;
644 
646  virtual const DtSubMenuConfiguration& initialCreateMenuConfiguration() const;
647  virtual DtSubMenuConfiguration& initialCreateMenuConfiguration();
648 
650  virtual const DtSubMenuConfiguration& initialTaskMenuConfiguration() const;
651  virtual DtSubMenuConfiguration& initialTaskMenuConfiguration();
652 
654  virtual const makVrv::DtToolbarConfiguration& initialToolbarConfiguration() const;
655  virtual makVrv::DtToolbarConfiguration& initialToolbarConfiguration();
656 
658  virtual const DtUnifiedControlToolbarConfiguration& unifiedControlToolbarConfiguration() const;
659  virtual DtUnifiedControlToolbarConfiguration& unifiedControlToolbarConfiguration();
660 
662  virtual const makVrv::DtToolbarConfiguration& scriptModifiedToolbarConfiguration() const;
663  virtual makVrv::DtToolbarConfiguration& scriptModifiedToolbarConfiguration();
664 
666  virtual const DtSubMenuConfiguration& initialSetMenuConfiguration() const;
667  virtual DtSubMenuConfiguration& initialSetMenuConfiguration();
668 
671  virtual void addAdditionalSmsFile(const std::string&);
672  virtual void removeAdditionalSmsFile(const std::string&);
673  virtual void setAdditionalSmsFiles(const std::vector<DtString>&);
674 
676  virtual std::vector<std::string> defaultSimulationModelSetFiles() const;
678 
681  virtual void setSaveScenarioFilenameToUseOnFirstSave(const DtFilename& f);
682  virtual const DtFilename& saveScenarioFilenameToUseOnFirstSave() const;
683 
684  bool quitting() const { return myQuitWhenSaved; };
685 
686  public:
687  virtual void slot_onScenarioModified();
688 
690  virtual void addRecentScenario(const std::string&);
691 
695  virtual bool askAndSaveScriptsForRewind();
696 
698  virtual const DtRwHazardAreaInformation& hazardAreaInformation() const;
699 
701  virtual makVrv::DtUnicode hazardAreaAgentTypeFor(const DtEntityType&, const DtString& agentKey) const;
702 
704  virtual void setShowLoadErrors(bool);
705  virtual bool showLoadErrors() const;
706 
711  virtual bool loadTerrain(const std::string& guiTerrainFilename, const std::string& simTerrainFilename = "");
712 
715  virtual bool loadSimTerrain(const std::string& simTerrainFilename, bool clearSimTerrain = false);
716 
718  virtual void resetTerrain();
719 
722  virtual time_t dateAndTimeOfDay() const;
723 
725  virtual double simulationTime() const;
726 
730  virtual void setShowQuitDialogOnClose(bool, bool saveChanges = true);
731  virtual bool showQuitDialogOnClose() const;
732 
733  virtual void resetScriptModifiedToolbarConfiguration();
734 
736  virtual void setKeepOpenTerrainFromCommandLine(bool);
737 
738  virtual void slot_defaultIconListChanged();
739  virtual void slot_forcesChanged();
740 
742  virtual void setShowDuplicateBackendError(bool);
743  bool showDuplicateBackendError() const;
744 
746  virtual void cleanupSessionBox();
747 
748  protected:
749  virtual void checkAndWarnForLoadBalance(const DtString& scheme, const DtString& userData, const QString& title);
750 
752  virtual void showDescription();
753 
754  virtual bool loadScenarioFromEvent(const DtScenarioLoadInformation& s);
755 
756  virtual bool validateScenarioForLoad(const DtScenarioExplorer& scen,
757  QString& failure, QString& failureDetails);
758 
761  virtual int quitApplication(const QString& title, const QString& message, bool& quitBackend, bool hasCancelButton = true);
762 
765  virtual time_t initializeEnvironmentDateTimeOfDay(time_t proposedTime);
766 
768  virtual void scenarioFilenameChanged();
769 
771  virtual void scenarioJustClosed();
772 
774  virtual void errorLoadingScenario();
775 
777  virtual void scenarioClosing();
778 
780  virtual void slot_allBackendsClosed();
781 
784  virtual void loadTranslationsForModelSet(DtSimulationModelSet*);
785 
787  virtual void slot_sessionStartupComplete();
788 
790  virtual void allScenarioObjectsDiscovered();
791 
793  virtual void slot_onScenarioLoaded(const DtScenario*, bool emitScenarioLoadedSignal = true, bool isNewScenario = false);
794 
795  virtual void slot_checkBackendClosed(const DtVrfBackendState&, int);
796  virtual void slot_checkSimulationState(const DtVrfBackendState&, int);
797 
799  virtual bool saveIfDirty(int* saved = 0, bool takeSnapshot = true, bool showCheckpointSaveTitle = false, bool quittingApplication = false,
800  int* dialogResult = 0);
801 
804  virtual DtVrfScenarioRemapFunction* remapFunctionForCommandLineScenarioLoad() const;
805 
806  virtual void watchForScenarioObjectsDiscovered();
807 
808  virtual void connectSignals(bool);
809 
811  virtual void requestHazardAreaInformation();
812 
814  virtual void requestOrbatInformation();
815 
817  virtual void reloadScenario(const std::string& newTerrain);
818 
821  virtual void saveScenario(std::string baseName, std::string newTerrainName);
822 
824  virtual void slot_onScenarioSaved(bool checkpointSave = false);
825 
830  virtual void reloadSimulationModelSets(const std::vector<DtFilename>&, bool reverse = false);
831 
833  virtual void slot_onScenarioReloaded(std::string scenarioName);
834 
836  void setup();
837 
839  virtual void showSessionStartupDialog();
840 
843  virtual void processServerMessage(DtSimMessage*);
844 
846  virtual void processStealthCommands(DtSimMessage*);
847 
849  virtual void processHazardAreaInformation(DtSimMessage*);
850 
852  virtual void restorePreservedScripts();
853 
855  virtual void scenarioWasRewound(DtSimMessage*);
856 
858  virtual void terrainCleared();
859 
860  virtual void clearFrontEndScenariodData();
861 
863  virtual void quitAllBackends();
864 
865  virtual void checkCloseStatus();
866 
867  virtual void setScenarioTerrainReplaced(bool b);
868 
870  {
871  return myScenarioTerrainReplaced;
872  }
873 
874  protected:
876  virtual void postTickSOGLoad(std::string sogFile);
877 
878  virtual void completeScenarioLoad();
879  virtual void completeSimulationObjectGroupLoad();
880 
881  virtual DtVrfSimBackendManager& backendManager() const;
882 
883  virtual void loadIndirectArtilleryManager(const DtScenarioExplorer& explorer);
884  virtual void loadForceFiles(const DtScenarioExplorer& explorer);
885  virtual void loadCreateMenu(const DtScenarioExplorer& explorer);
886  virtual bool loadInitialMenuConfiguration(makVrv::DtMenuConfiguration&, const DtFilename&);
887  virtual void loadOverlayFile(const DtScenario&, bool removeAll = true);
888  virtual void loadSelectionGroupFile(const DtScenario&);
889  virtual void loadObserverViewFile(const DtScenario&, bool andSetDefaultView = true);
890 
891  virtual void loadGuiScenarioSettings(const DtScenario&);
892  virtual void loadModelSetFiles(const DtScenarioExplorer& explorer);
893  virtual void loadVisuals(const DtScenarioExplorer& explorer, bool force = false);
894 
895  virtual DtModelSetEntry* modelSetEntry(const DtEntityMapperKey& key) const;
896  virtual DtVrfMenu* createMenuFromModelSetManager() const;
897  virtual bool isModelSet(const DtFilename& filename) const;
898 
899  virtual void slot_onSessionUpdated(int flags);
900  virtual void slot_onDuplicateBackendAddress(const DtVrfBackendState&);
901 
902  virtual void slot_backendDiscovered(const DtVrfBackendState&);
903  virtual void slot_settingReceived(const std::string&, const DtVrfBackendState*);
904 
907  virtual void slot_postDeCallback();
908 
910  virtual void remapTerrainFilenames(DtScenario*);
911 
913  virtual void createTerrainFilenameRemapper();
914 
915  virtual bool sessionPrompt(const QString& message);
916 
919  virtual bool openTerrainDatabaseFromUserSelection(const std::string& simTerrainFilename = "");
920 
925  virtual bool selectReplacementTerrainFromUserSelection(QString& selectedTerrain, const DtString& previousTerrain);
926 
931  virtual bool loadSessionTerrain(const std::string& guiTerrainFilename, const std::string& simTerrainFilename = "");
932 
933  virtual bool isSameTerrain(const std::string& terrain1, const std::string& terrain2) const;
934 
935  virtual void slot_terrainModified();
936 
938  virtual void slot_propChanged();
939 
940  virtual void slot_deDestructing();
941 
942  virtual void slot_terrainToBeCleared();
943  virtual void slot_terrainCleared();
944 
945  virtual bool checkWriteGdb(const std::string& gdb);
946 
947  virtual DtSessionStatusBox* createSessionStatusBox();
948 
949  virtual void setupScriptedTaskSettings();
950 
952  virtual QFileInfo findTerrainFile(const std::string& terrainFile) const;
953 
956  virtual bool blockSessionTerrainLoad() const;
957 
960  virtual QFileInfo findTerrainFile(const std::string& terrainFile, const std::vector<std::string>& searchPaths,
961  const std::string& extension) const;
962 
964  virtual void slot_scenarioAboutToBeSaved(DtScenario*);
965 
967  virtual void createSessionStatusBox(const QString& title, const QString& message, int statusType);
968 
970  virtual void slot_sessionSettingsChanged();
971 
973  virtual void slot_guiSettingsChanged();
974 
976  virtual bool eventFilter(QObject*, QEvent*) override;
977 
978  virtual void slot_savedSimulationObjectGroup(const std::string&);
979 
980  virtual void postSaveQuit();
981  virtual void postSaveLoad();
982  virtual void postSaveClose(bool resetScenario, DtFilename databaseToOpen, bool forceCloseAll);
983  virtual void postSaveImport(DtScenarioLoadInformation);
984  virtual void postSaveRewind(bool preserveScripts, double simTime);
985 
986  virtual void nullSaveFunction();
987 
989  virtual void backendDiscoveryTick();
990 
991  virtual void addAdditionalCategories();
992 
993  protected slots:
994  virtual void commFileMessagesReceived(const QStringList&);
995  virtual void statusDialogDestroyed();
996 
997  protected:
1003  std::vector<DtEntityMapperKey> myControlObjectTypes;
1014  std::string myLoadedTerrain;
1015  std::string myTerrainFile;
1016  std::string mySimTerrainFile;
1031 
1037 
1045 
1047 
1048  std::vector<DtString> myAdditionalSmsFiles;
1052 
1056 
1057  QString myWindowTitle;
1058 
1059  std::map<std::string, QTranslator*> myTranslators;
1060 
1062 
1071  boost::function<void ()> myPostSaveFunction;
1072 
1077 
1079 
1085 
1088  DtTimedSection myAsynchTimeoutSection;
1089 
1091 
1094 
1095  DtTimedSection myBackendDiscoveryTimer;
1104  bool myRestoreObserverViewsOnObjectsDiscovered = false;
1105 
1106  boost::signals2::connection myPostDeTickConnection;
1107  boost::signals2::connection myCloseScenarioTickConnection;
1108  };
1109 
1112  {
1113  Q_OBJECT
1114  public:
1115  enum Status
1116  {
1117  None = 0x00000000,
1118  Loading = 0x00000001,
1119  Saving = 0x00000002,
1120  Closing = 0x00000004,
1121  Importing = 0x00000008,
1122  CreatingSimulationObjectGroup = 0x00000010,
1123  Reinitializing = 0x00000020
1124  };
1125 
1126  DtSessionStatusBox(makVrv::DtDe& de, DtCommonScenarioManager* manager, QWidget* parent);
1127  virtual ~DtSessionStatusBox() override;
1128 
1129  virtual void setMessage(const QString& message);
1130 
1131  virtual void keyPressEvent(QKeyEvent* e) override;
1132 
1133  virtual void terrainGeometryLoaded();
1134 
1135  virtual void waitingForTerrainLoad();
1136 
1137  virtual void setStatus(Status s);
1138 
1139  Status status() const
1140  {
1141  return myStatus;
1142  }
1143 
1144  virtual void accept() override;
1145 
1146  virtual void reject() override;
1147 
1148  boost::signals2::signal<void ()> signal_closeScenario;
1149 
1150  virtual void resetAltKey();
1151 
1152  protected:
1161  };
1162 }
1163 
void setReadyToQuit(bool b)
Definition: commonScenarioManager.h:408
Definition: vrfBackendState.h:65
bool myLateJoinerInit
Definition: commonScenarioManager.h:1050
bool myAutoJoinSession
Definition: commonScenarioManager.h:1009
Status
Definition: commonScenarioManager.h:1115
void setAskSaveIfScenarioModified(bool b)
Definition: commonScenarioManager.h:423
DtTimedSection myBackendClosingResponseTimer
Definition: commonScenarioManager.h:1096
DtSubMenuConfiguration * myInitialCreateMenuConfiguration
Definition: commonScenarioManager.h:1038
DtJoinSessionTerrainAction
Definition: commonScenarioManager.h:135
bool myTerrainClearing
Definition: commonScenarioManager.h:1019
Definition: entityMapperKey.h:19
Contains DtUnifiedControlToolbarConfiguration that will contain the configuration for the unified con...
Definition: unifiedControlToolbarConfiguration.h:18
const std::vector< std::string > recentScenarios() const
Definition: commonScenarioManager.h:98
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
BOOST_CLASS_VERSION(makArchives::DtDiGuySettingsRecord, 3)
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
bool myWaitingForTerrainLoad
Definition: commonScenarioManager.h:1159
virtual void addRecords(DtVrfScriptedTaskSettingsRecord &recs, DtVrfScriptedTaskSettingsRecord &combinedRec)
To support writing element definitions in folders as multiple files not implemented.
Definition: commonScenarioManager.h:498
bool myForceCloseAll
Definition: commonScenarioManager.h:1101
bool validateForVrfObjects() const
Definition: commonScenarioManager.h:401
int maxSize() const
Definition: commonScenarioManager.h:103
SessionStatusDialogs
Definition: commonScenarioManager.h:147
bool simulationObjectGroupEditingMode() const
Definition: commonScenarioManager.h:206
The DtSimulationObjectCategoryInformation class is a class that will read the comma delimited categor...
Definition: simulationObjectCategoryInformation.h:24
boost::signals2::connection myCloseScenarioTickConnection
Definition: commonScenarioManager.h:1107
Dead reckoning settings used by the performance options dialog to set dead reckoning values for entit...
Definition: deadReckoningSettings.h:31
std::vector< std::string > myRecentScenarios
Definition: commonScenarioManager.h:123
Definition: scenario.h:52
Definition: vrfMenu.h:18
std::string myLoadedTerrain
Definition: commonScenarioManager.h:1014
bool myCorrelated
Definition: commonScenarioManager.h:1017
virtual void getSplitRecord(std::vector< DtVrfScriptedTaskSettingsRecord > &rec, std::vector< std::string > &fileNames)
To support writing element definitions in folders as multiple files not implemented.
Definition: commonScenarioManager.h:492
bool quitting() const
Definition: commonScenarioManager.h:684
DtSimulationObjectCategoryInformation & tags()
Definition: commonScenarioManager.h:353
DtVrfScriptedTaskSettingsRecord myScriptedTaskSettings
Definition: commonScenarioManager.h:1032
bool myInTheScenarioLoadProcess
Definition: commonScenarioManager.h:1027
const std::vector< DtEntityMapperKey > & controlObjects() const
Definition: commonScenarioManager.h:196
class DtScenarioExplorer:
Definition: scenarioExplorer.h:26
int myCloseRetryCount
Definition: commonScenarioManager.h:1100
bool allowEditingOnScenarioJoint() const
Definition: commonScenarioManager.h:475
bool myShowDuplicateBackendError
Definition: commonScenarioManager.h:1103
bool displatExistingGdbWarningMessages() const
Definition: commonScenarioManager.h:443
QLabel * myLabel
Definition: commonScenarioManager.h:1155
DtFileCommChannel * myFileCommChannel
Only used for file communication in the case of entity editor using to communicate in simulation obje...
Definition: commonScenarioManager.h:1082
makVrv::DtSignalConnectionManager myConnectionManager
Definition: commonScenarioManager.h:1061
QDialog * mySessionStatusMessageBox
Definition: commonScenarioManager.h:1002
makVrv::DtSignalConnectionManager myResetCommandLineTerrainSignals
Definition: commonScenarioManager.h:1055
DtTerrainFilenameRemapper * myTerrainFilenameRemapper
Definition: commonScenarioManager.h:1046
bool myIsStartup
Definition: commonScenarioManager.h:1024
bool myScenarioDirty
Definition: commonScenarioManager.h:1006
makVrv::DtDe & myDe
Definition: commonScenarioManager.h:998
A DtObserverSettingsRecord contains the state of an observer.
Definition: DtObserverStateRecord.h:20
std::map< std::string, QTranslator * > myTranslators
Definition: commonScenarioManager.h:1059
Subclass for additional functionality needed by VRF.
Definition: subMenuConfiguration.h:73
bool scenarioTerrainReplaced() const
Definition: commonScenarioManager.h:869
Definition: rwHazardAreaInformation.h:122
Definition: eventManagerEventInterface.h:16
std::vector< DtString > myAdditionalSmsFiles
Definition: commonScenarioManager.h:1048
Status status() const
Definition: commonScenarioManager.h:1139
bool myScenarioManagerInitialized
Definition: commonScenarioManager.h:1029
bool myReadyToQuit
Definition: commonScenarioManager.h:1010
std::vector< DtStealthCommand > DtStealthCommands
Definition: stealthCommand.h:100
DtScenario * myScenario
Definition: commonScenarioManager.h:999
DtVrfScenarioRemapFunction * myDefaultRemapFunction
Definition: commonScenarioManager.h:1090
Definition: vrfScenarioRemapFunctions.h:28
std::string mySimTerrainFile
Definition: commonScenarioManager.h:1016
SessionStatusDialogs showSessionStatusDialogs() const
Definition: commonScenarioManager.h:609
Definition: vrfGuiApplicationSettings.h:37
bool importingScenario() const
Returns true if the scenario load is an import.
Definition: commonScenarioManager.h:231
Definition: vrfScriptedTaskSettingsRecord.h:25
DtScenarioLoadInformation myLoadingScenario
Definition: commonScenarioManager.h:1020
The class that will contain information about the currently loaded scenario.
Definition: commonScenarioManager.h:128
void setDisplayExistingGdbWarningMessages(bool b)
Definition: commonScenarioManager.h:438
bool askSaveIfScenarioModified() const
Definition: commonScenarioManager.h:428
Definition: modelSetEntry.h:34
bool myScenarioTerrainReplaced
Definition: commonScenarioManager.h:1007
int myQuitWhenSaved
Definition: commonScenarioManager.h:1051
DtString myScenario
Definition: commonScenarioManager.h:177
int myCreateMenuBuilderFlags
Definition: commonScenarioManager.h:1041
bool myWaitingOnScenarioClose
Used when a scenario load call is waiting for an existing scenario to close.
Definition: commonScenarioManager.h:1075
makVrv::DtToolbarConfiguration myInitialToolbarConfiguration
Definition: commonScenarioManager.h:1042
DtSessionStatusBox * mySessionStatusBox
Definition: commonScenarioManager.h:1035
void setValidateForVrfObjects(bool b)
Default is true. Set to false if menus should not use as one determining factor to validate themselve...
Definition: commonScenarioManager.h:396
bool myAskSaveIfScenarioModified
Definition: commonScenarioManager.h:1008
makVrv::DtRecordSettingsBackupInterface * scriptedTaskSettingsBackup()
Definition: commonScenarioManager.h:575
Contains makVrv::DtVirtualBaseClass class.
std::string myTerrainFile
Definition: commonScenarioManager.h:1015
makVrv::DtSignalConnectionManager mySOGConnections
Definition: commonScenarioManager.h:1054
bool myValidateForVrfObjects
Definition: commonScenarioManager.h:1005
bool myClosingScenario
Definition: commonScenarioManager.h:1021
DtSimulationObjectCategoryInformation mySimulationObjectsCategoryInformation
Definition: commonScenarioManager.h:1070
Contains makArchives::DtObserverStateRecordsList class.
unsigned int myMaxSize
Definition: commonScenarioManager.h:124
const DtSimulationObjectGroupSaveInformation & simulationObjectGroupSaveInformation() const
If in simulation object group creation mode, this is the information used to save the group...
Definition: commonScenarioManager.h:553
bool mySessionDatabaseOpenAndNotJoined
Definition: commonScenarioManager.h:1012
DtObserverStateRecordsList class contains a collection of DtObserverStateRecord.
Definition: DtObserverStateRecordsList.h:21
DtScenarioLoadInformation myInformation
Definition: commonScenarioManager.h:168
void setAllowEditingOnScenarioJoin(bool b)
Definition: commonScenarioManager.h:470
DtStealthCommands myStealthCommands
Definition: commonScenarioManager.h:1064
File: simMsg.h.
Definition: simMessage.h:35
bool myAllowEditingOnScenarioJoin
Definition: commonScenarioManager.h:1026
bool myHasShowSetup
Definition: commonScenarioManager.h:1049
const DtScenario * scenario() const
Definition: commonScenarioManager.h:418
Stores recent scenarios loaded. Limited to 5 scenarios.
Definition: commonScenarioManager.h:88
std::vector< DtEntityMapperKey > myControlObjectTypes
Definition: commonScenarioManager.h:1003
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
bool myUseDefault
Definition: commonScenarioManager.h:178
bool myInitialized
Definition: commonScenarioManager.h:1023
bool myJoinedToSession
Definition: commonScenarioManager.h:1011
const DtScenarioExplorer * scenarioExplorer() const
Definition: commonScenarioManager.h:191
boost::signals2::signal< void()> signal_closeScenario
Definition: commonScenarioManager.h:1148
DtUnifiedControlToolbarConfiguration * myUnifiedControlToolbarConfiguration
Definition: commonScenarioManager.h:1044
bool initialized() const
Definition: commonScenarioManager.h:460
DtScenarioLoadInformation * myPendingScenarioInformation
Definition: commonScenarioManager.h:1076
DtSubMenuConfiguration * myInitialSetMenuConfiguration
Definition: commonScenarioManager.h:1040
DtDeadReckoningSettings myDeadReckoningSettings
Definition: commonScenarioManager.h:1033
#define DT_DLL_VRFGUICOMMONQT
Definition: vrfGuiCommonQt.h:20
boost::signals2::connection myPostDeTickConnection
Definition: commonScenarioManager.h:1106
const DtSimulationObjectCategoryInformation & tags() const
The category (tag) information loaded for the current model set.
Definition: commonScenarioManager.h:348
Status myStatus
Definition: commonScenarioManager.h:1154
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
bool myImportingScenario
Definition: commonScenarioManager.h:1092
DtSessionStatusBox is what shows loading, closing, saving scenario.
Definition: commonScenarioManager.h:1111
DtTimedSection myBackendDiscoveryTimer
Definition: commonScenarioManager.h:1095
bool myKeepOpenTerrainFromCommandLine
Definition: commonScenarioManager.h:1067
Class DtTerrainFilenameRemapper will load in the comma delimited terrain file name map...
Definition: terrainFilenameRemapper.h:27
bool correlated() const
Definition: commonScenarioManager.h:450
bool myCanSimulate
Definition: commonScenarioManager.h:1022
const DtDeadReckoningSettings & deadReckoningSettings() const
Definition: commonScenarioManager.h:465
DtVrfMenu * myMenu
Definition: commonScenarioManager.h:1000
A simulation model set contains all the information that can be used to support a scenario either for...
Definition: simulationModelSet.h:31
AllowEditingOf
Definition: vrfObjectManipulationManager.h:56
Base class to provide boost signal/slot management.
bool myDisplayExistingGdbWarningMessage
Definition: commonScenarioManager.h:1018
double myBackendDiscoveryTime
Definition: commonScenarioManager.h:1098
double myAsynchTimeoutWait
Only used in asynch mode when messages can get dropped in loading a scenario.
Definition: commonScenarioManager.h:1087
DtVrfObjectManipulationManager::AllowEditingOf myAllowEditingOfOnSessionJoin
Definition: commonScenarioManager.h:1069
DtRwHazardAreaInformation myHazardAreaInformation
Definition: commonScenarioManager.h:1053
bool myLoadedUserTerrain
Definition: commonScenarioManager.h:1065
Contains makVrv::DtToolbarConfiguration class.
DtFilename myClosingDatabaseToOpen
Definition: commonScenarioManager.h:1099
DtSubMenuConfiguration * myInitialTaskMenuConfiguration
Definition: commonScenarioManager.h:1039
DtTimedSection myAsynchTimeoutSection
Definition: commonScenarioManager.h:1088
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
bool myAutoSave
Definition: commonScenarioManager.h:1025
Maintains and signals state of the simulation engines that are currently connected to the GUI...
Definition: vrfSimBackendManager.h:79
makVrv::DtToolbarConfiguration myScriptModifiedToolbarConfiguration
Definition: commonScenarioManager.h:1043
makVrv::DtDe & myDe
Definition: commonScenarioManager.h:1158
const DtStealthCommands & stealthCommands() const
Definition: commonScenarioManager.h:547
bool scenarioDirty() const
Definition: commonScenarioManager.h:413
bool myLoadingSessionTerrain
Definition: commonScenarioManager.h:1066
double myTimeWaitingForBackendResponse
Definition: commonScenarioManager.h:1097
bool mySimTerrainLoaded
Definition: commonScenarioManager.h:1102
Contains makVrv::DtUniqueID type.
A configuration of the toolbar layout.
Definition: DtToolbarConfiguration.h:25
A configuration of a menu layout. A menu configuration manages an ordered collection of menu paths th...
Definition: DtMenuConfiguration.h:43
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
SessionStatusDialogs myShowSessionStatusDialogs
Definition: commonScenarioManager.h:1036
DtVrfSimBackendManager * myBackendManager
Definition: commonScenarioManager.h:1063
DtSimulationObjectGroupSaveInformation mySimulationObjectGroupSaveInformation
Definition: commonScenarioManager.h:1084
Definition: scenario.h:656
int mySaveFlags
Definition: commonScenarioManager.h:1068
The makVrv::DtRecordSettingsBackupInterface provides an interface to record-based backups...
Definition: DtRecordSettingsBackup.h:23
Instances of DtIfServerMessage are sent out when the server wants to send a status message with categ...
Definition: ifServerMessage.h:20
bool joinedToSession() const
Definition: commonScenarioManager.h:433
bool loadingSessionTerrain() const
Definition: commonScenarioManager.h:201
Definition: scenario.h:635
bool mySimulationObjectGroupEditingMode
Definition: commonScenarioManager.h:1083
QPushButton * myCloseButton
Definition: commonScenarioManager.h:1156
DtFilename mySaveScenarioFilenameToUseOnFirstSave
Definition: commonScenarioManager.h:1078
DtVrfMenu * createMenu()
Definition: commonScenarioManager.h:455
DtScenarioExplorer * myExplorer
Definition: commonScenarioManager.h:1001
The DtFileCommChannel class is a simple class that will use two files based on the given output file ...
Definition: fileCommChannel.h:27
bool myRewinding
Definition: commonScenarioManager.h:1004
bool myShowLoadErrors
Definition: commonScenarioManager.h:1028
boost::function< void()> myPostSaveFunction
Definition: commonScenarioManager.h:1071
QString myWindowTitle
Definition: commonScenarioManager.h:1057
bool myTerrainLoadIsClose
Definition: commonScenarioManager.h:1160
makVrv::DtRecordSettingsBackupInterface * myScriptedTaskSettingsBackup
Definition: commonScenarioManager.h:1034
DtCommonScenarioManager * myParent
Definition: commonScenarioManager.h:1153
makVrv::DtSignalConnectionManager mySignals
Definition: commonScenarioManager.h:1157
bool myFirstRun
Definition: commonScenarioManager.h:1093
DtVrfScenarioRemapFunction * myRemapFunctionForCommandLineScenarioLoad
Definition: commonScenarioManager.h:1030
bool myCorrelationWarned
Definition: commonScenarioManager.h:1013

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)