repairs for new location lookup

This commit is contained in:
Stephen Birarda 2014-09-12 09:52:34 -07:00
parent 745edb8b0a
commit 74295a3869
4 changed files with 31 additions and 25 deletions

View file

@ -390,6 +390,7 @@ namespace MenuOption {
const QString FullscreenMirror = "Fullscreen Mirror"; const QString FullscreenMirror = "Fullscreen Mirror";
const QString GlowMode = "Cycle Glow Mode"; const QString GlowMode = "Cycle Glow Mode";
const QString GlowWhenSpeaking = "Glow When Speaking"; const QString GlowWhenSpeaking = "Glow When Speaking";
const QString GoToUser = "Go To User";
const QString HeadMouse = "Head Mouse"; const QString HeadMouse = "Head Mouse";
const QString IncreaseAvatarSize = "Increase Avatar Size"; const QString IncreaseAvatarSize = "Increase Avatar Size";
const QString IncreaseVoxelSize = "Increase Voxel Size"; const QString IncreaseVoxelSize = "Increase Voxel Size";

View file

@ -18,14 +18,13 @@
#include "Application.h" #include "Application.h"
#include "UserLocationsModel.h" #include "UserLocationsModel.h"
static const QString PLACES_GET = "/api/v1/places"; static const QString LOCATIONS_GET = "/api/v1/locations";
static const QString PLACES_UPDATE = "/api/v1/places/%1"; static const QString LOCATION_UPDATE_OR_DELETE = "/api/v1/locations/%1";
static const QString PLACES_DELETE= "/api/v1/places/%1";
UserLocation::UserLocation(QString id, QString name, QString location) : UserLocation::UserLocation(const QString& id, const QString& name, const QString& address) :
_id(id), _id(id),
_name(name), _name(name),
_location(location), _address(address),
_previousName(name), _previousName(name),
_updating(false) { _updating(false) {
} }
@ -35,10 +34,15 @@ void UserLocation::requestRename(const QString& newName) {
_updating = true; _updating = true;
JSONCallbackParameters callbackParams(this, "handleRenameResponse", this, "handleRenameError"); JSONCallbackParameters callbackParams(this, "handleRenameResponse", this, "handleRenameError");
QJsonObject jsonNameObject; QJsonObject jsonNameObject;
jsonNameObject.insert("name", QJsonValue(newName)); jsonNameObject.insert("name", newName);
QJsonObject locationObject;
locationObject.insert("location", jsonNameObject);
QJsonDocument jsonDocument(jsonNameObject); QJsonDocument jsonDocument(jsonNameObject);
AccountManager::getInstance().authenticatedRequest(PLACES_UPDATE.arg(_id), AccountManager::getInstance().authenticatedRequest(LOCATION_UPDATE_OR_DELETE.arg(_id),
QNetworkAccessManager::PutOperation, QNetworkAccessManager::PutOperation,
callbackParams, callbackParams,
jsonDocument.toJson()); jsonDocument.toJson());
@ -54,7 +58,9 @@ void UserLocation::handleRenameResponse(const QJsonObject& responseData) {
QJsonValue status = responseData["status"]; QJsonValue status = responseData["status"];
if (!status.isUndefined() && status.toString() == "success") { if (!status.isUndefined() && status.toString() == "success") {
QString updatedName = responseData["data"].toObject()["name"].toString(); qDebug() << responseData;
QString updatedName = responseData["data"].toObject()["location"].toObject()["name"].toString();
qDebug() << "The updated name is" << updatedName;
_name = updatedName; _name = updatedName;
} else { } else {
_name = _previousName; _name = _previousName;
@ -90,7 +96,7 @@ void UserLocation::requestDelete() {
_updating = true; _updating = true;
JSONCallbackParameters callbackParams(this, "handleDeleteResponse", this, "handleDeleteError"); JSONCallbackParameters callbackParams(this, "handleDeleteResponse", this, "handleDeleteError");
AccountManager::getInstance().authenticatedRequest(PLACES_DELETE.arg(_id), AccountManager::getInstance().authenticatedRequest(LOCATION_UPDATE_OR_DELETE.arg(_id),
QNetworkAccessManager::DeleteOperation, QNetworkAccessManager::DeleteOperation,
callbackParams); callbackParams);
} }
@ -153,7 +159,7 @@ void UserLocationsModel::refresh() {
endResetModel(); endResetModel();
JSONCallbackParameters callbackParams(this, "handleLocationsResponse"); JSONCallbackParameters callbackParams(this, "handleLocationsResponse");
AccountManager::getInstance().authenticatedRequest(PLACES_GET, AccountManager::getInstance().authenticatedRequest(LOCATIONS_GET,
QNetworkAccessManager::GetOperation, QNetworkAccessManager::GetOperation,
callbackParams); callbackParams);
} }
@ -165,14 +171,13 @@ void UserLocationsModel::handleLocationsResponse(const QJsonObject& responseData
QJsonValue status = responseData["status"]; QJsonValue status = responseData["status"];
if (!status.isUndefined() && status.toString() == "success") { if (!status.isUndefined() && status.toString() == "success") {
beginResetModel(); beginResetModel();
QJsonArray locations = responseData["data"].toObject()["places"].toArray(); QJsonArray locations = responseData["data"].toObject()["locations"].toArray();
for (QJsonArray::const_iterator it = locations.constBegin(); it != locations.constEnd(); it++) { for (QJsonArray::const_iterator it = locations.constBegin(); it != locations.constEnd(); it++) {
QJsonObject location = (*it).toObject(); QJsonObject location = (*it).toObject();
QJsonObject address = location["address"].toObject(); QString locationAddress = "hifi://" + location["domain"].toObject()["name"].toString()
+ location["path"].toString();
UserLocation* userLocation = new UserLocation(location["id"].toString(), location["name"].toString(), UserLocation* userLocation = new UserLocation(location["id"].toString(), location["name"].toString(),
"hifi://" + address["domain"].toString() locationAddress);
+ "/" + address["position"].toString()
+ "/" + address["orientation"].toString());
_locations.append(userLocation); _locations.append(userLocation);
connect(userLocation, &UserLocation::deleted, this, &UserLocationsModel::removeLocation); connect(userLocation, &UserLocation::deleted, this, &UserLocationsModel::removeLocation);
connect(userLocation, &UserLocation::updated, this, &UserLocationsModel::update); connect(userLocation, &UserLocation::updated, this, &UserLocationsModel::update);
@ -214,8 +219,8 @@ QVariant UserLocationsModel::data(const QModelIndex& index, int role) const {
return QVariant(); return QVariant();
} else if (index.column() == NameColumn) { } else if (index.column() == NameColumn) {
return _locations[index.row()]->name(); return _locations[index.row()]->name();
} else if (index.column() == LocationColumn) { } else if (index.column() == AddressColumn) {
return QVariant(_locations[index.row()]->location()); return QVariant(_locations[index.row()]->address());
} }
} }
@ -226,7 +231,7 @@ QVariant UserLocationsModel::headerData(int section, Qt::Orientation orientation
if (orientation == Qt::Horizontal && role == Qt::DisplayRole) { if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
switch (section) { switch (section) {
case NameColumn: return "Name"; case NameColumn: return "Name";
case LocationColumn: return "Location"; case AddressColumn: return "Address";
default: return QVariant(); default: return QVariant();
} }
} }

View file

@ -20,14 +20,14 @@
class UserLocation : public QObject { class UserLocation : public QObject {
Q_OBJECT Q_OBJECT
public: public:
UserLocation(QString id, QString name, QString location); UserLocation(const QString& id, const QString& name, const QString& address);
bool isUpdating() { return _updating; } bool isUpdating() { return _updating; }
void requestRename(const QString& newName); void requestRename(const QString& newName);
void requestDelete(); void requestDelete();
QString id() { return _id; } const QString& id() { return _id; }
QString name() { return _name; } const QString& name() { return _name; }
QString location() { return _location; } const QString& address() { return _address; }
public slots: public slots:
void handleRenameResponse(const QJsonObject& responseData); void handleRenameResponse(const QJsonObject& responseData);
@ -42,7 +42,7 @@ signals:
private: private:
QString _id; QString _id;
QString _name; QString _name;
QString _location; QString _address;
QString _previousName; QString _previousName;
bool _updating; bool _updating;
@ -65,7 +65,7 @@ public:
enum Columns { enum Columns {
NameColumn = 0, NameColumn = 0,
LocationColumn AddressColumn
}; };
public slots: public slots:

View file

@ -51,7 +51,7 @@ void UserLocationsDialog::updateEnabled() {
} }
void UserLocationsDialog::goToModelIndex(const QModelIndex& index) { void UserLocationsDialog::goToModelIndex(const QModelIndex& index) {
QVariant location = _proxyModel.data(index.sibling(index.row(), UserLocationsModel::LocationColumn)); QVariant location = _proxyModel.data(index.sibling(index.row(), UserLocationsModel::AddressColumn));
// Menu::getInstance()->goToURL(location.toString()); // Menu::getInstance()->goToURL(location.toString());
} }