History

move asset upload to AssetUploadDialogFactory

Stephen Birarda committed 11 years ago

Commit 5b5941f1 parent 0450e848 files · +112 −42Browse files

Showing the changes to interface/src/Menu.cpp (1 of 8 files). Show all

Unified · Split

interface/src/Menu.cpp+17−36
@@ -22,8 +22,6 @@ · 21 unmodified lines
22#include <UserActivityLogger.h>22#include <UserActivityLogger.h>
23#include <VrMenu.h>23#include <VrMenu.h>
24 24
25#include <AssetClient.h>
26
27#include "Application.h"25#include "Application.h"
28#include "AccountManager.h"26#include "AccountManager.h"
29#include "audio/AudioScope.h"27#include "audio/AudioScope.h"
@@ -34,13 +32,15 @@ · 4 unmodified lines
34#include "devices/3DConnexionClient.h"32#include "devices/3DConnexionClient.h"
35#include "MainWindow.h"33#include "MainWindow.h"
36#include "scripting/MenuScriptingInterface.h"34#include "scripting/MenuScriptingInterface.h"
37#if defined(Q_OS_MAC) || defined(Q_OS_WIN)35#include "ui/AssetUploadDialogFactory.h"
38#include "SpeechRecognizer.h"
39#endif
40#include "ui/DialogsManager.h"36#include "ui/DialogsManager.h"
41#include "ui/StandAloneJSConsole.h"37#include "ui/StandAloneJSConsole.h"
42#include "InterfaceLogging.h"38#include "InterfaceLogging.h"
43 39
40#if defined(Q_OS_MAC) || defined(Q_OS_WIN)
41#include "SpeechRecognizer.h"
42#endif
43
44#include "Menu.h"44#include "Menu.h"
45 45
46Menu* Menu::_instance = NULL;46Menu* Menu::_instance = NULL;
@@ -90,36 +90,6 @@ Menu::Menu() { · 43 unmodified lines
90 addActionToQMenuAndActionHash(fileMenu, MenuOption::RunningScripts, Qt::CTRL | Qt::Key_J,90 addActionToQMenuAndActionHash(fileMenu, MenuOption::RunningScripts, Qt::CTRL | Qt::Key_J,
91 qApp, SLOT(toggleRunningScriptsWidget()));91 qApp, SLOT(toggleRunningScriptsWidget()));
92 92
93 // Asset uploading
94 {
95 auto action = new QAction("Upload File", fileMenu);
96 fileMenu->addAction(action);
97 action->setMenuRole(QAction::NoRole);
98 _actionHash.insert("Upload File", action);
99
100 connect(action, &QAction::triggered, [this](bool checked) {
101 qDebug() << "Clicked upload file";
102 auto filename = QFileDialog::getOpenFileUrl(nullptr, "Select a file to upload");
103 if (!filename.isEmpty()) {
104 qDebug() << "Selected: " << filename;
105 QFile file { filename.path() };
106 if (file.open(QIODevice::ReadOnly)) {
107 QFileInfo fileInfo { filename.path() };
108 auto extension = fileInfo.suffix();
109 auto data = file.readAll();
110 auto assetClient = DependencyManager::get<AssetClient>();
111 assetClient->uploadAsset(data, extension, [this, extension](bool result, QString hash) mutable {
112 if (result) {
113 QMessageBox::information(this, "Upload Successful", "URL: apt:/" + hash + "." + extension);
114 } else {
115 QMessageBox::warning(this, "Upload Failed", "There was an error uploading the file.");
116 }
117 });
118 }
119 }
120 });
121 }
122
123 auto addressManager = DependencyManager::get<AddressManager>();93 auto addressManager = DependencyManager::get<AddressManager>();
124 94
125 addDisabledActionAndSeparator(fileMenu, "History");95 addDisabledActionAndSeparator(fileMenu, "History");
@@ -400,7 +370,18 @@ Menu::Menu() { · 274 unmodified lines
400 addActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::LodTools,370 addActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::LodTools,
401 0, // QML Qt::SHIFT | Qt::Key_L,371 0, // QML Qt::SHIFT | Qt::Key_L,
402 dialogsManager.data(), SLOT(lodTools()));372 dialogsManager.data(), SLOT(lodTools()));
403 373
374 MenuWrapper* assetDeveloperMenu = developerMenu->addMenu("Assets");
375
376 auto& assetDialogFactory = AssetUploadDialogFactory::getInstance();
377 assetDialogFactory.setParent(this);
378
379 addActionToQMenuAndActionHash(assetDeveloperMenu,
380 MenuOption::UploadAsset,
381 0,
382 &AssetUploadDialogFactory::getInstance(),
383 SLOT(showDialog()));
384
404 MenuWrapper* avatarDebugMenu = developerMenu->addMenu("Avatar");385 MenuWrapper* avatarDebugMenu = developerMenu->addMenu("Avatar");
405 386
406 MenuWrapper* faceTrackingMenu = avatarDebugMenu->addMenu("Face Tracking");387 MenuWrapper* faceTrackingMenu = avatarDebugMenu->addMenu("Face Tracking");