Changed C++ standard to C++17 and will implement functionality to retrieve songs, albums, artists, genres, cover art, and year records in json. Will add explicit versioning too
This commit is contained in:
+28
-28
@@ -1,4 +1,4 @@
|
|||||||
cmake_minimum_required(VERSION 3.2)
|
cmake_minimum_required(VERSION 3.10)
|
||||||
|
|
||||||
|
|
||||||
include("cmake/HunterGate.cmake")
|
include("cmake/HunterGate.cmake")
|
||||||
@@ -15,17 +15,17 @@ if(NOT ${CMAKE_VERSION} LESS 3.2)
|
|||||||
set(CMAKE_CXX_STANDARD 11)
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
else()
|
else()
|
||||||
message(STATUS "Checking compiler flags for C++11 support.")
|
message(STATUS "Checking compiler flags for C++117support.")
|
||||||
# Set C++11 support flags for various compilers
|
# Set C++17 support flags for various compilers
|
||||||
include(CheckCXXCompilerFlag)
|
include(CheckCXXCompilerFlag)
|
||||||
check_cxx_compiler_flag("-std=c++11" COMPILER_SUPPORTS_CXX11)
|
check_cxx_compiler_flag("-std=c++17" COMPILER_SUPPORTS_CXX17)
|
||||||
check_cxx_compiler_flag("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
|
check_cxx_compiler_flag("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
|
||||||
if(COMPILER_SUPPORTS_CXX11)
|
if(COMPILER_SUPPORTS_CXX17)
|
||||||
message(STATUS "C++11 is supported.")
|
message(STATUS "C++17 is supported.")
|
||||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=libc++")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -stdlib=libc++")
|
||||||
else()
|
else()
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
|
||||||
endif()
|
endif()
|
||||||
elseif(COMPILER_SUPPORTS_CXX0X)
|
elseif(COMPILER_SUPPORTS_CXX0X)
|
||||||
message(STATUS "C++0x is supported.")
|
message(STATUS "C++0x is supported.")
|
||||||
@@ -35,7 +35,7 @@ else()
|
|||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
|
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++17 support. Please use a different C++ compiler.")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -54,24 +54,24 @@ set(SOURCES
|
|||||||
src/Utilities/Conversions.cpp
|
src/Utilities/Conversions.cpp
|
||||||
)
|
)
|
||||||
set(HEADERS
|
set(HEADERS
|
||||||
src/Managers/ActionManager.h
|
include/Managers/ActionManager.h
|
||||||
src/Managers/CommitManager.h
|
include/Managers/CommitManager.h
|
||||||
src/Managers/FileManager.h
|
include/Managers/FileManager.h
|
||||||
src/Managers/TokenManager.h
|
include/Managers/TokenManager.h
|
||||||
src/Managers/UserManager.h
|
include/Managers/UserManager.h
|
||||||
src/Models/API.h
|
include/Models/API.h
|
||||||
src/Models/Flags.h
|
include/Models/Flags.h
|
||||||
src/Models/IcarusAction.h
|
include/Models/IcarusAction.h
|
||||||
src/Models/Song.h
|
include/Models/Song.h
|
||||||
src/Models/Token.h
|
include/Models/Token.h
|
||||||
src/Models/UploadForm.h
|
include/Models/UploadForm.h
|
||||||
src/Models/User.h
|
include/Models/User.h
|
||||||
src/Parsers/APIParser.h
|
include/Parsers/APIParser.h
|
||||||
src/Syncers/Delete.h
|
include/Syncers/Delete.h
|
||||||
src/Syncers/Download.h
|
include/Syncers/Download.h
|
||||||
src/Syncers/SyncerBase.h
|
include/Syncers/SyncerBase.h
|
||||||
src/Syncers/Upload.h
|
include/Syncers/Upload.h
|
||||||
src/Utilities/Conversions.h
|
include/Utilities/Conversions.h
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -84,4 +84,4 @@ find_package(cpr CONFIG REQUIRED)
|
|||||||
|
|
||||||
add_executable(icd ${SOURCES} ${HEADERS})
|
add_executable(icd ${SOURCES} ${HEADERS})
|
||||||
target_link_libraries(icd PUBLIC nlohmann_json::nlohmann_json cpr::cpr)
|
target_link_libraries(icd PUBLIC nlohmann_json::nlohmann_json cpr::cpr)
|
||||||
include_directories(src/)
|
include_directories(include/)
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
#ifndef ACTIONMANAGER_H_
|
||||||
|
#define ACTIONMANAGER_H_
|
||||||
|
|
||||||
|
#include<string>
|
||||||
|
#include<vector>
|
||||||
|
|
||||||
|
#include"Models/Flags.h"
|
||||||
|
#include"Models/IcarusAction.h"
|
||||||
|
|
||||||
|
namespace Managers
|
||||||
|
{
|
||||||
|
class ActionManager
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ActionManager(char**);
|
||||||
|
|
||||||
|
Models::IcarusAction retrieveIcarusAction() const;
|
||||||
|
std::vector<Models::Flags> retrieveFlags() const;
|
||||||
|
std::string retrieveAction() const;
|
||||||
|
private:
|
||||||
|
bool isNumber(std::string);
|
||||||
|
|
||||||
|
void initialize();
|
||||||
|
void initializeSupportedActions();
|
||||||
|
void initializeSupportedFlags();
|
||||||
|
void validateAction();
|
||||||
|
void validateFlags();
|
||||||
|
|
||||||
|
std::vector<std::string> parsedFlags();
|
||||||
|
|
||||||
|
void printAction();
|
||||||
|
void printFlags(std::vector<std::string>);
|
||||||
|
void printFlags();
|
||||||
|
|
||||||
|
std::string action;
|
||||||
|
std::vector<std::string> supportedActions;
|
||||||
|
std::vector<std::string> supportedFlags;
|
||||||
|
std::vector<Models::Flags> flags;
|
||||||
|
char **params;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
#ifndef COMMITMANAGER_H_
|
||||||
|
#define COMMITMANAGER_H_
|
||||||
|
|
||||||
|
#include<map>
|
||||||
|
#include<string>
|
||||||
|
|
||||||
|
#include"Models/API.h"
|
||||||
|
#include"Models/Token.h"
|
||||||
|
#include"Models/IcarusAction.h"
|
||||||
|
|
||||||
|
namespace Managers
|
||||||
|
{
|
||||||
|
class CommitManager
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CommitManager(Models::IcarusAction);
|
||||||
|
|
||||||
|
void commitAction();
|
||||||
|
private:
|
||||||
|
Models::Token parseToken(Models::API);
|
||||||
|
|
||||||
|
void initializeMapActions();
|
||||||
|
void deleteSong();
|
||||||
|
void downloadSong();
|
||||||
|
void uploadSong();
|
||||||
|
|
||||||
|
enum ActionValues
|
||||||
|
{
|
||||||
|
deleteAct,
|
||||||
|
downloadAct,
|
||||||
|
retrieveAct,
|
||||||
|
uploadAct
|
||||||
|
};
|
||||||
|
|
||||||
|
std::map<std::string, ActionValues> mapActions;
|
||||||
|
Models::IcarusAction icaAction;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
#ifndef FILEMANAGER_H_
|
||||||
|
#define FILEMANAGER_H_
|
||||||
|
|
||||||
|
#include<string>
|
||||||
|
|
||||||
|
namespace Managers
|
||||||
|
{
|
||||||
|
class FileManager
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
FileManager();
|
||||||
|
FileManager(std::string);
|
||||||
|
|
||||||
|
void saveFile(std::string);
|
||||||
|
void modifyFilePath(std::string);
|
||||||
|
|
||||||
|
char* retrieveFileBuffer() const;
|
||||||
|
int retrieveFileBufferLength() const;
|
||||||
|
private:
|
||||||
|
void readFile();
|
||||||
|
|
||||||
|
std::string filePath;
|
||||||
|
char* fileBuffer;
|
||||||
|
bool fileRead;
|
||||||
|
int fileBufferLength;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
#ifndef TOKENMANAGER_H_
|
||||||
|
#define TOKENMANAGER_H_
|
||||||
|
|
||||||
|
#include"Models/API.h"
|
||||||
|
#include"Models/Token.h"
|
||||||
|
#include"Models/User.h"
|
||||||
|
|
||||||
|
namespace Managers
|
||||||
|
{
|
||||||
|
class TokenManager
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
TokenManager(const Models::User);
|
||||||
|
TokenManager(const Models::User, Models::API);
|
||||||
|
|
||||||
|
Models::Token requestToken();
|
||||||
|
private:
|
||||||
|
Models::API api;
|
||||||
|
Models::User user;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
#ifndef USERMANAGER_H_
|
||||||
|
#define USERMANAGER_H_
|
||||||
|
|
||||||
|
#include<iostream>
|
||||||
|
|
||||||
|
#include"Models/IcarusAction.h"
|
||||||
|
#include"Models/User.h"
|
||||||
|
|
||||||
|
namespace Managers
|
||||||
|
{
|
||||||
|
class UserManager
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
UserManager(Models::User);
|
||||||
|
UserManager(const Models::IcarusAction);
|
||||||
|
|
||||||
|
Models::User retrieveUser() const;
|
||||||
|
private:
|
||||||
|
void parseUserFromActions();
|
||||||
|
|
||||||
|
Models::User user;
|
||||||
|
Models::IcarusAction icaAction;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
#ifndef API_H_
|
||||||
|
#define API_H_
|
||||||
|
|
||||||
|
#include<string>
|
||||||
|
|
||||||
|
namespace Models
|
||||||
|
{
|
||||||
|
struct API
|
||||||
|
{
|
||||||
|
std::string url;
|
||||||
|
std::string endpoint;
|
||||||
|
std::string version;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
#ifndef FLAGS_H_
|
||||||
|
#define FLAGS_H_
|
||||||
|
|
||||||
|
#include<string>
|
||||||
|
|
||||||
|
namespace Models
|
||||||
|
{
|
||||||
|
struct Flags
|
||||||
|
{
|
||||||
|
std::string flag;
|
||||||
|
std::string value;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
#ifndef SONG_H_
|
||||||
|
#define SONG_H_
|
||||||
|
|
||||||
|
#include<string>
|
||||||
|
|
||||||
|
|
||||||
|
namespace Models
|
||||||
|
{
|
||||||
|
struct Song
|
||||||
|
{
|
||||||
|
int id;
|
||||||
|
std::string title;
|
||||||
|
std::string artist;
|
||||||
|
std::string album;
|
||||||
|
std::string genre;
|
||||||
|
int year;
|
||||||
|
int duration;
|
||||||
|
char *songData;
|
||||||
|
std::string data;
|
||||||
|
std::string songPath;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
#ifndef TOKEN_H_
|
||||||
|
#define TOKEN_H_
|
||||||
|
|
||||||
|
#include<string>
|
||||||
|
|
||||||
|
namespace Models
|
||||||
|
{
|
||||||
|
struct Token
|
||||||
|
{
|
||||||
|
std::string accessToken;
|
||||||
|
std::string tokenType;
|
||||||
|
int expiration;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
#ifndef USER_H_
|
||||||
|
#define USER_H_
|
||||||
|
|
||||||
|
#include<string>
|
||||||
|
|
||||||
|
namespace Models
|
||||||
|
{
|
||||||
|
struct User
|
||||||
|
{
|
||||||
|
std::string username;
|
||||||
|
std::string password;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
#ifndef APIPARSER_H_
|
||||||
|
#define APIPARSER_H_
|
||||||
|
|
||||||
|
#include"Models/API.h"
|
||||||
|
#include"Models/IcarusAction.h"
|
||||||
|
|
||||||
|
namespace Parsers
|
||||||
|
{
|
||||||
|
class APIParser
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
APIParser(Models::IcarusAction);
|
||||||
|
|
||||||
|
Models::API retrieveAPI() const;
|
||||||
|
private:
|
||||||
|
void parseAPI();
|
||||||
|
|
||||||
|
Models::API api;
|
||||||
|
Models::IcarusAction icaAct;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
#ifndef DELETE_H_
|
||||||
|
#define DELETE_H_
|
||||||
|
|
||||||
|
#include"Models/API.h"
|
||||||
|
#include"Models/Song.h"
|
||||||
|
#include"Models/Token.h"
|
||||||
|
|
||||||
|
#include"SyncerBase.h"
|
||||||
|
|
||||||
|
namespace Syncers
|
||||||
|
{
|
||||||
|
class Delete : SyncerBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Delete(Models::API);
|
||||||
|
|
||||||
|
void deleteSong(const Models::Token, Models::Song);
|
||||||
|
private:
|
||||||
|
std::string retrieveUrl(Models::Song);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
#ifndef DOWNLOAD_H_
|
||||||
|
#define DOWNLOAD_H_
|
||||||
|
|
||||||
|
#include<iostream>
|
||||||
|
#include<string>
|
||||||
|
|
||||||
|
#include"Models/API.h"
|
||||||
|
#include"Models/Song.h"
|
||||||
|
#include"Models/Token.h"
|
||||||
|
|
||||||
|
#include"SyncerBase.h"
|
||||||
|
|
||||||
|
namespace Syncers
|
||||||
|
{
|
||||||
|
class Download : SyncerBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Download();
|
||||||
|
Download(Models::API);
|
||||||
|
Download(std::string);
|
||||||
|
|
||||||
|
void downloadSong(int);
|
||||||
|
void downloadSong(const Models::Token token, Models::Song);
|
||||||
|
private:
|
||||||
|
std::string retrieveUrl(Models::Song);
|
||||||
|
|
||||||
|
std::string downloadFilePath;
|
||||||
|
void saveSong(Models::Song*);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
#ifndef SYNCERBASE_H_
|
||||||
|
#define SYNCERBASE_H_
|
||||||
|
|
||||||
|
#include<string>
|
||||||
|
|
||||||
|
#include"Models/API.h"
|
||||||
|
|
||||||
|
namespace Syncers
|
||||||
|
{
|
||||||
|
class SyncerBase
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
Models::API api;
|
||||||
|
const int OK = 200;
|
||||||
|
const int UNAUTHORIZED = 401;
|
||||||
|
const int NOTFOUND = 404;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
#ifndef UPLOAD_H_
|
||||||
|
#define UPLOAD_H_
|
||||||
|
|
||||||
|
#include<string>
|
||||||
|
|
||||||
|
#include<nlohmann/json.hpp>
|
||||||
|
|
||||||
|
#include"Managers/FileManager.h"
|
||||||
|
#include"Models/API.h"
|
||||||
|
#include"Models/Song.h"
|
||||||
|
#include"Models/Token.h"
|
||||||
|
#include"Models/UploadForm.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace Syncers
|
||||||
|
{
|
||||||
|
class Upload
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Upload();
|
||||||
|
Upload(std::string);
|
||||||
|
Upload(Models::API);
|
||||||
|
Upload(Models::UploadForm);
|
||||||
|
|
||||||
|
void uploadSong();
|
||||||
|
void uploadSong(const Models::Token, Models::Song);
|
||||||
|
private:
|
||||||
|
Managers::FileManager fMgr;
|
||||||
|
Models::API api;
|
||||||
|
Models::Song song;
|
||||||
|
std::string apiUrl{""}; // Not being used
|
||||||
|
std::string apiEndPoint{""}; // Not being used
|
||||||
|
std::string songPath; // Not being used
|
||||||
|
std::string url; // Not being used
|
||||||
|
int port{9349}; // Not being used
|
||||||
|
|
||||||
|
std::string retrieveUrl();
|
||||||
|
|
||||||
|
void configureSongDemo();
|
||||||
|
void printSongDetails();
|
||||||
|
void printJsonData(nlohmann::json);
|
||||||
|
|
||||||
|
nlohmann::json serializeObject(); // Not being used
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
#ifndef ABOUTWINDOW_H_
|
||||||
|
#define ABOUTWINDOW_H_
|
||||||
|
|
||||||
|
#include<memory>
|
||||||
|
|
||||||
|
#include<QDialog>
|
||||||
|
#include<QDockWidget>
|
||||||
|
#include<QLabel>
|
||||||
|
#include<QPushButton>
|
||||||
|
#include<QWidget>
|
||||||
|
|
||||||
|
#include"UI/CommonWindow.h"
|
||||||
|
|
||||||
|
namespace UI
|
||||||
|
{
|
||||||
|
class AboutWindow: public QDialog, public CommonWindow
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
AboutWindow(QWidget* parent=0);
|
||||||
|
~AboutWindow() = default;
|
||||||
|
|
||||||
|
private:
|
||||||
|
void connections();
|
||||||
|
void setupWindow();
|
||||||
|
|
||||||
|
std::unique_ptr<QLabel> appName;
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void closeWindow();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
#ifndef COMMONWINDOW_H_
|
||||||
|
#define COMMONWINDOW_H_
|
||||||
|
|
||||||
|
#include<memory>
|
||||||
|
|
||||||
|
#include<QDialog>
|
||||||
|
#include<QHBoxLayout>
|
||||||
|
#include<QVBoxLayout>
|
||||||
|
#include<QComboBox>
|
||||||
|
#include<QPushButton>
|
||||||
|
|
||||||
|
|
||||||
|
class CommonWindow
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CommonWindow() = default;
|
||||||
|
~CommonWindow() = default;
|
||||||
|
protected:
|
||||||
|
virtual void connections()=0;
|
||||||
|
std::unique_ptr<QComboBox> selectionBoxQt;
|
||||||
|
std::unique_ptr<QPushButton> actionButtonQt;
|
||||||
|
std::unique_ptr<QVBoxLayout> mainLayoutQt;
|
||||||
|
std::unique_ptr<QVBoxLayout> subLayoutOneQt;
|
||||||
|
std::unique_ptr<QVBoxLayout> subLayoutTwoQt;
|
||||||
|
int windowHeight, windowWidth;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
#ifndef MAINWINDOW_H_
|
||||||
|
#define MAINWINDOW_H_
|
||||||
|
|
||||||
|
#include<iostream>
|
||||||
|
#include<memory>
|
||||||
|
|
||||||
|
#include<QAction>
|
||||||
|
#include<QComboBox>
|
||||||
|
#include<QDialog>
|
||||||
|
#include<QDockWidget>
|
||||||
|
#include<QLabel>
|
||||||
|
#include<QMenu>
|
||||||
|
#include<QMenuBar>
|
||||||
|
#include<QMainWindow>
|
||||||
|
#include<QPushButton>
|
||||||
|
#include<QStackedWidget>
|
||||||
|
#include<QTextEdit>
|
||||||
|
#include<QWidget>
|
||||||
|
|
||||||
|
#include"UI/CommonWindow.h"
|
||||||
|
#include"UI/AboutWindow.h"
|
||||||
|
|
||||||
|
namespace UI
|
||||||
|
{
|
||||||
|
class MainWindow: public QMainWindow, public CommonWindow
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
MainWindow();
|
||||||
|
~MainWindow() = default;
|
||||||
|
private:
|
||||||
|
void configureDownloadSection();
|
||||||
|
void configureUploadSection();
|
||||||
|
void configureWindowDimensions();
|
||||||
|
void configureWindowProperties();
|
||||||
|
void connections();
|
||||||
|
void createMenus();
|
||||||
|
void setupMainWidget();
|
||||||
|
void setupMainWindow();
|
||||||
|
void setupWindowLists();
|
||||||
|
|
||||||
|
|
||||||
|
std::unique_ptr<QStackedWidget> widgetStack;
|
||||||
|
|
||||||
|
std::unique_ptr<QVBoxLayout> stackLayout;
|
||||||
|
|
||||||
|
std::unique_ptr<QHBoxLayout> urlPortion;
|
||||||
|
std::unique_ptr<QHBoxLayout> songPathPortion;
|
||||||
|
|
||||||
|
std::unique_ptr<QWidget> mainWidgetQt;
|
||||||
|
std::unique_ptr<QWidget> uploadSongWidgetQt;
|
||||||
|
|
||||||
|
std::unique_ptr<QDockWidget> MainDockWidgetQt;
|
||||||
|
|
||||||
|
std::unique_ptr<QComboBox> windowComboBox;
|
||||||
|
|
||||||
|
std::unique_ptr<QPushButton> uploadSongQt;
|
||||||
|
|
||||||
|
std::unique_ptr<QTextEdit> urlQt;
|
||||||
|
std::unique_ptr<QTextEdit> sourceFilePathQt;
|
||||||
|
|
||||||
|
std::unique_ptr<QLabel> urlLabel;
|
||||||
|
std::unique_ptr<QLabel> songPath;
|
||||||
|
|
||||||
|
std::unique_ptr<QMenu> fileMenuQt;
|
||||||
|
std::unique_ptr<QMenu> editMenuQt;
|
||||||
|
std::unique_ptr<QMenu> helpMenuQt;
|
||||||
|
|
||||||
|
std::unique_ptr<QAction> closeApplicationQt;
|
||||||
|
std::unique_ptr<QAction> aboutApplicationQt;
|
||||||
|
|
||||||
|
std::unique_ptr<AboutWindow> aboutWindow;
|
||||||
|
signals:
|
||||||
|
private slots:
|
||||||
|
void uploadSong();
|
||||||
|
void exitApplication();
|
||||||
|
void displaySoftwareInformation();
|
||||||
|
void setCurrentIndex(int);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
#ifndef CONVERSIONS_H_
|
||||||
|
#define CONVERSIONS_H_
|
||||||
|
|
||||||
|
#include<memory>
|
||||||
|
#include<string>
|
||||||
|
|
||||||
|
namespace Utilities
|
||||||
|
{
|
||||||
|
class Conversions
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Conversions();
|
||||||
|
|
||||||
|
void initializeValues();
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
void printValue(T);
|
||||||
|
private:
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -12,9 +12,6 @@ using std::string;
|
|||||||
using Managers::ActionManager;
|
using Managers::ActionManager;
|
||||||
using Managers::CommitManager;
|
using Managers::CommitManager;
|
||||||
|
|
||||||
string songPath{};
|
|
||||||
string newSongPath{};
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
if (argc < 2)
|
if (argc < 2)
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#include"ActionManager.h"
|
#include"Managers/ActionManager.h"
|
||||||
|
|
||||||
#include<algorithm>
|
#include<algorithm>
|
||||||
#include<iostream>
|
#include<iostream>
|
||||||
#include<exception>
|
#include<exception>
|
||||||
@@ -86,7 +87,7 @@ namespace Managers
|
|||||||
return !val.compare(action);
|
return !val.compare(action);
|
||||||
}))
|
}))
|
||||||
{
|
{
|
||||||
cout<<"Action: "<<action<<" is valid"<<endl;
|
//cout<<"Action: "<<action<<" is valid"<<endl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -105,11 +106,10 @@ namespace Managers
|
|||||||
|
|
||||||
for (auto flag : flagVals)
|
for (auto flag : flagVals)
|
||||||
{
|
{
|
||||||
//if (flag.size() > 3 || flg.flag.compare("-D"))
|
|
||||||
if (flag.size() > 3 || isNumber(flag))
|
if (flag.size() > 3 || isNumber(flag))
|
||||||
{
|
{
|
||||||
flg.value = flag;
|
flg.value = flag;
|
||||||
cout<<"flag value "<<flg.value<<endl;
|
//cout<<"flag value "<<flg.value<<endl;
|
||||||
flags.push_back(flg);
|
flags.push_back(flg);
|
||||||
flg = Flags{};
|
flg = Flags{};
|
||||||
continue;
|
continue;
|
||||||
@@ -121,7 +121,7 @@ namespace Managers
|
|||||||
return !val.compare(flag);
|
return !val.compare(flag);
|
||||||
}))
|
}))
|
||||||
{
|
{
|
||||||
cout<<"flag "<<flag<<endl;
|
//cout<<"flag "<<flag<<endl;
|
||||||
flg.flag = flag;
|
flg.flag = flag;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,43 +0,0 @@
|
|||||||
#ifndef ACTIONMANAGER_H_
|
|
||||||
#define ACTIONMANAGER_H_
|
|
||||||
|
|
||||||
#include<string>
|
|
||||||
#include<vector>
|
|
||||||
|
|
||||||
#include"Models/Flags.h"
|
|
||||||
#include"Models/IcarusAction.h"
|
|
||||||
|
|
||||||
namespace Managers
|
|
||||||
{
|
|
||||||
class ActionManager
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
ActionManager(char**);
|
|
||||||
|
|
||||||
Models::IcarusAction retrieveIcarusAction() const;
|
|
||||||
std::vector<Models::Flags> retrieveFlags() const;
|
|
||||||
std::string retrieveAction() const;
|
|
||||||
private:
|
|
||||||
bool isNumber(std::string);
|
|
||||||
|
|
||||||
void initialize();
|
|
||||||
void initializeSupportedActions();
|
|
||||||
void initializeSupportedFlags();
|
|
||||||
void validateAction();
|
|
||||||
void validateFlags();
|
|
||||||
|
|
||||||
std::vector<std::string> parsedFlags();
|
|
||||||
|
|
||||||
void printAction();
|
|
||||||
void printFlags(std::vector<std::string>);
|
|
||||||
void printFlags();
|
|
||||||
|
|
||||||
std::string action;
|
|
||||||
std::vector<std::string> supportedActions;
|
|
||||||
std::vector<std::string> supportedFlags;
|
|
||||||
std::vector<Models::Flags> flags;
|
|
||||||
char **params;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,16 +1,17 @@
|
|||||||
#include"CommitManager.h"
|
#include"Managers/CommitManager.h"
|
||||||
|
|
||||||
#include<iostream>
|
#include<iostream>
|
||||||
|
|
||||||
#include"Models/API.h"
|
#include"Models/API.h"
|
||||||
#include"Models/Song.h"
|
#include"Models/Song.h"
|
||||||
|
#include"Models/Token.h"
|
||||||
#include"Parsers/APIParser.h"
|
#include"Parsers/APIParser.h"
|
||||||
#include"Syncers/Delete.h"
|
#include"Syncers/Delete.h"
|
||||||
#include"Syncers/Download.h"
|
#include"Syncers/Download.h"
|
||||||
#include"Syncers/Upload.h"
|
#include"Syncers/Upload.h"
|
||||||
|
|
||||||
#include"TokenManager.h"
|
#include"Managers/TokenManager.h"
|
||||||
#include"UserManager.h"
|
#include"Managers/UserManager.h"
|
||||||
|
|
||||||
using std::cout;
|
using std::cout;
|
||||||
using std::endl;
|
using std::endl;
|
||||||
@@ -21,6 +22,7 @@ using Managers::TokenManager;
|
|||||||
using Managers::UserManager;
|
using Managers::UserManager;
|
||||||
using Models::API;
|
using Models::API;
|
||||||
using Models::Song;
|
using Models::Song;
|
||||||
|
using Models::Token;
|
||||||
using Parsers::APIParser;
|
using Parsers::APIParser;
|
||||||
using Models::IcarusAction;
|
using Models::IcarusAction;
|
||||||
using Syncers::Delete;
|
using Syncers::Delete;
|
||||||
@@ -59,6 +61,17 @@ namespace Managers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Token CommitManager::parseToken(API api)
|
||||||
|
{
|
||||||
|
cout<<"fetching token"<<endl;
|
||||||
|
UserManager usrMgr{icaAction};
|
||||||
|
auto user = usrMgr.retrieveUser();
|
||||||
|
|
||||||
|
TokenManager tk{user, api};
|
||||||
|
|
||||||
|
return tk.requestToken();
|
||||||
|
}
|
||||||
|
|
||||||
void CommitManager::initializeMapActions()
|
void CommitManager::initializeMapActions()
|
||||||
{
|
{
|
||||||
mapActions = map<string, ActionValues>{
|
mapActions = map<string, ActionValues>{
|
||||||
@@ -69,16 +82,10 @@ namespace Managers
|
|||||||
}
|
}
|
||||||
void CommitManager::deleteSong()
|
void CommitManager::deleteSong()
|
||||||
{
|
{
|
||||||
cout<<"Deleting song..."<<endl;
|
|
||||||
|
|
||||||
UserManager usrMgr{icaAction};
|
|
||||||
auto user = usrMgr.retrieveUser();
|
|
||||||
|
|
||||||
APIParser apiPrs{icaAction};
|
APIParser apiPrs{icaAction};
|
||||||
auto api = apiPrs.retrieveAPI();
|
auto api = apiPrs.retrieveAPI();
|
||||||
|
|
||||||
TokenManager tk{user, api};
|
auto token = parseToken(api);
|
||||||
auto token = tk.requestToken();
|
|
||||||
|
|
||||||
Song song{};
|
Song song{};
|
||||||
|
|
||||||
@@ -94,19 +101,17 @@ namespace Managers
|
|||||||
}
|
}
|
||||||
|
|
||||||
Delete del{api};
|
Delete del{api};
|
||||||
|
cout<<"Deleting song..."<<endl;
|
||||||
del.deleteSong(token, song);
|
del.deleteSong(token, song);
|
||||||
}
|
}
|
||||||
void CommitManager::downloadSong()
|
void CommitManager::downloadSong()
|
||||||
{
|
{
|
||||||
cout<<"Starting downloading process..."<<endl;
|
cout<<"Starting downloading process..."<<endl;
|
||||||
UserManager usrMgr{icaAction};
|
|
||||||
auto user = usrMgr.retrieveUser();
|
|
||||||
|
|
||||||
APIParser apiPrs{icaAction};
|
APIParser apiPrs{icaAction};
|
||||||
auto api = apiPrs.retrieveAPI();
|
auto api = apiPrs.retrieveAPI();
|
||||||
|
|
||||||
TokenManager tk{user, api};
|
auto token = parseToken(api);
|
||||||
auto token = tk.requestToken();
|
|
||||||
|
|
||||||
Song song{};
|
Song song{};
|
||||||
|
|
||||||
@@ -126,19 +131,15 @@ namespace Managers
|
|||||||
}
|
}
|
||||||
|
|
||||||
Download dnld{api};
|
Download dnld{api};
|
||||||
|
cout<<"downloading song"<<endl;
|
||||||
dnld.downloadSong(token, song);
|
dnld.downloadSong(token, song);
|
||||||
}
|
}
|
||||||
void CommitManager::uploadSong()
|
void CommitManager::uploadSong()
|
||||||
{
|
{
|
||||||
cout<<"Uploading song..."<<endl;
|
|
||||||
UserManager usrMgr{icaAction};
|
|
||||||
auto user = usrMgr.retrieveUser();
|
|
||||||
|
|
||||||
APIParser apiPrs{icaAction};
|
APIParser apiPrs{icaAction};
|
||||||
auto api = apiPrs.retrieveAPI();
|
auto api = apiPrs.retrieveAPI();
|
||||||
|
|
||||||
TokenManager tk{user, api};
|
auto token = parseToken(api);
|
||||||
auto token = tk.requestToken();
|
|
||||||
|
|
||||||
Song song{};
|
Song song{};
|
||||||
|
|
||||||
@@ -154,6 +155,7 @@ namespace Managers
|
|||||||
}
|
}
|
||||||
|
|
||||||
Upload upld{api};
|
Upload upld{api};
|
||||||
|
cout<<"Uploading song..."<<endl;
|
||||||
upld.uploadSong(token, song);
|
upld.uploadSong(token, song);
|
||||||
}
|
}
|
||||||
#pragma Functions
|
#pragma Functions
|
||||||
|
|||||||
@@ -1,35 +0,0 @@
|
|||||||
#ifndef COMMITMANAGER_H_
|
|
||||||
#define COMMITMANAGER_H_
|
|
||||||
|
|
||||||
#include<map>
|
|
||||||
#include<string>
|
|
||||||
|
|
||||||
#include"Models/IcarusAction.h"
|
|
||||||
|
|
||||||
namespace Managers
|
|
||||||
{
|
|
||||||
class CommitManager
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
CommitManager(Models::IcarusAction);
|
|
||||||
|
|
||||||
void commitAction();
|
|
||||||
private:
|
|
||||||
void initializeMapActions();
|
|
||||||
void deleteSong();
|
|
||||||
void downloadSong();
|
|
||||||
void uploadSong();
|
|
||||||
|
|
||||||
enum ActionValues
|
|
||||||
{
|
|
||||||
deleteAct,
|
|
||||||
downloadAct,
|
|
||||||
retrieveAct,
|
|
||||||
uploadAct
|
|
||||||
};
|
|
||||||
std::map<std::string, ActionValues> mapActions;
|
|
||||||
Models::IcarusAction icaAction;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#include<iostream>
|
#include<iostream>
|
||||||
#include<fstream>
|
#include<fstream>
|
||||||
|
|
||||||
#include"FileManager.h"
|
#include"Managers/FileManager.h"
|
||||||
|
|
||||||
using std::cout;
|
using std::cout;
|
||||||
using std::endl;
|
using std::endl;
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
#ifndef FILEMANAGER_H_
|
|
||||||
#define FILEMANAGER_H_
|
|
||||||
|
|
||||||
#include<string>
|
|
||||||
|
|
||||||
namespace Managers
|
|
||||||
{
|
|
||||||
class FileManager
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
FileManager();
|
|
||||||
FileManager(std::string);
|
|
||||||
|
|
||||||
void saveFile(std::string);
|
|
||||||
void modifyFilePath(std::string);
|
|
||||||
|
|
||||||
char* retrieveFileBuffer() const;
|
|
||||||
int retrieveFileBufferLength() const;
|
|
||||||
private:
|
|
||||||
void readFile();
|
|
||||||
|
|
||||||
std::string filePath;
|
|
||||||
char* fileBuffer;
|
|
||||||
bool fileRead;
|
|
||||||
int fileBufferLength;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#include"TokenManager.h"
|
#include"Managers/TokenManager.h"
|
||||||
|
|
||||||
#include<iostream>
|
#include<iostream>
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
#ifndef TOKENMANAGER_H_
|
|
||||||
#define TOKENMANAGER_H_
|
|
||||||
|
|
||||||
#include"Models/API.h"
|
|
||||||
#include"Models/Token.h"
|
|
||||||
#include"Models/User.h"
|
|
||||||
|
|
||||||
namespace Managers
|
|
||||||
{
|
|
||||||
class TokenManager
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
TokenManager(const Models::User);
|
|
||||||
TokenManager(const Models::User, Models::API);
|
|
||||||
|
|
||||||
Models::Token requestToken();
|
|
||||||
private:
|
|
||||||
Models::API api;
|
|
||||||
Models::User user;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#include"UserManager.h"
|
#include"Managers/UserManager.h"
|
||||||
|
|
||||||
#include<iostream>
|
#include<iostream>
|
||||||
#include<string>
|
#include<string>
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
#ifndef USERMANAGER_H_
|
|
||||||
#define USERMANAGER_H_
|
|
||||||
|
|
||||||
#include<iostream>
|
|
||||||
|
|
||||||
#include"Models/IcarusAction.h"
|
|
||||||
#include"Models/User.h"
|
|
||||||
|
|
||||||
namespace Managers
|
|
||||||
{
|
|
||||||
class UserManager
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
UserManager(Models::User);
|
|
||||||
UserManager(const Models::IcarusAction);
|
|
||||||
|
|
||||||
Models::User retrieveUser() const;
|
|
||||||
private:
|
|
||||||
void parseUserFromActions();
|
|
||||||
|
|
||||||
Models::User user;
|
|
||||||
Models::IcarusAction icaAction;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
#ifndef API_H_
|
|
||||||
#define API_H_
|
|
||||||
|
|
||||||
#include<string>
|
|
||||||
|
|
||||||
namespace Models
|
|
||||||
{
|
|
||||||
struct API
|
|
||||||
{
|
|
||||||
std::string url;
|
|
||||||
std::string endpoint;
|
|
||||||
std::string version;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
#ifndef FLAGS_H_
|
|
||||||
#define FLAGS_H_
|
|
||||||
|
|
||||||
#include<string>
|
|
||||||
|
|
||||||
namespace Models
|
|
||||||
{
|
|
||||||
struct Flags
|
|
||||||
{
|
|
||||||
std::string flag;
|
|
||||||
std::string value;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
#ifndef SONG_H_
|
|
||||||
#define SONG_H_
|
|
||||||
|
|
||||||
#include<string>
|
|
||||||
|
|
||||||
|
|
||||||
namespace Models
|
|
||||||
{
|
|
||||||
struct Song
|
|
||||||
{
|
|
||||||
int id;
|
|
||||||
std::string title;
|
|
||||||
std::string artist;
|
|
||||||
std::string album;
|
|
||||||
std::string genre;
|
|
||||||
int year;
|
|
||||||
int duration;
|
|
||||||
char *songData;
|
|
||||||
std::string data;
|
|
||||||
std::string songPath;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
#ifndef TOKEN_H_
|
|
||||||
#define TOKEN_H_
|
|
||||||
|
|
||||||
#include<string>
|
|
||||||
|
|
||||||
namespace Models
|
|
||||||
{
|
|
||||||
struct Token
|
|
||||||
{
|
|
||||||
std::string accessToken;
|
|
||||||
std::string tokenType;
|
|
||||||
int expiration;
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
#ifndef USER_H_
|
|
||||||
#define USER_H_
|
|
||||||
|
|
||||||
#include<string>
|
|
||||||
|
|
||||||
namespace Models
|
|
||||||
{
|
|
||||||
struct User
|
|
||||||
{
|
|
||||||
std::string username;
|
|
||||||
std::string password;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#include"APIParser.h"
|
#include"Parsers/APIParser.h"
|
||||||
|
|
||||||
#include<iostream>
|
#include<iostream>
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
#ifndef APIPARSER_H_
|
|
||||||
#define APIPARSER_H_
|
|
||||||
|
|
||||||
#include"Models/API.h"
|
|
||||||
#include"Models/IcarusAction.h"
|
|
||||||
|
|
||||||
namespace Parsers
|
|
||||||
{
|
|
||||||
class APIParser
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
APIParser(Models::IcarusAction);
|
|
||||||
|
|
||||||
Models::API retrieveAPI() const;
|
|
||||||
private:
|
|
||||||
void parseAPI();
|
|
||||||
|
|
||||||
Models::API api;
|
|
||||||
Models::IcarusAction icaAct;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#include"Delete.h"
|
#include"Syncers/Delete.h"
|
||||||
|
|
||||||
#include<exception>
|
#include<exception>
|
||||||
#include<iostream>
|
#include<iostream>
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
#ifndef DELETE_H_
|
|
||||||
#define DELETE_H_
|
|
||||||
|
|
||||||
#include"Models/API.h"
|
|
||||||
#include"Models/Song.h"
|
|
||||||
#include"Models/Token.h"
|
|
||||||
|
|
||||||
#include"SyncerBase.h"
|
|
||||||
|
|
||||||
namespace Syncers
|
|
||||||
{
|
|
||||||
class Delete : SyncerBase
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Delete(Models::API);
|
|
||||||
|
|
||||||
void deleteSong(const Models::Token, Models::Song);
|
|
||||||
private:
|
|
||||||
std::string retrieveUrl(Models::Song);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#include"Download.h"
|
#include"Syncers/Download.h"
|
||||||
|
|
||||||
#include<exception>
|
#include<exception>
|
||||||
#include<iostream>
|
#include<iostream>
|
||||||
|
|||||||
@@ -1,32 +0,0 @@
|
|||||||
#ifndef DOWNLOAD_H_
|
|
||||||
#define DOWNLOAD_H_
|
|
||||||
|
|
||||||
#include<iostream>
|
|
||||||
#include<string>
|
|
||||||
|
|
||||||
#include"Models/API.h"
|
|
||||||
#include"Models/Song.h"
|
|
||||||
#include"Models/Token.h"
|
|
||||||
|
|
||||||
#include"SyncerBase.h"
|
|
||||||
|
|
||||||
namespace Syncers
|
|
||||||
{
|
|
||||||
class Download : SyncerBase
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Download();
|
|
||||||
Download(Models::API);
|
|
||||||
Download(std::string);
|
|
||||||
|
|
||||||
void downloadSong(int);
|
|
||||||
void downloadSong(const Models::Token token, Models::Song);
|
|
||||||
private:
|
|
||||||
std::string retrieveUrl(Models::Song);
|
|
||||||
|
|
||||||
std::string downloadFilePath;
|
|
||||||
void saveSong(Models::Song*);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
#ifndef SYNCERBASE_H_
|
|
||||||
#define SYNCERBASE_H_
|
|
||||||
|
|
||||||
#include<string>
|
|
||||||
|
|
||||||
#include"Models/API.h"
|
|
||||||
|
|
||||||
namespace Syncers
|
|
||||||
{
|
|
||||||
class SyncerBase
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
Models::API api;
|
|
||||||
const int OK = 200;
|
|
||||||
const int UNAUTHORIZED = 401;
|
|
||||||
const int NOTFOUND = 404;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
#include<cpr/cpr.h>
|
#include<cpr/cpr.h>
|
||||||
#include<nlohmann/json.hpp>
|
#include<nlohmann/json.hpp>
|
||||||
|
|
||||||
#include"Upload.h"
|
#include"Syncers/Upload.h"
|
||||||
|
|
||||||
using std::cout;
|
using std::cout;
|
||||||
using std::endl;
|
using std::endl;
|
||||||
|
|||||||
@@ -1,47 +0,0 @@
|
|||||||
#ifndef UPLOAD_H_
|
|
||||||
#define UPLOAD_H_
|
|
||||||
|
|
||||||
#include<string>
|
|
||||||
|
|
||||||
#include<nlohmann/json.hpp>
|
|
||||||
|
|
||||||
#include"Managers/FileManager.h"
|
|
||||||
#include"Models/API.h"
|
|
||||||
#include"Models/Song.h"
|
|
||||||
#include"Models/Token.h"
|
|
||||||
#include"Models/UploadForm.h"
|
|
||||||
|
|
||||||
|
|
||||||
namespace Syncers
|
|
||||||
{
|
|
||||||
class Upload
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Upload();
|
|
||||||
Upload(std::string);
|
|
||||||
Upload(Models::API);
|
|
||||||
Upload(Models::UploadForm);
|
|
||||||
|
|
||||||
void uploadSong();
|
|
||||||
void uploadSong(const Models::Token, Models::Song);
|
|
||||||
private:
|
|
||||||
Managers::FileManager fMgr;
|
|
||||||
Models::API api;
|
|
||||||
Models::Song song;
|
|
||||||
std::string apiUrl{""}; // Not being used
|
|
||||||
std::string apiEndPoint{""}; // Not being used
|
|
||||||
std::string songPath; // Not being used
|
|
||||||
std::string url; // Not being used
|
|
||||||
int port{9349}; // Not being used
|
|
||||||
|
|
||||||
std::string retrieveUrl();
|
|
||||||
|
|
||||||
void configureSongDemo();
|
|
||||||
void printSongDetails();
|
|
||||||
void printJsonData(nlohmann::json);
|
|
||||||
|
|
||||||
nlohmann::json serializeObject(); // Not being used
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#include"AboutWindow.h"
|
#include"UI/AboutWindow.h"
|
||||||
|
|
||||||
using std::unique_ptr;
|
using std::unique_ptr;
|
||||||
|
|
||||||
|
|||||||
@@ -1,34 +0,0 @@
|
|||||||
#ifndef ABOUTWINDOW_H_
|
|
||||||
#define ABOUTWINDOW_H_
|
|
||||||
|
|
||||||
#include<memory>
|
|
||||||
|
|
||||||
#include<QDialog>
|
|
||||||
#include<QDockWidget>
|
|
||||||
#include<QLabel>
|
|
||||||
#include<QPushButton>
|
|
||||||
#include<QWidget>
|
|
||||||
|
|
||||||
#include"UI/CommonWindow.h"
|
|
||||||
|
|
||||||
namespace UI
|
|
||||||
{
|
|
||||||
class AboutWindow: public QDialog, public CommonWindow
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
AboutWindow(QWidget* parent=0);
|
|
||||||
~AboutWindow() = default;
|
|
||||||
|
|
||||||
private:
|
|
||||||
void connections();
|
|
||||||
void setupWindow();
|
|
||||||
|
|
||||||
std::unique_ptr<QLabel> appName;
|
|
||||||
|
|
||||||
private slots:
|
|
||||||
void closeWindow();
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
#ifndef COMMONWINDOW_H_
|
|
||||||
#define COMMONWINDOW_H_
|
|
||||||
|
|
||||||
#include<memory>
|
|
||||||
|
|
||||||
#include<QDialog>
|
|
||||||
#include<QHBoxLayout>
|
|
||||||
#include<QVBoxLayout>
|
|
||||||
#include<QComboBox>
|
|
||||||
#include<QPushButton>
|
|
||||||
|
|
||||||
|
|
||||||
class CommonWindow
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
CommonWindow() = default;
|
|
||||||
~CommonWindow() = default;
|
|
||||||
protected:
|
|
||||||
virtual void connections()=0;
|
|
||||||
std::unique_ptr<QComboBox> selectionBoxQt;
|
|
||||||
std::unique_ptr<QPushButton> actionButtonQt;
|
|
||||||
std::unique_ptr<QVBoxLayout> mainLayoutQt;
|
|
||||||
std::unique_ptr<QVBoxLayout> subLayoutOneQt;
|
|
||||||
std::unique_ptr<QVBoxLayout> subLayoutTwoQt;
|
|
||||||
int windowHeight, windowWidth;
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#include"MainWindow.h"
|
#include"UI/MainWindow.h"
|
||||||
|
|
||||||
#include<iostream>
|
#include<iostream>
|
||||||
#include<string>
|
#include<string>
|
||||||
|
|||||||
@@ -1,82 +0,0 @@
|
|||||||
#ifndef MAINWINDOW_H_
|
|
||||||
#define MAINWINDOW_H_
|
|
||||||
|
|
||||||
#include<iostream>
|
|
||||||
#include<memory>
|
|
||||||
|
|
||||||
#include<QAction>
|
|
||||||
#include<QComboBox>
|
|
||||||
#include<QDialog>
|
|
||||||
#include<QDockWidget>
|
|
||||||
#include<QLabel>
|
|
||||||
#include<QMenu>
|
|
||||||
#include<QMenuBar>
|
|
||||||
#include<QMainWindow>
|
|
||||||
#include<QPushButton>
|
|
||||||
#include<QStackedWidget>
|
|
||||||
#include<QTextEdit>
|
|
||||||
#include<QWidget>
|
|
||||||
|
|
||||||
#include"UI/CommonWindow.h"
|
|
||||||
#include"UI/AboutWindow.h"
|
|
||||||
|
|
||||||
namespace UI
|
|
||||||
{
|
|
||||||
class MainWindow: public QMainWindow, public CommonWindow
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
MainWindow();
|
|
||||||
~MainWindow() = default;
|
|
||||||
private:
|
|
||||||
void configureDownloadSection();
|
|
||||||
void configureUploadSection();
|
|
||||||
void configureWindowDimensions();
|
|
||||||
void configureWindowProperties();
|
|
||||||
void connections();
|
|
||||||
void createMenus();
|
|
||||||
void setupMainWidget();
|
|
||||||
void setupMainWindow();
|
|
||||||
void setupWindowLists();
|
|
||||||
|
|
||||||
|
|
||||||
std::unique_ptr<QStackedWidget> widgetStack;
|
|
||||||
|
|
||||||
std::unique_ptr<QVBoxLayout> stackLayout;
|
|
||||||
|
|
||||||
std::unique_ptr<QHBoxLayout> urlPortion;
|
|
||||||
std::unique_ptr<QHBoxLayout> songPathPortion;
|
|
||||||
|
|
||||||
std::unique_ptr<QWidget> mainWidgetQt;
|
|
||||||
std::unique_ptr<QWidget> uploadSongWidgetQt;
|
|
||||||
|
|
||||||
std::unique_ptr<QDockWidget> MainDockWidgetQt;
|
|
||||||
|
|
||||||
std::unique_ptr<QComboBox> windowComboBox;
|
|
||||||
|
|
||||||
std::unique_ptr<QPushButton> uploadSongQt;
|
|
||||||
|
|
||||||
std::unique_ptr<QTextEdit> urlQt;
|
|
||||||
std::unique_ptr<QTextEdit> sourceFilePathQt;
|
|
||||||
|
|
||||||
std::unique_ptr<QLabel> urlLabel;
|
|
||||||
std::unique_ptr<QLabel> songPath;
|
|
||||||
|
|
||||||
std::unique_ptr<QMenu> fileMenuQt;
|
|
||||||
std::unique_ptr<QMenu> editMenuQt;
|
|
||||||
std::unique_ptr<QMenu> helpMenuQt;
|
|
||||||
|
|
||||||
std::unique_ptr<QAction> closeApplicationQt;
|
|
||||||
std::unique_ptr<QAction> aboutApplicationQt;
|
|
||||||
|
|
||||||
std::unique_ptr<AboutWindow> aboutWindow;
|
|
||||||
signals:
|
|
||||||
private slots:
|
|
||||||
void uploadSong();
|
|
||||||
void exitApplication();
|
|
||||||
void displaySoftwareInformation();
|
|
||||||
void setCurrentIndex(int);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#include"Conversions.h"
|
#include"Utilities/Conversions.h"
|
||||||
|
|
||||||
#include<iostream>
|
#include<iostream>
|
||||||
|
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
#ifndef CONVERSIONS_H_
|
|
||||||
#define CONVERSIONS_H_
|
|
||||||
|
|
||||||
#include<memory>
|
|
||||||
#include<string>
|
|
||||||
|
|
||||||
namespace Utilities
|
|
||||||
{
|
|
||||||
class Conversions
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Conversions();
|
|
||||||
|
|
||||||
void initializeValues();
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
void printValue(T);
|
|
||||||
private:
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
Reference in New Issue
Block a user