Merge branch 'feat/avatarTools/avatarPackager' of github.com:thoys/hifi into feat/avatarTools/avatarPackager

This commit is contained in:
Thijs Wenker 2019-01-03 11:09:27 +01:00
commit a035a2f639
5 changed files with 82 additions and 42 deletions

View file

@ -146,6 +146,8 @@ Item {
} }
AvatarPackagerHeader { AvatarPackagerHeader {
z: 100
id: avatarPackagerHeader id: avatarPackagerHeader
colorScheme: root.colorScheme colorScheme: root.colorScheme
onBackButtonClicked: { onBackButtonClicked: {
@ -260,22 +262,49 @@ Item {
} }
} }
Column { Item {
visible: AvatarPackagerCore.recentProjects.length > 0 anchors.fill: parent
anchors {
fill: parent
topMargin: 18
leftMargin: 16
rightMargin: 16
}
spacing: 10
Repeater { visible: AvatarPackagerCore.recentProjects.length > 0
model: AvatarPackagerCore.recentProjects
AvatarProjectCard { RalewayRegular {
title: modelData.name id: recentProjectsText
path: modelData.projectPath
onOpen: avatarPackager.openProject(modelData.path) color: 'white'
visible: AvatarPackagerCore.currentAvatarProject !== null
anchors.top: parent.top
anchors.left: parent.left
anchors.topMargin: 16
anchors.leftMargin: 16
size: 20
text: "Recent Projects"
onLinkActivated: fileListPopup.open()
}
Column {
anchors {
left: parent.left
right: parent.right
bottom: parent.bottom
top: recentProjectsText.bottom
topMargin: 16
leftMargin: 16
rightMargin: 16
}
spacing: 10
Repeater {
model: AvatarPackagerCore.recentProjects
AvatarProjectCard {
title: modelData.name
path: modelData.projectPath
onOpen: avatarPackager.openProject(modelData.path)
}
} }
} }
} }

View file

@ -2,8 +2,9 @@ import QtQuick 2.6
import "../../controlsUit" 1.0 as HifiControls import "../../controlsUit" 1.0 as HifiControls
import "../../stylesUit" 1.0 import "../../stylesUit" 1.0
import "../avatarapp" 1.0
Rectangle { ShadowRectangle {
id: root id: root
width: parent.width width: parent.width
@ -24,30 +25,21 @@ Rectangle {
signal backButtonClicked signal backButtonClicked
signal docsButtonClicked signal docsButtonClicked
RalewaySemiBold { RalewayButton {
id: back id: back
visible: backButtonEnabled && backButtonVisible visible: backButtonEnabled && backButtonVisible
size: 28 size: 28
anchors.top: parent.top anchors.top: parent.top
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: 16 anchors.leftMargin: 16
anchors.verticalCenter: back.verticalCenter anchors.verticalCenter: back.verticalCenter
text: "◀" text: "◀"
color: textColor
MouseArea { onClicked: root.backButtonClicked()
anchors.fill: parent
onClicked: root.backButtonClicked()
hoverEnabled: true
onEntered: { state = "hovering" }
onExited: { state = "" }
states: [
State {
name: "hovering"
PropertyChanges { target: back; color: hoverTextColor }
}
]
}
} }
Item { Item {
id: titleArea id: titleArea
@ -124,7 +116,7 @@ Rectangle {
} }
} }
RalewaySemiBold { RalewayButton {
id: docs id: docs
visible: false visible: false
size: 28 size: 28
@ -133,13 +125,12 @@ Rectangle {
anchors.right: parent.right anchors.right: parent.right
anchors.rightMargin: 16 anchors.rightMargin: 16
anchors.verticalCenter: docs.verticalCenter anchors.verticalCenter: docs.verticalCenter
text: qsTr("Docs") text: qsTr("Docs")
color: "white" color: "white"
MouseArea {
anchors.fill: parent onClicked: {
onClicked: { docsButtonClicked();
docsButtonClicked();
}
} }
} }
} }

View file

@ -1,4 +1,5 @@
import QtQuick 2.0 import QtQuick 2.0
import QtGraphicalEffects 1.0
import "../../controlsUit" 1.0 as HifiControls import "../../controlsUit" 1.0 as HifiControls
import "../../stylesUit" 1.0 import "../../stylesUit" 1.0
@ -63,7 +64,7 @@ Item {
rightMargin: 16 rightMargin: 16
} }
text: "<title missing>" text: "<title missing>"
size: 16 size: 24
} }
RalewayRegular { RalewayRegular {
@ -88,4 +89,14 @@ Item {
onClicked: open() onClicked: open()
} }
} }
DropShadow {
id: shadow
anchors.fill: background
radius: 4
horizontalOffset: 0
verticalOffset: 4
color: Qt.rgba(0, 0, 0, 0.25)
source: background
}
} }

