From e74fccb49dc4f2d51ed9358bd49e8754a1967964 Mon Sep 17 00:00:00 2001 From: Vegaslon Date: Sat, 1 Feb 2020 08:54:06 -0500 Subject: [PATCH 1/3] Allow users to set avatar thumbnails that show in avatar app. --- .../qml/hifi/avatarapp/AvatarsModel.qml | 42 ++++++++++++++++--- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/interface/resources/qml/hifi/avatarapp/AvatarsModel.qml b/interface/resources/qml/hifi/avatarapp/AvatarsModel.qml index bfd66f1a30..d65e8e21ae 100644 --- a/interface/resources/qml/hifi/avatarapp/AvatarsModel.qml +++ b/interface/resources/qml/hifi/avatarapp/AvatarsModel.qml @@ -20,18 +20,48 @@ ListModel { .split('%marketId%').join(extractMarketId(avatarUrl)); return marketItemUrl; + } + + function makeMarketThumbnailUrl(marketId) { + var avatarThumbnailUrl = "https://hifi-metaverse.s3-us-west-1.amazonaws.com/marketplace/previews/%marketId%/large/hifi-mp-%marketId%.jpg" + .split('%marketId%').join(marketId); + + return avatarThumbnailUrl; + } + + function trimFileExtension(url) { + url = url.substring(0, (url.indexOf("#") == -1) ? url.length : url.indexOf("#")); + url = url.substring(0, (url.indexOf("?") == -1) ? url.length : url.indexOf("?")); + url = url.substring(0, url.lastIndexOf(".")); + + return url; + } + + function imageExists(image_url){ + + var http = new XMLHttpRequest(); + + http.open('HEAD', image_url, false); + http.send(); + + return http.status != 404; + } function makeThumbnailUrl(avatarUrl) { var marketId = extractMarketId(avatarUrl); - if (marketId === '') { + if (marketId !== '') { + return makeMarketThumbnailUrl(marketId); + } + + var avatarThumbnailFileUrl = trimFileExtension(avatarUrl)+".jpg"; + var exists= imageExists(avatarThumbnailFileUrl); + + if (!exists) { return ''; } - - var avatarThumbnailUrl = "https://hifi-metaverse.s3-us-west-1.amazonaws.com/marketplace/previews/%marketId%/large/hifi-mp-%marketId%.jpg" - .split('%marketId%').join(marketId); - - return avatarThumbnailUrl; + + return avatarThumbnailFileUrl; } function makeAvatarObject(avatar, avatarName) { From 6db15510dbd9b420df197a62fe149153dae4399b Mon Sep 17 00:00:00 2001 From: Vegaslon Date: Mon, 10 Feb 2020 16:20:22 -0500 Subject: [PATCH 2/3] Change name of variable and fix indention --- .../qml/hifi/avatarapp/AvatarsModel.qml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/interface/resources/qml/hifi/avatarapp/AvatarsModel.qml b/interface/resources/qml/hifi/avatarapp/AvatarsModel.qml index d65e8e21ae..c04efc9562 100644 --- a/interface/resources/qml/hifi/avatarapp/AvatarsModel.qml +++ b/interface/resources/qml/hifi/avatarapp/AvatarsModel.qml @@ -22,7 +22,7 @@ ListModel { return marketItemUrl; } - function makeMarketThumbnailUrl(marketId) { + function makeMarketThumbnailUrl(marketId) { var avatarThumbnailUrl = "https://hifi-metaverse.s3-us-west-1.amazonaws.com/marketplace/previews/%marketId%/large/hifi-mp-%marketId%.jpg" .split('%marketId%').join(marketId); @@ -30,14 +30,14 @@ ListModel { } function trimFileExtension(url) { - url = url.substring(0, (url.indexOf("#") == -1) ? url.length : url.indexOf("#")); - url = url.substring(0, (url.indexOf("?") == -1) ? url.length : url.indexOf("?")); - url = url.substring(0, url.lastIndexOf(".")); + var trimmedUrl = url.substring(0, (url.indexOf("#") == -1) ? url.length : url.indexOf("#")); + trimmedUrl = trimmedUrl.substring(0, (trimmedUrl.indexOf("?") == -1) ? trimmedUrl.length : trimmedUrl.indexOf("?")); + trimmedUrl = trimmedUrl.substring(0, trimmedUrl.lastIndexOf(".")); - return url; + return trimmedUrl; } - function imageExists(image_url){ + function imageExists(image_url){ var http = new XMLHttpRequest(); @@ -55,9 +55,9 @@ ListModel { } var avatarThumbnailFileUrl = trimFileExtension(avatarUrl)+".jpg"; - var exists= imageExists(avatarThumbnailFileUrl); + var thumbnailExist = imageExists(avatarThumbnailFileUrl); - if (!exists) { + if (!thumbnailExist) { return ''; } From c2b375862c411a79d0e318a414ddf56625452283 Mon Sep 17 00:00:00 2001 From: Vegaslon Date: Tue, 11 Feb 2020 21:50:40 -0500 Subject: [PATCH 3/3] Style changes as requested --- .../resources/qml/hifi/avatarapp/AvatarsModel.qml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/interface/resources/qml/hifi/avatarapp/AvatarsModel.qml b/interface/resources/qml/hifi/avatarapp/AvatarsModel.qml index c04efc9562..012cfc3b79 100644 --- a/interface/resources/qml/hifi/avatarapp/AvatarsModel.qml +++ b/interface/resources/qml/hifi/avatarapp/AvatarsModel.qml @@ -30,21 +30,21 @@ ListModel { } function trimFileExtension(url) { - var trimmedUrl = url.substring(0, (url.indexOf("#") == -1) ? url.length : url.indexOf("#")); - trimmedUrl = trimmedUrl.substring(0, (trimmedUrl.indexOf("?") == -1) ? trimmedUrl.length : trimmedUrl.indexOf("?")); + var trimmedUrl = url.substring(0, (url.indexOf("#") === -1) ? url.length : url.indexOf("#")); + trimmedUrl = trimmedUrl.substring(0, (trimmedUrl.indexOf("?") === -1) ? trimmedUrl.length : trimmedUrl.indexOf("?")); trimmedUrl = trimmedUrl.substring(0, trimmedUrl.lastIndexOf(".")); return trimmedUrl; } - function imageExists(image_url){ + function imageExists(imageUrl) { var http = new XMLHttpRequest(); - http.open('HEAD', image_url, false); + http.open('HEAD', imageUrl, false); http.send(); - return http.status != 404; + return http.status !== 404; } @@ -54,7 +54,7 @@ ListModel { return makeMarketThumbnailUrl(marketId); } - var avatarThumbnailFileUrl = trimFileExtension(avatarUrl)+".jpg"; + var avatarThumbnailFileUrl = trimFileExtension(avatarUrl) + ".jpg"; var thumbnailExist = imageExists(avatarThumbnailFileUrl); if (!thumbnailExist) {