From 63fe56a0638b53477579ca37df3bfce30613e4ed Mon Sep 17 00:00:00 2001 From: bd Date: Sun, 23 Mar 2025 21:48:12 -0400 Subject: Remove Python, combine main files --- CMakeLists.txt | 65 ++++++++++++++++++++------------------------------- README.md | 1 - inc/gui.h | 26 +++++++++++++++++++++ src/gui/GUI.cc | 39 ------------------------------- src/gui/GUI.h | 27 --------------------- src/gui/GUI.ui | 55 ------------------------------------------- src/gui/gui.cc | 39 +++++++++++++++++++++++++++++++ src/gui/gui.ui | 55 +++++++++++++++++++++++++++++++++++++++++++ src/gui/main.cc | 11 --------- src/gui/resources.qrc | 5 ++-- src/main.cc | 12 ++++++---- 11 files changed, 156 insertions(+), 179 deletions(-) create mode 100644 inc/gui.h delete mode 100644 src/gui/GUI.cc delete mode 100644 src/gui/GUI.h delete mode 100644 src/gui/GUI.ui create mode 100644 src/gui/gui.cc create mode 100644 src/gui/gui.ui delete mode 100644 src/gui/main.cc diff --git a/CMakeLists.txt b/CMakeLists.txt index 64cd30d..d4be3ee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,9 @@ cmake_minimum_required(VERSION 3.5) project(risc_vector) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +set(CMAKE_AUTOUIC ON) # automatically process .ui files into headers +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) add_compile_options(-Wall -lstdc++) add_compile_options(-Wextra -Wpedantic) @@ -20,54 +23,36 @@ include_directories( # gather source files file(GLOB_RECURSE SRCS "src/*.cc") list(REMOVE_ITEM SRCS "${CMAKE_CURRENT_SOURCE_DIR}/src/main.cc") -#exclude gui files from cli executable -foreach(file ${SRCS}) - if(file MATCHES "${CMAKE_CURRENT_SOURCE_DIR}/src/gui/.*") - list(REMOVE_ITEM SRCS ${file}) - endif() -endforeach() -# find python3 components -find_package(Python3 COMPONENTS Development REQUIRED) +# find QT components +find_package(Qt6 COMPONENTS Widgets REQUIRED) # binary executable -add_executable(${PROJECT_NAME} ${SRCS} src/main.cc) -target_link_libraries(${PROJECT_NAME} PRIVATE Python3::Python) - -find_package(Catch2 REQUIRED) - -#gather test files -file(GLOB_RECURSE TESTS "tests/*.cc") - -# test executable -add_executable(tests ${SRCS} ${TESTS}) -target_link_libraries(tests PRIVATE Catch2::Catch2WithMain PRIVATE Python3::Python) +add_executable(${PROJECT_NAME} ${SRCS}) +qt_add_resources(GUI_RESOURCES "src/gui/resources.qrc") +target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Widgets) -# test discovery -include(CTest) -include(Catch) -catch_discover_tests(tests) +# find_package(Catch2 REQUIRED) -# ================================ -# Qt6 GUI Integration -# ================================ -cmake_minimum_required(VERSION 3.16) +# #gather test files +# file(GLOB_RECURSE TESTS "tests/*.cc") -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) +# # test executable +# add_executable(tests ${SRCS} ${TESTS}) +# target_link_libraries(tests PRIVATE Catch2::Catch2WithMain PRIVATE Qt6::Widgets) -# Find Qt6 Components -find_package(Qt6 REQUIRED COMPONENTS Widgets) +# # test discovery +# include(CTest) +# include(Catch) +# catch_discover_tests(tests) -# Gather GUI Source Files -file(GLOB_RECURSE GUI_SRCS "src/gui/*.cc") - -# Gather GUI Resources -qt_add_resources(GUI_RESOURCES "src/gui/resources.qrc") +# # Gather GUI Source Files +# file(GLOB_RECURSE GUI_SRCS "src/gui/*.cc") -# GUI executable -qt_add_executable("${PROJECT_NAME}_gui" ${GUI_SRCS} ${SRCS} ${GUI_RESOURCES}) -target_link_libraries("${PROJECT_NAME}_gui" PRIVATE Qt6::Widgets) +# # Gather GUI Resources +# qt_add_resources(GUI_RESOURCES "src/gui/resources.qrc") +# # GUI executable +# qt_add_executable("${PROJECT_NAME}_gui" ${GUI_SRCS} ${SRCS} ${GUI_RESOURCES}) +# target_link_libraries("${PROJECT_NAME}_gui" PRIVATE Qt6::Widgets) diff --git a/README.md b/README.md index bdfd76e..a6ce662 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,6 @@ ## dependencies - cmake - g++ (GCC) 11.4.0 -- python 3.10 or newer - catch2 version 3.5.3 - Qt version 6.8.2 diff --git a/inc/gui.h b/inc/gui.h new file mode 100644 index 0000000..668fafa --- /dev/null +++ b/inc/gui.h @@ -0,0 +1,26 @@ +#ifndef GUI_H +#define GUI_H +#include + +namespace Ui +{ +class gui; +} +QT_END_NAMESPACE + +class Gui : public QWidget +{ + Q_OBJECT + + public: + Gui(QWidget *parent = nullptr); + ~Gui(); + + private slots: + void on_pushButton_clicked(); + + private: + Ui::gui *ui; + void loadTxtFile(); +}; +#endif // GUI_H diff --git a/src/gui/GUI.cc b/src/gui/GUI.cc deleted file mode 100644 index 5577e6e..0000000 --- a/src/gui/GUI.cc +++ /dev/null @@ -1,39 +0,0 @@ -#include "GUI.h" -#include "./ui_GUI.h" -#include -#include - -GUI::GUI(QWidget *parent) - : QWidget(parent) - , ui(new Ui::GUI) -{ - ui->setupUi(this); - loadTxtFile(); -} - -GUI::~GUI() -{ - delete ui; -} - -void GUI::loadTxtFile(){ - QFile inputFile(":/resources/input.txt"); - inputFile.open(QIODevice::ReadOnly); - - QTextStream in(&inputFile); - QString line = in.readAll(); - inputFile.close(); - - ui->textEdit->setPlainText(line); - QTextCursor cursor = ui->textEdit->textCursor(); - cursor.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor, 1); -} - -void GUI::on_pushButton_clicked() -{ - QString searchString = ui->lineEdit->text(); - ui->textEdit->find(searchString, QTextDocument::FindWholeWords); -} - - - diff --git a/src/gui/GUI.h b/src/gui/GUI.h deleted file mode 100644 index b06f310..0000000 --- a/src/gui/GUI.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef GUI_H -#define GUI_H - -#include - -QT_BEGIN_NAMESPACE -namespace Ui { -class GUI; -} -QT_END_NAMESPACE - -class GUI : public QWidget -{ - Q_OBJECT - -public: - GUI(QWidget *parent = nullptr); - ~GUI(); - -private slots: - void on_pushButton_clicked(); - -private: - Ui::GUI *ui; - void loadTxtFile(); -}; -#endif // GUI_H diff --git a/src/gui/GUI.ui b/src/gui/GUI.ui deleted file mode 100644 index bce52c2..0000000 --- a/src/gui/GUI.ui +++ /dev/null @@ -1,55 +0,0 @@ - - - GUI - - - - 0 - 0 - 800 - 600 - - - - GUI - - - - - 60 - 30 - 317 - 232 - - - - - - - - - keyword - - - - - - - - - - find - - - - - - - - - - - - - - diff --git a/src/gui/gui.cc b/src/gui/gui.cc new file mode 100644 index 0000000..9f2405d --- /dev/null +++ b/src/gui/gui.cc @@ -0,0 +1,39 @@ +#include "gui.h" +#include "ui_gui.h" +#include +#include + +Gui::Gui(QWidget *parent) + : QWidget(parent) + , ui(new Ui::gui) +{ + ui->setupUi(this); + loadTxtFile(); +} + +Gui::~Gui() +{ + delete ui; +} + +void Gui::loadTxtFile(){ + QFile inputFile(":/resources/input.txt"); + inputFile.open(QIODevice::ReadOnly); + + QTextStream in(&inputFile); + QString line = in.readAll(); + inputFile.close(); + + ui->textEdit->setPlainText(line); + QTextCursor cursor = ui->textEdit->textCursor(); + cursor.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor, 1); +} + +void Gui::on_pushButton_clicked() +{ + QString searchString = ui->lineEdit->text(); + ui->textEdit->find(searchString, QTextDocument::FindWholeWords); +} + + + diff --git a/src/gui/gui.ui b/src/gui/gui.ui new file mode 100644 index 0000000..5f71c91 --- /dev/null +++ b/src/gui/gui.ui @@ -0,0 +1,55 @@ + + + gui + + + + 0 + 0 + 800 + 600 + + + + gui + + + + + 60 + 30 + 317 + 232 + + + + + + + + + keyword + + + + + + + + + + find + + + + + + + + + + + + + + diff --git a/src/gui/main.cc b/src/gui/main.cc deleted file mode 100644 index e592da9..0000000 --- a/src/gui/main.cc +++ /dev/null @@ -1,11 +0,0 @@ -#include "GUI.h" - -#include - -int main(int argc, char *argv[]) -{ - QApplication a(argc, argv); - GUI w; - w.show(); - return a.exec(); -} diff --git a/src/gui/resources.qrc b/src/gui/resources.qrc index 44aaefa..8bfd4e7 100644 --- a/src/gui/resources.qrc +++ b/src/gui/resources.qrc @@ -1,5 +1,6 @@ - + + - resources/input.txt + resources/input.txt diff --git a/src/main.cc b/src/main.cc index f5eecac..be0a6f0 100644 --- a/src/main.cc +++ b/src/main.cc @@ -1,6 +1,8 @@ #include "cli.h" #include "definitions.h" +#include "gui.h" #include "logger.h" +#include #include #include @@ -36,8 +38,7 @@ static void err() << std::endl; } -static void -parseArguments(int argc, char **argv, bool &memory_only) +static void parseArguments(int argc, char **argv, bool &memory_only) { struct option long_options[] = { {"debug", no_argument, 0, 'd'}, @@ -74,10 +75,13 @@ int main(int argc, char **argv) if (memory_only) { Cli cli; cli.run(); + } else { + QApplication a(argc, argv); + Gui w; + w.show(); + return a.exec(); } - // fork off python here - global_log->log(INFO, "Python started."); global_log->log(INFO, "Cleaning up..."); global_log->log(INFO, "Goodbye!"); return EXIT_SUCCESS; -- cgit v1.2.3