From 4c895d518975b47c38fdbf3b3f33e9db5c3eb83a Mon Sep 17 00:00:00 2001 From: amazing-username Date: Sat, 23 Mar 2019 19:09:20 -0400 Subject: [PATCH] Created simple base gui #1 --- CMakeLists.txt | 32 +++++++++++++++-- src/Main.cpp | 28 +++++---------- src/UI/CommonWindow.h | 27 ++++++++++++++ src/UI/MainWindow.cpp | 84 +++++++++++++++++++++++++++++++++++++++++++ src/UI/MainWindow.h | 53 +++++++++++++++++++++++++++ 5 files changed, 202 insertions(+), 22 deletions(-) create mode 100644 src/UI/CommonWindow.h create mode 100644 src/UI/MainWindow.cpp create mode 100644 src/UI/MainWindow.h diff --git a/CMakeLists.txt b/CMakeLists.txt index d1bc390..99bdb7d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,9 +29,35 @@ else() endif() endif() +# Find includes in corresponding build directories +set(CMAKE_INCLUDE_CURRENT_DIR ON) +# Instruct CMake to run moc automatically when needed +set(CMAKE_AUTOMOC ON) +# Create code from a list of Qt designer ui files +set(CMAKE_AUTOUIC ON) + + +find_package(Qt5Widgets CONFIG REQUIRED) + add_subdirectory(cpr) -add_executable(icd src/Main.cpp src/Managers/FileManager.h src/Managers/FileManager.cpp src/Syncers/Upload.h src/Syncers/Upload.cpp - src/Syncers/Download.h src/Syncers/Download.cpp src/Models/Song.h) -target_link_libraries(icd ${CPR_LIBRARIES}) +set(SOURCES + src/Main.cpp + src/Managers/FileManager.cpp + src/Syncers/Download.cpp + src/Syncers/Upload.cpp + src/UI/MainWindow.cpp +) +set(HEADERS + src/Managers/FileManager.h + src/Models/Song.h + src/Syncers/Download.h + src/Syncers/Upload.h + src/UI/CommonWindow.h + src/UI/MainWindow.h +) + +add_executable(icd ${SOURCES} ${HEADERS}) + +target_link_libraries(icd ${CPR_LIBRARIES} Qt5::Widgets) include_directories(${CPR_INCLUDE_DIRS} ${JSON_INCLUDE_DIRS} src/) diff --git a/src/Main.cpp b/src/Main.cpp index 13e3d09..9247b7f 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -1,20 +1,18 @@ #include #include -#include"Syncers/Download.h" -#include"Syncers/Upload.h" -#include"Managers/FileManager.h" +#include + +#include"UI/MainWindow.h" using std::cin; using std::cout; using std::endl; using std::string; -using Managers::FileManager; -using Syncers::Download; -using Syncers::Upload; +using UI::MainWindow; -string songPath; +string songPath{}; string newSongPath; int main(int argc, char** argv) @@ -36,19 +34,11 @@ int main(int argc, char** argv) break; } - cout<<"Song path: "< + +#include +#include +#include +#include +#include + + +class CommonWindow +{ +public: + CommonWindow() = default; + ~CommonWindow() = default; +protected: + virtual void connections()=0; + std::unique_ptr selectionBoxQt; + std::unique_ptr actionButtonQt; + std::unique_ptr mainLayoutQt; + std::unique_ptr subLayoutOneQt; + std::unique_ptr subLayoutTwoQt; + int windowHeight, windowWidth; +}; +#endif diff --git a/src/UI/MainWindow.cpp b/src/UI/MainWindow.cpp new file mode 100644 index 0000000..c8f22e1 --- /dev/null +++ b/src/UI/MainWindow.cpp @@ -0,0 +1,84 @@ +#include"MainWindow.h" + +using std::unique_ptr; + +namespace UI +{ + MainWindow::MainWindow() + { + + setupMainWindow(); + } + + + void MainWindow::configureDownloadSection() + { + } + void MainWindow::configureUploadSection() + { + } + void MainWindow::configureWindowDimensions() + { + windowWidth = 600; + windowHeight = 600; + } + void MainWindow::configureWindowProperties() + { + setWindowTitle("IcarusDownloadManager"); + setFixedHeight(windowHeight); + setFixedWidth(windowWidth); + } + void MainWindow::connections() + { + + } + void MainWindow::createMenus() + { + fileMenuQt = unique_ptr{menuBar()->addMenu(tr("File"))}; + editMenuQt = unique_ptr{menuBar()->addMenu(tr("Edit"))}; + + closeApplicationQt = unique_ptr{new QAction(new QObject(nullptr))}; + 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()); + */ + + } + void MainWindow::setupMainWindow() + { + configureWindowDimensions(); + actionButtonQt = unique_ptr{new QPushButton(tr("upload"))}; + selectionBoxQt = unique_ptr{new QComboBox{}}; + + 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()); + + cryptionAreaQt = unique_ptr{new QDockWidget(tr("Cryption"))}; + cryptionAreaQt.get()->setFeatures(QDockWidget::NoDockWidgetFeatures); + addDockWidget(Qt::LeftDockWidgetArea, cryptionAreaQt.get()); + + createMenus(); + + + configureWindowProperties(); + actionButtonQt.get()->setEnabled(false); + + connections(); + } +} diff --git a/src/UI/MainWindow.h b/src/UI/MainWindow.h new file mode 100644 index 0000000..fe57cb0 --- /dev/null +++ b/src/UI/MainWindow.h @@ -0,0 +1,53 @@ +#ifndef MAINWINDOW_H_ +#define MAINWINDOW_H_ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include"UI/CommonWindow.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 setupMainWindow(); + + std::unique_ptr buttonLayoutQt; + + std::unique_ptr buttonWidgetQt; + + std::unique_ptr buttonDockWidgetQt; + std::unique_ptr cryptionAreaQt; + + std::unique_ptr sourceFilePathQt; + + std::unique_ptr fileMenuQt; + std::unique_ptr editMenuQt; + std::unique_ptr closeApplicationQt; + signals: + private slots: + }; +} + +#endif