34 #include <boost/signal.hpp>
36 #include <QtCore/QVector>
37 #include <QtCore/QFileInfo>
38 #include <QtGui/QDialog>
41 #include <QtCore/qnamespace.h>
57 class DtTerrainOperationRecord;
58 class DtTerrainRecord;
63 class DtRecordSettingsBackupInterface;
68 class DtVrfScenarioRemapFunction;
69 class DtVrfSimBackendManager;
70 class DtVrfBackendState;
71 class DtJoinSessionDialog;
72 class DtHostilityMatrixDialog;
73 class DtLoadScenarioDialog;
74 class DtNeverAskAgainMessageBox;
75 class DtScenarioSettingsDialog;
76 class DtSessionStatusBox;
77 class DtSessionStartupDialog;
78 class DtScenarioDescriptionDialog;
79 class DtSubMenuConfiguration;
80 class DtVrfModelSetManager;
93 const std::vector<std::string> recentScenarios()
const
95 return myRecentScenarios;
104 void setMaxSize(
int);
106 void insertScenario(
const std::string&,
int pos = -1);
107 int removeScenario(
const std::string&);
109 virtual std::string classType()
const;
112 friend class boost::serialization::access;
114 virtual void write(boost::archive::xml_oarchive& out,
const unsigned int);
115 virtual void read(boost::archive::xml_iarchive& in,
const unsigned int);
137 DtTerrainActionUseSessionTerrainWithoutJoining
142 Loading = 0x00000001,
144 Closing = 0x00000004,
145 AllStatusDialogs = Loading | Saving | Closing
163 const std::vector<DtEntityMapperKey>& controlObjects()
const
165 return myControlObjectTypes;
170 virtual void clearControlObjects();
174 virtual void closeScenario(
bool resetScenario =
true,
const DtFilename& databaseToOpen =
"");
177 virtual void runScenario();
178 virtual void pauseScenario();
179 virtual void rewindScenario();
190 virtual void tickedLoadScenario();
194 virtual void tickedNewScenario();
197 virtual void loadScenarioFromDialog(
QWidget* p);
204 virtual void setHelpFile(
const std::string&,
bool save =
false);
205 virtual std::string helpFile()
const;
209 virtual void setDefaultScenarioFile(
const std::string& f,
bool save =
false);
210 virtual std::string defaultScenarioFile()
const;
215 virtual void setDefaultSimulationModelSetFile(
const std::string& f,
bool save =
false);
216 virtual std::string defaultSimulationModelSetFile()
const;
220 virtual void rebuildCreateMenu(
bool recreate =
true);
225 virtual void recreateCreateMenu();
241 virtual void newScenarioFromDialog(
QWidget* p);
245 virtual void newScenario(
const std::string&);
248 virtual void loadBatchScenario(
QWidget*);
259 virtual bool joinSession(DtJoinSessionTerrainAction terrainAction = DtTerrainActionUseSessionTerrain);
261 virtual void resignSession(
bool closeTerrain =
true);
263 virtual bool saveScenarioAs();
264 virtual bool saveScenario();
266 virtual bool canRewind()
const;
270 void setValidateForVrfObjects(
bool b)
272 myValidateForVrfObjects = b;
275 bool validateForVrfObjects()
const
277 return myValidateForVrfObjects;
280 void setScenarioDirty(
bool b)
285 bool scenarioDirty()
const
287 return myScenarioDirty;
295 void setAskSaveIfScenarioModified(
bool b)
297 myAskSaveIfScenarioModified = b;
300 bool askSaveIfScenarioModified()
const
302 return myAskSaveIfScenarioModified;
305 bool joinedToSession()
const
307 return myJoinedToSession;
310 void setDisplayExistingGdbWarningMessages(
bool b)
312 myDisplayExistingGdbWarningMessage = b;
315 bool displatExistingGdbWarningMessages()
const
317 return myDisplayExistingGdbWarningMessage;
320 virtual void setCorrelated(
bool);
322 bool correlated()
const
332 bool initialized()
const
334 return myInitialized;
339 return myDeadReckoningSettings;
342 void setAllowEditingOnScenarioJoin(
bool b)
344 myAllowEditingOnScenarioJoin = b;
347 bool allowEditingOnScenarioJoint()
const
349 return myAllowEditingOnScenarioJoin;
352 virtual std::string currentlyLoadedTerrain()
const;
354 virtual void processJoinSession(
bool startupMessage =
false);
357 virtual void loadDefaultScriptedTaskSettings(
bool loadOnlyFactorySettings =
false);
358 virtual void saveScriptedTaskSettingsAsDefaults();
363 virtual bool autoJoinSession()
const;
364 virtual bool automaticallyOpenSessionDatabaseWithoutJoiningSession()
const;
365 virtual bool askToJoin()
const;
366 virtual bool alwaysJoinWithSessionDatabase()
const;
367 virtual bool zoomToScenarioExtentsOnLoad()
const;
368 virtual bool alwaysJoinWithOpenDatabase()
const;
369 virtual bool displaySessionDialogs()
const;
370 virtual bool displayCorrelationWarningMessages()
const;
373 virtual bool isDefaultObserverView(
const std::string&);
374 virtual std::string defaultObserverView()
const;
375 virtual void setDefaultObserverView(
const std::string&);
379 virtual void showObserverView(
const std::string& view,
int ticksBeforeShow = 0,
bool inPreTick =
true,
380 bool zoomToExtents =
false);
385 virtual void requestSpotReports();
389 virtual void requestStealthCommands();
392 return myStealthCommands;
396 virtual void zoomToExtentsFromScenario(
const DtScenario&)
const;
403 return myScriptedTaskSettingsBackup;
407 void exportSessionSettings(
const std::string& fileName);
410 void importSessionSettings(
const std::string& fileName);
413 void exportScriptedTaskSettings(
const std::string& fileName);
416 void importScriptedTaskSettings(
const std::string& fileName);
419 virtual void setDoNotShowSessionStartupDialog(
bool);
420 bool showSessionStartupDialog()
const;
423 virtual void setStartupPreference(
int);
424 int startupPreference()
const;
428 virtual void setAggregateOnCreate(
bool);
429 bool aggregateOnCreate()
const;
432 virtual void setUserDefinedSmoothing(
bool);
433 bool userDefinedSmoothing()
const;
436 virtual void setWindowTitle(
const QString&);
439 virtual void setShowSessionStatusDialogs(SessionStatusDialogs);
442 return myShowSessionStatusDialogs;
446 virtual void setDenySystemScriptEditing(
bool);
447 virtual bool denySystemScriptEditing()
const;
450 virtual void setIndent(
int);
451 virtual int indent()
const;
454 virtual void setWarnOnSystemScriptChange(
bool);
455 virtual bool warnOnSystemScriptChange()
const;
458 virtual void setMonitorScriptedTaskFrameRates(
bool);
459 virtual bool monitorScriptedTaskFrameRates()
const;
462 virtual void setAutoSave(
bool);
463 virtual bool autoSave()
const;
466 virtual void setShowScenarioDescriptionMessageBox(
bool b);
467 virtual bool showScenarioDescriptionMessageBox()
const;
487 virtual void addAdditionalSmsFile(
const std::string&);
488 virtual void removeAdditionalSmsFile(
const std::string&);
489 virtual void setAdditionalSmsFiles(
const std::vector<DtString>&);
492 virtual std::vector<std::string> defaultSimulationModelSetFiles()
const;
496 virtual void slot_onScenarioModified();
499 virtual void editHostilityMatrix(
QWidget* parent);
503 QWidget* p,
const Qt::WindowFlags& flags)
const;
506 virtual void addRecentScenario(
const std::string&);
511 virtual bool askAndSaveScriptsForRewind();
520 virtual bool loadTerrain(
const std::string& filePath);
523 virtual void resetTerrain();
527 virtual time_t dateAndTimeOfDay()
const;
530 virtual double simulationTime()
const;
533 virtual void setShowQuitDialogOnClose(
bool);
534 virtual bool showQuitDialogOnClose()
const;
679 virtual void scenarioJustClosed();
682 virtual void errorLoadingScenario();
685 virtual void scenarioClosing();
688 virtual void slot_allBackendsClosed();
695 virtual void cleanupSessionBox();
698 virtual void slot_sessionStartupComplete();
701 virtual void allScenarioObjectsDiscovered();
704 virtual void slot_onScenarioLoaded(
const DtScenario*);
710 virtual bool saveIfDirty(
bool* saved = 0);
713 virtual void connectSignals(
bool);
715 virtual void displayCorrelationWarningMessage();
718 virtual void requestHazardAreaInformation();
721 virtual void reloadScenario(
const std::string& newTerrain);
725 virtual void saveScenario(std::string baseName, std::string newTerrainName);
728 virtual void slot_onScenarioSaved(std::string scenarioName, std::string newTerrain);
734 virtual void reloadSimulationModelSets(
const std::vector<DtFilename>&,
bool reverse =
false);
737 virtual void slot_onScenarioReloaded(std::string scenarioName);
743 virtual void showSessionStartupDialog();
746 virtual void sessionStatusBoxClosed();
756 virtual void processHazardAreaInformation(
DtSimMessage*);
762 virtual void restorePreservedScripts();
765 virtual void scenarioWasRewound();
768 virtual void terrainCleared();
771 virtual void completeScenarioLoad();
777 virtual void loadOverlayFile(
const DtScenario&);
778 virtual void loadSelectionGroupFile(
const DtScenario&);
779 virtual void loadObserverViewFile(
const DtScenario&,
bool andSetDefaultView =
true);
781 virtual void loadGuiScenarioSettings(
const DtScenario&);
785 virtual DtMenu* createMenuFromModelSetManager()
const;
786 virtual bool isModelSet(
const DtFilename& filename)
const;
788 virtual void slot_onSessionUpdated(
int flags);
796 virtual void slot_postDeCallback();
798 virtual bool sessionPrompt(
const QString& message);
800 virtual bool openTerrainDatabaseFromUserSelection();
802 virtual bool loadSessionTerrain(
const std::string&);
804 virtual bool isSameTerrain(
const std::string& terrain1,
const std::string& terrain2)
const;
806 virtual void slot_terrainModified();
807 virtual void slot_deDestructing();
809 virtual void slot_terrainToBeCleared();
810 virtual void slot_terrainCleared();
812 virtual bool checkWriteGdb(
const std::string& gdb);
816 virtual void setupScriptedTaskSettings();
819 virtual QFileInfo findTerrainFile(
const std::string& terrainFile)
const;
823 virtual QFileInfo findTerrainFile(
const std::string& terrainFile,
const std::vector<std::string>& searchPaths,
824 const std::string& extension)
const;
827 virtual void slot_scenarioAboutToBeSaved(
DtScenario*);
830 virtual void createSessionStatusBox(
const QString& title,
const QString& message,
int statusType);
833 virtual void slot_sessionSettingsChanged();
836 virtual bool eventFilter(
QObject*, QEvent*);
912 Loading = 0x00000001,
920 virtual void setMessage(
const QString& message);
922 virtual void keyPressEvent(QKeyEvent *e);
924 virtual void terrainGeometryLoaded();
926 virtual void waitingForTerrainLoad();
928 virtual void setStatus(Status s);
935 virtual void accept();
937 virtual void reject();