From d90ceb200a0fcc25624960b8381639e2aa307c77 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Wed, 26 Aug 2015 09:27:50 -0700 Subject: [PATCH] Add asset uploader to Menu --- interface/src/Menu.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 939d733a13..9f38999853 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -21,6 +21,7 @@ #include #include +#include #include "Application.h" #include "AccountManager.h" #include "audio/AudioScope.h" @@ -87,6 +88,36 @@ Menu::Menu() { addActionToQMenuAndActionHash(fileMenu, MenuOption::RunningScripts, Qt::CTRL | Qt::Key_J, qApp, SLOT(toggleRunningScriptsWidget())); + // Asset uploading + { + auto action = new QAction("Upload File", fileMenu); + fileMenu->addAction(action); + action->setMenuRole(QAction::NoRole); + _actionHash.insert("Upload File", action); + + connect(action, &QAction::triggered, [this](bool checked) { + qDebug() << "Clicked upload file"; + auto filename = QFileDialog::getOpenFileUrl(nullptr, "Select a file to upload"); + if (!filename.isEmpty()) { + qDebug() << "Selected: " << filename; + QFile file { filename.path() }; + if (file.open(QIODevice::ReadOnly)) { + auto fileInfo { filename.path() }; + auto extension = fileInfo.suffix(); + auto data = file.readAll(); + auto assetClient = DependencyManager::get(); + assetClient->uploadAsset(data, extension, [this](bool result, QString hash) mutable { + if (result) { + QMessageBox::information(this, "Upload Successful", "URL: apt:/" + hash + "." + extension); + } else { + QMessageBox::warning(this, "Upload Failed", "There was an error uploading the file."); + } + }); + } + } + }); + } + auto addressManager = DependencyManager::get(); addDisabledActionAndSeparator(fileMenu, "History");