VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfScenarioManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2018 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
14 
17 #include <vrfGuiCore/menu.h>
22 #include <vrvCore/DtUniqueID.h>
26 
29 #include <vrvUtil/signalslib.h>
30 #include <vrvCore/DtDe.h>
32 
33 #include <vrfutil/scenario.h>
36 #include <vrfutil/stealthCommand.h>
37 #include <vlutil/vlPerformanceStats.h>
38 
39 #include <boost/signal.hpp>
40 
41 #include <QtCore/QVector>
42 #include <QtCore/QFileInfo>
43 #include <QtCore/QEvent>
44 #include <QtWidgets/QDialog>
45 
47 #include <QtCore/qnamespace.h>
48 
49 class QLabel;
50 class DtScenario;
51 class DtScenarioExplorer;
52 class QFileDialog;
53 class QWidget;
54 class QDialog;
55 class DtSimMessage;
56 class DtIfServerMessage;
57 class DtModelSetEntry;
58 class QTranslator;
61 
62 namespace makArchives
63 {
64  class DtTerrainOperationRecord;
65  class DtTerrainRecord;
66 }
67 
68 namespace makVrv
69 {
70  class DtRecordSettingsBackupInterface;
71 }
72 
73 #define DtFavoritesTopLevelIconRank 99999
74 #define DtRecentTopLevelIconRank 99998
75 
76 namespace makVrf
77 {
78  class DtFileCommChannel;
79  class DtVrfScenarioRemapFunction;
80  class DtVrfSimBackendManager;
81  class DtVrfBackendState;
82  class DtJoinSessionDialog;
83  class DtHostilityMatrixDialog;
84  class DtLoadScenarioDialog;
85  class DtNeverAskAgainMessageBox;
86  class DtScenarioSettingsDialog;
87  class DtSessionStatusBox;
88  class DtSessionStartupDialog;
89  class DtScenarioDescriptionDialog;
90  class DtSubMenuConfiguration;
91  class DtVrfModelSetManager;
92 
95  {
96  public:
99 
100  virtual ~DtVrfGuiRecentScenarios();
101 
102  virtual DtVrfGuiApplicationSetting* clone() const;
103 
104  const std::vector<std::string> recentScenarios() const
105  {
106  return myRecentScenarios;
107  }
108 
109  int maxSize() const
110  {
111  return myMaxSize;
112  }
113 
115  void setMaxSize(int);
116 
117  void insertScenario(const std::string&, int pos = -1);
118  int removeScenario(const std::string&);
119 
120  virtual std::string classType() const;
121 
122  protected:
123  friend class boost::serialization::access;
124 
125  virtual void write(boost::archive::xml_oarchive& out, const unsigned int);
126  virtual void read(boost::archive::xml_iarchive& in, const unsigned int);
127 
128  protected:
129  std::vector<std::string> myRecentScenarios;
130  unsigned int myMaxSize;
131  };
132 
135  {
136  Q_OBJECT
137 
138  public:
139  friend class DtSessionStatusBox;
140 
142  {
149  DtLoadSimulationObjectGroupSpecifiedInApplication
150  };
151 
153  {
154  Loading = 0x00000001,
155  Saving = 0x00000002,
156  Closing = 0x00000004,
157  Importing = 0x00000008,
158  CreatingSimulationObjectGroup = 0x00000010,
159  Reinitializing = 0x00000020,
160  AllStatusDialogs = Loading | Saving | Closing | Importing | CreatingSimulationObjectGroup | Reinitializing
161  };
162 
163  public:
164  static const QEvent::Type LoadScenarioFromDialogEventType = (QEvent::Type)(QEvent::User + 302);
165  static const QEvent::Type LoadScenarioFromScenarioInformationEventType = (QEvent::Type)(QEvent::User + 303);
166 
168  {
169  public:
174  };
175 
177  {
178  public:
179  LoadScenarioFromDialogEvent(const DtString& s, bool useDefault);
180  virtual ~LoadScenarioFromDialogEvent();
181 
184  };
185 
186  public:
188  virtual ~DtVrfScenarioManager();
189 
191  static DtVrfScenarioManager& instance(makVrv::DtDe& de);
192 
194  static void init(makVrv::DtDe&);
195 
196  const DtScenarioExplorer* scenarioExplorer() const
197  {
198  return myExplorer;
199  }
200 
201  const std::vector<DtEntityMapperKey>& controlObjects() const
202  {
203  return myControlObjectTypes;
204  }
205 
206  bool loadingSessionTerrain() const
207  {
208  return myLoadingSessionTerrain;
209  }
210 
211  bool simulationObjectGroupEditingMode() const
212  {
213  return mySimulationObjectGroupEditingMode;
214  }
215 
216  virtual void addControlObject(const DtEntityMapperKey& key);
217  virtual void removeControlObject(const DtEntityMapperKey& key);
218  virtual void clearControlObjects();
219 
220  virtual bool isControlObject(const DtEntityMapperKey& key) const;
221 
227  virtual bool wantsToSaveTerrain(bool& ignoredModifications);
228 
230  virtual bool saveGuiTerrain(bool askForName = false);
231 
233  virtual bool saveSimTerrain(bool askForName = false);
234 
236  bool importingScenario() const { return myImportingScenario; };
237 
240  virtual bool generateNavigationArea(makVrv::DtUniqueID);
241 
244  virtual bool regenerateNavigationAreas(bool);
245 
247  virtual DtFilename loadingScenarioFile() const;
248 
251  virtual bool mapUUIDToScenarioDataFromOobInScenario(const DtFilename& scenarioFile,
252  DtScenario::ScenarioDataMap& scenarioDataMap) const;
253 
256  virtual void closeScenario(bool resetScenario = true, const DtFilename& databaseToOpen = "", bool forceCloseAll = false);
257  virtual bool loadScenario(std::string, DtVrfScenarioRemapFunction* remapping = 0);
258  virtual bool loadScenario(const DtScenarioLoadInformation& s);
259  virtual bool importScenario(const DtScenarioLoadInformation& s);
260  virtual void runScenario();
261  virtual void pauseScenario();
262 
265  virtual bool rewindScenario(double toSimTime = -1);
266 
271  virtual void setCreateMenuBuilderFlags(DtCreateMenuBuilder::Flags);
272  virtual DtCreateMenuBuilder::Flags createMenuBuilderFlags() const;
273 
279  virtual void tickedLoadScenario(const DtString& scenarioName = "", bool useDefaultRemappingFunction = false);
280 
283  virtual void tickedNewScenario();
284 
286  virtual void loadScenarioFromDialog(QWidget* p);
287  virtual DtLoadScenarioDialog* createLoadScenarioDialog(QWidget*);
288  virtual void importScenarioFromDialog(QWidget* p);
289 
291  virtual void loadScenarioFromSessionDialog(QWidget* p);
292 
297  virtual void setHelpFile(const std::string&, bool save = false);
298  virtual std::string helpFile() const;
299 
302  virtual void setDefaultScenarioFile(const std::string& f, bool save = false);
303  virtual std::string defaultScenarioFile() const;
304 
306  virtual void setSimulationObjectGroupTerrain(const std::string& f, bool save = false);
307  virtual std::string simulationObjectGroupTerrain() const;
308 
312  virtual void setDefaultSimulationModelSetFile(const std::string& f, bool save = false);
313  virtual std::string defaultSimulationModelSetFile() const;
314 
317  virtual void rebuildCreateMenu(bool recreate = true);
318 
320  virtual void reloadVisuals();
321 
323  virtual DtString scenarioSaveExtension(bool includesDot = true) const;
324 
328  virtual void recreateCreateMenu();
329 
331  virtual void cleanupBackupFile(double simTime) const;
332 
334  virtual std::string language() const;
335 
337  virtual void loadTaskMenu(const DtScenarioExplorer& explorer);
338 
340  virtual void loadSetMenu(const DtScenarioExplorer& explorer);
341 
344  virtual void removeSimulationObjectGroupTasksSets(const DtScenarioExplorer& explorer);
345 
348  virtual DtFilename saveScenarioName(bool askIfDoesNotExist = true, bool* asked = 0, bool createDefaultIfEmpty = false,
349  bool useScenarioNameAsSeed = true) const;
350 
353  {
354  return mySimulationObjectsCategoryInformation;
355  }
356 
358  {
359  return mySimulationObjectsCategoryInformation;
360  }
361 
363  virtual void setupWindowTitleBasedOnScenario();
364 
367  virtual makArchives::DtObserverStateRecordsList scenarioObserverViews() const;
368  virtual void setScenarioObserverViews(const makArchives::DtObserverStateRecordsList&) const;
370 
372  virtual DtScenarioSettingsDialog* createNewScenarioDialog(QWidget* p);
373  virtual void newScenarioFromDialog(QWidget* p);
374 
379  virtual void newScenario(const std::string&, const std::string& sms = "");
380 
382  virtual void loadBatchScenario(QWidget*);
383 
393  virtual bool joinSession(DtJoinSessionTerrainAction terrainAction = DtTerrainActionUseSessionTerrain);
394 
395  virtual void resignSession(bool closeTerrain = true);
396 
397  virtual bool saveScenarioAs();
398 
401  virtual int saveScenario();
402 
403  virtual bool canRewind() const;
404 
407  void setValidateForVrfObjects(bool b)
408  {
409  myValidateForVrfObjects = b;
410  }
411 
412  bool validateForVrfObjects() const
413  {
414  return myValidateForVrfObjects;
415  }
416 
417  virtual void setScenarioDirty(bool b);
418 
419  void setReadyToQuit(bool b)
420  {
421  myReadyToQuit = b;
422  }
423 
424  bool scenarioDirty() const
425  {
426  return myScenarioDirty;
427  }
428 
429  const DtScenario* scenario() const
430  {
431  return myScenario;
432  }
433 
434  void setAskSaveIfScenarioModified(bool b)
435  {
436  myAskSaveIfScenarioModified = b;
437  }
438 
439  bool askSaveIfScenarioModified() const
440  {
441  return myAskSaveIfScenarioModified;
442  }
443 
444  bool joinedToSession() const
445  {
446  return myJoinedToSession;
447  }
448 
449  void setDisplayExistingGdbWarningMessages(bool b)
450  {
451  myDisplayExistingGdbWarningMessage = b;
452  }
453 
454  bool displatExistingGdbWarningMessages() const
455  {
456  return myDisplayExistingGdbWarningMessage;
457  }
458 
459  virtual void setCorrelated(bool);
460 
461  bool correlated() const
462  {
463  return myCorrelated;
464  }
465 
466  DtMenu* createMenu()
467  {
468  return myMenu;
469  }
470 
471  bool initialized() const
472  {
473  return myInitialized;
474  }
475 
476  const DtDeadReckoningSettings& deadReckoningSettings() const
477  {
478  return myDeadReckoningSettings;
479  }
480 
481  void setAllowEditingOnScenarioJoin(bool b)
482  {
483  myAllowEditingOnScenarioJoin = b;
484  }
485 
486  bool allowEditingOnScenarioJoint() const
487  {
488  return myAllowEditingOnScenarioJoin;
489  }
490 
491  virtual std::string currentlyLoadedTerrain() const;
492 
493  virtual void processJoinSession(bool startupMessage = false);
494 
495  virtual void setFromRecord(const DtVrfScriptedTaskSettingsRecord& rec);
496  virtual void loadDefaultScriptedTaskSettings(bool loadOnlyFactorySettings = false);
497  virtual void saveScriptedTaskSettingsAsDefaults();
498  virtual void getRecord(DtVrfScriptedTaskSettingsRecord& rec) const;
499 
502  virtual void getSplitRecord(std::vector<DtVrfScriptedTaskSettingsRecord>& rec,
503  std::vector<std::string>& fileNames) {};
504 
507  virtual void addRecords(DtVrfScriptedTaskSettingsRecord& recs,
508  DtVrfScriptedTaskSettingsRecord& combinedRec) {};
509 
512  virtual bool autoJoinSession() const;
513  virtual bool automaticallyOpenSessionDatabaseWithoutJoiningSession() const;
514  virtual bool askToJoin() const;
515  virtual bool alwaysJoinWithSessionDatabase() const;
516  virtual bool zoomToScenarioExtentsOnLoad() const;
517  virtual bool alwaysJoinWithOpenDatabase() const;
518  virtual bool displaySessionDialogs() const;
519  virtual bool displayCorrelationWarningMessages() const;
520  virtual void displayCorrelationWarningMessage();
521 
524  virtual bool isDefaultObserverView(const std::string&);
525  virtual std::string defaultObserverView(bool& is2D) const;
526  virtual void setDefaultObserverView(const std::string&);
527  virtual void setTerrainViewVisible(const std::string&, bool vis);
528 
530  virtual void setHiddenTerrainViews(const std::string&);
531 
532  virtual bool terrainViewHidden(const std::string&) const;
533  virtual const std::set<std::string>& hiddenTerrainViews() const;
534  virtual std::set<std::string>& hiddenTerrainViews();
535 
536  virtual bool defaultObserverViewStateRecord(makArchives::DtObserverStateRecord&) const;
537 
540  virtual void showObserverView(const std::string& view, int ticksBeforeShow = 0, bool inPreTick = true,
541  bool zoomToExtents = false);
542 
543  virtual void resetObserverForCommandLineTerrain(int count, bool inPreTick);
544 
546 
548  virtual void requestSpotReports();
549 
552  virtual void requestStealthCommands();
553  const DtStealthCommands& stealthCommands() const
554  {
555  return myStealthCommands;
556  }
557 
559  const DtSimulationObjectGroupSaveInformation& simulationObjectGroupSaveInformation() const
560  {
561  return mySimulationObjectGroupSaveInformation;
562  }
563 
566  virtual bool isScenarioFile(const DtFilename&, bool exact = false) const;
567 
570  virtual void setAsynchLoadBufferTime(double);
571 
573  virtual void setSaveScenarioToZipFile(bool);
574 
576  virtual void zoomToExtentsFromScenario(const DtScenario&) const;
577 
579  virtual void setFavorite(const DtEntityMapperKey&, bool f);
580 
581  makVrv::DtRecordSettingsBackupInterface* scriptedTaskSettingsBackup()
582  {
583  return myScriptedTaskSettingsBackup;
584  }
585 
587  void exportSessionSettings(const std::string& fileName);
588 
590  void importSessionSettings(const std::string& fileName);
591 
593  void exportScriptedTaskSettings(const std::string& fileName);
594 
596  void importScriptedTaskSettings(const std::string& fileName);
597 
599  virtual void setDoNotShowSessionStartupDialog(bool);
600  bool showSessionStartupDialog() const;
601 
604  virtual void setAggregateOnCreate(bool);
605  bool aggregateOnCreate() const;
606 
608  virtual void setUserDefinedSmoothing(bool);
609  bool userDefinedSmoothing() const;
610 
612  virtual void setWindowTitle(const QString&);
613 
615  virtual void setShowSessionStatusDialogs(SessionStatusDialogs);
616  SessionStatusDialogs showSessionStatusDialogs() const
617  {
618  return myShowSessionStatusDialogs;
619  }
620 
622  virtual void setDenySystemScriptEditing(bool);
623  virtual bool denySystemScriptEditing() const;
624 
626  virtual void setIndent(int);
627  virtual int indent() const;
628 
630  virtual void setWarnOnSystemScriptChange(bool);
631  virtual bool warnOnSystemScriptChange() const;
632 
634  virtual void setMonitorScriptedTaskFrameRates(bool);
635  virtual bool monitorScriptedTaskFrameRates() const;
636 
638  virtual QString filenameToSaveUnder() const;
639 
641  virtual void setAutoSave(bool);
642  virtual bool autoSave() const;
643 
645  virtual void setShowScenarioDescriptionMessageBox(bool b);
646  virtual bool showScenarioDescriptionMessageBox() const;
647 
649  virtual const DtSubMenuConfiguration& initialCreateMenuConfiguration() const;
650  virtual DtSubMenuConfiguration& initialCreateMenuConfiguration();
651 
653  virtual const DtSubMenuConfiguration& initialTaskMenuConfiguration() const;
654  virtual DtSubMenuConfiguration& initialTaskMenuConfiguration();
655 
657  virtual const makVrv::DtToolbarConfiguration& initialToolbarConfiguration() const;
658  virtual makVrv::DtToolbarConfiguration& initialToolbarConfiguration();
659 
661  virtual const makVrv::DtToolbarConfiguration& scriptModifiedToolbarConfiguration() const;
662  virtual makVrv::DtToolbarConfiguration& scriptModifiedToolbarConfiguration();
663 
665  virtual const DtSubMenuConfiguration& initialSetMenuConfiguration() const;
666  virtual DtSubMenuConfiguration& initialSetMenuConfiguration();
667 
670  virtual void addAdditionalSmsFile(const std::string&);
671  virtual void removeAdditionalSmsFile(const std::string&);
672  virtual void setAdditionalSmsFiles(const std::vector<DtString>&);
673 
675  virtual std::vector<std::string> defaultSimulationModelSetFiles() const;
677 
680  virtual void setSaveScenarioFilenameToUseOnFirstSave(const DtFilename& f);
681  virtual const DtFilename& saveScenarioFilenameToUseOnFirstSave() const;
682 
683  bool quitting() const { return myQuitWhenSaved; };
684 
685  public:
686  virtual void slot_onScenarioModified();
687 
689  virtual void editHostilityMatrix(QWidget* parent);
690 
692  virtual DtHostilityMatrixDialog* createHostilityMatrixDialog(
693  QWidget* p, const Qt::WindowFlags& flags) const;
694 
696  virtual void addRecentScenario(const std::string&);
697 
701  virtual bool askAndSaveScriptsForRewind();
702 
704  virtual const DtRwHazardAreaInformation& hazardAreaInformation() const;
705 
707  virtual makVrv::DtUnicode hazardAreaAgentTypeFor(const DtEntityType&, const DtString& agentKey) const;
708 
710  virtual void setShowLoadErrors(bool);
711  virtual bool showLoadErrors() const;
712 
717  virtual bool loadTerrain(const std::string& guiTerrainFilename, const std::string& simTerrainFilename = "");
718 
721  virtual bool loadSimTerrain(const std::string& simTerrainFilename, bool clearSimTerrain = false);
722 
724  virtual void resetTerrain();
725 
728  virtual time_t dateAndTimeOfDay() const;
729 
731  virtual double simulationTime() const;
732 
736  virtual void setShowQuitDialogOnClose(bool, bool saveChanges = true);
737  virtual bool showQuitDialogOnClose() const;
738 
739  virtual void resetScriptModifiedToolbarConfiguration();
740 
742  virtual void setKeepOpenTerrainFromCommandLine(bool);
743 
744  virtual void slot_defaultIconListChanged();
745 
746  virtual void slot_forcesChanged();
747 
748  public:
749 
750  boost::signal<void ()> signal_forcesChanged;
752  boost::signal<void ()> signal_defaultIconListChanged;
753  boost::signal<void ()> signal_observerViewSetFromScenario;
754  boost::signal<void (const std::set<std::string>&)> signal_terrainViewsHidden;
755  boost::signal<void (const DtScenario&)> signal_scenarioInitialized;
756  boost::signal<void (DtSessionStartupDialog*)> signal_sessionDialogBoxAboutToShow;
757  boost::signal<void (bool)> signal_requestingSaveOnScenarioModified;
758  boost::signal<void (DtSessionStatusBox*)> signal_sessionStatusDialogCreated;
759  boost::signal<void ()> signal_allScenarioObjectsDiscovered;
760  boost::signal<void ()> signal_scenarioRewound;
761  boost::signal<void ()> signal_scenarioReinitialized;
762  boost::signal<void ()> signal_setMenuConfigurationLoaded;
763  boost::signal<void ()> signal_taskMenuConfigurationLoaded;
764  boost::signal<void ()> signal_createMenuConfigurationLoaded;
765  boost::signal<void (const std::string&)> signal_scenarioLoadError;
766  boost::signal<void (const std::string&)> signal_scenarioSaveError;
767  boost::signal<void (DtSessionStartupDialog*)> signal_sessionStartupBoxCreated;
768  boost::signal<void (DtHostilityMatrixDialog*)> signal_hostilityMatrixDialogCreated;
769  boost::signal<void (const DtDeadReckoningSettings&)> signal_deadReckoningSettingsChanged;
770  boost::signal<void (const DtScenarioExplorer&)> signal_scenarioLoaded;
771  boost::signal<void (bool)> signal_sessionStatusChanged;
772  boost::signal<void ()> signal_allBackendsClosed;
773  boost::signal<void ()> signal_rewinding;
774  boost::signal<void ()> signal_rewindMessageSent;
775  boost::signal<void ()> signal_scenarioManagerInitialized;
776 
778  boost::signal<void (std::string, std::string)> signal_defaultObserverViewChanged;
779 
781  boost::signal<void (const DtScenarioLoadInformation&)> signal_preLoadScenario;
782 
784  boost::signal<void (const DtScenarioLoadInformation&)> signal_scenarioLoadRequest;
785 
788  boost::signal<void (const DtScenarioLoadInformation&)> signal_postLoadScenario;
789 
793  boost::signal<void (const std::string&)> signal_preLoadBaseTerrain;
794 
799  boost::signal<void (const std::string&)> signal_preLoadSimTerrain;
800 
803  boost::signal<void (const std::string&)> signal_preLoadTerrain;
804 
806  boost::signal<void (const std::string&)> signal_postLoadTerrain;
807 
809  boost::signal<void (const std::string&)> signal_postLoadSimTerrain;
810 
812  boost::signal<void (const DtScenarioExplorer&)> signal_preLoadForceFiles;
813 
815  boost::signal<void (const DtScenarioExplorer&)> signal_postLoadForceFiles;
816 
818  boost::signal<void (const DtScenarioExplorer&)> signal_preLoadArtilleryManager;
819 
821  boost::signal<void (const DtScenarioExplorer&)> signal_postLoadArtilleryManager;
822 
824  boost::signal<void (const DtScenarioExplorer&)> signal_preLoadModelSetFiles;
825 
827  boost::signal<void (const DtScenarioExplorer&)> signal_postLoadModelSetFiles;
828 
830  boost::signal<void (const DtScenarioExplorer&)> signal_preLoadVisuals;
831 
833  boost::signal<void (const DtScenarioExplorer&)> signal_postLoadVisuals;
834 
836  boost::signal<void (const DtScenarioExplorer&)> signal_preLoadCreateMenu;
837 
839  boost::signal<void (const DtScenarioExplorer&, DtMenu*)> signal_postLoadCreateMenu;
840 
842  boost::signal<void (const DtScenarioExplorer&)> signal_preLoadTaskMenu;
843 
845  boost::signal<void (const DtFilename&)> signal_modelSetLoaded;
846 
848  boost::signal<void (const DtScenarioExplorer&)> signal_postLoadTaskMenu;
849 
851  boost::signal<void (const DtScenarioExplorer&)> signal_preLoadSimulationObjectGroupRemovalFile;
852 
854  boost::signal<void (const DtScenarioExplorer&)> signal_postLoadSimulationObjectGroupRemovalFile;
855 
857  boost::signal<void (const DtScenarioExplorer&)> signal_preLoadSetMenu;
858 
860  boost::signal<void (const DtScenarioExplorer&)> signal_postLoadSetMenu;
861 
863  boost::signal<void (const DtScenario&)> signal_preLoadOverlayFile;
864 
866  boost::signal<void (const DtScenario&)> signal_postLoadOverlayFile;
867 
869  boost::signal<void (const DtScenario&)> signal_preLoadSelectionGroupFile;
870 
872  boost::signal<void (const DtScenario&)> signal_postLoadSelectionGroupFile;
873 
875  boost::signal<void (const DtScenario&)> signal_preLoadObserverViewsFile;
876 
878  boost::signal<void (const DtScenario&)> signal_postLoadObserverViewsFile;
879 
881  boost::signal<void (const DtScenarioExplorer&)> signal_createMenuLoaded;
882 
884  boost::signal<void ()> signal_recreateCreateMenu;
885 
887  boost::signal<void ()> signal_recreateTaskMenu;
888 
890  boost::signal<void ()> signal_recreateSetMenu;
891 
893  boost::signal<void (const DtVrfScriptedTaskSettingsRecord&)> signal_scriptedTaskSettingsChanged;
894 
896  boost::signal<void (DtVrfGuiRecentScenarios*)> signal_recentScenariosChanged;
897 
899  boost::signal<void (const DtScenario&)> signal_preLoadGuiScenarioSettings;
900 
902  boost::signal<void (const DtScenario&)> signal_postLoadGuiScenarioSettings;
903 
905  boost::signal<void ()> signal_scenarioClosed;
906 
908  boost::signal<void ()> signal_scenarioClosing;
909 
911  boost::signal<void ()> signal_scenarioJustLoaded;
912 
914  boost::signal<void (QString&)> signal_windowTitleAboutToBeSet;
915 
917  boost::signal<void (QString)> signal_windowTitleSet;
918 
920  boost::signal<void (const DtRwHazardAreaInformation&)> signal_hazardAreaInformationReceived;
921 
924 
926  boost::signal<void (const std::string&)> signal_scenarioFilenameChanged;
927 
928  protected:
929  virtual bool loadScenarioFromEvent(const DtScenarioLoadInformation& s);
930 
933  virtual int quitApplication(const QString& title, const QString& message, bool& quitBackend, bool hasCancelButton = true);
934 
937  virtual time_t initializeEnvironmentDateTimeOfDay(time_t proposedTime);
938 
940  virtual void scenarioFilenameChanged();
941 
943  virtual void scenarioJustClosed();
944 
946  virtual void errorLoadingScenario();
947 
949  virtual void scenarioClosing();
950 
952  virtual void slot_allBackendsClosed();
953 
956  virtual void loadTranslationsForModelSet(DtSimulationModelSet*);
957 
959  virtual void cleanupSessionBox();
960 
962  virtual void slot_sessionStartupComplete();
963 
965  virtual void allScenarioObjectsDiscovered();
966 
968  virtual void slot_onScenarioLoaded(const DtScenario*, bool emitScenarioLoadedSignal = true, bool isNewScenario = false);
969 
970  virtual void slot_checkBackendClosed(const DtVrfBackendState&, int);
971  virtual void slot_checkSimulationState(const DtVrfBackendState&, int);
972 
974  virtual bool saveIfDirty(int* saved = 0, bool takeSnapshot = true, bool showCheckpointSaveTitle = false, bool quittingApplication = false,
975  int* dialogResult = 0);
976  virtual DtJoinSessionDialog* createJoinSessionDialog(QWidget* parent, const Qt::WindowFlags& flags);
977 
980  virtual DtVrfScenarioRemapFunction* remapFunctionForCommandLineScenarioLoad() const;
981 
982  virtual void watchForScenarioObjectsDiscovered();
983 
984  virtual void connectSignals(bool);
985 
987  virtual void requestHazardAreaInformation();
988 
990  virtual void requestOrbatInformation();
991 
993  virtual void reloadScenario(const std::string& newTerrain);
994 
997  virtual void saveScenario(std::string baseName, std::string newTerrainName);
998 
1000  virtual void slot_onScenarioSaved(bool checkpointSave = false);
1001 
1006  virtual void reloadSimulationModelSets(const std::vector<DtFilename>&, bool reverse = false);
1007 
1009  virtual void slot_onScenarioReloaded(std::string scenarioName);
1010 
1012  void setup();
1013 
1015  virtual void showSessionStartupDialog();
1016 
1019  virtual void processServerMessage(DtSimMessage*);
1020 
1022  virtual void processStealthCommands(DtSimMessage*);
1023 
1025  virtual void processHazardAreaInformation(DtSimMessage*);
1026 
1028  virtual void restorePreservedScripts();
1029 
1031  virtual void scenarioWasRewound(DtSimMessage*);
1032 
1034  virtual void terrainCleared();
1035 
1036  virtual void clearFrontEndScenariodData();
1037 
1039  virtual void quitAllBackends();
1040 
1041  virtual void checkCloseStatus();
1042 
1043  protected:
1045  virtual void postTickSOGLoad(std::string sogFile);
1046 
1047  virtual void completeScenarioLoad();
1048  virtual void completeSimulationObjectGroupLoad();
1049 
1050  virtual DtVrfSimBackendManager& backendManager() const;
1051 
1052  virtual void loadIndirectArtilleryManager(const DtScenarioExplorer& explorer);
1053  virtual void loadForceFiles(const DtScenarioExplorer& explorer);
1054  virtual void loadCreateMenu(const DtScenarioExplorer& explorer);
1055  virtual bool loadInitialMenuConfiguration(makVrv::DtMenuConfiguration&, const DtFilename&);
1056  virtual void loadOverlayFile(const DtScenario&, bool removeAll = true);
1057  virtual void loadSelectionGroupFile(const DtScenario&);
1058  virtual void loadObserverViewFile(const DtScenario&, bool andSetDefaultView = true);
1059 
1060  virtual void loadGuiScenarioSettings(const DtScenario&);
1061  virtual void loadModelSetFiles(const DtScenarioExplorer& explorer);
1062  virtual void loadVisuals(const DtScenarioExplorer& explorer, bool force = false);
1063 
1064  virtual DtModelSetEntry* modelSetEntry(const DtEntityMapperKey& key) const;
1065  virtual DtMenu* createMenuFromModelSetManager() const;
1066  virtual bool isModelSet(const DtFilename& filename) const;
1067 
1068  virtual void slot_onSessionUpdated(int flags);
1069  virtual void slot_onDuplicateBackendAddress(const DtVrfBackendState&);
1070 
1071  virtual void slot_backendDiscovered(const DtVrfBackendState&);
1072  virtual void slot_settingReceived(const std::string&, const DtVrfBackendState*);
1073 
1076  virtual void slot_postDeCallback();
1077 
1079  virtual void remapTerrainFilenames(DtScenario*);
1080 
1082  virtual void createTerrainFilenameRemapper();
1083 
1084  virtual bool sessionPrompt(const QString& message);
1085 
1088  virtual bool openTerrainDatabaseFromUserSelection(const std::string& simTerrainFilename = "");
1089 
1094  virtual bool loadSessionTerrain(const std::string& guiTerrainFilename, const std::string& simTerrainFilename = "");
1095 
1096  virtual bool isSameTerrain(const std::string& terrain1, const std::string& terrain2) const;
1097 
1098  virtual void slot_terrainModified();
1099 
1101  virtual void slot_propChanged();
1102 
1103  virtual void slot_deDestructing();
1104 
1105  virtual void slot_terrainToBeCleared();
1106  virtual void slot_terrainCleared();
1107 
1108  virtual bool checkWriteGdb(const std::string& gdb);
1109 
1110  virtual DtSessionStatusBox* createSessionStatusBox();
1111 
1112  virtual void setupScriptedTaskSettings();
1113 
1115  virtual QFileInfo findTerrainFile(const std::string& terrainFile) const;
1116 
1119  virtual bool blockSessionTerrainLoad() const;
1120 
1123  virtual QFileInfo findTerrainFile(const std::string& terrainFile, const std::vector<std::string>& searchPaths,
1124  const std::string& extension) const;
1125 
1127  virtual void slot_scenarioAboutToBeSaved(DtScenario*);
1128 
1130  virtual void createSessionStatusBox(const QString& title, const QString& message, int statusType);
1131 
1133  virtual void slot_sessionSettingsChanged();
1134 
1136  virtual void slot_guiSettingsChanged();
1137 
1139  virtual bool eventFilter(QObject*, QEvent*);
1140 
1141  virtual void slot_savedSimulationObjectGroup(const std::string&);
1142 
1143  virtual void postSaveLoadFromSession(QWidget*);
1144  virtual void postSaveLoadFromDialog(QWidget*);
1145  virtual void postSaveNew(QWidget*);
1146  virtual void postSaveQuit();
1147  virtual void postSaveLoad();
1148  virtual void postSaveClose(bool resetScenario, DtFilename databaseToOpen, bool forceCloseAll);
1149  virtual void postSaveImport(DtScenarioLoadInformation);
1150  virtual void postSaveRewind(bool preserveScripts, double simTime);
1151 
1152  virtual void nullSaveFunction();
1153 
1155  virtual void backendDiscoveryTick();
1156 
1157  virtual void addAdditionalCategories();
1158 
1159  protected slots:
1160  virtual void commFileMessagesReceived(const QStringList&);
1161  virtual void statusDialogDestroyed();
1162 
1163  protected:
1169  std::vector<DtEntityMapperKey> myControlObjectTypes;
1179  std::string myLoadedTerrain;
1180  std::string myTerrainFile;
1181  std::string mySimTerrainFile;
1195 
1201 
1208 
1210 
1211  std::vector<DtString> myAdditionalSmsFiles;
1215 
1219 
1220  QString myWindowTitle;
1221 
1222  std::map<std::string, QTranslator*> myTranslators;
1223 
1225 
1234  boost::function<void ()> myPostSaveFunction;
1235 
1240 
1242 
1248 
1251  DtTimedSection myAsynchTimeoutSection;
1252 
1254 
1257 
1258  DtTimedSection myBackendDiscoveryTimer;
1266 
1267  boost::signalslib::connection myPostDeTickConnection;
1268  boost::signalslib::connection myCloseScenarioTickConnection;
1269  };
1270 
1273  {
1274  public:
1275  enum Status
1276  {
1277  None = 0x00000000,
1278  Loading = 0x00000001,
1279  Saving = 0x00000002,
1280  Closing = 0x00000004,
1281  Importing = 0x00000008,
1282  CreatingSimulationObjectGroup = 0x00000010,
1283  Reinitializing = 0x00000020
1284  };
1285 
1286  DtSessionStatusBox(makVrv::DtDe& de, DtVrfScenarioManager* manager, QWidget* parent);
1287  virtual ~DtSessionStatusBox();
1288 
1289  virtual void setMessage(const QString& message);
1290 
1291  virtual void keyPressEvent(QKeyEvent *e);
1292 
1293  virtual void terrainGeometryLoaded();
1294 
1295  virtual void waitingForTerrainLoad();
1296 
1297  virtual void setStatus(Status s);
1298 
1299  Status status() const
1300  {
1301  return myStatus;
1302  }
1303 
1304  virtual void accept();
1305 
1306  virtual void reject();
1307 
1308  boost::signal<void ()> signal_closeScenario;
1309 
1310  virtual void resetAltKey();
1311 
1312  protected:
1321  };
1322 }
1323 

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)