![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtSessionStartupDialogLogic.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00011 00013 00014 #pragma once 00015 00016 #include <vrfGuiCoreQt/vrfGuiCoreQt.h> 00017 #include <vrvUtil/DtVirtualBaseClass.h> 00018 #include <vrvUtil/DtSignalConnectionManager.h> 00019 00020 #include <QtNetwork/QNetworkReply> 00021 #include <QtNetwork/QNetworkAccessManager> 00022 #include <QtCore/QUrl> 00023 00024 namespace makVrv 00025 { 00026 class DtDe; 00027 } 00028 00029 namespace osgEarth 00030 { 00031 class Config; 00032 } 00033 00034 namespace makVrf 00035 { 00036 class DtSessionStartupDialogInterface; 00037 00038 class DT_DLL_VRFGUICOREQT DtServerAvailable : public QObject 00039 { 00040 Q_OBJECT 00041 00042 public: 00043 DtServerAvailable(const std::string& serverKey, const QUrl& page); 00044 00045 virtual ~DtServerAvailable(); 00046 00047 void processRequest(); 00048 00049 boost::signal<void (const std::string&, bool, const std::string&)> signal_serverAvailable; 00050 00051 protected slots: 00052 virtual void finished(QNetworkReply*); 00053 00054 protected: 00055 QNetworkAccessManager myManager; 00056 QUrl myUrl; 00057 std::string myKey; 00058 }; 00059 00060 class DT_DLL_VRFGUICOREQT DtSessionStartupDialogLogic 00061 { 00062 public: 00063 00065 DtSessionStartupDialogLogic(makVrv::DtDe& de, DtSessionStartupDialogInterface& iface); 00066 00068 virtual ~DtSessionStartupDialogLogic(); 00069 00070 protected: 00072 virtual void slot_neverShowAgain(); 00073 00075 virtual void slot_newScenarioVR(const std::string& server); 00076 00078 virtual void slot_newScenario(); 00079 00081 virtual void slot_loadScenario(); 00082 00085 void processSessionStartupServers(); 00086 00088 virtual void slot_checkServerAvailability(const std::string&); 00089 00091 virtual void slot_serverIsAvailable(const std::string& desc, bool, const std::string& reason); 00092 00093 protected: 00096 virtual QUrl urlFromServer(const std::string&) const; 00097 virtual QUrl urlFromEarthFile(const std::string&) const; 00098 virtual QUrl urlFromEarthConfig(const osgEarth::Config& docConf) const; 00099 00100 protected: 00101 00102 makVrv::DtDe& myDe; 00103 DtSessionStartupDialogInterface& myInterface; 00104 makVrv::DtSignalConnectionManager myConnections; 00105 std::string myWaitingForServerResponse; 00106 DtServerAvailable* myServerAvailableRequestor; 00107 std::map<std::string, QUrl> myServersNameToUrl; 00108 }; 00109 00110 class DT_DLL_VRFGUICOREQT DtSessionStartupDialogLogicCreator : public makVrv::DtVirtualBaseClass 00111 { 00112 public: 00113 DtSessionStartupDialogLogicCreator(); 00114 00115 virtual ~DtSessionStartupDialogLogicCreator(); 00116 00117 static DtSessionStartupDialogLogicCreator& instance(makVrv::DtDe&); 00118 static void registerInstance(makVrv::DtDe&, DtSessionStartupDialogLogicCreator*); 00119 00120 virtual DtSessionStartupDialogLogic* create(makVrv::DtDe&, DtSessionStartupDialogInterface& iface); 00121 }; 00122 } 00123