History

handle location set/get in AddressManager, handle set to address map

Stephen Birarda committed 12 years ago

Commit 27f7cdb1 parent b90db284 files · +39 −62Browse files

Showing the changes to interface/src/scripting/LocationScriptingInterface.cpp (1 of 4 files). Show all

Unified · Split

interface/src/scripting/LocationScriptingInterface.cpp+15−30
@@ -9,9 +9,7 @@ · 8 unmodified lines
9// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html9// 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
23bool LocationScriptingInterface::isConnected() {
24 return NodeList::getInstance()->getDomainHandler().isConnected();
25}
26
27QString LocationScriptingInterface::getHref() {
28 return getProtocol() + "//" + getHostname() + getPathname();
29}
30
31QString LocationScriptingInterface::getPathname() {
32 return AddressManager::getInstance().currentPath();
33}
34
35QString LocationScriptingInterface::getHostname() {
36 return NodeList::getInstance()->getDomainHandler().getHostname();
37}
38
39QString LocationScriptingInterface::getDomainID() const {
40 const QUuid& domainID = NodeList::getInstance()->getDomainHandler().getUUID();
41 return domainID.isNull() ? "" : uuidStringWithoutCurlyBraces(domainID);
42}
43
44void LocationScriptingInterface::assign(const QString& url) {
45 QMetaObject::invokeMethod(&AddressManager::getInstance(), "handleLookupString", Q_ARG(const QString&, url));
46}
47
48QScriptValue LocationScriptingInterface::locationGetter(QScriptContext* context, QScriptEngine* engine) {21QScriptValue LocationScriptingInterface::locationGetter(QScriptContext* context, QScriptEngine* engine) {
49 return engine->newQObject(getInstance());22 return engine->newQObject(&AddressManager::getInstance());
50}23}
51 24
52QScriptValue LocationScriptingInterface::locationSetter(QScriptContext* context, QScriptEngine* engine) {25QScriptValue 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}