mirror of
https://github.com/overte-org/overte.git
synced 2025-08-14 11:09:38 +02:00
Merge pull request #14876 from roxanneskelly/QmlMarketplace
Case 20653: QmlMarketplace - disable links if 3dhtml surfaces are not available
This commit is contained in:
commit
74f8615fb7
6 changed files with 36 additions and 32 deletions
|
@ -38,8 +38,8 @@ Rectangle {
|
|||
property bool keyboardEnabled: HMD.active
|
||||
property bool keyboardRaised: false
|
||||
property string searchScopeString: "Featured"
|
||||
property bool isLoggedIn: false;
|
||||
property bool supports3DHTML: true;
|
||||
property bool isLoggedIn: false
|
||||
property bool supports3DHTML: true
|
||||
|
||||
anchors.fill: (typeof parent === undefined) ? undefined : parent
|
||||
|
||||
|
@ -49,7 +49,7 @@ Rectangle {
|
|||
licenseInfo.visible = false;
|
||||
marketBrowseModel.getFirstPage();
|
||||
{
|
||||
if(root.searchString !== undefined && root.searchString !== "") {
|
||||
if(root.searchString !== undefined && root.searchString !== "") {
|
||||
root.searchScopeString = "Search Results: \"" + root.searchString + "\"";
|
||||
} else if (root.categoryString !== "") {
|
||||
root.searchScopeString = root.categoryString;
|
||||
|
@ -498,7 +498,7 @@ Rectangle {
|
|||
"",
|
||||
"",
|
||||
root.sortString,
|
||||
false,
|
||||
WalletScriptingInterface.limitedCommerce,
|
||||
marketBrowseModel.currentPageToRetrieve,
|
||||
marketBrowseModel.itemsPerPage
|
||||
);
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
import Hifi 1.0 as Hifi
|
||||
import QtQuick 2.9
|
||||
import QtQuick.Controls 2.2
|
||||
import QtGraphicalEffects 1.0
|
||||
import stylesUit 1.0
|
||||
import controlsUit 1.0 as HifiControlsUit
|
||||
import "../../../controls" as HifiControls
|
||||
|
@ -423,13 +422,13 @@ Rectangle {
|
|||
elide: Text.ElideRight
|
||||
size: 14
|
||||
|
||||
color: model.link ? hifi.colors.blueHighlight : hifi.colors.baseGray
|
||||
color: (model.link && root.supports3DHTML)? hifi.colors.blueHighlight : hifi.colors.baseGray
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
|
||||
onClicked: {
|
||||
if (model.link) {
|
||||
if (model.link && root.supports3DHTML) {
|
||||
sendToScript({method: 'marketplace_open_link', link: model.link});
|
||||
}
|
||||
}
|
||||
|
@ -570,12 +569,14 @@ Rectangle {
|
|||
text: root.description
|
||||
size: 14
|
||||
color: hifi.colors.lightGray
|
||||
linkColor: hifi.colors.blueHighlight
|
||||
linkColor: root.supports3DHTML ? hifi.colors.blueHighlight : hifi.colors.lightGray
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
textFormat: Text.RichText
|
||||
wrapMode: Text.Wrap
|
||||
onLinkActivated: {
|
||||
sendToScript({method: 'marketplace_open_link', link: link});
|
||||
if (root.supports3DHTML) {
|
||||
sendToScript({method: 'marketplace_open_link', link: link});
|
||||
}
|
||||
}
|
||||
|
||||
onHeightChanged: { footer.evalHeight(); }
|
||||
|
|
|
@ -72,20 +72,17 @@ void QmlMarketplace::getMarketplaceItems(
|
|||
|
||||
void QmlMarketplace::getMarketplaceItem(const QString& marketplaceItemId) {
|
||||
QString endpoint = QString("items/") + marketplaceItemId;
|
||||
QUrlQuery request;
|
||||
send(endpoint, "getMarketplaceItemSuccess", "getMarketplaceItemFailure", QNetworkAccessManager::GetOperation, AccountManagerAuth::Optional, request);
|
||||
send(endpoint, "getMarketplaceItemSuccess", "getMarketplaceItemFailure", QNetworkAccessManager::GetOperation, AccountManagerAuth::Optional);
|
||||
}
|
||||
|
||||
void QmlMarketplace::marketplaceItemLike(const QString& marketplaceItemId, const bool like) {
|
||||
QString endpoint = QString("items/") + marketplaceItemId + "/like";
|
||||
QUrlQuery request;
|
||||
send(endpoint, "marketplaceItemLikeSuccess", "marketplaceItemLikeFailure", like ? QNetworkAccessManager::PostOperation : QNetworkAccessManager::DeleteOperation, AccountManagerAuth::Required, request);
|
||||
send(endpoint, "marketplaceItemLikeSuccess", "marketplaceItemLikeFailure", like ? QNetworkAccessManager::PostOperation : QNetworkAccessManager::DeleteOperation, AccountManagerAuth::Required);
|
||||
}
|
||||
|
||||
void QmlMarketplace::getMarketplaceCategories() {
|
||||
QString endpoint = "categories";
|
||||
QUrlQuery request;
|
||||
send(endpoint, "getMarketplaceCategoriesSuccess", "getMarketplaceCategoriesFailure", QNetworkAccessManager::GetOperation, AccountManagerAuth::None, request);
|
||||
send(endpoint, "getMarketplaceCategoriesSuccess", "getMarketplaceCategoriesFailure", QNetworkAccessManager::GetOperation, AccountManagerAuth::None);
|
||||
}
|
||||
|
||||
|
||||
|
@ -94,14 +91,13 @@ void QmlMarketplace::send(const QString& endpoint, const QString& success, const
|
|||
const QString URL = "/api/v1/marketplace/";
|
||||
JSONCallbackParameters callbackParams(this, success, fail);
|
||||
|
||||
accountManager->sendRequest(URL + endpoint,
|
||||
accountManager->sendRequest(URL + endpoint + "?" + request.toString(),
|
||||
authType,
|
||||
method,
|
||||
callbackParams,
|
||||
QByteArray(),
|
||||
NULL,
|
||||
QVariantMap(),
|
||||
request);
|
||||
QVariantMap());
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -60,7 +60,12 @@ signals:
|
|||
void marketplaceItemLikeResult(QJsonObject result);
|
||||
|
||||
private:
|
||||
void send(const QString& endpoint, const QString& success, const QString& fail, QNetworkAccessManager::Operation method, AccountManagerAuth::Type authType, const QUrlQuery & request);
|
||||
void send(const QString& endpoint,
|
||||
const QString& success,
|
||||
const QString& fail,
|
||||
QNetworkAccessManager::Operation method,
|
||||
AccountManagerAuth::Type authType,
|
||||
const QUrlQuery& request = QUrlQuery());
|
||||
QJsonObject apiResponse(const QString& label, QNetworkReply* reply);
|
||||
QJsonObject failResponse(const QString& label, QNetworkReply* reply);
|
||||
};
|
||||
|
|
|
@ -208,7 +208,7 @@ void AccountManager::setSessionID(const QUuid& sessionID) {
|
|||
}
|
||||
}
|
||||
|
||||
QNetworkRequest AccountManager::createRequest(QString path, AccountManagerAuth::Type authType, const QUrlQuery & query) {
|
||||
QNetworkRequest AccountManager::createRequest(QString path, AccountManagerAuth::Type authType) {
|
||||
QNetworkRequest networkRequest;
|
||||
networkRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
|
||||
networkRequest.setHeader(QNetworkRequest::UserAgentHeader, _userAgentGetter());
|
||||
|
@ -217,17 +217,22 @@ QNetworkRequest AccountManager::createRequest(QString path, AccountManagerAuth::
|
|||
uuidStringWithoutCurlyBraces(_sessionID).toLocal8Bit());
|
||||
|
||||
QUrl requestURL = _authURL;
|
||||
|
||||
|
||||
if (requestURL.isEmpty()) { // Assignment client doesn't set _authURL.
|
||||
requestURL = getMetaverseServerURL();
|
||||
}
|
||||
|
||||
int queryStringLocation = path.indexOf("?");
|
||||
if (path.startsWith("/")) {
|
||||
requestURL.setPath(path);
|
||||
requestURL.setPath(path.left(queryStringLocation));
|
||||
} else {
|
||||
requestURL.setPath("/" + path);
|
||||
requestURL.setPath("/" + path.left(queryStringLocation));
|
||||
}
|
||||
|
||||
if (queryStringLocation >= 0) {
|
||||
QUrlQuery query(path.mid(queryStringLocation+1));
|
||||
requestURL.setQuery(query);
|
||||
}
|
||||
requestURL.setQuery(query);
|
||||
|
||||
if (authType != AccountManagerAuth::None ) {
|
||||
if (hasValidAccessToken()) {
|
||||
|
@ -253,8 +258,7 @@ void AccountManager::sendRequest(const QString& path,
|
|||
const JSONCallbackParameters& callbackParams,
|
||||
const QByteArray& dataByteArray,
|
||||
QHttpMultiPart* dataMultiPart,
|
||||
const QVariantMap& propertyMap,
|
||||
QUrlQuery query) {
|
||||
const QVariantMap& propertyMap) {
|
||||
|
||||
if (thread() != QThread::currentThread()) {
|
||||
QMetaObject::invokeMethod(this, "sendRequest",
|
||||
|
@ -264,14 +268,13 @@ void AccountManager::sendRequest(const QString& path,
|
|||
Q_ARG(const JSONCallbackParameters&, callbackParams),
|
||||
Q_ARG(const QByteArray&, dataByteArray),
|
||||
Q_ARG(QHttpMultiPart*, dataMultiPart),
|
||||
Q_ARG(QVariantMap, propertyMap),
|
||||
Q_ARG(QUrlQuery, query));
|
||||
Q_ARG(QVariantMap, propertyMap));
|
||||
return;
|
||||
}
|
||||
|
||||
QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
|
||||
|
||||
QNetworkRequest networkRequest = createRequest(path, authType, query);
|
||||
QNetworkRequest networkRequest = createRequest(path, authType);
|
||||
|
||||
if (VERBOSE_HTTP_REQUEST_DEBUGGING) {
|
||||
qCDebug(networking) << "Making a request to" << qPrintable(networkRequest.url().toString());
|
||||
|
|
|
@ -61,15 +61,14 @@ class AccountManager : public QObject, public Dependency {
|
|||
public:
|
||||
AccountManager(UserAgentGetter userAgentGetter = DEFAULT_USER_AGENT_GETTER);
|
||||
|
||||
QNetworkRequest createRequest(QString path, AccountManagerAuth::Type authType, const QUrlQuery & query = QUrlQuery());
|
||||
QNetworkRequest createRequest(QString path, AccountManagerAuth::Type authType);
|
||||
Q_INVOKABLE void sendRequest(const QString& path,
|
||||
AccountManagerAuth::Type authType,
|
||||
QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation,
|
||||
const JSONCallbackParameters& callbackParams = JSONCallbackParameters(),
|
||||
const QByteArray& dataByteArray = QByteArray(),
|
||||
QHttpMultiPart* dataMultiPart = NULL,
|
||||
const QVariantMap& propertyMap = QVariantMap(),
|
||||
QUrlQuery query = QUrlQuery());
|
||||
const QVariantMap& propertyMap = QVariantMap());
|
||||
|
||||
void setIsAgent(bool isAgent) { _isAgent = isAgent; }
|
||||
|
||||
|
|
Loading…
Reference in a new issue