From 0f25756908524d08cf9856e4058c8f1f6a084fa9 Mon Sep 17 00:00:00 2001 From: Wayne Chen Date: Tue, 11 Sep 2018 16:29:39 -0700 Subject: [PATCH] expose domain connection error to Window --- interface/src/Application.cpp | 2 -- interface/src/scripting/WindowScriptingInterface.cpp | 7 +++++++ interface/src/scripting/WindowScriptingInterface.h | 7 +++++++ libraries/networking/src/AddressManager.h | 9 --------- libraries/networking/src/DomainHandler.cpp | 2 +- libraries/networking/src/DomainHandler.h | 5 +++++ 6 files changed, 20 insertions(+), 12 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index ca27b29b92..64cceec0fe 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1211,8 +1211,6 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo auto discoverabilityManager = DependencyManager::get(); connect(&locationUpdateTimer, &QTimer::timeout, discoverabilityManager.data(), &DiscoverabilityManager::updateLocation); - connect(&domainHandler, &DomainHandler::domainConnectionErrorChanged, DependencyManager::get().data(), - &AddressManager::setLastDomainConnectionError); connect(&locationUpdateTimer, &QTimer::timeout, DependencyManager::get().data(), &AddressManager::storeCurrentAddress); locationUpdateTimer.start(DATA_SERVER_LOCATION_CHANGE_UPDATE_MSECS); diff --git a/interface/src/scripting/WindowScriptingInterface.cpp b/interface/src/scripting/WindowScriptingInterface.cpp index 9e13e2affb..aa55fd2ebc 100644 --- a/interface/src/scripting/WindowScriptingInterface.cpp +++ b/interface/src/scripting/WindowScriptingInterface.cpp @@ -39,6 +39,9 @@ WindowScriptingInterface::WindowScriptingInterface() { connect(&domainHandler, &DomainHandler::disconnectedFromDomain, this, &WindowScriptingInterface::disconnectedFromDomain); connect(&domainHandler, &DomainHandler::domainConnectionRefused, this, &WindowScriptingInterface::domainConnectionRefused); + connect(&domainHandler, &DomainHandler::domainConnectionErrorChanged, this, [this](int reasonCode) { + _lastDomainConnectionError = reasonCode; + }); connect(qApp, &Application::svoImportRequested, [this](const QString& urlString) { static const QMetaMethod svoImportRequestedSignal = @@ -409,6 +412,10 @@ glm::vec2 WindowScriptingInterface::getDeviceSize() const { return qApp->getDeviceSize(); } +int WindowScriptingInterface::getLastDominConnectionError() const { + return DependencyManager::get()->getDomainHandler().getLastDomainConnectionError(); +} + int WindowScriptingInterface::getX() { return qApp->getWindow()->geometry().x(); } diff --git a/interface/src/scripting/WindowScriptingInterface.h b/interface/src/scripting/WindowScriptingInterface.h index 626d142785..eaf79106d3 100644 --- a/interface/src/scripting/WindowScriptingInterface.h +++ b/interface/src/scripting/WindowScriptingInterface.h @@ -491,6 +491,13 @@ public slots: */ glm::vec2 getDeviceSize() const; + /**jsdoc + * Gets the last domain connection error when a connection is refused. + * @function Window.getLastDomainConnectionError + * @returns {Window.ConnectionRefusedReason} Integer number that enumerates the last domain connection refused. + */ + int getLastDominConnectionError() const; + /**jsdoc * Open a non-modal message box that can have a variety of button combinations. See also, * {@link Window.updateMessageBox|updateMessageBox} and {@link Window.closeMessageBox|closeMessageBox}. diff --git a/libraries/networking/src/AddressManager.h b/libraries/networking/src/AddressManager.h index e27504fc3a..fd787171df 100644 --- a/libraries/networking/src/AddressManager.h +++ b/libraries/networking/src/AddressManager.h @@ -56,9 +56,6 @@ const QString GET_PLACE = "/api/v1/places/%1"; * Read-only. * @property {boolean} isConnected - true if you're connected to the domain in your current href * metaverse address, otherwise false. - * @property {Window.ConnectionRefusedReason} lastDomainConnectionError - The last error saved from connecting to a domain - * unsuccessfully. - * Read-only. * @property {string} pathname - The location and orientation in your current href metaverse address * (e.g., "/15,-10,26/0,0,0,1"). * Read-only. @@ -76,7 +73,6 @@ class AddressManager : public QObject, public Dependency { Q_PROPERTY(QUrl href READ currentShareableAddress) Q_PROPERTY(QString protocol READ getProtocol) Q_PROPERTY(QString hostname READ getHost) - Q_PROPERTY(int lastDomainConnectionError READ getLastDomainConnectionError) Q_PROPERTY(QString pathname READ currentPath) Q_PROPERTY(QString placename READ getPlaceName) Q_PROPERTY(QString domainID READ getDomainID) @@ -187,9 +183,6 @@ public: QUrl getDomainURL() { return _domainURL; } - int getLastDomainConnectionError() { return _lastDomainConnectionError; } - void setLastDomainConnectionError(int reasonCode) { _lastDomainConnectionError = reasonCode; } - public slots: /**jsdoc * Go to a specified metaverse address. @@ -470,8 +463,6 @@ private: QUrl _domainURL; QUrl _lastVisitedURL; - // domain connection error from domain handler. - int _lastDomainConnectionError{ -1 }; QUuid _rootPlaceID; PositionGetter _positionGetter; diff --git a/libraries/networking/src/DomainHandler.cpp b/libraries/networking/src/DomainHandler.cpp index 75d670cd3d..4bed1646ee 100644 --- a/libraries/networking/src/DomainHandler.cpp +++ b/libraries/networking/src/DomainHandler.cpp @@ -480,7 +480,7 @@ void DomainHandler::processDomainServerConnectionDeniedPacket(QSharedPointer _namedPaths; + + // domain connection error upon connection refusal. + int _lastDomainConnectionError{ -1 }; }; const QString DOMAIN_SPAWNING_POINT { "/0, -10, 0" };