From a806a2fcfc47aed112101e12fb637e562b826a7b Mon Sep 17 00:00:00 2001 From: Fries Date: Sun, 25 Jun 2023 22:57:53 -0700 Subject: [PATCH] add a basic TextEditor application right now this is just a KTextArea in a KXmlGuiWindow. --- CMakeLists.txt | 5 +-- src/CMakeLists.txt | 17 +-------- src/KMessageBox/CMakeLists.txt | 18 +++++++++ src/{ => KMessageBox}/hello.cc | 0 src/{ => KMessageBox}/internationalization.cc | 0 src/TextEditor/CMakeLists.txt | 13 +++++++ src/TextEditor/MainWindow.cc | 12 ++++++ src/TextEditor/MainWindow.hh | 15 ++++++++ src/TextEditor/main.cc | 37 +++++++++++++++++++ 9 files changed, 99 insertions(+), 18 deletions(-) create mode 100644 src/KMessageBox/CMakeLists.txt rename src/{ => KMessageBox}/hello.cc (100%) rename src/{ => KMessageBox}/internationalization.cc (100%) create mode 100644 src/TextEditor/CMakeLists.txt create mode 100644 src/TextEditor/MainWindow.cc create mode 100644 src/TextEditor/MainWindow.hh create mode 100644 src/TextEditor/main.cc diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b2d7e6..d0f4c5a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,9 +22,8 @@ find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS CoreAddons I18n - WidgetsAddons ) -feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) - add_subdirectory(src) + +feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 69264a0..6bd7984 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,15 +1,2 @@ -add_executable(hello hello.cc) -target_link_libraries(hello - Qt5::Widgets - KF5::CoreAddons - KF5::WidgetsAddons -) - -add_executable(internationalization internationalization.cc) - -target_link_libraries(internationalization - Qt5::Widgets - KF5::CoreAddons - KF5::WidgetsAddons - KF5::I18n -) +add_subdirectory(KMessageBox) +add_subdirectory(TextEditor) diff --git a/src/KMessageBox/CMakeLists.txt b/src/KMessageBox/CMakeLists.txt new file mode 100644 index 0000000..d9d7cca --- /dev/null +++ b/src/KMessageBox/CMakeLists.txt @@ -0,0 +1,18 @@ +find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS + WidgetsAddons +) + +add_executable(hello hello.cc) +target_link_libraries(hello + Qt5::Widgets + KF5::CoreAddons + KF5::WidgetsAddons +) + +add_executable(internationalization internationalization.cc) +target_link_libraries(internationalization + Qt5::Widgets + KF5::CoreAddons + KF5::WidgetsAddons + KF5::I18n +) diff --git a/src/hello.cc b/src/KMessageBox/hello.cc similarity index 100% rename from src/hello.cc rename to src/KMessageBox/hello.cc diff --git a/src/internationalization.cc b/src/KMessageBox/internationalization.cc similarity index 100% rename from src/internationalization.cc rename to src/KMessageBox/internationalization.cc diff --git a/src/TextEditor/CMakeLists.txt b/src/TextEditor/CMakeLists.txt new file mode 100644 index 0000000..dd9aa9d --- /dev/null +++ b/src/TextEditor/CMakeLists.txt @@ -0,0 +1,13 @@ +find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS + XmlGui + TextWidgets +) + +add_executable(TextEditor main.cc MainWindow.cc) +target_link_libraries(TextEditor + Qt5::Widgets + KF5::CoreAddons + KF5::I18n + KF5::XmlGui + KF5::TextWidgets +) diff --git a/src/TextEditor/MainWindow.cc b/src/TextEditor/MainWindow.cc new file mode 100644 index 0000000..1cc5a4f --- /dev/null +++ b/src/TextEditor/MainWindow.cc @@ -0,0 +1,12 @@ +#include "MainWindow.hh" + +MainWindow::MainWindow(QWidget* parent) + : KXmlGuiWindow(parent) +{ + // setup the TextArea + textArea = new KTextEdit(); + // set the central widget to be the TextArea + setCentralWidget(textArea); + // setup the GUI + setupGUI(); +} diff --git a/src/TextEditor/MainWindow.hh b/src/TextEditor/MainWindow.hh new file mode 100644 index 0000000..60f8b92 --- /dev/null +++ b/src/TextEditor/MainWindow.hh @@ -0,0 +1,15 @@ +#ifndef MainWindow_H +#define MainWindow_H + +#include +#include + +class MainWindow : public KXmlGuiWindow { +public: + explicit MainWindow(QWidget* parent = nullptr); + +private: + KTextEdit* textArea; +}; + +#endif diff --git a/src/TextEditor/main.cc b/src/TextEditor/main.cc new file mode 100644 index 0000000..d8af0ce --- /dev/null +++ b/src/TextEditor/main.cc @@ -0,0 +1,37 @@ +#include "MainWindow.hh" +#include +#include +#include +#include + +int main(int argc, char* argv[]) +{ + QApplication app(argc, argv); + KLocalizedString::setApplicationDomain("MainWindow"); + + KAboutData aboutData( + // Internal Name + QStringLiteral("MainWindow"), + // Name + i18n("Text Editor"), + // Version Number + QStringLiteral("1.0"), + // Short Description + i18n("A text editor."), + // License + KAboutLicense::Custom, + // Copyright Statement + i18n("2023")); + + KAboutData::setApplicationData(aboutData); + + QCommandLineParser parser; + aboutData.setupCommandLine(&parser); + parser.process(app); + aboutData.processCommandLine(&parser); + + MainWindow* window = new MainWindow(); + window->show(); + + return app.exec(); +}