From b666acdb26cb08e534974e098c9fc39a9d11b83f Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Tue, 6 Oct 2015 10:57:33 -0700 Subject: [PATCH] Add fbx upload on drop --- interface/src/Application.cpp | 18 ++++++++++++++++++ interface/src/Application.h | 1 + interface/src/ui/AssetUploadDialogFactory.cpp | 4 ---- interface/src/ui/AssetUploadDialogFactory.h | 4 +++- 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index ba4c16eb78..4597770ab4 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -157,6 +157,7 @@ static const QString SVO_EXTENSION = ".svo"; static const QString SVO_JSON_EXTENSION = ".svo.json"; static const QString JS_EXTENSION = ".js"; static const QString FST_EXTENSION = ".fst"; +static const QString FBX_EXTENSION = ".fbx"; static const int MIRROR_VIEW_TOP_PADDING = 5; static const int MIRROR_VIEW_LEFT_PADDING = 10; @@ -190,6 +191,15 @@ static const QString DESKTOP_LOCATION = QStandardPaths::writableLocation(QStanda const QString DEFAULT_SCRIPTS_JS_URL = "http://s3.amazonaws.com/hifi-public/scripts/defaultScripts.js"; Setting::Handle maxOctreePacketsPerSecond("maxOctreePPS", DEFAULT_MAX_OCTREE_PPS); +const QHash Application::_acceptedExtensions { + { SNAPSHOT_EXTENSION, &Application::acceptSnapshot }, + { SVO_EXTENSION, &Application::importSVOFromURL }, + { SVO_JSON_EXTENSION, &Application::importSVOFromURL }, + { JS_EXTENSION, &Application::askToLoadScript }, + { FST_EXTENSION, &Application::askToSetAvatarUrl }, + { FBX_EXTENSION, &Application::askToUploadAsset } +}; + #ifdef Q_OS_WIN class MyNativeEventFilter : public QAbstractNativeEventFilter { public: @@ -4072,6 +4082,14 @@ bool Application::askToLoadScript(const QString& scriptFilenameOrURL) { return true; } +#include "ui/AssetUploadDialogFactory.h" +bool Application::askToUploadAsset(const QString& filename) { + if (!filename.isEmpty()) { + AssetUploadDialogFactory::getInstance().showDialog(filename); + } + return false; +} + ScriptEngine* Application::loadScript(const QString& scriptFilename, bool isUserLoaded, bool loadScriptFromEditor, bool activateMainWindow, bool reload) { diff --git a/interface/src/Application.h b/interface/src/Application.h index cfdd7681e1..dc1d9cdb84 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -327,6 +327,7 @@ private slots: bool acceptSnapshot(const QString& urlString); bool askToSetAvatarUrl(const QString& url); bool askToLoadScript(const QString& scriptFilenameOrURL); + bool askToUploadAsset(const QString& asset); void setSessionUUID(const QUuid& sessionUUID); void domainChanged(const QString& domainHostname); diff --git a/interface/src/ui/AssetUploadDialogFactory.cpp b/interface/src/ui/AssetUploadDialogFactory.cpp index a4426d0c1a..4910e6d604 100644 --- a/interface/src/ui/AssetUploadDialogFactory.cpp +++ b/interface/src/ui/AssetUploadDialogFactory.cpp @@ -29,10 +29,6 @@ AssetUploadDialogFactory& AssetUploadDialogFactory::getInstance() { return staticInstance; } -AssetUploadDialogFactory::AssetUploadDialogFactory() { - -} - static const QString PERMISSION_DENIED_ERROR = "You do not have permission to upload content to this asset-server."; void AssetUploadDialogFactory::showDialog() { diff --git a/interface/src/ui/AssetUploadDialogFactory.h b/interface/src/ui/AssetUploadDialogFactory.h index 50980862e6..36c5d10595 100644 --- a/interface/src/ui/AssetUploadDialogFactory.h +++ b/interface/src/ui/AssetUploadDialogFactory.h @@ -27,12 +27,14 @@ public: static AssetUploadDialogFactory& getInstance(); void setDialogParent(QWidget* dialogParent) { _dialogParent = dialogParent; } + public slots: void showDialog(); private slots: void handleUploadFinished(AssetUpload* upload, const QString& hash); + private: - AssetUploadDialogFactory(); + AssetUploadDialogFactory() = default; void showErrorDialog(const QString& filename, const QString& additionalError);