Blocks drag does not work yet

This commit is contained in:
Elisa Lupin-Jimenez 2017-07-26 16:58:23 -07:00
parent 9cfc4dc91b
commit acb088b263
4 changed files with 34 additions and 18 deletions

View file

@ -6200,12 +6200,21 @@ void Application::addAssetToWorldUnzipFailure(QString filePath) {
addAssetToWorldError(filename, "Couldn't unzip file " + filename + "."); addAssetToWorldError(filename, "Couldn't unzip file " + filename + ".");
} }
void Application::addAssetToWorld(QString filePath) { void Application::addAssetToWorld(QString filePath, QString zipFile, bool isBlocks) {
// Automatically upload and add asset to world as an alternative manual process initiated by showAssetServerWidget(). // Automatically upload and add asset to world as an alternative manual process initiated by showAssetServerWidget().
qCDebug(interfaceapp) << "File about to be uploaded: " << filePath;
qCDebug(interfaceapp) << "Original zip folder: " << zipFile;
QString path = QUrl(filePath).toLocalFile(); QString path = QUrl(filePath).toLocalFile();
QString filename = filenameFromPath(path); QString filename = filenameFromPath(path);
QString mapping = "/" + filename; QString mapping;
if (isBlocks) {
QString assetFolder = zipFile.section("/", -1);
assetFolder.remove(".zip");
mapping = "/" + assetFolder + "/" + filename;
} else {
mapping = "/" + filename;
}
// Test repeated because possibly different code paths. // Test repeated because possibly different code paths.
if (!DependencyManager::get<NodeList>()->getThisNodeCanWriteAssets()) { if (!DependencyManager::get<NodeList>()->getThisNodeCanWriteAssets()) {
@ -6576,15 +6585,19 @@ void Application::onAssetToWorldMessageBoxClosed() {
} }
void Application::handleUnzip(QString zipFile, QString unzipFile, bool autoAdd) { void Application::handleUnzip(QString zipFile, QStringList unzipFile, bool autoAdd, bool isBlocks) {
if (autoAdd) { if (autoAdd) {
if (!unzipFile.isEmpty()) { if (!unzipFile.isEmpty()) {
addAssetToWorld(unzipFile); qCDebug(interfaceapp) << "My folder contents: " << unzipFile;
for (int i = 0; i < unzipFile.length(); i++) {
qCDebug(interfaceapp) << "Preparing file for asset server: " << unzipFile.at(i);
addAssetToWorld(unzipFile.at(i), zipFile, isBlocks);
}
} else { } else {
addAssetToWorldUnzipFailure(zipFile); addAssetToWorldUnzipFailure(zipFile);
} }
} else { } else {
showAssetServerWidget(unzipFile); showAssetServerWidget(unzipFile.first());
} }
} }

View file

@ -331,14 +331,14 @@ public slots:
// FIXME: Move addAssetToWorld* methods to own class? // FIXME: Move addAssetToWorld* methods to own class?
void addAssetToWorldFromURL(QString url); void addAssetToWorldFromURL(QString url);
void addAssetToWorldFromURLRequestFinished(); void addAssetToWorldFromURLRequestFinished();
void addAssetToWorld(QString filePath); void addAssetToWorld(QString filePath, QString zipFile, bool isBlocks);
void addAssetToWorldUnzipFailure(QString filePath); void addAssetToWorldUnzipFailure(QString filePath);
void addAssetToWorldWithNewMapping(QString filePath, QString mapping, int copy); void addAssetToWorldWithNewMapping(QString filePath, QString mapping, int copy);
void addAssetToWorldUpload(QString filePath, QString mapping); void addAssetToWorldUpload(QString filePath, QString mapping);
void addAssetToWorldSetMapping(QString filePath, QString mapping, QString hash); void addAssetToWorldSetMapping(QString filePath, QString mapping, QString hash);
void addAssetToWorldAddEntity(QString filePath, QString mapping); void addAssetToWorldAddEntity(QString filePath, QString mapping);
void handleUnzip(QString sourceFile, QString destinationFile, bool autoAdd); void handleUnzip(QString sourceFile, QStringList destinationFile, bool autoAdd, bool isBlocks);
FileScriptingInterface* getFileDownloadInterface() { return _fileDownload; } FileScriptingInterface* getFileDownloadInterface() { return _fileDownload; }

View file

@ -51,18 +51,21 @@ void FileScriptingInterface::runUnzip(QString path, QUrl url, bool autoAdd, bool
return; return;
} }
QString file = unzipFile(path, tempDir); QStringList fileList = unzipFile(path, tempDir);
qCDebug(scriptengine) << "Unzipped file: " << file; qCDebug(scriptengine) << "Unzipped file list: " << fileList;
QString filename = QUrl::fromLocalFile(file).toString(); QString filename = QUrl::fromLocalFile(fileList.first()).toString();
if (file != "") {
if (filename != "") {
qCDebug(scriptengine) << "File to upload: " + filename; qCDebug(scriptengine) << "File to upload: " + filename;
} else { }
else {
qCDebug(scriptengine) << "Unzip failed"; qCDebug(scriptengine) << "Unzip failed";
} }
emit unzipResult(path, filename, autoAdd); emit unzipResult(path, fileList, autoAdd, isBlocks);
} }
QString FileScriptingInterface::unzipFile(QString path, QString tempDir) { QStringList FileScriptingInterface::unzipFile(QString path, QString tempDir) {
QDir dir(path); QDir dir(path);
QString dirName = dir.path(); QString dirName = dir.path();
@ -73,11 +76,11 @@ QString FileScriptingInterface::unzipFile(QString path, QString tempDir) {
qCDebug(scriptengine) << list; qCDebug(scriptengine) << list;
if (!list.isEmpty()) { if (!list.isEmpty()) {
return list.front(); return list;
} }
else { else {
qCDebug(scriptengine) << "Extraction failed"; qCDebug(scriptengine) << "Extraction failed";
return ""; return list;
} }
} }

View file

@ -28,11 +28,11 @@ public slots:
QString getTempDir(); QString getTempDir();
signals: signals:
void unzipResult(QString zipFile, QString unzipFile, bool autoAdd); void unzipResult(QString zipFile, QStringList unzipFile, bool autoAdd, bool isBlocks);
private: private:
bool isTempDir(QString tempDir); bool isTempDir(QString tempDir);
QString unzipFile(QString path, QString tempDir); QStringList unzipFile(QString path, QString tempDir);
void recursiveFileScan(QFileInfo file, QString* dirName); void recursiveFileScan(QFileInfo file, QString* dirName);
void downloadZip(QString path, const QString link); void downloadZip(QString path, const QString link);