From 8f45d3707a9436348356cd55649220747c59e263 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 15 Apr 2020 16:17:24 +0200 Subject: [PATCH] GUI: Adding MainWindow class --- gui/CMakeLists.txt | 1 + gui/MainWindow.cpp | 55 ++++++++++++++++++++++++++++++++++++++++++++++ gui/MainWindow.hpp | 50 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 106 insertions(+) create mode 100644 gui/MainWindow.cpp create mode 100644 gui/MainWindow.hpp diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt index 7e37389..a9f1f6a 100644 --- a/gui/CMakeLists.txt +++ b/gui/CMakeLists.txt @@ -14,6 +14,7 @@ set( PROGRAM_EXE ${COMPONENT_NAME} ) set( PROGRAM_SRC main.cpp + MainWindow.cpp GenerateWindow.cpp SearchWindow.cpp MultiSelect.cpp diff --git a/gui/MainWindow.cpp b/gui/MainWindow.cpp new file mode 100644 index 0000000..414ea0e --- /dev/null +++ b/gui/MainWindow.cpp @@ -0,0 +1,55 @@ +/** + * MIT License + * + * Copyright (c) 2020 EOS Sw/eden + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#include +#include +#include +#include "GenerateWindow.hpp" +#include "SearchWindow.h" +#include "MainWindow.hpp" + +MainWindow::MainWindow(QWidget *parent) : +QMainWindow (parent) +{ + // Create sub windows and stacked widget. + m_stacked = new QStackedWidget(); + m_stacked->addWidget(new GenerateWindow()); + m_stacked->addWidget(new SearchWindow()); + + setCentralWidget(m_stacked); + + // Menu bar. + + menuBar()->addAction("Generate", this, SLOT(switchToGenerate())); + menuBar()->addAction("Search", this, SLOT(switchToSearch())); +} + +void MainWindow::switchToGenerate() +{ + m_stacked->setCurrentIndex(0); +} + +void MainWindow::switchToSearch() +{ + m_stacked->setCurrentIndex(1); +} diff --git a/gui/MainWindow.hpp b/gui/MainWindow.hpp new file mode 100644 index 0000000..1d5d695 --- /dev/null +++ b/gui/MainWindow.hpp @@ -0,0 +1,50 @@ +/** + * MIT License + * + * Copyright (c) 2020 EOS Sw/eden + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#ifndef MAIN_WINDOW_H +#define MAIN_WINDOW_H + +#include + +class QStackedWidget; + +class MainWindow : public QMainWindow +{ + Q_OBJECT +public: + MainWindow(QWidget *parent = 0); + +private slots : + + // Switch to generate window. + void switchToGenerate(); + + // Switch to search window. + void switchToSearch(); + +private : + + QStackedWidget* m_stacked; +}; + +#endif /* MAIN_WINDOW_H */