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 | 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> | |
| 13 | − | |
| 14 | −#include "NodeList.h" | |
| 12 | +#include <AddressManager.h> | |
| 15 | 13 | |
| 16 | 14 | #include "LocationScriptingInterface.h" |
| 17 | 15 | |
| @@ -20,36 +18,23 @@ LocationScriptingInterface* LocationScriptingInterface::getInstance() { · 2 unmodified lines | ||
| 20 | 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 | 21 | QScriptValue LocationScriptingInterface::locationGetter(QScriptContext* context, QScriptEngine* engine) { |
| 49 | − return engine->newQObject(getInstance()); | |
| 22 | + return engine->newQObject(&AddressManager::getInstance()); | |
| 50 | 23 | } |
| 51 | 24 | |
| 52 | 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 | 39 | return QScriptValue::UndefinedValue; |
| 55 | 40 | } |