VR-Forces 4.6.1 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) 2015 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 <QtWidgets/QDialog>
44 
46 #include <QtCore/qnamespace.h>
47 
48 class QLabel;
49 class DtScenario;
50 class DtScenarioExplorer;
51 class QFileDialog;
52 class QWidget;
53 class QDialog;
54 class DtSimMessage;
55 class DtIfServerMessage;
56 class DtModelSetEntry;
57 class QTranslator;
60 
61 namespace makArchives
62 {
63  class DtTerrainOperationRecord;
64  class DtTerrainRecord;
65 }
66 
67 namespace makVrv
68 {
69  class DtRecordSettingsBackupInterface;
70 }
71 
72 #define DtFavoritesTopLevelIconRank 99999
73 #define DtRecentTopLevelIconRank 99998
74 
75 namespace makVrf
76 {
77  class DtFileCommChannel;
78  class DtVrfScenarioRemapFunction;
79  class DtVrfSimBackendManager;
80  class DtVrfBackendState;
81  class DtJoinSessionDialog;
82  class DtHostilityMatrixDialog;
83  class DtLoadScenarioDialog;
84  class DtNeverAskAgainMessageBox;
85  class DtScenarioSettingsDialog;
86  class DtSessionStatusBox;
87  class DtSessionStartupDialog;
88  class DtScenarioDescriptionDialog;
89  class DtSubMenuConfiguration;
90  class DtVrfModelSetManager;
91 
94  {
95  public:
98 
99  virtual ~DtVrfGuiRecentScenarios();
100 
101  virtual DtVrfGuiApplicationSetting* clone() const;
102 
103  const std::vector<std::string> recentScenarios() const
104  {
105  return myRecentScenarios;
106  }
107 
108  int maxSize() const
109  {
110  return myMaxSize;
111  }
112 
114  void setMaxSize(int);
115 
116  void insertScenario(const std::string&, int pos = -1);
117  int removeScenario(const std::string&);
118 
119  virtual std::string classType() const;
120 
121  protected:
122  friend class boost::serialization::access;
123 
124  virtual void write(boost::archive::xml_oarchive& out, const unsigned int);
125  virtual void read(boost::archive::xml_iarchive& in, const unsigned int);
126 
127  protected:
128  std::vector<std::string> myRecentScenarios;
129  unsigned int myMaxSize;
130  };
131 
134  {
135  Q_OBJECT
136 
137  public:
138  friend class DtSessionStatusBox;
139 
141  {
148  DtLoadSimulationObjectGroupSpecifiedInApplication
149  };
150 
152  {
153  Loading = 0x00000001,
154  Saving = 0x00000002,
155  Closing = 0x00000004,
156  Importing = 0x00000008,
157  CreatingSimulationObjectGroup = 0x00000010,
158  AllStatusDialogs = Loading | Saving | Closing | Importing | CreatingSimulationObjectGroup
159  };
160 
161  public:
163  virtual ~DtVrfScenarioManager();
164 
166  static DtVrfScenarioManager& instance(makVrv::DtDe& de);
167 
169  static void init(makVrv::DtDe&);
170 
171  const DtScenarioExplorer* scenarioExplorer() const
172  {
173  return myExplorer;
174  }
175 
176  const std::vector<DtEntityMapperKey>& controlObjects() const
177  {
178  return myControlObjectTypes;
179  }
180 
181  bool loadingSessionTerrain() const
182  {
183  return myLoadingSessionTerrain;
184  }
185 
186  bool simulationObjectGroupEditingMode() const
187  {
188  return mySimulationObjectGroupEditingMode;
189  }
190 
191  virtual void addControlObject(const DtEntityMapperKey& key);
192  virtual void removeControlObject(const DtEntityMapperKey& key);
193  virtual void clearControlObjects();
194 
195  virtual bool isControlObject(const DtEntityMapperKey& key) const;
196 
202  virtual bool wantsToSaveTerrain(bool& ignoredModifications);
203 
205  virtual bool saveGuiTerrain(bool askForName = false);
206 
208  virtual bool saveSimTerrain(bool askForName = false);
209 
211  bool importingScenario() const { return myImportingScenario; };
212 
215  virtual bool generateNavigationArea(makVrv::DtUniqueID);
216 
219  virtual bool regenerateNavigationAreas(bool);
220 
222  virtual DtFilename loadingScenarioFile() const;
223 
226  virtual bool mapUUIDToScenarioDataFromOobInScenario(const DtFilename& scenarioFile,
227  DtScenario::ScenarioDataMap& scenarioDataMap) const;
228 
231  virtual void closeScenario(bool resetScenario = true, const DtFilename& databaseToOpen = "", bool forceCloseAll = false);
232  virtual bool loadScenario(std::string, DtVrfScenarioRemapFunction* remapping = 0);
233  virtual bool loadScenario(const DtScenarioLoadInformation& s);
234  virtual bool importScenario(const DtScenarioLoadInformation& s);
235  virtual void runScenario();
236  virtual void pauseScenario();
237 
240  virtual bool rewindScenario(double toSimTime = -1);
241 
246  virtual void setCreateMenuBuilderFlags(DtCreateMenuBuilder::Flags);
247  virtual DtCreateMenuBuilder::Flags createMenuBuilderFlags() const;
248 
254  virtual void tickedLoadScenario(const DtString& scenarioName = "", bool useDefaultRemappingFunction = false);
255 
258  virtual void tickedNewScenario();
259 
261  virtual void loadScenarioFromDialog(QWidget* p);
262  virtual DtLoadScenarioDialog* createLoadScenarioDialog(QWidget*);
263  virtual void importScenarioFromDialog(QWidget* p);
264 
266  virtual void loadScenarioFromSessionDialog(QWidget* p);
267 
272  virtual void setHelpFile(const std::string&, bool save = false);
273  virtual std::string helpFile() const;
274 
277  virtual void setDefaultScenarioFile(const std::string& f, bool save = false);
278  virtual std::string defaultScenarioFile() const;
279 
281  virtual void setSimulationObjectGroupTerrain(const std::string& f, bool save = false);
282  virtual std::string simulationObjectGroupTerrain() const;
283 
287  virtual void setDefaultSimulationModelSetFile(const std::string& f, bool save = false);
288  virtual std::string defaultSimulationModelSetFile() const;
289 
292  virtual void rebuildCreateMenu(bool recreate = true);
293 
295  virtual void reloadVisuals();
296 
298  virtual DtString scenarioSaveExtension(bool includesDot = true) const;
299 
303  virtual void recreateCreateMenu();
304 
306  virtual void cleanupBackupFile(double simTime) const;
307 
309  virtual std::string language() const;
310 
312  virtual void loadTaskMenu(const DtScenarioExplorer& explorer);
313 
315  virtual void loadSetMenu(const DtScenarioExplorer& explorer);
316 
319  virtual void removeSimulationObjectGroupTasksSets(const DtScenarioExplorer& explorer);
320 
323  virtual DtFilename saveScenarioName(bool askIfDoesNotExist = true, bool* asked = 0, bool createDefaultIfEmpty = false,
324  bool useScenarioNameAsSeed = true) const;
325 
328  {
329  return mySimulationObjectsCategoryInformation;
330  }
331 
333  {
334  return mySimulationObjectsCategoryInformation;
335  }
336 
338  virtual void setupWindowTitleBasedOnScenario();
339 
342  virtual makArchives::DtObserverStateRecordsList scenarioObserverViews() const;
343  virtual void setScenarioObserverViews(const makArchives::DtObserverStateRecordsList&) const;
345 
347  virtual DtScenarioSettingsDialog* createNewScenarioDialog(QWidget* p);
348  virtual void newScenarioFromDialog(QWidget* p);
349 
354  virtual void newScenario(const std::string&, const std::string& sms = "");
355 
357  virtual void loadBatchScenario(QWidget*);
358 
368  virtual bool joinSession(DtJoinSessionTerrainAction terrainAction = DtTerrainActionUseSessionTerrain);
369 
370  virtual void resignSession(bool closeTerrain = true);
371 
372  virtual bool saveScenarioAs();
373 
376  virtual int saveScenario();
377 
378  virtual bool canRewind() const;
379 
382  void setValidateForVrfObjects(bool b)
383  {
384  myValidateForVrfObjects = b;
385  }
386 
387  bool validateForVrfObjects() const
388  {
389  return myValidateForVrfObjects;
390  }
391 
392  virtual void setScenarioDirty(bool b);
393 
394  void setReadyToQuit(bool b)
395  {
396  myReadyToQuit = b;
397  }
398 
399  bool scenarioDirty() const
400  {
401  return myScenarioDirty;
402  }
403 
404  const DtScenario* scenario() const
405  {
406  return myScenario;
407  }
408 
409  void setAskSaveIfScenarioModified(bool b)
410  {
411  myAskSaveIfScenarioModified = b;
412  }
413 
414  bool askSaveIfScenarioModified() const
415  {
416  return myAskSaveIfScenarioModified;
417  }
418 
419  bool joinedToSession() const
420  {
421  return myJoinedToSession;
422  }
423 
424  void setDisplayExistingGdbWarningMessages(bool b)
425  {
426  myDisplayExistingGdbWarningMessage = b;
427  }
428 
429  bool displatExistingGdbWarningMessages() const
430  {
431  return myDisplayExistingGdbWarningMessage;
432  }
433 
434  virtual void setCorrelated(bool);
435 
436  bool correlated() const
437  {
438  return myCorrelated;
439  }
440 
441  DtMenu* createMenu()
442  {
443  return myMenu;
444  }
445 
446  bool initialized() const
447  {
448  return myInitialized;
449  }
450 
451  const DtDeadReckoningSettings& deadReckoningSettings() const
452  {
453  return myDeadReckoningSettings;
454  }
455 
456  void setAllowEditingOnScenarioJoin(bool b)
457  {
458  myAllowEditingOnScenarioJoin = b;
459  }
460 
461  bool allowEditingOnScenarioJoint() const
462  {
463  return myAllowEditingOnScenarioJoin;
464  }
465 
466  virtual std::string currentlyLoadedTerrain() const;
467 
468  virtual void processJoinSession(bool startupMessage = false);
469 
470  virtual void setFromRecord(const DtVrfScriptedTaskSettingsRecord& rec);
471  virtual void loadDefaultScriptedTaskSettings(bool loadOnlyFactorySettings = false);
472  virtual void saveScriptedTaskSettingsAsDefaults();
473  virtual void getRecord(DtVrfScriptedTaskSettingsRecord& rec) const;
474 
477  virtual void getSplitRecord(std::vector<DtVrfScriptedTaskSettingsRecord>& rec,
478  std::vector<std::string>& fileNames) {};
479 
482  virtual void addRecords(DtVrfScriptedTaskSettingsRecord& recs,
483  DtVrfScriptedTaskSettingsRecord& combinedRec) {};
484 
487  virtual bool autoJoinSession() const;
488  virtual bool automaticallyOpenSessionDatabaseWithoutJoiningSession() const;
489  virtual bool askToJoin() const;
490  virtual bool alwaysJoinWithSessionDatabase() const;
491  virtual bool zoomToScenarioExtentsOnLoad() const;
492  virtual bool alwaysJoinWithOpenDatabase() const;
493  virtual bool displaySessionDialogs() const;
494  virtual bool displayCorrelationWarningMessages() const;
495  virtual void displayCorrelationWarningMessage();
496 
499  virtual bool isDefaultObserverView(const std::string&);
500  virtual std::string defaultObserverView(bool& is2D) const;
501  virtual void setDefaultObserverView(const std::string&);
502  virtual void setTerrainViewVisible(const std::string&, bool vis);
503 
505  virtual void setHiddenTerrainViews(const std::string&);
506 
507  virtual bool terrainViewHidden(const std::string&) const;
508  virtual const std::set<std::string>& hiddenTerrainViews() const;
509  virtual std::set<std::string>& hiddenTerrainViews();
510 
511  virtual bool defaultObserverViewStateRecord(makArchives::DtObserverStateRecord&) const;
512 
515  virtual void showObserverView(const std::string& view, int ticksBeforeShow = 0, bool inPreTick = true,
516  bool zoomToExtents = false);
517 
518  virtual void resetObserverForCommandLineTerrain(int count, bool inPreTick);
519 
521 
523  virtual void requestSpotReports();
524 
527  virtual void requestStealthCommands();
528  const DtStealthCommands& stealthCommands() const
529  {
530  return myStealthCommands;
531  }
532 
534  const DtSimulationObjectGroupSaveInformation& simulationObjectGroupSaveInformation() const
535  {
536  return mySimulationObjectGroupSaveInformation;
537  }
538 
541  virtual bool isScenarioFile(const DtFilename&, bool exact = false) const;
542 
545  virtual void setAsynchLoadBufferTime(double);
546 
548  virtual void setSaveScenarioToZipFile(bool);
549 
551  virtual void zoomToExtentsFromScenario(const DtScenario&) const;
552 
554  virtual void setFavorite(const DtEntityMapperKey&, bool f);
555 
556  makVrv::DtRecordSettingsBackupInterface* scriptedTaskSettingsBackup()
557  {
558  return myScriptedTaskSettingsBackup;
559  }
560 
562  void exportSessionSettings(const std::string& fileName);
563 
565  void importSessionSettings(const std::string& fileName);
566 
568  void exportScriptedTaskSettings(const std::string& fileName);
569 
571  void importScriptedTaskSettings(const std::string& fileName);
572 
574  virtual void setDoNotShowSessionStartupDialog(bool);
575  bool showSessionStartupDialog() const;
576 
579  virtual void setAggregateOnCreate(bool);
580  bool aggregateOnCreate() const;
581 
583  virtual void setUserDefinedSmoothing(bool);
584  bool userDefinedSmoothing() const;
585 
587  virtual void setWindowTitle(const QString&);
588 
590  virtual void setShowSessionStatusDialogs(SessionStatusDialogs);
591  SessionStatusDialogs showSessionStatusDialogs() const
592  {
593  return myShowSessionStatusDialogs;
594  }
595 
597  virtual void setDenySystemScriptEditing(bool);
598  virtual bool denySystemScriptEditing() const;
599 
601  virtual void setIndent(int);
602  virtual int indent() const;
603 
605  virtual void setWarnOnSystemScriptChange(bool);
606  virtual bool warnOnSystemScriptChange() const;
607 
609  virtual void setMonitorScriptedTaskFrameRates(bool);
610  virtual bool monitorScriptedTaskFrameRates() const;
611 
613  virtual QString filenameToSaveUnder() const;
614 
616  virtual void setAutoSave(bool);
617  virtual bool autoSave() const;
618 
620  virtual void setShowScenarioDescriptionMessageBox(bool b);
621  virtual bool showScenarioDescriptionMessageBox() const;
622 
624  virtual const DtSubMenuConfiguration& initialCreateMenuConfiguration() const;
625  virtual DtSubMenuConfiguration& initialCreateMenuConfiguration();
626 
628  virtual const DtSubMenuConfiguration& initialTaskMenuConfiguration() const;
629  virtual DtSubMenuConfiguration& initialTaskMenuConfiguration();
630 
632  virtual const makVrv::DtToolbarConfiguration& initialToolbarConfiguration() const;
633  virtual makVrv::DtToolbarConfiguration& initialToolbarConfiguration();
634 
636  virtual const makVrv::DtToolbarConfiguration& scriptModifiedToolbarConfiguration() const;
637  virtual makVrv::DtToolbarConfiguration& scriptModifiedToolbarConfiguration();
638 
640  virtual const DtSubMenuConfiguration& initialSetMenuConfiguration() const;
641  virtual DtSubMenuConfiguration& initialSetMenuConfiguration();
642 
645  virtual void addAdditionalSmsFile(const std::string&);
646  virtual void removeAdditionalSmsFile(const std::string&);
647  virtual void setAdditionalSmsFiles(const std::vector<DtString>&);
648 
650  virtual std::vector<std::string> defaultSimulationModelSetFiles() const;
652 
655  virtual void setSaveScenarioFilenameToUseOnFirstSave(const DtFilename& f);
656  virtual const DtFilename& saveScenarioFilenameToUseOnFirstSave() const;
657 
658  bool quitting() const { return myQuitWhenSaved; };
659 
660  public:
661  virtual void slot_onScenarioModified();
662 
664  virtual void editHostilityMatrix(QWidget* parent);
665 
667  virtual DtHostilityMatrixDialog* createHostilityMatrixDialog(
668  QWidget* p, const Qt::WindowFlags& flags) const;
669 
671  virtual void addRecentScenario(const std::string&);
672 
676  virtual bool askAndSaveScriptsForRewind();
677 
679  virtual const DtRwHazardAreaInformation& hazardAreaInformation() const;
680 
682  virtual makVrv::DtUnicode hazardAreaAgentTypeFor(const DtEntityType&, const DtString& agentKey) const;
683 
688  virtual bool loadTerrain(const std::string& guiTerrainFilename, const std::string& simTerrainFilename = "");
689 
692  virtual bool loadSimTerrain(const std::string& simTerrainFilename, bool clearSimTerrain = false);
693 
695  virtual void resetTerrain();
696 
699  virtual time_t dateAndTimeOfDay() const;
700 
702  virtual double simulationTime() const;
703 
705  virtual void setShowQuitDialogOnClose(bool);
706  virtual bool showQuitDialogOnClose() const;
707 
708  virtual void resetScriptModifiedToolbarConfiguration();
709 
711  virtual void setKeepOpenTerrainFromCommandLine(bool);
712 
713  public:
714 
715  boost::signal<void ()> signal_observerViewSetFromScenario;
716  boost::signal<void (const std::set<std::string>&)> signal_terrainViewsHidden;
717  boost::signal<void (const DtScenario&)> signal_scenarioInitialized;
718  boost::signal<void (DtSessionStartupDialog*)> signal_sessionDialogBoxAboutToShow;
719  boost::signal<void (bool)> signal_requestingSaveOnScenarioModified;
720  boost::signal<void (DtSessionStatusBox*)> signal_sessionStatusDialogCreated;
721  boost::signal<void ()> signal_allScenarioObjectsDiscovered;
722  boost::signal<void ()> signal_scenarioRewound;
723  boost::signal<void ()> signal_setMenuConfigurationLoaded;
724  boost::signal<void ()> signal_taskMenuConfigurationLoaded;
725  boost::signal<void ()> signal_createMenuConfigurationLoaded;
726  boost::signal<void (const std::string&)> signal_scenarioLoadError;
727  boost::signal<void (const std::string&)> signal_scenarioSaveError;
728  boost::signal<void (DtSessionStartupDialog*)> signal_sessionStartupBoxCreated;
729  boost::signal<void (DtHostilityMatrixDialog*)> signal_hostilityMatrixDialogCreated;
730  boost::signal<void (const DtDeadReckoningSettings&)> signal_deadReckoningSettingsChanged;
731  boost::signal<void (const DtScenarioExplorer&)> signal_scenarioLoaded;
732  boost::signal<void (bool)> signal_sessionStatusChanged;
733  boost::signal<void ()> signal_allBackendsClosed;
734  boost::signal<void ()> signal_rewinding;
735  boost::signal<void ()> signal_rewindMessageSent;
736  boost::signal<void ()> signal_scenarioManagerInitialized;
737 
739  boost::signal<void (std::string, std::string)> signal_defaultObserverViewChanged;
740 
742  boost::signal<void (const DtScenarioLoadInformation&)> signal_preLoadScenario;
743 
745  boost::signal<void (const DtScenarioLoadInformation&)> signal_scenarioLoadRequest;
746 
749  boost::signal<void (const DtScenarioLoadInformation&)> signal_postLoadScenario;
750 
754  boost::signal<void (const std::string&)> signal_preLoadBaseTerrain;
755 
760  boost::signal<void (const std::string&)> signal_preLoadSimTerrain;
761 
764  boost::signal<void (const std::string&)> signal_preLoadTerrain;
765 
767  boost::signal<void (const std::string&)> signal_postLoadTerrain;
768 
770  boost::signal<void (const std::string&)> signal_postLoadSimTerrain;
771 
773  boost::signal<void (const DtScenarioExplorer&)> signal_preLoadForceFiles;
774 
776  boost::signal<void (const DtScenarioExplorer&)> signal_postLoadForceFiles;
777 
779  boost::signal<void (const DtScenarioExplorer&)> signal_preLoadArtilleryManager;
780 
782  boost::signal<void (const DtScenarioExplorer&)> signal_postLoadArtilleryManager;
783 
785  boost::signal<void (const DtScenarioExplorer&)> signal_preLoadModelSetFiles;
786 
788  boost::signal<void (const DtScenarioExplorer&)> signal_postLoadModelSetFiles;
789 
791  boost::signal<void (const DtScenarioExplorer&)> signal_preLoadVisuals;
792 
794  boost::signal<void (const DtScenarioExplorer&)> signal_postLoadVisuals;
795 
797  boost::signal<void (const DtScenarioExplorer&)> signal_preLoadCreateMenu;
798 
800  boost::signal<void (const DtScenarioExplorer&, DtMenu*)> signal_postLoadCreateMenu;
801 
803  boost::signal<void (const DtScenarioExplorer&)> signal_preLoadTaskMenu;
804 
806  boost::signal<void (const DtFilename&, DtVrfModelSetManager*)> signal_modelSetLoaded;
807 
809  boost::signal<void (const DtScenarioExplorer&)> signal_postLoadTaskMenu;
810 
812  boost::signal<void (const DtScenarioExplorer&)> signal_preLoadSimulationObjectGroupRemovalFile;
813 
815  boost::signal<void (const DtScenarioExplorer&)> signal_postLoadSimulationObjectGroupRemovalFile;
816 
818  boost::signal<void (const DtScenarioExplorer&)> signal_preLoadSetMenu;
819 
821  boost::signal<void (const DtScenarioExplorer&)> signal_postLoadSetMenu;
822 
824  boost::signal<void (const DtScenario&)> signal_preLoadOverlayFile;
825 
827  boost::signal<void (const DtScenario&)> signal_postLoadOverlayFile;
828 
830  boost::signal<void (const DtScenario&)> signal_preLoadSelectionGroupFile;
831 
833  boost::signal<void (const DtScenario&)> signal_postLoadSelectionGroupFile;
834 
836  boost::signal<void (const DtScenario&)> signal_preLoadObserverViewsFile;
837 
839  boost::signal<void (const DtScenario&)> signal_postLoadObserverViewsFile;
840 
842  boost::signal<void (const DtScenarioExplorer&)> signal_createMenuLoaded;
843 
845  boost::signal<void ()> signal_recreateCreateMenu;
846 
848  boost::signal<void ()> signal_recreateTaskMenu;
849 
851  boost::signal<void ()> signal_recreateSetMenu;
852 
854  boost::signal<void (const DtVrfScriptedTaskSettingsRecord&)> signal_scriptedTaskSettingsChanged;
855 
857  boost::signal<void (DtVrfGuiRecentScenarios*)> signal_recentScenariosChanged;
858 
860  boost::signal<void (const DtScenario&)> signal_preLoadGuiScenarioSettings;
861 
863  boost::signal<void (const DtScenario&)> signal_postLoadGuiScenarioSettings;
864 
866  boost::signal<void ()> signal_scenarioClosed;
867 
869  boost::signal<void ()> signal_scenarioClosing;
870 
872  boost::signal<void ()> signal_scenarioJustLoaded;
873 
875  boost::signal<void (QString&)> signal_windowTitleAboutToBeSet;
876 
878  boost::signal<void (QString)> signal_windowTitleSet;
879 
881  boost::signal<void (const DtRwHazardAreaInformation&)> signal_hazardAreaInformationReceived;
882 
885 
887  boost::signal<void (const std::string&)> signal_scenarioFilenameChanged;
888 
889  protected:
892  virtual time_t initializeEnvironmentDateTimeOfDay(time_t proposedTime);
893 
895  virtual void scenarioFilenameChanged();
896 
898  virtual void scenarioJustClosed();
899 
901  virtual void errorLoadingScenario();
902 
904  virtual void scenarioClosing();
905 
907  virtual void slot_allBackendsClosed();
908 
911  virtual void loadTranslationsForModelSet(DtSimulationModelSet*);
912 
914  virtual void cleanupSessionBox();
915 
917  virtual void slot_sessionStartupComplete();
918 
920  virtual void allScenarioObjectsDiscovered();
921 
923  virtual void slot_onScenarioLoaded(const DtScenario*, bool emitScenarioLoadedSignal = true, bool isNewScenario = false);
924 
925  virtual void slot_checkBackendClosed(const DtVrfBackendState&, int);
926  virtual void slot_checkSimulationState(const DtVrfBackendState&, int);
927 
929  virtual bool saveIfDirty(int* saved = 0, bool takeSnapshot = true, bool showCheckpointSaveTitle = false);
930  virtual DtJoinSessionDialog* createJoinSessionDialog(QWidget* parent, const Qt::WindowFlags& flags);
931 
934  virtual DtVrfScenarioRemapFunction* remapFunctionForCommandLineScenarioLoad() const;
935 
936  virtual void connectSignals(bool);
937 
939  virtual void requestHazardAreaInformation();
940 
942  virtual void requestOrbatInformation();
943 
945  virtual void reloadScenario(const std::string& newTerrain);
946 
949  virtual void saveScenario(std::string baseName, std::string newTerrainName);
950 
952  virtual void slot_onScenarioSaved(bool checkpointSave = false);
953 
958  virtual void reloadSimulationModelSets(const std::vector<DtFilename>&, bool reverse = false);
959 
961  virtual void slot_onScenarioReloaded(std::string scenarioName);
962 
964  void setup();
965 
967  virtual void showSessionStartupDialog();
968 
971  virtual void processServerMessage(DtSimMessage*);
972 
974  virtual void processStealthCommands(DtSimMessage*);
975 
977  virtual void processHazardAreaInformation(DtSimMessage*);
978 
980  virtual void restorePreservedScripts();
981 
983  virtual void scenarioWasRewound(DtSimMessage*);
984 
986  virtual void terrainCleared();
987 
988  virtual void clearFrontEndScenariodData();
989 
990  protected:
992  virtual void postTickSOGLoad(std::string sogFile);
993 
994  virtual void completeScenarioLoad();
995  virtual void completeSimulationObjectGroupLoad();
996 
997  virtual DtVrfSimBackendManager& backendManager() const;
998 
999  virtual void loadIndirectArtilleryManager(const DtScenarioExplorer& explorer);
1000  virtual void loadForceFiles(const DtScenarioExplorer& explorer);
1001  virtual void loadCreateMenu(const DtScenarioExplorer& explorer);
1002  virtual bool loadInitialMenuConfiguration(makVrv::DtMenuConfiguration&, const DtFilename&);
1003  virtual void loadOverlayFile(const DtScenario&, bool removeAll = true);
1004  virtual void loadSelectionGroupFile(const DtScenario&);
1005  virtual void loadObserverViewFile(const DtScenario&, bool andSetDefaultView = true);
1006 
1007  virtual void loadGuiScenarioSettings(const DtScenario&);
1008  virtual void loadModelSetFiles(const DtScenarioExplorer& explorer);
1009  virtual void loadVisuals(const DtScenarioExplorer& explorer, bool force = false);
1010 
1011  virtual DtModelSetEntry* modelSetEntry(const DtEntityMapperKey& key) const;
1012  virtual DtMenu* createMenuFromModelSetManager() const;
1013  virtual bool isModelSet(const DtFilename& filename) const;
1014 
1015  virtual void slot_onSessionUpdated(int flags);
1016  virtual void slot_onDuplicateBackendAddress(const DtVrfBackendState&);
1017 
1018  virtual void slot_backendDiscovered(const DtVrfBackendState&);
1019  virtual void slot_settingReceived(const std::string&, const DtVrfBackendState*);
1020 
1023  virtual void slot_postDeCallback();
1024 
1026  virtual void remapTerrainFilenames(DtScenario*);
1027 
1029  virtual void createTerrainFilenameRemapper();
1030 
1031  virtual bool sessionPrompt(const QString& message);
1032 
1035  virtual bool openTerrainDatabaseFromUserSelection(const std::string& simTerrainFilename = "");
1036 
1041  virtual bool loadSessionTerrain(const std::string& guiTerrainFilename, const std::string& simTerrainFilename = "");
1042 
1043  virtual bool isSameTerrain(const std::string& terrain1, const std::string& terrain2) const;
1044 
1045  virtual void slot_terrainModified();
1046 
1048  virtual void slot_propChanged();
1049 
1050  virtual void slot_deDestructing();
1051 
1052  virtual void slot_terrainToBeCleared();
1053  virtual void slot_terrainCleared();
1054 
1055  virtual bool checkWriteGdb(const std::string& gdb);
1056 
1057  virtual DtSessionStatusBox* createSessionStatusBox();
1058 
1059  virtual void setupScriptedTaskSettings();
1060 
1062  virtual QFileInfo findTerrainFile(const std::string& terrainFile) const;
1063 
1066  virtual bool blockSessionTerrainLoad() const;
1067 
1070  virtual QFileInfo findTerrainFile(const std::string& terrainFile, const std::vector<std::string>& searchPaths,
1071  const std::string& extension) const;
1072 
1074  virtual void slot_scenarioAboutToBeSaved(DtScenario*);
1075 
1077  virtual void createSessionStatusBox(const QString& title, const QString& message, int statusType);
1078 
1080  virtual void slot_sessionSettingsChanged();
1081 
1083  virtual void slot_guiSettingsChanged();
1084 
1086  virtual bool eventFilter(QObject*, QEvent*);
1087 
1088  virtual void slot_savedSimulationObjectGroup(const std::string&);
1089 
1090  virtual void postSaveLoadFromSession(QWidget*);
1091  virtual void postSaveLoadFromDialog(QWidget*);
1092  virtual void postSaveNew(QWidget*);
1093  virtual void postSaveQuit();
1094  virtual void postSaveLoad();
1095  virtual void postSaveClose(bool resetScenario, DtFilename databaseToOpen, bool forceCloseAll);
1096  virtual void postSaveImport(DtScenarioLoadInformation);
1097  virtual void postSaveRewind(bool preserveScripts, double simTime);
1098 
1099  virtual void nullSaveFunction();
1100 
1102  virtual void backendDiscoveryTick();
1103 
1104  virtual void addAdditionalCategories();
1105 
1106  protected slots:
1107  virtual void commFileMessagesReceived(const QStringList&);
1108  virtual void statusDialogDestroyed();
1109 
1110  protected:
1116  std::vector<DtEntityMapperKey> myControlObjectTypes;
1126  std::string myLoadedTerrain;
1127  std::string myTerrainFile;
1128  std::string mySimTerrainFile;
1141 
1147 
1154 
1156 
1157  std::vector<DtString> myAdditionalSmsFiles;
1161 
1165 
1166  QString myWindowTitle;
1167 
1168  std::map<std::string, QTranslator*> myTranslators;
1169 
1171 
1181  boost::function<void ()> myPostSaveFunction;
1182 
1187 
1189 
1195 
1198  DtTimedSection myAsynchTimeoutSection;
1199 
1201 
1204 
1205  DtTimedSection myBackendDiscoveryTimer;
1208  };
1209 
1212  {
1213  public:
1214  enum Status
1215  {
1216  None = 0x00000000,
1217  Loading = 0x00000001,
1218  Saving = 0x00000002,
1219  Closing = 0x00000004,
1220  Importing = 0x00000008,
1221  CreatingSimulationObjectGroup = 0x00000010
1222  };
1223 
1224  DtSessionStatusBox(makVrv::DtDe& de, DtVrfScenarioManager* manager, QWidget* parent);
1225  virtual ~DtSessionStatusBox();
1226 
1227  virtual void setMessage(const QString& message);
1228 
1229  virtual void keyPressEvent(QKeyEvent *e);
1230 
1231  virtual void terrainGeometryLoaded();
1232 
1233  virtual void waitingForTerrainLoad();
1234 
1235  virtual void setStatus(Status s);
1236 
1237  Status status() const
1238  {
1239  return myStatus;
1240  }
1241 
1242  virtual void accept();
1243 
1244  virtual void reject();
1245 
1246  boost::signal<void ()> signal_closeScenario;
1247 
1248  virtual void resetAltKey();
1249 
1250  protected:
1259  };
1260 }
1261 

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)