From e81b4ecdb12eceb97dcfe7a6d91b74877c92a0c5 Mon Sep 17 00:00:00 2001 From: amazing-username Date: Sat, 23 Mar 2019 21:17:24 -0400 Subject: [PATCH] Created simple gui for uploading a song and implemented the functionality. #1 and #2 --- CMakeLists.txt | 1 + src/Models/UploadForm.h | 16 +++++++++ src/Syncers/Upload.cpp | 16 +++++---- src/Syncers/Upload.h | 3 ++ src/UI/CommonWindow.h | 4 +-- src/UI/MainWindow.cpp | 76 +++++++++++++++++++++++++++-------------- src/UI/MainWindow.h | 11 +++--- 7 files changed, 90 insertions(+), 37 deletions(-) create mode 100644 src/Models/UploadForm.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 99bdb7d..deee372 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,6 +51,7 @@ set(SOURCES set(HEADERS src/Managers/FileManager.h src/Models/Song.h + src/Models/UploadForm.h src/Syncers/Download.h src/Syncers/Upload.h src/UI/CommonWindow.h diff --git a/src/Models/UploadForm.h b/src/Models/UploadForm.h new file mode 100644 index 0000000..fd45a62 --- /dev/null +++ b/src/Models/UploadForm.h @@ -0,0 +1,16 @@ +#ifndef UPLOADFORM_H_ +#define UPLOADFORM_H_ + +#include + + +namespace Models +{ + struct UploadForm + { + std::string url; + std::string filePath; + }; +} + +#endif diff --git a/src/Syncers/Upload.cpp b/src/Syncers/Upload.cpp index fbbfaeb..53d0b42 100644 --- a/src/Syncers/Upload.cpp +++ b/src/Syncers/Upload.cpp @@ -12,6 +12,9 @@ using std::string; using json = nlohmann::json; +using Managers::FileManager; +using Models::UploadForm; + using namespace cpr; namespace Syncers @@ -20,22 +23,23 @@ namespace Syncers Upload::Upload(string filePath) { this->songPath = filePath; - this->fMgr = Managers::FileManager(songPath); + this->fMgr = FileManager(songPath); + } + Upload::Upload(UploadForm formData) + { + this->url = formData.url; + this->songPath = formData.filePath; } void Upload::uploadSong() { - configureSongDemo(); - - string url = apiUrl + ":" + std::to_string(port) + apiEndPoint; - try { auto r = cpr::Post(cpr::Url{url}, cpr::Multipart{{"key", "small value"}, {"file", cpr::File{songPath}}}); - cout << r.text << std::endl; + cout << r.status_code<< std::endl; cout<<"Success"< selectionBoxQt; std::unique_ptr actionButtonQt; std::unique_ptr mainLayoutQt; - std::unique_ptr subLayoutOneQt; - std::unique_ptr subLayoutTwoQt; + std::unique_ptr subLayoutOneQt; + std::unique_ptr subLayoutTwoQt; int windowHeight, windowWidth; }; #endif diff --git a/src/UI/MainWindow.cpp b/src/UI/MainWindow.cpp index c8f22e1..5ae682d 100644 --- a/src/UI/MainWindow.cpp +++ b/src/UI/MainWindow.cpp @@ -1,7 +1,19 @@ #include"MainWindow.h" +#include +#include + +#include"Models/UploadForm.h" +#include"Syncers/Upload.h" + +using std::cout; +using std::endl; +using std::string; using std::unique_ptr; +using Models::UploadForm; +using Syncers::Upload; + namespace UI { MainWindow::MainWindow() @@ -16,11 +28,20 @@ namespace UI } void MainWindow::configureUploadSection() { + uploadSongQt = unique_ptr{new QPushButton(tr("Upload"))}; + urlQt = unique_ptr{new QTextEdit()}; + sourceFilePathQt = unique_ptr{new QTextEdit()}; + + subLayoutOneQt = unique_ptr{new QVBoxLayout}; + subLayoutOneQt.get()->addWidget(urlQt.get()); + subLayoutOneQt.get()->addWidget(sourceFilePathQt.get()); + subLayoutOneQt.get()->addWidget(uploadSongQt.get()); + mainLayoutQt.get()->addLayout(subLayoutOneQt.get()); } void MainWindow::configureWindowDimensions() { - windowWidth = 600; - windowHeight = 600; + windowWidth = 400; + windowHeight = 400; } void MainWindow::configureWindowProperties() { @@ -30,7 +51,7 @@ namespace UI } void MainWindow::connections() { - + QObject::connect(uploadSongQt.get(), SIGNAL(clicked()), this, SLOT(uploadSong())); } void MainWindow::createMenus() { @@ -41,11 +62,6 @@ namespace UI closeApplicationQt.get()->setText("Exit Application"); /** - keyEdit = unique_ptr{new QAction(new QObject(nullptr))}; - keyEdit.get()->setText("Key Management"); - passwordManage = unique_ptr{new QAction{new QObject{nullptr}}}; - passwordManage.get()->setText("PasswordManagement"); - fileMenu.get()->addAction(closeApplication.get()); editMenu.get()->addAction(keyEdit.get()); editMenu.get()->addAction(passwordManage.get()); @@ -55,30 +71,40 @@ namespace UI void MainWindow::setupMainWindow() { configureWindowDimensions(); - actionButtonQt = unique_ptr{new QPushButton(tr("upload"))}; - selectionBoxQt = unique_ptr{new QComboBox{}}; + mainLayoutQt = unique_ptr{new QVBoxLayout}; - buttonLayoutQt = unique_ptr{new QVBoxLayout}; - buttonWidgetQt = unique_ptr{new QWidget}; - buttonDockWidgetQt = unique_ptr{new QDockWidget}; - buttonDockWidgetQt.get()->setWindowTitle(tr("Music Manager")); - buttonLayoutQt.get()->addWidget(selectionBoxQt.get()); - buttonLayoutQt.get()->addWidget(actionButtonQt.get()); - buttonWidgetQt.get()->setLayout(buttonLayoutQt.get()); - buttonDockWidgetQt.get()->setWidget(buttonWidgetQt.get()); - buttonDockWidgetQt.get()->setFeatures(QDockWidget::NoDockWidgetFeatures); - setCentralWidget(buttonDockWidgetQt.get()); + configureUploadSection(); - cryptionAreaQt = unique_ptr{new QDockWidget(tr("Cryption"))}; - cryptionAreaQt.get()->setFeatures(QDockWidget::NoDockWidgetFeatures); - addDockWidget(Qt::LeftDockWidgetArea, cryptionAreaQt.get()); + mainWidgetQt = unique_ptr{new QWidget}; + mainWidgetQt.get()->setLayout(mainLayoutQt.get()); + + MainDockWidgetQt = unique_ptr{new QDockWidget}; + MainDockWidgetQt.get()->setWindowTitle(tr("Music Manager")); + MainDockWidgetQt.get()->setWidget(mainWidgetQt.get()); + MainDockWidgetQt.get()->setFeatures(QDockWidget::NoDockWidgetFeatures); + setCentralWidget(MainDockWidgetQt.get()); createMenus(); - configureWindowProperties(); - actionButtonQt.get()->setEnabled(false); connections(); } + + + void MainWindow::uploadSong() + { + uploadSongQt->setEnabled(false); + + string url = urlQt->toPlainText().toUtf8().constData(); + string filePath = sourceFilePathQt->toPlainText().toUtf8().constData(); + cout<<"URL endpoint: "<setEnabled(true); + } } diff --git a/src/UI/MainWindow.h b/src/UI/MainWindow.h index fe57cb0..bf20fd6 100644 --- a/src/UI/MainWindow.h +++ b/src/UI/MainWindow.h @@ -11,6 +11,7 @@ #include #include #include +#include #include #include @@ -33,13 +34,14 @@ namespace UI void createMenus(); void setupMainWindow(); - std::unique_ptr buttonLayoutQt; - std::unique_ptr buttonWidgetQt; + std::unique_ptr mainWidgetQt; - std::unique_ptr buttonDockWidgetQt; - std::unique_ptr cryptionAreaQt; + std::unique_ptr MainDockWidgetQt; + std::unique_ptr uploadSongQt; + + std::unique_ptr urlQt; std::unique_ptr sourceFilePathQt; std::unique_ptr fileMenuQt; @@ -47,6 +49,7 @@ namespace UI std::unique_ptr closeApplicationQt; signals: private slots: + void uploadSong(); }; }