cleanup and bugfixing

This commit is contained in:
Alexander Ivash 2018-05-16 12:51:15 +03:00
parent 74bfea59cc
commit 1cc086f9c6
4 changed files with 39 additions and 53 deletions

View file

@ -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
}

View file

@ -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)

View file

@ -26,7 +26,7 @@ Rectangle {
function open(avatar) {
favoriteName.text = '';
avatarImageUrl = avatar.url;
avatarImageUrl = avatar.thumbnailUrl;
wearablesCount = avatar.wearables.count;
visible = true;

View file

@ -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();
}