aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore5
-rw-r--r--CMakeLists.txt32
-rw-r--r--locale/qcplt_en_US.ts3
-rw-r--r--source/main.cpp31
-rw-r--r--source/qml/main.qml8
5 files changed, 79 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5d9d765
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+.idea/
+build/
+cache/
+CMakeLists.txt.user
+compile_commands.json
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..07d4d08
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,32 @@
+cmake_minimum_required(VERSION 3.16)
+
+project(QCplt VERSION 0.1 LANGUAGES CXX)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_CXX_STANDARD 20)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+find_package(Qt6 6.2 COMPONENTS Quick REQUIRED)
+
+qt_add_executable(AppQCplt
+ source/main.cpp
+)
+
+qt_add_qml_module(AppQCplt
+ URI QCplt
+ VERSION 1.0
+ QML_FILES source/qml/main.qml
+)
+
+set_target_properties(AppQCplt PROPERTIES
+ MACOSX_BUNDLE_GUI_IDENTIFIER rtk0c.github.io
+ MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
+ MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
+ MACOSX_BUNDLE TRUE
+ WIN32_EXECUTABLE TRUE
+)
+
+target_compile_definitions(AppQCplt
+ PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
+target_link_libraries(AppQCplt
+ PRIVATE Qt6::Quick)
diff --git a/locale/qcplt_en_US.ts b/locale/qcplt_en_US.ts
new file mode 100644
index 0000000..edd0d34
--- /dev/null
+++ b/locale/qcplt_en_US.ts
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="en_US"></TS>
diff --git a/source/main.cpp b/source/main.cpp
new file mode 100644
index 0000000..699e881
--- /dev/null
+++ b/source/main.cpp
@@ -0,0 +1,31 @@
+#include <QGuiApplication>
+#include <QQmlApplicationEngine>
+
+#include <QLocale>
+#include <QTranslator>
+
+int main(int argc, char *argv[])
+{
+ QGuiApplication app(argc, argv);
+
+ QTranslator translator;
+ const QStringList uiLanguages = QLocale::system().uiLanguages();
+ for (const QString &locale : uiLanguages) {
+ const QString baseName = "qcplt_" + QLocale(locale).name();
+ if (translator.load(":/i18n/" + baseName)) {
+ app.installTranslator(&translator);
+ break;
+ }
+ }
+
+ QQmlApplicationEngine engine;
+ const QUrl url(u"qrc:/qcplt/main.qml"_qs);
+ QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
+ &app, [url](QObject *obj, const QUrl &objUrl) {
+ if (!obj && url == objUrl)
+ QCoreApplication::exit(-1);
+ }, Qt::QueuedConnection);
+ engine.load(url);
+
+ return app.exec();
+}
diff --git a/source/qml/main.qml b/source/qml/main.qml
new file mode 100644
index 0000000..41424f8
--- /dev/null
+++ b/source/qml/main.qml
@@ -0,0 +1,8 @@
+import QtQuick
+
+Window {
+ width: 640
+ height: 480
+ visible: true
+ title: qsTr("Hello World")
+}