![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: scenarioInformationWidget.h,v $ $Revision: 1.8 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #pragma once 00013 00014 #include <vrvUtil/signalslib.h> 00015 #include <vrfGuiCoreQt/vrfGuiCoreQt.h> 00016 00017 #include "vrfGuiCoreQt/scenarioInformationWidgetUi.hpp" 00018 #include <map> 00019 00020 #include <QtGui/QValidator> 00021 #include <QtCore/QStringList> 00022 00023 class DtScenario; 00024 class QLineEdit; 00025 class QWebView; 00026 class QTextEdit; 00027 00028 namespace makVrv 00029 { 00030 class DtDe; 00031 } 00032 00033 namespace makVrf 00034 { 00035 class DtSimulationTimeScaleWidgetSlider; 00036 class DtPickListWidget; 00037 class DtBrowseField; 00038 class DtComboBoxField; 00039 00040 class DT_DLL_VRFGUICOREQT DtScenarioInformationWidget : public QWidget 00041 { 00042 Q_OBJECT 00043 00044 public: 00045 typedef std::map<QString,QWidget *> FieldMap; 00046 typedef FieldMap::iterator FieldIterator; 00047 typedef FieldMap::const_iterator const_FieldIterator; 00048 00049 public: 00050 00051 DtScenarioInformationWidget(makVrv::DtDe& de, QWidget* parent = NULL, const Qt::WindowFlags& flags = 0); 00052 00053 virtual ~DtScenarioInformationWidget(); 00054 00055 public: 00058 virtual DtBrowseField* addBrowseField(const QString& parentName, 00059 const QString& childName, 00060 const QString& labelText); 00061 00064 virtual DtComboBoxField* addComboBoxField(const QString& parentName, 00065 const QString& childName, 00066 const QString& labelText); 00067 00070 virtual bool addFieldWidget(const QString& parentName, QWidget *pWidget); 00071 00073 virtual QWidget* findFieldWidget(const QString& widgetName); 00075 virtual bool init(); 00076 00079 virtual bool setScenario(DtScenario* scenario); 00080 00081 virtual bool displayScenarioInformation(const QString &u); 00082 00084 virtual void setEditable(bool b); 00085 00088 virtual void setToScenario(DtScenario* scenario); 00089 00091 virtual void setComponentAttachRule(int); 00092 virtual int componentAttachRule() const; 00093 00095 virtual bool displayTerrainValid() const; 00096 00098 virtual int startTimeOfDay() const; 00099 00101 virtual bool simulationTerrainValid() const; 00102 00104 virtual bool simulationModelSetsValid() const; 00105 00107 virtual bool frameTimeValid() const; 00108 00109 virtual bool valid() const; 00110 00111 const QString& selectedScenarioFile() const 00112 { 00113 return mySelectedScenarioFile; 00114 } 00115 00117 virtual void setAdvancedInformationEnabled(bool); 00118 virtual void showAdvanced(bool b); 00119 virtual void setShowComponentAttachCombo(bool); 00120 virtual void setCanSelectTerrain(bool); 00121 00123 virtual void setShowPreview(bool); 00124 00125 signals: 00126 void simulationFileChanged(const QString&); 00127 void simulationModelSetFilesChanged(const QString&); 00128 00129 protected: 00130 virtual bool chooseFile(QString title, QString ext, QString& file, QString& dirPath); 00131 virtual DtSimulationTimeScaleWidgetSlider* createAndInitTimeMultiplierWidget(); 00132 virtual void secondsToDaysHoursMinutesSeconds(int in, int& days, int& hours, int& minutes, double& seconds) const; 00134 virtual int stringToSeconds(const char*) const; 00135 00136 virtual QString cleanPath(const std::string& path) const; 00137 00138 public slots: 00141 virtual bool chooseBackendFile(); 00142 virtual void chooseComponentAttachmentFile(); 00143 virtual bool chooseDisplayFile(); 00144 virtual bool chooseSimulationModelSetFiles(); 00145 00146 protected slots: 00147 virtual void simulationFileChanged(); 00148 virtual void simulationModelSetFilesChanged(); 00149 virtual void useDisplayTerrainChanged(); 00150 00151 virtual void frameModeChanged(); 00152 00154 virtual void showPreview(); 00155 00156 protected: 00157 00158 virtual DtPickListWidget* createPickListWidget(QWidget* parent); 00159 00161 virtual void parseAllSmsFilesForFileList(const QString& smsFilename, 00162 const char* pListNameToFind, QStringList& fileList); 00163 00164 virtual void parseSmsForFileList(const QString& smsFilename, 00165 const char *pListNameToFind, 00166 QStringList& fileList); 00167 00168 virtual void populateFromSms(const QString& smsFileName); 00169 00170 public: 00171 Ui_ScenarioInformationWidgetUi myUiImpl; 00172 00173 protected: 00174 FieldMap myFieldMap; 00175 DtScenario* myScenario; 00176 QDoubleValidator* myDoubleValidator; 00177 DtSimulationTimeScaleWidgetSlider* myTimeMultiplierWidget; 00178 DtComboBoxField* myComponentAttachmentCombo; 00179 QWebView* myDescriptionView; 00180 QTextEdit* myDescriptionEdit; 00181 00182 QStringList myFrameModeStrings; 00183 bool myEditable; 00184 00185 makVrv::DtDe& myDe; 00186 QString mySelectedScenarioFile; 00187 00188 bool myCanSelectTerrain; 00189 }; 00190 00191 class DT_DLL_VRFGUICOREQT DtScenarioPreviewWidget : public QWidget 00192 { 00193 Q_OBJECT 00194 00195 public: 00196 DtScenarioPreviewWidget(makVrv::DtDe& de, QWidget* parent = NULL, const Qt::WindowFlags& flags = 0); 00197 00198 ~DtScenarioPreviewWidget(); 00199 00200 virtual void setEditable(bool b); 00201 00203 virtual void setScenario(DtScenario* scenario); 00204 00207 virtual void setToScenario(DtScenario* scenario); 00208 00210 virtual void setDisplayInformation(bool b); 00211 00213 virtual bool displayTerrainValid() const; 00214 00216 DtScenarioInformationWidget* scenarioInformationWidget(); 00217 00219 virtual bool simulationTerrainValid() const; 00220 00222 virtual bool simulationModelSetsValid() const; 00223 00225 virtual int startTimeOfDay() const; 00226 00228 virtual bool frameTimeValid() const; 00229 00232 virtual bool selectSimulationTerrain(); 00233 00234 virtual bool init(); 00235 00236 virtual bool valid() const; 00237 00238 const QString& selectedScenarioFile() const; 00239 00240 virtual void setAdvancedInformationEnabled(bool); 00241 virtual void showAdvanced(bool b); 00242 virtual void setShowComponentAttachCombo(bool); 00243 virtual void setCanSelectTerrain(bool); 00244 00246 virtual void setShowPreview(bool); 00247 00248 protected: 00249 virtual DtScenarioInformationWidget* createScenarioPreviewWidget(); 00250 00251 public slots: 00252 virtual void previewScenario(const QString& file); 00253 00254 signals: 00255 void simulationFileChanged(const QString&); 00256 void simulationModelSetFilesChanged(const QString&); 00257 00258 protected: 00259 DtScenarioInformationWidget* myScenarioInformation; 00260 bool myDisplayInformation; 00261 makVrv::DtDe& myDe; 00262 }; 00263 00264 inline DtScenarioInformationWidget* DtScenarioPreviewWidget::scenarioInformationWidget() 00265 { 00266 return (myScenarioInformation); 00267 } 00268 00269 class DT_DLL_VRFGUICOREQT DtScenarioWidgetPreviewCreator : public makVrv::DtVirtualBaseClass 00270 { 00271 public: 00272 DtScenarioWidgetPreviewCreator(); 00273 00274 static DtScenarioWidgetPreviewCreator& instance(makVrv::DtDe&); 00275 static void registerInstance(makVrv::DtDe&, DtScenarioWidgetPreviewCreator*); 00276 00277 virtual DtScenarioPreviewWidget* create(makVrv::DtDe&, QWidget* parent); 00278 }; 00279 } 00280