Showing the changes to interface/src/scripting/LocationScriptingInterface.cpp (1 of 4 files). Show all
Unified · Split
| @@ -9,9 +9,7 @@ · 8 unmodified lines | |||
| 9 | // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html | 9 | // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html |
| 10 | // | 10 | // |
| 11 | 11 | ||
| 12 | #include <glm/glm.hpp> | 12 | #include <AddressManager.h> |
| 13 | |||
| 14 | #include "NodeList.h" | ||
| 15 | 13 | ||
| 16 | #include "LocationScriptingInterface.h" | 14 | #include "LocationScriptingInterface.h" |
| 17 | 15 | ||
| @@ -20,36 +18,23 @@ LocationScriptingInterface* LocationScriptingInterface::getInstance() { · 2 unmodified lines | |||
| 20 | return &sharedInstance; | 18 | return &sharedInstance; |
| 21 | } | 19 | } |
| 22 | 20 | ||
| 23 | bool LocationScriptingInterface::isConnected() { | ||
| 24 | return NodeList::getInstance()->getDomainHandler().isConnected(); | ||
| 25 | } | ||
| 26 | |||
| 27 | QString LocationScriptingInterface::getHref() { | ||
| 28 | return getProtocol() + "//" + getHostname() + getPathname(); | ||
| 29 | } | ||
| 30 | |||
| 31 | QString LocationScriptingInterface::getPathname() { | ||
| 32 | return AddressManager::getInstance().currentPath(); | ||
| 33 | } | ||
| 34 | |||
| 35 | QString LocationScriptingInterface::getHostname() { | ||
| 36 | return NodeList::getInstance()->getDomainHandler().getHostname(); | ||
| 37 | } | ||
| 38 | |||
| 39 | QString LocationScriptingInterface::getDomainID() const { | ||
| 40 | const QUuid& domainID = NodeList::getInstance()->getDomainHandler().getUUID(); | ||
| 41 | return domainID.isNull() ? "" : uuidStringWithoutCurlyBraces(domainID); | ||
| 42 | } | ||
| 43 | |||
| 44 | void LocationScriptingInterface::assign(const QString& url) { | ||
| 45 | QMetaObject::invokeMethod(&AddressManager::getInstance(), "handleLookupString", Q_ARG(const QString&, url)); | ||
| 46 | } | ||
| 47 | |||
| 48 | QScriptValue LocationScriptingInterface::locationGetter(QScriptContext* context, QScriptEngine* engine) { | 21 | QScriptValue LocationScriptingInterface::locationGetter(QScriptContext* context, QScriptEngine* engine) { |
| 49 | return engine->newQObject(getInstance()); | 22 | return engine->newQObject(&AddressManager::getInstance()); |
| 50 | } | 23 | } |
| 51 | 24 | ||
| 52 | QScriptValue LocationScriptingInterface::locationSetter(QScriptContext* context, QScriptEngine* engine) { | 25 | QScriptValue LocationScriptingInterface::locationSetter(QScriptContext* context, QScriptEngine* engine) { |
| 53 | LocationScriptingInterface::getInstance()->assign(context->argument(0).toString()); | 26 | const QVariant& argumentVariant = context->argument(0).toVariant(); |
| 27 | |||
| 28 | |||
| 29 | if (argumentVariant.canConvert(QMetaType::QVariantMap)) { | ||
| 30 | // this argument is a variant map, so we'll assume it's an address map | ||
| 31 | QMetaObject::invokeMethod(&AddressManager::getInstance(), "goToAddressFromObject", | ||
| 32 | Q_ARG(const QVariantMap&, argumentVariant.toMap())); | ||
| 33 | } else { | ||
| 34 | // just try and convert the argument to a string, should be a hifi:// address | ||
| 35 | QMetaObject::invokeMethod(&AddressManager::getInstance(), "handleLookupString", | ||
| 36 | Q_ARG(const QString&, argumentVariant.toString())); | ||
| 37 | } | ||
| 38 | |||
| 54 | return QScriptValue::UndefinedValue; | 39 | return QScriptValue::UndefinedValue; |
| 55 | } | 40 | } |