19 #include <vrvCore/DtMenuConfiguration.h>
21 #include <makArchives/DtObserverStateRecordsList.h>
23 #include <vrvUtil/DtVirtualBaseClass.h>
24 #include <vrvUtil/signalslib.h>
25 #include <vrvCore/DtDe.h>
29 #include <boost/signal.hpp>
31 #include <QtCore/QVector>
32 #include <QtCore/QFileInfo>
35 #include <QtCore/qnamespace.h>
49 class DtTerrainOperationRecord;
50 class DtTerrainRecord;
55 class DtRecordSettingsBackupInterface;
60 class DtVrfBackendState;
61 class DtJoinSessionDialog;
62 class DtHostilityMatrixDialog;
63 class DtLoadScenarioDialog;
65 class DtScenarioSettingsDialog;
66 class DtSessionStatusBox;
67 class DtSessionStartupDialog;
68 class DtScenarioDescriptionDialog;
69 class DtSubMenuConfiguration;
70 class DtVrfModelSetManager;
83 const std::vector<std::string> recentScenarios()
const
85 return myRecentScenarios;
96 void insertScenario(
const std::string&,
int pos = -1);
97 int removeScenario(
const std::string&);
99 virtual std::string classType()
const;
102 friend class boost::serialization::access;
104 virtual void write(boost::archive::xml_oarchive& out,
const unsigned int);
105 virtual void read(boost::archive::xml_iarchive& in,
const unsigned int);
116 friend class DtSessionStatusBox;
124 DtLoadScenarioSpecifiedInApplication
129 Loading = 0x00000001,
131 Closing = 0x00000004,
132 AllStatusDialogs = Loading | Saving | Closing
143 static void init(makVrv::DtDe&);
150 const std::vector<DtEntityMapperKey>& controlObjects()
const
152 return myControlObjectTypes;
157 virtual void clearControlObjects();
161 virtual void closeScenario(
bool resetScenario =
true,
const DtFilename& databaseToOpen =
"");
162 virtual bool loadScenario(
const std::string& s);
164 virtual void runScenario();
165 virtual void pauseScenario();
166 virtual void rewindScenario();
177 virtual void tickedLoadScenario();
181 virtual void tickedNewScenario();
184 virtual void loadScenarioFromDialog(
QWidget* p);
191 virtual void setHelpFile(
const std::string&,
bool save =
false);
192 virtual std::string helpFile()
const;
196 virtual void setDefaultScenarioFile(
const std::string& f,
bool save =
false);
197 virtual std::string defaultScenarioFile()
const;
201 virtual void setDefaultSimulationModelSetFile(
const std::string& f,
bool save =
false);
202 virtual std::string defaultSimulationModelSetFile()
const;
206 virtual void rebuildCreateMenu(
bool recreate =
true);
211 virtual void recreateCreateMenu();
221 virtual makArchives::DtObserverStateRecordsList& observerViews();
222 virtual const makArchives::DtObserverStateRecordsList& observerViews()
const;
227 virtual void newScenarioFromDialog(
QWidget* p);
231 virtual void newScenario(
const std::string&);
234 virtual void loadBatchScenario(
QWidget*);
245 virtual bool joinSession(DtJoinSessionTerrainAction terrainAction = DtTerrainActionUseSessionTerrain);
247 virtual void resignSession(
bool closeTerrain =
true);
249 virtual bool saveScenarioAs();
250 virtual bool saveScenario();
252 virtual bool canRewind()
const;
256 void setValidateForVrfObjects(
bool b)
258 myValidateForVrfObjects = b;
261 bool validateForVrfObjects()
const
263 return myValidateForVrfObjects;
266 void setScenarioDirty(
bool b)
271 bool scenarioDirty()
const
273 return myScenarioDirty;
281 void setAskSaveIfScenarioModified(
bool b)
283 myAskSaveIfScenarioModified = b;
286 bool askSaveIfScenarioModified()
const
288 return myAskSaveIfScenarioModified;
291 bool joinedToSession()
const
293 return myJoinedToSession;
296 void setDisplayExistingGdbWarningMessages(
bool b)
298 myDisplayExistingGdbWarningMessage = b;
301 bool displatExistingGdbWarningMessages()
const
303 return myDisplayExistingGdbWarningMessage;
306 virtual void setCorrelated(
bool);
308 bool correlated()
const
318 bool initialized()
const
320 return myInitialized;
325 return myDeadReckoningSettings;
328 void setAllowEditingOnScenarioJoin(
bool b)
330 myAllowEditingOnScenarioJoin = b;
333 bool allowEditingOnScenarioJoint()
const
335 return myAllowEditingOnScenarioJoin;
338 virtual std::string currentlyLoadedTerrain()
const;
340 virtual void processJoinSession(
bool startupMessage =
false);
343 virtual void loadDefaultScriptedTaskSettings(
bool loadOnlyFactorySettings =
false);
344 virtual void saveScriptedTaskSettingsAsDefaults();
349 virtual bool autoJoinSession()
const;
350 virtual bool askToJoin()
const;
351 virtual bool alwaysJoinWithSessionDatabase()
const;
352 virtual bool zoomToScenarioExtentsOnLoad()
const;
353 virtual bool alwaysJoinWithOpenDatabase()
const;
354 virtual bool displaySessionDialogs()
const;
355 virtual bool displayCorrelationWarningMessages()
const;
358 virtual bool isDefaultObserverView(
const std::string&);
359 virtual std::string defaultObserverView()
const;
360 virtual void setDefaultObserverView(
const std::string&);
364 virtual void showObserverView(
const std::string& view,
int ticksBeforeShow = 0,
bool inPreTick =
true);
369 virtual void zoomToExtentsFromScenario(
const DtScenario&)
const;
374 makVrv::DtRecordSettingsBackupInterface* scriptedTaskSettingsBackup()
376 return myScriptedTaskSettingsBackup;
380 void exportSessionSettings(
const std::string& fileName);
383 void importSessionSettings(
const std::string& fileName);
386 void exportScriptedTaskSettings(
const std::string& fileName);
389 void importScriptedTaskSettings(
const std::string& fileName);
392 virtual void setDoNotShowSessionStartupDialog(
bool);
393 bool showSessionStartupDialog()
const;
396 virtual void setStartupPreference(
int);
397 int startupPreference()
const;
401 virtual void setAggregateOnCreate(
bool);
402 bool aggregateOnCreate()
const;
405 virtual void setUserDefinedSmoothing(
bool);
406 bool userDefinedSmoothing()
const;
409 virtual void setWindowTitle(
const QString&);
412 virtual void setShowSessionStatusDialogs(SessionStatusDialogs);
415 return myShowSessionStatusDialogs;
419 virtual void setDenySystemScriptEditing(
bool);
420 virtual bool denySystemScriptEditing()
const;
423 virtual void setIndent(
int);
424 virtual int indent()
const;
427 virtual void setWarnOnSystemScriptChange(
bool);
428 virtual bool warnOnSystemScriptChange()
const;
431 virtual void setMonitorScriptedTaskFrameRates(
bool);
432 virtual bool monitorScriptedTaskFrameRates()
const;
435 virtual void setAutoSave(
bool);
436 virtual bool autoSave()
const;
439 virtual void setShowScenarioDescriptionMessageBox(
bool b);
440 virtual bool showScenarioDescriptionMessageBox()
const;
456 virtual void addAdditionalSmsFile(
const std::string&);
457 virtual void removeAdditionalSmsFile(
const std::string&);
458 virtual const std::vector<DtString>& additionalSmsFiles()
const;
459 virtual void setAdditionalSmsFiles(
const std::vector<DtString>&);
463 virtual void slot_onScenarioModified();
464 virtual void slot_allBackendsClosed();
467 virtual void editHostilityMatrix(
QWidget* parent);
471 QWidget* p,
const Qt::WindowFlags& flags)
const;
474 virtual void addRecentScenario(
const std::string&);
479 virtual bool askAndSaveScriptsForRewind();
609 virtual void cleanupSessionBox();
612 virtual void slot_sessionStartupComplete();
615 virtual void slot_onScenarioLoaded(
const DtScenario*);
621 virtual bool saveIfDirty();
624 virtual void connectSignals(
bool);
626 virtual void displayCorrelationWarningMessage();
629 virtual void reloadScenario(
const std::string& newTerrain);
633 virtual void saveScenario(std::string baseName, std::string newTerrainName);
636 virtual void slot_onScenarioSaved(std::string scenarioName, std::string newTerrain);
639 virtual void slot_onScenarioReloaded(std::string scenarioName);
642 virtual void setup();
645 virtual void showSessionStartupDialog();
648 virtual void sessionStatusBoxClosed();
658 virtual void restorePreservedScripts();
664 virtual bool loadInitialMenuConfiguration(makVrv::DtMenuConfiguration&,
const DtFilename&);
665 virtual void loadOverlayFile(
const DtScenario&);
666 virtual void loadSelectionGroupFile(
const DtScenario&);
667 virtual void loadObserverViewFile(
const DtScenario&,
bool andSetDefaultView =
true);
669 virtual void loadGuiScenarioSettings(
const DtScenario&);
671 virtual bool loadTerrain(
const std::string& filePath);
675 virtual bool isModelSet(
const DtFilename& filename)
const;
676 virtual bool loadModelSetFromDirectory(
const DtFilename& dir,
const DtFilename& guiDirectory,
DtMenu* m)
const;
678 virtual void slot_onSessionUpdated(
int flags);
684 virtual bool sessionPrompt(
const QString& message);
686 virtual bool openTerrainDatabaseFromUserSelection();
688 virtual bool loadSessionTerrain(
const std::string&);
690 virtual bool isSameTerrain(
const std::string& terrain1,
const std::string& terrain2)
const;
692 virtual void slot_terrainModified();
693 virtual void slot_deDestructing();
695 virtual void slot_terrainToBeCleared();
696 virtual void slot_terrainCleared();
698 virtual bool checkWriteGdb(
const std::string& gdb);
700 virtual void setupScriptedTaskSettings();
703 virtual QFileInfo findTerrainFile(
const std::string& terrainFile)
const;
707 virtual QFileInfo findTerrainFile(
const std::string& terrainFile,
const std::vector<std::string>& searchPaths,
708 const std::string& extension)
const;
711 virtual void slot_scenarioAboutToBeSaved(
DtScenario*);
714 virtual void createSessionStatusBox(
const QString& title,
const QString& message,
int statusType);