From 1cc086f9c633bce83aa2db0c188323e7ee6e6a1d Mon Sep 17 00:00:00 2001 From: Alexander Ivash Date: Wed, 16 May 2018 12:51:15 +0300 Subject: [PATCH] cleanup and bugfixing --- interface/resources/qml/hifi/AvatarApp.qml | 22 ++------ .../qml/hifi/avatarapp/AvatarsModel.qml | 12 ++-- .../hifi/avatarapp/CreateFavoriteDialog.qml | 2 +- scripts/system/avatarapp.js | 56 +++++++++---------- 4 files changed, 39 insertions(+), 53 deletions(-) diff --git a/interface/resources/qml/hifi/AvatarApp.qml b/interface/resources/qml/hifi/AvatarApp.qml index 3caadc309b..d113536442 100644 --- a/interface/resources/qml/hifi/AvatarApp.qml +++ b/interface/resources/qml/hifi/AvatarApp.qml @@ -32,23 +32,13 @@ Rectangle { property var jointNames; property string avatarName: currentAvatar ? currentAvatar.name : '' - property string avatarUrl: currentAvatar ? currentAvatar.url : null + property string avatarUrl: currentAvatar ? currentAvatar.thumbnailUrl : null property bool isAvatarInFavorites: currentAvatar ? allAvatars.findAvatar(currentAvatar.name) !== undefined : false property int avatarWearablesCount: currentAvatar ? currentAvatar.wearables.count : 0 property var currentAvatar: null; function setCurrentAvatar(avatar, bookmarkName) { - var avatarThumbnailUrl = allAvatars.makeThumbnailUrl(avatar.avatarUrl); - var currentAvatarObject = { - 'name' : bookmarkName, - 'scale' : avatar.avatarScale, - 'url' : avatarThumbnailUrl, - 'wearables' : avatar.avatarEntites ? avatar.avatarEntites : [], - 'attachments' : avatar.attachments ? avatar.attachments : [], - 'entry' : avatar, - 'getMoreAvatars' : false - }; - + var currentAvatarObject = allAvatars.makeAvatarObject(avatar, bookmarkName); currentAvatar = currentAvatarModel.makeAvatarEntry(currentAvatarObject); console.debug('AvatarApp.qml: currentAvatarObject: ', currentAvatarObject, 'currentAvatar: ', currentAvatar, JSON.stringify(currentAvatar.wearables, 0, 4)); console.debug('currentAvatar.wearables: ', currentAvatar.wearables); @@ -555,7 +545,7 @@ Rectangle { id: pageOfAvatars property bool isUpdating: false; - property var getMoreAvatarsEntry: {'url' : '', 'name' : '', 'getMoreAvatars' : true} + property var getMoreAvatarsEntry: {'thumbnailUrl' : '', 'name' : '', 'getMoreAvatars' : true} function appendGetAvatars() { append(getMoreAvatarsEntry); @@ -602,7 +592,7 @@ Rectangle { AvatarThumbnail { id: favoriteAvatarImage - imageUrl: url + imageUrl: thumbnailUrl border.color: container.highlighted ? style.colors.blueHighlight : 'transparent' border.width: container.highlighted ? 2 : 0 wearablesCount: { @@ -646,13 +636,13 @@ Rectangle { color: '#AFAFAF' opacity: 0.4 radius: 5 - visible: isInManageState && !container.highlighted && url !== '' + visible: isInManageState && !container.highlighted && thumbnailUrl !== '' } HiFiGlyphs { anchors.fill: parent text: "{" - visible: isInManageState && !container.highlighted && url !== '' + visible: isInManageState && !container.highlighted && thumbnailUrl !== '' horizontalAlignment: Text.AlignHCenter size: 56 } diff --git a/interface/resources/qml/hifi/avatarapp/AvatarsModel.qml b/interface/resources/qml/hifi/avatarapp/AvatarsModel.qml index c31bc8366e..8555775c55 100644 --- a/interface/resources/qml/hifi/avatarapp/AvatarsModel.qml +++ b/interface/resources/qml/hifi/avatarapp/AvatarsModel.qml @@ -16,14 +16,14 @@ ListModel { return avatarThumbnailUrl; } - function makeAvatarEntry(avatar, avatarName) { + function makeAvatarObject(avatar, avatarName) { console.debug('makeAvatarEntry: ', avatarName, JSON.stringify(avatar)); var avatarThumbnailUrl = makeThumbnailUrl(avatar.avatarUrl); return { 'name' : avatarName, - 'scale' : avatar.avatarScale, - 'url' : avatarThumbnailUrl, + 'avatarScale' : avatar.avatarScale, + 'thumbnailUrl' : avatarThumbnailUrl, 'wearables' : avatar.avatarEntites ? avatar.avatarEntites : [], 'attachments' : avatar.attachments ? avatar.attachments : [], 'entry' : avatar, @@ -35,7 +35,7 @@ ListModel { function addAvatarEntry(avatar, avatarName) { console.debug('addAvatarEntry: ', avatarName); - var avatarEntry = makeAvatarEntry(avatar, avatarName); + var avatarEntry = makeAvatarObject(avatar, avatarName); append(avatarEntry); return allAvatars.count - 1; @@ -44,7 +44,7 @@ ListModel { function populate(bookmarks) { for(var avatarName in bookmarks) { var avatar = bookmarks[avatarName]; - var avatarEntry = makeAvatarEntry(avatar, avatarName); + var avatarEntry = makeAvatarObject(avatar, avatarName); append(avatarEntry); } @@ -175,7 +175,7 @@ ListModel { var thesame = true; var bookmarkedAvatar = allAvatars.get(i); - if(bookmarkedAvatar.avatarUrl !== avatar.avatarUrl) + if(bookmarkedAvatar.thumbnailUrl !== avatar.thumbnailUrl) continue; if(bookmarkedAvatar.avatarScale !== avatar.avatarScale) diff --git a/interface/resources/qml/hifi/avatarapp/CreateFavoriteDialog.qml b/interface/resources/qml/hifi/avatarapp/CreateFavoriteDialog.qml index f5b6a50a5e..70bfefe444 100644 --- a/interface/resources/qml/hifi/avatarapp/CreateFavoriteDialog.qml +++ b/interface/resources/qml/hifi/avatarapp/CreateFavoriteDialog.qml @@ -26,7 +26,7 @@ Rectangle { function open(avatar) { favoriteName.text = ''; - avatarImageUrl = avatar.url; + avatarImageUrl = avatar.thumbnailUrl; wearablesCount = avatar.wearables.count; visible = true; diff --git a/scripts/system/avatarapp.js b/scripts/system/avatarapp.js index 5632ee3f92..400951287b 100644 --- a/scripts/system/avatarapp.js +++ b/scripts/system/avatarapp.js @@ -316,16 +316,6 @@ function startup() { }); button.clicked.connect(onTabletButtonClicked); tablet.screenChanged.connect(onTabletScreenChanged); - AvatarBookmarks.bookmarkLoaded.connect(onBookmarkLoaded); - AvatarBookmarks.bookmarkDeleted.connect(onBookmarkDeleted); - AvatarBookmarks.bookmarkAdded.connect(onBookmarkAdded); - -// Window.domainChanged.connect(clearLocalQMLDataAndClosePAL); -// Window.domainConnectionRefused.connect(clearLocalQMLDataAndClosePAL); -// Users.avatarDisconnected.connect(avatarDisconnected); -// AvatarList.avatarAddedEvent.connect(avatarAdded); -// AvatarList.avatarRemovedEvent.connect(avatarRemoved); -// AvatarList.avatarSessionChangedEvent.connect(avatarSessionChanged); } startup(); @@ -344,6 +334,17 @@ function off() { ensureWearableSelected(null); Entities.mousePressOnEntity.disconnect(onSelectedEntity); } + + AvatarBookmarks.bookmarkLoaded.disconnect(onBookmarkLoaded); + AvatarBookmarks.bookmarkDeleted.disconnect(onBookmarkDeleted); + AvatarBookmarks.bookmarkAdded.disconnect(onBookmarkAdded); + +} + +function on() { + AvatarBookmarks.bookmarkLoaded.connect(onBookmarkLoaded); + AvatarBookmarks.bookmarkDeleted.connect(onBookmarkDeleted); + AvatarBookmarks.bookmarkAdded.connect(onBookmarkAdded); } function tabletVisibilityChanged() { @@ -352,8 +353,6 @@ function tabletVisibilityChanged() { } } -var onAvatarAppScreen = false; - function onTabletButtonClicked() { if (onAvatarAppScreen) { // for toolbar-mode: go back to home screen, this will close the window. @@ -382,16 +381,26 @@ function wireEventBridge(on) { } } +var onAvatarAppScreen = false; function onTabletScreenChanged(type, url) { console.debug('avatarapp.js: onTabletScreenChanged: ', type, url); - onAvatarAppScreen = (type === "QML" && url === AVATARAPP_QML_SOURCE); - wireEventBridge(onAvatarAppScreen); + var onAvatarAppScreenNow = (type === "QML" && url === AVATARAPP_QML_SOURCE); + wireEventBridge(onAvatarAppScreenNow); // for toolbar mode: change button to active when window is first openend, false otherwise. - button.editProperties({isActive: onAvatarAppScreen}); + button.editProperties({isActive: onAvatarAppScreenNow}); - if (onAvatarAppScreen) { + if (!onAvatarAppScreen && onAvatarAppScreenNow) { + console.debug('entering avatarapp'); + on(); + } else if(onAvatarAppScreen && !onAvatarAppScreenNow) { + console.debug('leaving avatarapp'); + off(); + } + onAvatarAppScreen = onAvatarAppScreenNow; + + if(onAvatarAppScreenNow) { var message = { 'method' : 'initialize', 'data' : { @@ -402,12 +411,7 @@ function onTabletScreenChanged(type, url) { sendToQml(message) } - console.debug('onAvatarAppScreen: ', onAvatarAppScreen); - - // disable sphere overlays when not on avatarapp screen. - if (!onAvatarAppScreen) { - off(); - } + console.debug('onAvatarAppScreenNow: ', onAvatarAppScreenNow); } function shutdown() { @@ -419,15 +423,7 @@ function shutdown() { button.clicked.disconnect(onTabletButtonClicked); tablet.removeButton(button); tablet.screenChanged.disconnect(onTabletScreenChanged); - AvatarBookmarks.bookmarkLoaded.disconnect(onBookmarkLoaded); - AvatarBookmarks.bookmarkDeleted.disconnect(onBookmarkDeleted); - AvatarBookmarks.bookmarkAdded.disconnect(onBookmarkAdded); -// Window.domainChanged.disconnect(clearLocalQMLDataAndClosePAL); -// Window.domainConnectionRefused.disconnect(clearLocalQMLDataAndClosePAL); -// AvatarList.avatarAddedEvent.disconnect(avatarAdded); -// AvatarList.avatarRemovedEvent.disconnect(avatarRemoved); -// AvatarList.avatarSessionChangedEvent.disconnect(avatarSessionChanged); off(); }