From 41cc81c70b365d188846f67e11b83c68ed32f6ea Mon Sep 17 00:00:00 2001 From: bog Date: Tue, 26 Dec 2023 16:30:10 +0100 Subject: [PATCH] :tada: empty Qt6 window ! --- .gitignore | 4 ++++ Makefile | 8 ++++++++ meson.build | 45 +++++++++++++++++++++++++++++++++++++++++ src/Presenter.cpp | 14 +++++++++++++ src/Presenter.hpp | 21 +++++++++++++++++++ src/conf.in.hpp | 6 ++++++ src/gui/Window.cpp | 21 +++++++++++++++++++ src/gui/Window.hpp | 22 ++++++++++++++++++++ src/main.cpp | 18 +++++++++++++++++ src/pixtool/PixTool.cpp | 15 ++++++++++++++ src/pixtool/PixTool.hpp | 19 +++++++++++++++++ 11 files changed, 193 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 meson.build create mode 100644 src/Presenter.cpp create mode 100644 src/Presenter.hpp create mode 100644 src/conf.in.hpp create mode 100644 src/gui/Window.cpp create mode 100644 src/gui/Window.hpp create mode 100644 src/main.cpp create mode 100644 src/pixtool/PixTool.cpp create mode 100644 src/pixtool/PixTool.hpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d27ba9f --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*~* +*\#* +.cache +build \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..9ea2b5e --- /dev/null +++ b/Makefile @@ -0,0 +1,8 @@ +.PHONY: build install + +build: + meson setup build + meson compile -C build + +install: build + meson install -C build diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..c8bb258 --- /dev/null +++ b/meson.build @@ -0,0 +1,45 @@ +project( + 'pixtool', + 'cpp', + version: '0.0.0', + default_options: [ + 'cpp_std=c++17', + 'warning_level=3' + ] +) + +conf = configuration_data() +conf.set('version', meson.project_version()) + +configure_file( + input: 'src/conf.in.hpp', + output: 'conf.hpp', + configuration: conf +) + +qt6 = import('qt6') +qt6_dep = dependency('qt6', modules: ['Core', 'Widgets']) + +qt_src = qt6.compile_moc( + headers: [ + 'src/gui/Window.hpp' + ] +) + +executable( + 'pixtool', + sources: [ + 'src/main.cpp', + 'src/Presenter.cpp', + + # model + 'src/pixtool/PixTool.cpp', + + # gui + 'src/gui/Window.cpp', + ] + qt_src, + dependencies: [ + qt6_dep + ], + install: true +) diff --git a/src/Presenter.cpp b/src/Presenter.cpp new file mode 100644 index 0000000..935508a --- /dev/null +++ b/src/Presenter.cpp @@ -0,0 +1,14 @@ +#include "Presenter.hpp" + +namespace pt +{ + /*explicit*/ Presenter::Presenter(gui::Window& window, model::PixTool& pixtool) + : m_window { window } + , m_pixtool { pixtool } + { + } + + /*virtual*/ Presenter::~Presenter() + { + } +} diff --git a/src/Presenter.hpp b/src/Presenter.hpp new file mode 100644 index 0000000..b353db4 --- /dev/null +++ b/src/Presenter.hpp @@ -0,0 +1,21 @@ +#ifndef pt_PRESENTER_HPP +#define pt_PRESENTER_HPP + +#include "pixtool/PixTool.hpp" +#include "gui/Window.hpp" + +namespace pt +{ + class Presenter + { + public: + explicit Presenter(gui::Window& window, model::PixTool& pixtool); + virtual ~Presenter(); + + private: + gui::Window& m_window; + model::PixTool& m_pixtool; + }; +} + +#endif diff --git a/src/conf.in.hpp b/src/conf.in.hpp new file mode 100644 index 0000000..cedf6fa --- /dev/null +++ b/src/conf.in.hpp @@ -0,0 +1,6 @@ +#ifndef pt_CONF_HPP +#define pt_CONF_HPP + +#define PT_VERSION std::string("@version@") + +#endif diff --git a/src/gui/Window.cpp b/src/gui/Window.cpp new file mode 100644 index 0000000..11ca07a --- /dev/null +++ b/src/gui/Window.cpp @@ -0,0 +1,21 @@ +#include "Window.hpp" +#include "conf.hpp" + +namespace pt +{ + namespace gui + { + /*explicit*/ Window::Window(QWidget* parent) + : QMainWindow(parent) + { + setWindowTitle(QString::fromStdString("PixTool v" + PT_VERSION)); + setMinimumSize(QSize {640, 480}); + + show(); + } + + /*virtual*/ Window::~Window() + { + } + } +} diff --git a/src/gui/Window.hpp b/src/gui/Window.hpp new file mode 100644 index 0000000..174eac5 --- /dev/null +++ b/src/gui/Window.hpp @@ -0,0 +1,22 @@ +#ifndef pt_gui_WINDOW_HPP +#define pt_gui_WINDOW_HPP + +#include + +namespace pt +{ + namespace gui + { + class Window: public QMainWindow + { + Q_OBJECT + public: + explicit Window(QWidget* parent=nullptr); + virtual ~Window(); + + private: + }; + } +} + +#endif diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..d735ac5 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,18 @@ +#include +#include +#include "pixtool/PixTool.hpp" +#include "gui/Window.hpp" +#include "Presenter.hpp" + +int main(int argc, char** argv) +{ + QApplication app {argc, argv}; + + pt::gui::Window window; + + pt::model::PixTool pixtool; + + pt::Presenter presenter {window, pixtool}; + + return app.exec(); +} diff --git a/src/pixtool/PixTool.cpp b/src/pixtool/PixTool.cpp new file mode 100644 index 0000000..5655b6f --- /dev/null +++ b/src/pixtool/PixTool.cpp @@ -0,0 +1,15 @@ +#include "PixTool.hpp" + +namespace pt +{ + namespace model + { + /*explicit*/ PixTool::PixTool() + { + } + + /*virtual*/ PixTool::~PixTool() + { + } + } +} diff --git a/src/pixtool/PixTool.hpp b/src/pixtool/PixTool.hpp new file mode 100644 index 0000000..ca4449c --- /dev/null +++ b/src/pixtool/PixTool.hpp @@ -0,0 +1,19 @@ +#ifndef pt_model_PIXTOOL_HPP +#define pt_model_PIXTOOL_HPP + +namespace pt +{ + namespace model + { + class PixTool + { + public: + explicit PixTool(); + virtual ~PixTool(); + + private: + }; + } +} + +#endif