View file

@ -150,10 +150,12 @@ Menu::Menu() {
qApp, SLOT(packageModel())); qApp, SLOT(packageModel()));
// Edit > Avatar Packager // Edit > Avatar Packager
#ifndef Q_OS_ANDROID
action = addActionToQMenuAndActionHash(editMenu, MenuOption::AvatarPackager); action = addActionToQMenuAndActionHash(editMenu, MenuOption::AvatarPackager);
connect(action, &QAction::triggered, [] { connect(action, &QAction::triggered, [] {
DependencyManager::get<AvatarPackager>()->open(); DependencyManager::get<AvatarPackager>()->open();
}); });
#endif
// Edit > Reload All Content // Edit > Reload All Content
addActionToQMenuAndActionHash(editMenu, MenuOption::ReloadContent, 0, qApp, SLOT(reloadResourceCaches())); addActionToQMenuAndActionHash(editMenu, MenuOption::ReloadContent, 0, qApp, SLOT(reloadResourceCaches()));

View file

@ -14,11 +14,14 @@
#include <AccountManager.h> #include <AccountManager.h>
#include <DependencyManager.h> #include <DependencyManager.h>
#include <QBuffer> #ifndef Q_OS_ANDROID
#include <quazip5/quazip.h> #include <quazip5/quazip.h>
#include <quazip5/quazipfile.h> #include <quazip5/quazipfile.h>
#endif
#include <QTimer>
#include <QBuffer>
#include <qtimer.h>
#include <QFile> #include <QFile>
#include <QFileInfo> #include <QFileInfo>
@ -125,8 +128,12 @@ void MarketplaceItemUploader::doGetCategories() {
} }
void MarketplaceItemUploader::doUploadAvatar() { void MarketplaceItemUploader::doUploadAvatar() {
#ifdef Q_OS_ANDROID
qWarning() << "Marketplace uploading is not supported on Android";
setError(Error::Unknown);
return;
#else
QBuffer buffer{ &_fileData }; QBuffer buffer{ &_fileData };
//buffer.open(QIODevice::WriteOnly);
QuaZip zip{ &buffer }; QuaZip zip{ &buffer };
if (!zip.open(QuaZip::Mode::mdAdd)) { if (!zip.open(QuaZip::Mode::mdAdd)) {
qWarning() << "Failed to open zip"; qWarning() << "Failed to open zip";
@ -227,6 +234,7 @@ void MarketplaceItemUploader::doUploadAvatar() {
}); });
setState(State::UploadingAvatar); setState(State::UploadingAvatar);
#endif
} }
void MarketplaceItemUploader::doWaitForInventory() { void MarketplaceItemUploader::doWaitForInventory() {
@ -277,7 +285,6 @@ void MarketplaceItemUploader::doWaitForInventory() {
auto version = assetObject["version"]; auto version = assetObject["version"];
auto valid = assetObject["valid"]; auto valid = assetObject["valid"];
if (version.isDouble() && valid.isBool()) { if (version.isDouble() && valid.isBool()) {
int versionInt = version.toDouble();
if ((int)version.toDouble() >= _itemVersion && valid.toBool()) { if ((int)version.toDouble() >= _itemVersion && valid.toBool()) {
return true; return true;
} }