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
150 const std::vector<DtEntityMapperKey>& controlObjects()
const
152 return myControlObjectTypes;
157 virtual void clearControlObjects();
161 virtual void closeScenario(
bool resetScenario =
true);
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();
211 virtual void recreateCreateMenu();
221 virtual void newScenarioFromDialog(
QWidget* p);
225 virtual void newScenario(
const std::string&);
228 virtual void loadBatchScenario(
QWidget*);
239 virtual bool joinSession(DtJoinSessionTerrainAction terrainAction = DtTerrainActionUseSessionTerrain);
241 virtual void resignSession(
bool closeTerrain =
true);
243 virtual bool saveScenarioAs();
244 virtual bool saveScenario();
246 virtual bool canRewind()
const;
250 void setValidateForVrfObjects(
bool b)
252 myValidateForVrfObjects = b;
255 bool validateForVrfObjects()
const
257 return myValidateForVrfObjects;
260 void setScenarioDirty(
bool b)
265 bool scenarioDirty()
const
267 return myScenarioDirty;
275 void setAskSaveIfScenarioModified(
bool b)
277 myAskSaveIfScenarioModified = b;
280 bool askSaveIfScenarioModified()
const
282 return myAskSaveIfScenarioModified;
285 bool joinedToSession()
const
287 return myJoinedToSession;
290 void setDisplayExistingGdbWarningMessages(
bool b)
292 myDisplayExistingGdbWarningMessage = b;
295 bool displatExistingGdbWarningMessages()
const
297 return myDisplayExistingGdbWarningMessage;
300 virtual void setCorrelated(
bool);
302 bool correlated()
const
312 bool initialized()
const
314 return myInitialized;
319 return myDeadReckoningSettings;
322 void setAllowEditingOnScenarioJoin(
bool b)
324 myAllowEditingOnScenarioJoin = b;
327 bool allowEditingOnScenarioJoint()
const
329 return myAllowEditingOnScenarioJoin;
332 virtual std::string currentlyLoadedTerrain()
const;
334 virtual void processJoinSession(
bool startupMessage =
false);
338 virtual void loadDefaultSessionSettings(
bool loadOnlyFactorySettings =
false);
339 virtual void loadDefaultScriptedTaskSettings(
bool loadOnlyFactorySettings =
false);
340 virtual void saveSessionSettingsAsDefaults();
341 virtual void saveScriptedTaskSettingsAsDefaults();
347 virtual bool autoJoinSession()
const;
348 virtual bool askToJoin()
const;
349 virtual bool alwaysJoinWithSessionDatabase()
const;
350 virtual bool alwaysJoinWithOpenDatabase()
const;
351 virtual bool displaySessionDialogs()
const;
352 virtual bool displayCorrelationWarningMessages()
const;
359 return mySessionSettingsBackup;
364 return myScriptedTaskSettingsBackup;
368 void exportSessionSettings(
const std::string& fileName);
371 void importSessionSettings(
const std::string& fileName);
374 void exportScriptedTaskSettings(
const std::string& fileName);
377 void importScriptedTaskSettings(
const std::string& fileName);
380 virtual void setDoNotShowSessionStartupDialog(
bool);
381 bool showSessionStartupDialog()
const;
384 virtual void setStartupPreference(
int);
385 int startupPreference()
const;
389 virtual void setAggregateOnCreate(
bool);
390 bool aggregateOnCreate()
const;
393 virtual void setUserDefinedSmoothing(
bool);
394 bool userDefinedSmoothing()
const;
397 virtual void setWindowTitle(
const QString&);
400 virtual void setShowSessionStatusDialogs(SessionStatusDialogs);
403 return myShowSessionStatusDialogs;
407 virtual void setDenySystemScriptEditing(
bool);
408 virtual bool denySystemScriptEditing()
const;
411 virtual void setIndent(
int);
412 virtual int indent()
const;
415 virtual void setWarnOnSystemScriptChange(
bool);
416 virtual bool warnOnSystemScriptChange()
const;
419 virtual void setMonitorScriptedTaskFrameRates(
bool);
420 virtual bool monitorScriptedTaskFrameRates()
const;
423 virtual void setAutoSave(
bool);
424 virtual bool autoSave()
const;
427 virtual void setShowScenarioDescriptionMessageBox(
bool b,
bool save);
428 virtual bool showScenarioDescriptionMessageBox()
const;
444 virtual void addAdditionalSmsFile(
const std::string&);
445 virtual void removeAdditionalSmsFile(
const std::string&);
446 virtual const std::vector<DtString>& additionalSmsFiles()
const;
447 virtual void setAdditionalSmsFiles(
const std::vector<DtString>&);
450 virtual void slot_onScenarioModified();
451 virtual void slot_allBackendsClosed();
454 virtual void editHostilityMatrix(
QWidget* parent);
458 QWidget* p,
const Qt::WindowFlags& flags)
const;
461 virtual void addRecentScenario(
const std::string&);
466 virtual bool askAndSaveScriptsForRewind();
583 virtual void cleanupSessionBox();
586 virtual void slot_sessionStartupComplete();
589 virtual void slot_onScenarioLoaded(
const DtScenario*);
595 virtual bool saveIfDirty();
598 virtual void connectSignals(
bool);
600 virtual void displayCorrelationWarningMessage();
603 virtual void reloadScenario(
const std::string& newTerrain);
607 virtual void saveScenario(std::string baseName, std::string newTerrainName);
610 virtual void slot_onScenarioSaved(std::string scenarioName, std::string newTerrain);
613 virtual void slot_onScenarioReloaded(std::string scenarioName);
616 virtual void setup();
619 virtual void showSessionStartupDialog();
622 virtual void sessionStatusBoxClosed();
632 virtual void restorePreservedScripts();
639 virtual void loadOverlayFile(
const DtScenario&);
641 virtual void loadGuiScenarioSettings(
const DtScenario&);
643 virtual bool loadTerrain(
const std::string& filePath);
647 virtual bool isModelSet(
const DtFilename& filename)
const;
648 virtual bool loadModelSet(
const DtFilename& filename,
DtMenu* m)
const;
650 virtual void slot_onSessionUpdated(
int flags);
656 virtual bool sessionPrompt(
const QString& message);
658 virtual bool openTerrainDatabaseFromUserSelection();
660 virtual bool loadSessionTerrain(
const std::string&);
662 virtual bool isSameTerrain(
const std::string& terrain1,
const std::string& terrain2)
const;
664 virtual void slot_terrainModified();
665 virtual void slot_deDestructing();
667 virtual void slot_terrainToBeCleared();
668 virtual void slot_terrainCleared();
670 virtual bool checkWriteGdb(
const std::string& gdb);
672 virtual void setupSessionSettings();
673 virtual void setupScriptedTaskSettings();
676 virtual QFileInfo findTerrainFile(
const std::string& terrainFile)
const;
680 virtual QFileInfo findTerrainFile(
const std::string& terrainFile,
const std::vector<std::string>& searchPaths,
681 const std::string& extension)
const;
684 virtual void slot_scenarioAboutToBeSaved(
DtScenario*);
687 virtual void createSessionStatusBox(
const QString& title,
const QString& message,
int statusType);