30 #include <boost/signal.hpp>
32 #include <QtCore/QVector>
33 #include <QtCore/QFileInfo>
36 #include <QtCore/qnamespace.h>
50 class DtTerrainOperationRecord;
51 class DtTerrainRecord;
56 class DtRecordSettingsBackupInterface;
61 class DtVrfBackendState;
62 class DtJoinSessionDialog;
63 class DtHostilityMatrixDialog;
64 class DtLoadScenarioDialog;
66 class DtScenarioSettingsDialog;
67 class DtSessionStatusBox;
68 class DtSessionStartupDialog;
69 class DtScenarioDescriptionDialog;
70 class DtSubMenuConfiguration;
71 class DtVrfModelSetManager;
84 const std::vector<std::string> recentScenarios()
const
86 return myRecentScenarios;
97 void insertScenario(
const std::string&,
int pos = -1);
98 int removeScenario(
const std::string&);
100 virtual std::string classType()
const;
103 friend class boost::serialization::access;
105 virtual void write(boost::archive::xml_oarchive& out,
const unsigned int);
106 virtual void read(boost::archive::xml_iarchive& in,
const unsigned int);
117 friend class DtSessionStatusBox;
125 DtLoadScenarioSpecifiedInApplication
130 Loading = 0x00000001,
132 Closing = 0x00000004,
133 AllStatusDialogs = Loading | Saving | Closing
151 const std::vector<DtEntityMapperKey>& controlObjects()
const
153 return myControlObjectTypes;
158 virtual void clearControlObjects();
162 virtual void closeScenario(
bool resetScenario =
true);
163 virtual bool loadScenario(
const std::string& s);
165 virtual void runScenario();
166 virtual void pauseScenario();
167 virtual void rewindScenario();
178 virtual void tickedLoadScenario();
182 virtual void tickedNewScenario();
185 virtual void loadScenarioFromDialog(
QWidget* p);
192 virtual void setHelpFile(
const std::string&,
bool save =
false);
193 virtual std::string helpFile()
const;
197 virtual void setDefaultScenarioFile(
const std::string& f,
bool save =
false);
198 virtual std::string defaultScenarioFile()
const;
202 virtual void setDefaultSimulationModelSetFile(
const std::string& f,
bool save =
false);
203 virtual std::string defaultSimulationModelSetFile()
const;
207 virtual void rebuildCreateMenu();
212 virtual void recreateCreateMenu();
228 virtual void newScenarioFromDialog(
QWidget* p);
232 virtual void newScenario(
const std::string&);
235 virtual void loadBatchScenario(
QWidget*);
246 virtual bool joinSession(DtJoinSessionTerrainAction terrainAction = DtTerrainActionUseSessionTerrain);
248 virtual void resignSession(
bool closeTerrain =
true);
250 virtual bool saveScenarioAs();
251 virtual bool saveScenario();
253 virtual bool canRewind()
const;
257 void setValidateForVrfObjects(
bool b)
259 myValidateForVrfObjects = b;
262 bool validateForVrfObjects()
const
264 return myValidateForVrfObjects;
267 void setScenarioDirty(
bool b)
272 bool scenarioDirty()
const
274 return myScenarioDirty;
282 void setAskSaveIfScenarioModified(
bool b)
284 myAskSaveIfScenarioModified = b;
287 bool askSaveIfScenarioModified()
const
289 return myAskSaveIfScenarioModified;
292 bool joinedToSession()
const
294 return myJoinedToSession;
297 void setDisplayExistingGdbWarningMessages(
bool b)
299 myDisplayExistingGdbWarningMessage = b;
302 bool displatExistingGdbWarningMessages()
const
304 return myDisplayExistingGdbWarningMessage;
307 virtual void setCorrelated(
bool);
309 bool correlated()
const
319 bool initialized()
const
321 return myInitialized;
326 return myDeadReckoningSettings;
329 void setAllowEditingOnScenarioJoin(
bool b)
331 myAllowEditingOnScenarioJoin = b;
334 bool allowEditingOnScenarioJoint()
const
336 return myAllowEditingOnScenarioJoin;
339 virtual std::string currentlyLoadedTerrain()
const;
341 virtual void processJoinSession(
bool startupMessage =
false);
345 virtual void loadDefaultSessionSettings(
bool loadOnlyFactorySettings =
false);
346 virtual void loadDefaultScriptedTaskSettings(
bool loadOnlyFactorySettings =
false);
347 virtual void saveSessionSettingsAsDefaults();
348 virtual void saveScriptedTaskSettingsAsDefaults();
354 virtual bool autoJoinSession()
const;
355 virtual bool askToJoin()
const;
356 virtual bool alwaysJoinWithSessionDatabase()
const;
357 virtual bool zoomToScenarioExtentsOnLoad()
const;
358 virtual bool alwaysJoinWithOpenDatabase()
const;
359 virtual bool displaySessionDialogs()
const;
360 virtual bool displayCorrelationWarningMessages()
const;
363 virtual bool isDefaultObserverView(
const std::string&);
364 virtual std::string defaultObserverView()
const;
365 virtual void setDefaultObserverView(
const std::string&);
369 virtual void showObserverView(
const std::string& view);
374 virtual void zoomToExtentsFromScenario(
const DtScenario&)
const;
381 return mySessionSettingsBackup;
386 return myScriptedTaskSettingsBackup;
390 void exportSessionSettings(
const std::string& fileName);
393 void importSessionSettings(
const std::string& fileName);
396 void exportScriptedTaskSettings(
const std::string& fileName);
399 void importScriptedTaskSettings(
const std::string& fileName);
402 virtual void setDoNotShowSessionStartupDialog(
bool);
403 bool showSessionStartupDialog()
const;
406 virtual void setStartupPreference(
int);
407 int startupPreference()
const;
411 virtual void setAggregateOnCreate(
bool);
412 bool aggregateOnCreate()
const;
415 virtual void setUserDefinedSmoothing(
bool);
416 bool userDefinedSmoothing()
const;
419 virtual void setWindowTitle(
const QString&);
422 virtual void setShowSessionStatusDialogs(SessionStatusDialogs);
425 return myShowSessionStatusDialogs;
429 virtual void setDenySystemScriptEditing(
bool);
430 virtual bool denySystemScriptEditing()
const;
433 virtual void setIndent(
int);
434 virtual int indent()
const;
437 virtual void setWarnOnSystemScriptChange(
bool);
438 virtual bool warnOnSystemScriptChange()
const;
441 virtual void setMonitorScriptedTaskFrameRates(
bool);
442 virtual bool monitorScriptedTaskFrameRates()
const;
445 virtual void setAutoSave(
bool);
446 virtual bool autoSave()
const;
449 virtual void setShowScenarioDescriptionMessageBox(
bool b,
bool save);
450 virtual bool showScenarioDescriptionMessageBox()
const;
466 virtual void addAdditionalSmsFile(
const std::string&);
467 virtual void removeAdditionalSmsFile(
const std::string&);
468 virtual const std::vector<DtString>& additionalSmsFiles()
const;
469 virtual void setAdditionalSmsFiles(
const std::vector<DtString>&);
473 virtual void slot_onScenarioModified();
474 virtual void slot_allBackendsClosed();
477 virtual void editHostilityMatrix(
QWidget* parent);
481 QWidget* p,
const Qt::WindowFlags& flags)
const;
484 virtual void addRecentScenario(
const std::string&);
489 virtual bool askAndSaveScriptsForRewind();
622 virtual void cleanupSessionBox();
625 virtual void slot_sessionStartupComplete();
628 virtual void slot_onScenarioLoaded(
const DtScenario*);
634 virtual bool saveIfDirty();
637 virtual void connectSignals(
bool);
639 virtual void displayCorrelationWarningMessage();
642 virtual void reloadScenario(
const std::string& newTerrain);
646 virtual void saveScenario(std::string baseName, std::string newTerrainName);
649 virtual void slot_onScenarioSaved(std::string scenarioName, std::string newTerrain);
652 virtual void slot_onScenarioReloaded(std::string scenarioName);
655 virtual void setup();
658 virtual void showSessionStartupDialog();
661 virtual void sessionStatusBoxClosed();
671 virtual void restorePreservedScripts();
678 virtual void loadOverlayFile(
const DtScenario&);
679 virtual void loadSelectionGroupFile(
const DtScenario&);
680 virtual void loadObserverViewFile(
const DtScenario&,
bool andSetDefaultView =
true);
682 virtual void loadGuiScenarioSettings(
const DtScenario&);
684 virtual bool loadTerrain(
const std::string& filePath);
688 virtual bool isModelSet(
const DtFilename& filename)
const;
689 virtual bool loadModelSet(
const DtFilename& filename,
DtMenu* m)
const;
691 virtual void slot_onSessionUpdated(
int flags);
697 virtual bool sessionPrompt(
const QString& message);
699 virtual bool openTerrainDatabaseFromUserSelection();
701 virtual bool loadSessionTerrain(
const std::string&);
703 virtual bool isSameTerrain(
const std::string& terrain1,
const std::string& terrain2)
const;
705 virtual void slot_terrainModified();
706 virtual void slot_deDestructing();
708 virtual void slot_terrainToBeCleared();
709 virtual void slot_terrainCleared();
711 virtual bool checkWriteGdb(
const std::string& gdb);
713 virtual void setupSessionSettings();
714 virtual void setupScriptedTaskSettings();
717 virtual QFileInfo findTerrainFile(
const std::string& terrainFile)
const;
721 virtual QFileInfo findTerrainFile(
const std::string& terrainFile,
const std::vector<std::string>& searchPaths,
722 const std::string& extension)
const;
725 virtual void slot_scenarioAboutToBeSaved(
DtScenario*);
728 virtual void createSessionStatusBox(
const QString& title,
const QString& message,
int statusType);