diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b04784..1defe02 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,14 +3,14 @@ project(cinny C CXX) # Automatically create moc files set(CMAKE_AUTOMOC ON) -# set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD 17) include(GNUInstallDirs) -find_package(Qt5Core REQUIRED) -find_package(Qt5Qml REQUIRED) -find_package(Qt5Quick REQUIRED) -find_package(Qt5QuickControls2 REQUIRED) +find_package(Qt6Core REQUIRED) +find_package(Qt6Qml REQUIRED) +find_package(Qt6Quick REQUIRED) +find_package(Qt6QuickControls2 REQUIRED) execute_process( COMMAND dpkg-architecture -qDEB_HOST_MULTIARCH @@ -49,12 +49,13 @@ install(FILES url-dispatcher.json DESTINATION ${DATA_DIR}) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/manifest.json DESTINATION ${CMAKE_INSTALL_PREFIX}) install(FILES ${PROJECT_NAME}.apparmor DESTINATION ${DATA_DIR}) install(FILES assets/logo.svg DESTINATION assets) +install(PROGRAMS wrapper DESTINATION ${CMAKE_INSTALL_PREFIX}) -qt5_add_resources(QT_RESOURCES qml/qml.qrc) -qt5_add_resources(QT_RESOURCES assets/assets.qrc) +qt_add_resources(QT_RESOURCES qml/qml.qrc) +qt_add_resources(QT_RESOURCES assets/assets.qrc) add_executable(${PROJECT_NAME} main.cpp ${QT_RESOURCES}) set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE -s) -target_link_libraries(${PROJECT_NAME} QHttp Qt5::Gui Qt5::Qml Qt5::Quick Qt5::QuickControls2) +target_link_libraries(${PROJECT_NAME} QHttp Qt6::Gui Qt6::Qml Qt6::Quick Qt6::QuickControls2) install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}) # Translations diff --git a/cinny.apparmor b/cinny.apparmor index 2d2d4af..d22e986 100644 --- a/cinny.apparmor +++ b/cinny.apparmor @@ -9,5 +9,6 @@ "webview", "push-notification-client" ], - "policy_version": "@APPARMOR_POLICY@" + "policy_version": "@APPARMOR_POLICY@", + "template": "unconfined" } diff --git a/cinny.desktop.in b/cinny.desktop.in index 6be558e..c60d1b5 100644 --- a/cinny.desktop.in +++ b/cinny.desktop.in @@ -1,6 +1,6 @@ [Desktop Entry] _Name=Cinny UT -Exec=cinny %U +Exec=wrapper ./cinny %U Icon=assets/logo.svg Terminal=false Type=Application diff --git a/clickable.yaml b/clickable.yaml index e8cf987..b36b522 100644 --- a/clickable.yaml +++ b/clickable.yaml @@ -1,7 +1,33 @@ clickable_minimum_required: 8 builder: cmake -framework: ubuntu-sdk-20.04 +framework: ubuntu-touch-24.04-1.x kill: cinny prebuild: "bash ${ROOT}/prebuild.sh" install_root_data: - "${ROOT}/target" + +image_setup: + run: + - id + - sed -i 's/24\.04-1\.x/24\.04-2\.x/g' /etc/apt/preferences.d/99-ubports-no-qt6.pref + - sed -i 's/400/2000/g' /etc/apt/preferences.d/99-ubports-no-qt6.pref + - sed -i 's/24\.04-1\.x/24\.04-2\.x/g' /etc/apt/sources.list.d/ubports.list && cat /etc/apt/sources.list.d/ubports.list + - apt update + - apt remove -y liblomiri-connectivity-qt1:$ARCH + - apt full-upgrade -y + - apt install -y qt6-wayland:$ARCH qtubuntu-qt6:$ARCH maliit-inputcontext-qt6:$ARCH qmlscene-qt6:$ARCH + - apt install -y qt6-base-dev:$ARCH qt6-base-private-dev:$ARCH qt6-declarative-dev:$ARCH qt6-declarative-private-dev:$ARCH qt6-5compat-dev:$ARCH qt6-svg-dev:$ARCH qt6-tools-dev:$ARCH qt6-webengine-dev:$ARCH libapparmor-dev:$ARCH libpsl-dev:$ARCH + - apt install -y qml6-module-qt-labs-folderlistmodel:$ARCH qml6-module-qt-labs-settings:$ARCH qml6-module-qtqml-workerscript:$ARCH qml6-module-qtquick:$ARCH qml6-module-qtquick-controls:$ARCH qml6-module-qtquick-layouts:$ARCH qml6-module-lomiri-systeminfo:$ARCH qml6-module-lomiri-content:$ARCH qml6-module-lomiri-components:$ARCH qml6-module-lomiri-components-extras:$ARCH qml6-module-lomiri-action:$ARCH qml6-module-qtquick-templates:$ARCH qml6-module-qt5compat-graphicaleffects:$ARCH qml6-module-qtwebengine:$ARCH libqt6webenginecore6-bin:$ARCH qt6-webengine-dev-tools:$ARCH lomiri-ui-toolkit-theme-qt6:$ARCH + - apt install -y qml6-module-lomiri-downloadmanager:$ARCH qml6-module-lomiri-pushnotifications:$ARCH +install_bin: + - "/usr/lib/qt6/libexec/QtWebEngineProcess" + - "/usr/lib/qt6/bin/qmlscene" + +install_lib: + - "/usr/lib/$ARCH_TRIPLET/lib*qt6*.so*" + - "/usr/lib/$ARCH_TRIPLET/lib*Qt6*.so*" + - "/usr/lib/$ARCH_TRIPLET/libOpenGL*.so*" + - "/usr/lib/$ARCH_TRIPLET/libb2*.so*" + - "/usr/lib/$ARCH_TRIPLET/libKTactileFeedback.so*" + - "/usr/lib/$ARCH_TRIPLET/qt6" + - "/usr/share/qt6/resources" diff --git a/libs/qhttp/CMakeLists.txt b/libs/qhttp/CMakeLists.txt index a4b5ee6..4ad28a1 100644 --- a/libs/qhttp/CMakeLists.txt +++ b/libs/qhttp/CMakeLists.txt @@ -2,8 +2,8 @@ project(qhttp C CXX) cmake_minimum_required(VERSION 3.0.0) -find_package(Qt5Core REQUIRED) -find_package(Qt5Network REQUIRED) +find_package(Qt6Core REQUIRED) +find_package(Qt6Network REQUIRED) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) @@ -37,8 +37,8 @@ set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) target_link_libraries(${QHTTP} PUBLIC - Qt5::Core - Qt5::Network + Qt6::Core + Qt6::Network ) target_include_directories(${QHTTP} PUBLIC diff --git a/main.cpp b/main.cpp index 27c05d6..feb9d4b 100644 --- a/main.cpp +++ b/main.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -36,7 +37,7 @@ int main(int argc, char *argv[]) QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts); QGuiApplication *app = new QGuiApplication(argc, (char **)argv); - QQuickStyle::setStyle("Suru"); +// QQuickStyle::setStyle("Suru"); app->setApplicationName("cinny.danfro"); mimes[".html"] = "text/html"; @@ -74,4 +75,4 @@ int main(int argc, char *argv[]) view->show(); return app->exec(); -} \ No newline at end of file +} diff --git a/plugins/Backend/CMakeLists.txt b/plugins/Backend/CMakeLists.txt index 543e268..368b02b 100644 --- a/plugins/Backend/CMakeLists.txt +++ b/plugins/Backend/CMakeLists.txt @@ -11,7 +11,8 @@ set(CMAKE_AUTOMOC ON) add_library(${PLUGIN} MODULE ${SRC}) set_target_properties(${PLUGIN} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PLUGIN}) -qt5_use_modules(${PLUGIN} Qml Quick DBus) +target_link_libraries(${PLUGIN} Qt6::Qml Qt6::Quick Qt6::DBus) +#qt_use_modules(${PLUGIN} Qml Quick DBus) execute_process( COMMAND dpkg-architecture -qDEB_HOST_MULTIARCH diff --git a/push/CMakeLists.txt b/push/CMakeLists.txt index 8166de0..e1be174 100644 --- a/push/CMakeLists.txt +++ b/push/CMakeLists.txt @@ -1,6 +1,6 @@ add_executable(push push.cpp ) -target_link_libraries(push Qt5::Core) +target_link_libraries(push Qt6::Core) install(FILES push-apparmor.json DESTINATION push) install(FILES push.json DESTINATION push) diff --git a/qml/BottomGestureActionIndicator.qml b/qml/BottomGestureActionIndicator.qml index 87e66cf..091ca5f 100644 --- a/qml/BottomGestureActionIndicator.qml +++ b/qml/BottomGestureActionIndicator.qml @@ -1,6 +1,6 @@ import QtQuick 2.9 -import Lomiri.Components 1.3 -import QtGraphicalEffects 1.12 +import Lomiri.Components +import Qt5Compat.GraphicalEffects Item { id: root diff --git a/qml/BottomNavigationGesture.qml b/qml/BottomNavigationGesture.qml index bb61c6b..22bd77d 100644 --- a/qml/BottomNavigationGesture.qml +++ b/qml/BottomNavigationGesture.qml @@ -1,5 +1,5 @@ import QtQuick 2.4 -import Lomiri.Components 1.3 +import Lomiri.Components Item { id: root diff --git a/qml/DownloadPage.qml b/qml/DownloadPage.qml index d7879cf..70594d5 100644 --- a/qml/DownloadPage.qml +++ b/qml/DownloadPage.qml @@ -16,8 +16,8 @@ */ import QtQuick 2.12 -import Lomiri.Components 1.3 -import Lomiri.Content 1.3 +import Lomiri.Components +import Lomiri.Content import Backend 1.0 diff --git a/qml/HorizontalSwipeHandler.qml b/qml/HorizontalSwipeHandler.qml index 95ff5a5..ebf436a 100644 --- a/qml/HorizontalSwipeHandler.qml +++ b/qml/HorizontalSwipeHandler.qml @@ -1,5 +1,5 @@ import QtQuick 2.9 -import Lomiri.Components 1.3 +import Lomiri.Components import QtQuick.Window 2.2 SwipeGestureHandler { diff --git a/qml/Main.qml b/qml/Main.qml index 554addf..7cded73 100644 --- a/qml/Main.qml +++ b/qml/Main.qml @@ -17,16 +17,16 @@ import QtQuick 2.12 import QtQuick.Layouts 1.0 import QtQuick.Controls 2.12 -import Lomiri.Components 1.3 -import Lomiri.Components.Popups 1.3 -import Lomiri.PushNotifications 0.1 -import Lomiri.Content 1.3 -import Lomiri.DownloadManager 1.2 +import Lomiri.Components +import Lomiri.Components.Popups +import Lomiri.PushNotifications +import Lomiri.Content +import Lomiri.DownloadManager import QtQuick.Window 2.12 import QtQuick.Layouts 1.3 import Qt.labs.settings 1.0 import QtQml 2.12 -import QtWebEngine 1.11 +import QtWebEngine import QtWebChannel 1.0 import Backend 1.0 import Qt.labs.platform 1.0 as PF //for StandardPaths @@ -122,8 +122,7 @@ MainView { settings.javascriptEnabled : true profile : webContext - onNewViewRequested : function (request) { - request.action = WebEngineNavigationRequest.IgnoreRequest + onNewWindowRequested : function (request) { if (request.requestedUrl !== "ignore://") { // console.log("requested url: " + request.requestedUrl.toString()) Qt.openUrlExternally(request.requestedUrl) diff --git a/qml/SwipeGestureHandler.qml b/qml/SwipeGestureHandler.qml index ee5a64d..8b36994 100644 --- a/qml/SwipeGestureHandler.qml +++ b/qml/SwipeGestureHandler.qml @@ -1,5 +1,5 @@ import QtQuick 2.4 -import Lomiri.Components 1.3 +import Lomiri.Components import QtQuick.Window 2.2 SwipeArea { diff --git a/qml/UploadPage.qml b/qml/UploadPage.qml index 9b0e0ad..6d36796 100644 --- a/qml/UploadPage.qml +++ b/qml/UploadPage.qml @@ -16,8 +16,8 @@ */ import QtQuick 2.12 -import Lomiri.Components 1.3 -import Lomiri.Content 1.3 +import Lomiri.Components +import Lomiri.Content import Backend 1.0 diff --git a/wrapper b/wrapper new file mode 100755 index 0000000..4e9e690 --- /dev/null +++ b/wrapper @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +export LD_LIBRARY_PATH=$(pwd)/lib/aarch64-linux-gnu:$(pwd)/lib +export QTWEBENGINEPROCESS_PATH=$(pwd)/lib/aarch64-linux-gnu/bin/QtWebEngineProcess +export QTWEBENGINE_RESOURCES_PATH=$(pwd)/lib/aarch64-linux-gnu/resources +export QT_PLUGIN_PATH=$(pwd)/lib/aarch64-linux-gnu/qt6/plugins +export QML_IMPORT_PATH=$(pwd)/lib/aarch64-linux-gnu/qt6/qml:$(pwd)/usr/lib/aarch64-linux-gnu/qt6/qml:$(pwd)/lib/aarch64-linux-gnu +export QT_IM_MODULE=maliit +export QT_OPENGL_VARIANT=gles +export LOMIRI_UI_TOOLKIT_THEMES_PATH=$(pwd)/lib/aarch64-linux-gnu/qt6/qml +unset QT_QUICK_CONTROLS_STYLE +export QT_QPA_PLATFORM=wayland-egl +export QT_SCALE_FACTOR=$(awk 'BEGIN {printf "%.1f\n", 24/9}') + +exec "$@"