![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: tmAppOptions.h,v $ $Revision: 1.54 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef TMAPPOPTIONS_H 00013 #define TMAPPOPTIONS_H 00014 00015 #include <vlutil/vlConfig.h> 00016 #include <vlutil/vlFilename.h> 00017 #include <mtl/configVar.h> 00018 #include <mtl/multiVar.h> 00019 #include <mtl/appSettings.h> 00020 #include <QtCore/QObject> 00021 #include <QtCore/QString> 00022 #include <QtCore/QStringList> 00023 00024 #include "archiver/archiver.h" 00025 #include <QtCore/QVector> 00026 00027 #include <QtCore/QHash> 00028 00029 class DtTMFactory; 00030 class DtTMDisplayOptions; 00031 00032 typedef void (*DtPrintFunc)(const char* s, ...); 00033 00037 00038 #include "tmqt/tmqtDefines.h" 00039 00040 class DT_DLL_tmqt DtMenuLink 00041 { 00042 public: 00043 DtMenuLink() {}; 00044 00045 DtMenuLink(const QString& m, const QString& l) : 00046 myMenu(m), myLink(l) {}; 00047 DtMenuLink(const DtMenuLink& orig) : 00048 myMenu(orig.myMenu), myLink(orig.myLink) {}; 00049 00050 QString myMenu; 00051 QString myLink; 00052 }; 00053 00054 class DT_DLL_tmqt DtTMAppOptions : public DtArchivableObject 00055 { 00056 00057 Q_OBJECT 00058 00059 public: 00060 00062 DtTMAppOptions(int argc, char** argv); 00063 00065 virtual ~DtTMAppOptions(); 00066 00068 virtual bool init(const DtTMFactory* f); 00069 00072 virtual void parseCommandLine(); 00073 00074 virtual QString language() const; 00075 virtual void setLanguage(const QString& s); 00076 00078 virtual void processConfigFile(const QString&); 00079 00082 virtual void readConfigurationFiles(); 00083 00085 virtual void clearFiles(); 00086 00088 virtual bool usingGlobalMiniMap(); 00089 virtual void setUsingGlobalMiniMap(bool); 00090 00092 virtual QString defaultConfigFile() const; 00093 virtual void setDefaultConfigFile(const QString&); 00094 00096 virtual DtTMDisplayOptions* displayOptions() const; 00097 00099 virtual void setSettingsFile(const QString& file); 00100 virtual QString settingsFile() const; 00101 00103 virtual void setDoNotUseSettingsFile(bool b); 00104 virtual bool doNotUseSettingsFile() const; 00105 00107 virtual void setDoNotUsePluginsDirectory(bool b); 00108 virtual bool doNotUsePluginsDirectory() const; 00109 00111 virtual void setQtAssistantLocation(const QString& loc); 00112 virtual QString qtAssistantLocation() const; 00113 00114 virtual void setQtHelpFile(const QString& loc); 00115 virtual QString qtHelpFile() const; 00116 00118 virtual void setShowMaximized(bool b); 00119 virtual bool showMaximized() const; 00120 00121 virtual void setWindowGeometry(const QRect& r); 00122 virtual const QRect& windowGeometry() const; 00123 00124 virtual void initCommandOptions(); 00125 virtual void initMtlData(); 00126 00127 virtual const std::vector<DtString>& symbolMapFiles() const; 00128 virtual std::vector<DtString>& symbolMapFiles(); 00129 00130 virtual const std::vector<DtString>& translationFiles() const; 00131 virtual std::vector<DtString>& translationFiles(); 00132 virtual void addTranslationFile(const DtString&); 00133 00134 virtual QString defaultSymbolMapFile() const; 00135 virtual void setDefaultSymbolMapFile(const QString& s); 00136 00137 virtual QString overlayMenu() const; 00138 virtual void setOverlayMenu(const QString& s); 00139 00140 virtual int printMargin() const; 00141 virtual void setPrintMargin(int iMargin); 00142 00145 virtual void setDefaultFreehandSamplingRate(int); 00146 virtual int defaultFreehandSamplingRate() const; 00147 00156 virtual void setStoreLineValuesMode(int); 00157 virtual int storeLineValuesMode() const; 00158 00162 virtual void setHideOffScreenSymbols(bool); 00163 virtual bool hideOffScreenSymbols() const; 00164 00167 virtual void preparse(); 00168 00169 virtual const DtString& defaultTerrainDatabasePath() const; 00170 virtual void setDefaultTerrainDatabasePath(const DtString& path); 00171 00173 virtual void setShowSplashScreen(bool); 00174 virtual bool showSplashScreen() const; 00175 00178 virtual void setSplashScreenImage(const DtString&); 00179 virtual const DtString& splashScreenImage() const; 00181 00184 virtual void setEnableOverlayLogo(bool); 00185 virtual bool enableOverlayLogo() const; 00186 00188 virtual void setPluginsDirectory(const DtFilename&); 00189 virtual const DtFilename& pluginsDirectory() const; 00190 00191 virtual void setOverlayLogoFile(const DtFilename&); 00192 virtual const DtFilename& overlayLogoFile() const; 00193 00196 virtual void setOverlayLogoPosition(int); 00197 virtual int overlayLogoPosition() const; 00198 00199 virtual void setOverlayLogoScaleFactor(double); 00200 virtual double overlayLogoScaleFactor() const; 00201 00202 virtual void setOverlayLogoPositionOverride(int x, int y); 00203 virtual void setOverlayLogoPositionOverride(const QPoint&); 00204 virtual QPoint overlayLogoPositionOverride() const; 00205 00206 virtual void setPreserveEmptyOverlayLayers(bool); 00207 virtual bool preserveEmptyOverlayLayers() const; 00208 00209 virtual void setUseGLWidget(bool); 00210 virtual bool useGLWidget() const; 00211 00212 virtual void setLoadPluginsIfVersionMismatch(bool); 00213 virtual bool loadIfVersionMismatch() const; 00214 00215 const QVector<DtMenuLink>& helpWebLinks() const; 00216 virtual void addHelpWebLink(const QString& helpTitle, const QString& webLink); 00217 virtual void insertHelpWebLink(int iIndex, const QString& helpTitle, const QString& webLink); 00218 virtual void removeHelpWebLink(int iIndex); 00219 00220 virtual void setDisplayStyle(const QString&); 00221 virtual const QString& displayStyle() const; 00222 00223 virtual void setAllowRasterMapOptimization(bool); 00224 virtual bool allowRasterMapOptimization() const; 00225 00228 virtual void setHideSymbolsWhenMapShifted(bool); 00229 virtual bool hideSymbolsWhenMapShifted() const; 00230 00232 virtual void postSettingsFileRead(); 00233 00235 virtual int addFont(const QString&); 00236 00238 virtual void addDefaultFonts(); 00239 00241 virtual void setFileDialogPriority(int); 00242 virtual int fileDialogPriority() const; 00243 00244 virtual DtApplicationSettings* appSettings(); 00245 00246 virtual char** argv() const; 00247 virtual int argc() const; 00248 00249 protected: 00250 virtual void setupOptionsFromCommandLine(); 00251 virtual void addHelpWebLinks(); 00252 00253 public: 00254 00256 static DtTMAppOptions* create(int argc, char** argv); 00257 00258 signals: 00259 00261 00262 void displayOptionsChanged(const DtTMDisplayOptions* o); 00263 00264 public slots: 00265 00267 00268 virtual void setDisplayOptions(const DtTMDisplayOptions* o); 00269 00270 private: 00271 00273 DtTMAppOptions(const DtTMAppOptions& orig); 00274 00276 DtTMAppOptions& operator=(const DtTMAppOptions& rhs); 00277 00278 protected: 00280 DtApplicationSettings myApplicationSettings; 00281 00283 DtConfigVariable<bool> myUsingGlobalMiniMap; 00284 DtConfigVariable<bool> myDoNotUseSettingsFile; 00285 DtConfigVariable<bool> myDoNotUsePluginsDirectory; 00286 00287 DtConfigVariable<DtString> myDefaultConfigFile; 00288 DtConfigVariable<DtString> myPluginFile; 00289 DtMultiConfigVariable<DtString> myConfigFiles; 00290 DtMultiConfigVariable<DtString> myPluginFiles; 00291 DtConfigVariable<DtString> myOverlayMenu; 00292 DtConfigVariable<DtString> mySettingsFile; 00293 DtMultiConfigVariable<DtString> mySymbolMapFiles; 00294 DtMultiConfigVariable<DtString> myTranslationFiles; 00295 DtConfigVariable<DtString> myDefaultSymbolMapFile; 00296 DtConfigVariable<DtString> myLanguage; 00297 00298 int myArgc; 00299 char** myArgv; 00300 00301 DtTMDisplayOptions* myDisplayOptions; 00302 bool myHideOffScreenSymbols; 00303 int myShowSplashScreen; 00304 DtString mySplashScreenImage; 00305 00306 DtString myQtAssistantLocation; 00307 DtString myQtHelpFile; 00308 00309 QRect myWindowGeometry; 00310 bool myShowMaximized; 00311 00312 int myPrintMargin; 00313 00314 int myDefaultFreehandSamplingRate; 00315 int myHideSymbolsWhenMapShifted; 00316 int myStoreLineValuesMode; 00317 00318 DtString myDefaultTerrainDatabasePath; 00319 00321 int myEnableLogoOverlay; 00322 DtFilename myOverlayLogoFile; 00323 00325 int myOverlayLogoPosition; 00326 00328 double myOverlayLogoScaleFactor; 00329 00331 int myOverlayLogoPositionX; 00332 int myOverlayLogoPositionY; 00333 00337 int myPreserveEmptyOverlayLayers; 00338 00340 DtFilename myPluginsDirectory; 00341 00342 short myLoadIfVersionMismatch; 00343 00345 QString myDisplayStyle; 00346 00348 int myAllowRasterMapOptimization; 00349 00351 QHash<int, QString> myFontMap; 00352 00353 QVector<DtMenuLink> myHelpWebLinks; 00354 00358 int myFileDialogPriority; 00359 00360 int myUseGLWidget; 00361 }; 00362 00363 inline const QVector<DtMenuLink>& DtTMAppOptions::helpWebLinks() const 00364 { 00365 return myHelpWebLinks; 00366 } 00367 00368 inline char** DtTMAppOptions::argv() const 00369 { 00370 return myArgv; 00371 } 00372 00373 inline int DtTMAppOptions::argc() const 00374 { 00375 return myArgc; 00376 } 00377 00378 #endif