From 20be07b8bcc2bfc8674bab0306c9b7bdc03673f0 Mon Sep 17 00:00:00 2001 From: Raphael Beck Date: Wed, 21 Feb 2024 20:40:10 +0100 Subject: [PATCH] Added Qt web-wrapper project. --- .../.gitignore | 87 ++++++++++++++++++ .../CMakeLists.txt | 67 ++++++++++++++ .../favicon.ico | Bin 0 -> 134521 bytes .../ico.qrc | 5 + .../main.cpp | 61 ++++++++++++ 5 files changed, 220 insertions(+) create mode 100644 GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/.gitignore create mode 100644 GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/CMakeLists.txt create mode 100644 GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/favicon.ico create mode 100644 GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/ico.qrc create mode 100644 GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/main.cpp diff --git a/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/.gitignore b/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/.gitignore new file mode 100644 index 0000000..d554cef --- /dev/null +++ b/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/.gitignore @@ -0,0 +1,87 @@ +**/.idea +**/cmake-build* +**/.DS_Store + +# This file is used to ignore files which are generated +# ---------------------------------------------------------------------------- + +*~ +*.autosave +*.a +*.core +*.moc +*.o +*.obj +*.orig +*.rej +*.so +*.so.* +*_pch.h.cpp +*_resource.rc +*.qm +.#* +*.*# +core +!core/ +tags +.DS_Store +.directory +*.debug +Makefile* +*.prl +*.app +moc_*.cpp +ui_*.h +qrc_*.cpp +Thumbs.db +*.res +*.rc +/.qmake.cache +/.qmake.stash + +# qtcreator generated files +*.pro.user* + +# xemacs temporary files +*.flc + +# Vim temporary files +.*.swp + +# Visual Studio generated files +*.ib_pdb_index +*.idb +*.ilk +*.pdb +*.sln +*.suo +*.vcproj +*vcproj.*.*.user +*.ncb +*.sdf +*.opensdf +*.vcxproj +*vcxproj.* + +# MinGW generated files +*.Debug +*.Release + +# Python byte code +*.pyc + +# Binaries +# -------- +*.dll +*.exe + +build** +*.user + +!loc/*qm + +!img/*.rc + +!lib/** + +**/.DS_Store diff --git a/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/CMakeLists.txt b/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/CMakeLists.txt new file mode 100644 index 0000000..a8fe4f7 --- /dev/null +++ b/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/CMakeLists.txt @@ -0,0 +1,67 @@ +cmake_minimum_required(VERSION 3.5) + +project(GlitchEd25519 VERSION 1.0 LANGUAGES CXX) + +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets) +find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets WebView WebEngineWidgets) + +set(PROJECT_SOURCES ${CMAKE_CURRENT_LIST_DIR}/main.cpp ${CMAKE_CURRENT_LIST_DIR}/ico.qrc) +set(APP_ICON_RESOURCE_WINDOWS "${CMAKE_CURRENT_LIST_DIR}/winico.rc") + +if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) + qt_add_executable(GlitchEd25519 + MANUAL_FINALIZATION + ${PROJECT_SOURCES} + ${APP_ICON_RESOURCE_WINDOWS} + ) +# Define target properties for Android with Qt 6 as: +# set_property(TARGET GlitchEd25519 APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR +# ${CMAKE_CURRENT_SOURCE_DIR}/android) +# For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation +else() + if(ANDROID) + add_library(GlitchEd25519 SHARED + ${PROJECT_SOURCES} + ) +# Define properties for Android with Qt 5 after find_package() calls as: +# set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android") + else() + add_executable(GlitchEd25519 + ${PROJECT_SOURCES} + ) + endif() +endif() + +target_link_libraries(GlitchEd25519 PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::WebView Qt${QT_VERSION_MAJOR}::WebEngineWidgets) + +# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. +# If you are developing for iOS or macOS you should consider setting an +# explicit, fixed bundle identifier manually though. +if(${QT_VERSION} VERSION_LESS 6.1.0) + set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER com.glitchedpolygons.ed25519) +endif() +set_target_properties(GlitchEd25519 PROPERTIES + ${BUNDLE_ID_OPTION} + MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} + MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} + MACOSX_BUNDLE TRUE + WIN32_EXECUTABLE TRUE +) + +include(GNUInstallDirs) +install(TARGETS GlitchEd25519 + BUNDLE DESTINATION . + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +) + +if(QT_VERSION_MAJOR EQUAL 6) + qt_finalize_executable(GlitchEd25519) +endif() diff --git a/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/favicon.ico b/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d498f9ba9dcfec2b99633e6a5df8bb662c4a6725 GIT binary patch literal 134521 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 literal 0 HcmV?d00001 diff --git a/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/ico.qrc b/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/ico.qrc new file mode 100644 index 0000000..5df7c82 --- /dev/null +++ b/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/ico.qrc @@ -0,0 +1,5 @@ + + + favicon.ico + + diff --git a/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/main.cpp b/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/main.cpp new file mode 100644 index 0000000..5f930ad --- /dev/null +++ b/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/GlitchedPolygons.GlitchEd25519.BlazorWebApp.Qt/main.cpp @@ -0,0 +1,61 @@ +#include +#include +#include +#include +#include +#include + +static const QString APP_NAME("GlitchEd25519"); +static const QString SETTING_ID_WINDOW_WIDTH("WindowWidth"); +static const QString SETTING_ID_WINDOW_HEIGHT("WindowHeight"); +static const QString SETTING_ID_WINDOW_MAXIMIZED("WindowMaximized"); +static const QString PROFILE_NAME("GlitchedPolygons.Qt.WebEngine.Profile"); +static const QUrl URL("https://ed25519.glitchedpolygons.com"); + +int main(int argc, char** argv) +{ + const QApplication app(argc, argv); + + app.setOrganizationName("Glitched Polygons"); + app.setOrganizationDomain("glitchedpolygons.com"); + app.setApplicationVersion("1.0.0"); + app.setApplicationName(APP_NAME); + app.setApplicationDisplayName(APP_NAME); + app.setWindowIcon(QIcon(":/favicon.ico")); + + QWebEngineProfile profile(PROFILE_NAME); + + profile.settings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, true); + profile.setPersistentStoragePath(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)); + + QWebEnginePage page(&profile); + page.load(URL); + + QSettings::setDefaultFormat(QSettings::IniFormat); + QSettings settings; + + const int savedWindowWidth = settings.value(SETTING_ID_WINDOW_WIDTH, QVariant(1024)).toInt(); + const int savedWindowHeight = settings.value(SETTING_ID_WINDOW_HEIGHT, QVariant(768)).toInt(); + const bool savedWindowMaximizationState = settings.value(SETTING_ID_WINDOW_MAXIMIZED, QVariant(true)).toBool(); + + QWebEngineView view; + view.setPage(&page); + view.resize(savedWindowWidth, savedWindowHeight); + + if (savedWindowMaximizationState) + { + view.showMaximized(); + } + else + { + view.show(); + } + + const int r = app.exec(); + + settings.setValue(SETTING_ID_WINDOW_WIDTH, QVariant(view.width())); + settings.setValue(SETTING_ID_WINDOW_HEIGHT, QVariant(view.height())); + settings.setValue(SETTING_ID_WINDOW_MAXIMIZED, QVariant(view.isMaximized())); + + return r; +}