From fa3bbfeec7232cbf276b0e438b1b66e246a6f399 Mon Sep 17 00:00:00 2001 From: Holden Date: Tue, 26 Nov 2024 21:40:25 -0500 Subject: [PATCH] Update to Qt 6.8 --- .github/actions/qt-android/action.yml | 6 +++--- .github/workflows/android-linux.yml | 4 ++-- .github/workflows/android-macos.yml | 2 +- .github/workflows/android-windows.yml | 6 +++--- .github/workflows/custom.yml | 8 ++++---- .github/workflows/ios.yml | 2 +- .github/workflows/linux.yml | 4 ++-- .github/workflows/macos.yml | 2 +- .github/workflows/windows.yml | 8 ++++---- CMakeLists.txt | 14 +++++++++----- cmake/Qt6QGCConfiguration.cmake | 2 +- deploy/docker/Dockerfile-build-ubuntu | 4 ++-- deploy/vagrant/.vagrantconfig.yml | 8 ++++---- docs/en/qgc-dev-guide/getting_started/index.md | 2 +- src/CMakeLists.txt | 1 - src/GPS/CMakeLists.txt | 1 + src/Joystick/CMakeLists.txt | 10 +++++----- src/Joystick/JoystickManager.cc | 8 ++++++++ src/Joystick/JoystickManager.h | 1 + src/QGCApplication.cc | 4 ++++ src/Vehicle/Actuators/ActuatorTesting.h | 2 +- src/Vehicle/Actuators/CMakeLists.txt | 2 +- src/Vehicle/CMakeLists.txt | 2 +- src/Vehicle/Components/CMakeLists.txt | 2 +- src/Vehicle/Components/CompInfo.h | 2 +- src/Vehicle/Components/CompInfoParam.h | 2 +- .../Components/ComponentInformationManager.h | 2 +- src/Vehicle/StandardModes.h | 2 +- src/Vehicle/Vehicle.h | 2 +- src/VideoManager/VideoManager.cc | 15 +++++++++------ src/VideoManager/VideoManager.h | 1 + tools/setup/install-qt-debian.sh | 4 ++-- translations/qgc-lupdate.sh | 2 +- 33 files changed, 79 insertions(+), 58 deletions(-) diff --git a/.github/actions/qt-android/action.yml b/.github/actions/qt-android/action.yml index e406eaca88e..00dcbab4f6f 100644 --- a/.github/actions/qt-android/action.yml +++ b/.github/actions/qt-android/action.yml @@ -10,7 +10,7 @@ inputs: version: description: Qt Version required: false - default: 6.6.3 + default: 6.8.1 abis: description: ABIs to Build required: false @@ -28,14 +28,14 @@ runs: uses: android-actions/setup-android@v3 with: cmdline-tools-version: 12266719 - packages: 'platform-tools platforms;android-35 build-tools;35.0.0' # ndk;25.1.8937393' + packages: 'platform-tools platforms;android-35 build-tools;35.0.0' # ndk;26.1.10909125' log-accepted-android-sdk-licenses: false - name: Install Android NDK uses: nttld/setup-ndk@v1 id: setup-ndk with: - ndk-version: r25b + ndk-version: r26b add-to-path: false - run: | diff --git a/.github/workflows/android-linux.yml b/.github/workflows/android-linux.yml index e931308c1a5..64ade02b724 100644 --- a/.github/workflows/android-linux.yml +++ b/.github/workflows/android-linux.yml @@ -33,7 +33,7 @@ jobs: env: ARTIFACT: QGroundControl.apk - QT_VERSION: 6.6.3 + QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 QT_ANDROID_KEYSTORE_PATH: ${{ github.workspace }}/deploy/android/android_release.keystore QT_ANDROID_KEYSTORE_ALIAS: QGCAndroidKeyStore @@ -69,7 +69,7 @@ jobs: uses: ./.github/actions/qt-android with: host: linux - arch: gcc_64 + arch: linux_gcc_64 version: ${{ env.QT_VERSION }} abis: ${{ env.QT_ANDROID_ABIS }} diff --git a/.github/workflows/android-macos.yml b/.github/workflows/android-macos.yml index 841560402f6..dae5c9a367f 100644 --- a/.github/workflows/android-macos.yml +++ b/.github/workflows/android-macos.yml @@ -17,7 +17,7 @@ jobs: env: ARTIFACT: QGroundControl.apk - QT_VERSION: 6.6.3 + QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 QT_ANDROID_KEYSTORE_PATH: ${{ github.workspace }}/deploy/android/android_release.keystore QT_ANDROID_KEYSTORE_ALIAS: QGCAndroidKeyStore diff --git a/.github/workflows/android-windows.yml b/.github/workflows/android-windows.yml index d237fbea70b..de35e0e30dc 100644 --- a/.github/workflows/android-windows.yml +++ b/.github/workflows/android-windows.yml @@ -33,7 +33,7 @@ jobs: env: ARTIFACT: QGroundControl.apk - QT_VERSION: 6.6.3 + QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 QT_ANDROID_KEYSTORE_PATH: ${{ github.workspace }}/deploy/android/android_release.keystore QT_ANDROID_KEYSTORE_ALIAS: QGCAndroidKeyStore @@ -59,7 +59,7 @@ jobs: uses: ./.github/actions/qt-android with: host: windows - arch: win64_msvc2019_64 + arch: win64_msvc2022_64 version: ${{ env.QT_VERSION }} abis: ${{ env.QT_ANDROID_ABIS }} @@ -76,7 +76,7 @@ jobs: -DCMAKE_BUILD_TYPE=${{ matrix.BuildType }} -DQT_ANDROID_ABIS="${{ env.QT_ANDROID_ABIS }}" -DQT_ANDROID_BUILD_ALL_ABIS=OFF - -DQT_HOST_PATH="${{ env.QT_ROOT_DIR }}/../msvc2019_64" + -DQT_HOST_PATH="${{ env.QT_ROOT_DIR }}/../msvc2022_64" -DQT_ANDROID_SIGN_APK=OFF -DQT_DEBUG_FIND_PACKAGE=ON -DQGC_STABLE_BUILD=${{ github.ref_type == 'tag' || contains(github.ref, 'Stable') && 'ON' || 'OFF' }} diff --git a/.github/workflows/custom.yml b/.github/workflows/custom.yml index 7648fda89d8..ec2af170c27 100644 --- a/.github/workflows/custom.yml +++ b/.github/workflows/custom.yml @@ -36,7 +36,7 @@ jobs: env: ARTIFACT: QGroundControl-installer.exe - QT_VERSION: 6.6.3 + QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 SCCACHE_GHA_ENABLED: "true" @@ -91,10 +91,10 @@ jobs: uses: jurplel/install-qt-action@v4 with: version: ${{ env.QT_VERSION }} - aqtversion: ==3.1.* + aqtversion: ==3.1.19 host: windows target: desktop - arch: win64_msvc2019_64 + arch: win64_msvc2022_64 dir: ${{ runner.temp }} modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors cache: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} @@ -107,7 +107,7 @@ jobs: aqtversion: ==3.1.* host: windows target: desktop - arch: win64_msvc2019_arm64 + arch: win64_msvc2022_arm64 # _cross_compiled dir: ${{ runner.temp }} extra: --autodesktop modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 105b67b03de..eaef8e962a2 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -17,7 +17,7 @@ jobs: env: ARTIFACT: QGroundControl.app - QT_VERSION: 6.6.3 + QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 steps: diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index e67a558f323..867ee082673 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -35,7 +35,7 @@ jobs: env: ARTIFACT: QGroundControl-x86_64.AppImage - QT_VERSION: 6.6.3 + QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 steps: @@ -95,7 +95,7 @@ jobs: aqtversion: ==3.1.* host: linux target: desktop - arch: gcc_64 + arch: linux_gcc_64 dir: ${{ runner.temp }} modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors cache: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 0bbdbc48d25..35aedd67ef1 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -35,7 +35,7 @@ jobs: env: ARTIFACT: QGroundControl.dmg - QT_VERSION: 6.6.3 + QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 steps: diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 542cd31e1b7..c4e8856b571 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -36,7 +36,7 @@ jobs: env: ARTIFACT: QGroundControl-installer.exe - QT_VERSION: 6.6.3 + QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 SCCACHE_GHA_ENABLED: "true" @@ -84,10 +84,10 @@ jobs: uses: jurplel/install-qt-action@v4 with: version: ${{ env.QT_VERSION }} - aqtversion: ==3.1.* + aqtversion: ==3.1.19 host: windows target: desktop - arch: win64_msvc2019_64 + arch: win64_msvc2022_64 dir: ${{ runner.temp }} modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors cache: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} @@ -100,7 +100,7 @@ jobs: aqtversion: ==3.1.* host: windows target: desktop - arch: win64_msvc2019_arm64 + arch: win64_msvc2022_arm64 # _cross_compiled dir: ${{ runner.temp }} extra: --autodesktop modules: qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors diff --git a/CMakeLists.txt b/CMakeLists.txt index d50e8750eda..154b28173c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -193,13 +193,18 @@ if(NOT Qt6LinguistTools_DIR) set(Qt6LinguistTools_DIR ${QT_HOST_PATH}/lib/cmake/Qt6LinguistTools) endif() -# Require 6.6.3 because otherwise libQt6QuickControls2Basic.so.6 & -# libQt6QuickControls2BasicStyleImpl.so.6 are missing. -qt_standard_project_setup(REQUIRES 6.6.3) +qt_standard_project_setup( + REQUIRES 6.8.1 + SUPPORTS_UP_TO 6.8.1 + I18N_SOURCE_LANGUAGE en +) qt_policy( SET QTP0001 NEW SET QTP0002 NEW + SET QTP0003 NEW + SET QTP0004 NEW + SET QTP0005 NEW ) ####################################################### @@ -289,10 +294,9 @@ qt_add_executable(${PROJECT_NAME} ) if(Qt6LinguistTools_FOUND) - # TODO: Update to new qt_add_translations form in Qt6.7 file(GLOB TS_SOURCES ${CMAKE_SOURCE_DIR}/translations/qgc_*.ts) set_source_files_properties(${TS_SOURCES} PROPERTIES OUTPUT_LOCATION "${CMAKE_BINARY_DIR}/i18n") - qt_add_translations(${PROJECT_NAME} + qt_add_translations(${CMAKE_PROJECT_NAME} TS_FILES ${TS_SOURCES} RESOURCE_PREFIX "/" LUPDATE_OPTIONS -no-obsolete diff --git a/cmake/Qt6QGCConfiguration.cmake b/cmake/Qt6QGCConfiguration.cmake index cfedfef3824..a8a95ec5b58 100644 --- a/cmake/Qt6QGCConfiguration.cmake +++ b/cmake/Qt6QGCConfiguration.cmake @@ -25,7 +25,7 @@ if(NOT QT_MKSPEC) elseif(LINUX) set(QT_MKSPEC gcc_64) elseif(WIN32) - set(QT_MKSPEC msvc2019_64) + set(QT_MKSPEC msvc2022_64) elseif(ANDROID) if(${ANDROID_ABI} STREQUAL armeabi-v7a) set(QT_MKSPEC android_armv7) diff --git a/deploy/docker/Dockerfile-build-ubuntu b/deploy/docker/Dockerfile-build-ubuntu index 19f00a1064f..90eeda85a8b 100644 --- a/deploy/docker/Dockerfile-build-ubuntu +++ b/deploy/docker/Dockerfile-build-ubuntu @@ -1,6 +1,6 @@ -FROM ubuntu:20.04 +FROM ubuntu:22.04 -ARG QT_VERSION=6.6.3 +ARG QT_VERSION=6.8.1 ARG QT_MODULES="qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors" ENV DEBIAN_FRONTEND noninteractive diff --git a/deploy/vagrant/.vagrantconfig.yml b/deploy/vagrant/.vagrantconfig.yml index cd855452387..594b46c6ed3 100644 --- a/deploy/vagrant/.vagrantconfig.yml +++ b/deploy/vagrant/.vagrantconfig.yml @@ -3,10 +3,10 @@ configs: 'qt_deps_unpack_parent_dir': '/home/vagrant' 'qt_deps_unpack_dir': '/home/vagrant/Qt' - 'qt_deps_bin_unpack_dir': '/home/vagrant/Qt/6.6.3/gcc_64/bin' - 'qt_deps_lib_unpack_dir': '/home/vagrant/Qt/6.6.3/gcc_64/lib' - 'qt_deps_plugins_unpack_dir': '/home/vagrant/Qt/6.6.3/gcc_64/plugins' - 'qt_deps_qml_unpack_dir': '/home/vagrant/Qt/6.6.3/gcc_64/qml' + 'qt_deps_bin_unpack_dir': '/home/vagrant/Qt/6.8.1/gcc_64/bin' + 'qt_deps_lib_unpack_dir': '/home/vagrant/Qt/6.8.1/gcc_64/lib' + 'qt_deps_plugins_unpack_dir': '/home/vagrant/Qt/6.8.1/gcc_64/plugins' + 'qt_deps_qml_unpack_dir': '/home/vagrant/Qt/6.8.1/gcc_64/qml' 'project_root_dir': '/vagrant' diff --git a/docs/en/qgc-dev-guide/getting_started/index.md b/docs/en/qgc-dev-guide/getting_started/index.md index 00406dcb9a0..4b0e47906cd 100644 --- a/docs/en/qgc-dev-guide/getting_started/index.md +++ b/docs/en/qgc-dev-guide/getting_started/index.md @@ -1,5 +1,5 @@ --- -qt_version: 6.6.3 +qt_version: 6.8.1 --- # Getting Started with Source and Builds diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9d00df81946..1837faa20b5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -58,7 +58,6 @@ target_link_libraries(QGC Qt6::QuickControls2 Qt6::QuickWidgets Qt6::Core5Compat - Qt6::Bluetooth API AnalyzeView Audio diff --git a/src/GPS/CMakeLists.txt b/src/GPS/CMakeLists.txt index 9dc4ea32fd8..a95e2ccda6e 100644 --- a/src/GPS/CMakeLists.txt +++ b/src/GPS/CMakeLists.txt @@ -74,6 +74,7 @@ target_link_libraries(GPS Vehicle PUBLIC Qt6::Core + FactSystem GPSDrivers ) diff --git a/src/Joystick/CMakeLists.txt b/src/Joystick/CMakeLists.txt index bdb8d863094..2234011860e 100644 --- a/src/Joystick/CMakeLists.txt +++ b/src/Joystick/CMakeLists.txt @@ -59,11 +59,11 @@ qt_add_resources(Joystick "gamecontrollerdb.txt" FILES ${sdl_gamecontrollerdb_SOURCE_DIR}/gamecontrollerdb.txt ) -qt_add_qml_module(Joystick - URI QGroundControl.JoystickManager - VERSION 1.0 - IMPORT_PATH ${QT_QML_OUTPUT_DIRECTORY} -) +# qt_add_qml_module(Joystick +# URI QGroundControl.JoystickManager +# VERSION 1.0 +# IMPORT_PATH ${QT_QML_OUTPUT_DIRECTORY} +# ) set(MINIMUM_SDL2_VERSION 2.24.0) if(NOT QGC_BUILD_DEPENDENCIES) diff --git a/src/Joystick/JoystickManager.cc b/src/Joystick/JoystickManager.cc index fd00d7caf83..c0a5b9c0e2d 100644 --- a/src/Joystick/JoystickManager.cc +++ b/src/Joystick/JoystickManager.cc @@ -33,6 +33,8 @@ JoystickManager::JoystickManager(QObject *parent) { // qCDebug(JoystickManagerLog) << Q_FUNC_INFO << this; + + _joystickCheckTimer->setInterval(kTimerInterval); _joystickCheckTimer->setSingleShot(false); } @@ -53,6 +55,12 @@ JoystickManager *JoystickManager::instance() return _joystickManager(); } +void JoystickManager::registerQmlTypes() +{ + (void) qmlRegisterUncreatableType("QGroundControl.JoystickManager", 1, 0, "JoystickManager", "Reference only"); + (void) qmlRegisterUncreatableType("QGroundControl.JoystickManager", 1, 0, "Joystick", "Reference only"); +} + void JoystickManager::init() { #ifdef QGC_SDL_JOYSTICK diff --git a/src/Joystick/JoystickManager.h b/src/Joystick/JoystickManager.h index 46bd25e6319..4cea647770d 100644 --- a/src/Joystick/JoystickManager.h +++ b/src/Joystick/JoystickManager.h @@ -35,6 +35,7 @@ class JoystickManager : public QObject ~JoystickManager(); static JoystickManager *instance(); + static void registerQmlTypes(); QVariantList joysticks(); QStringList joystickNames() const { return _name2JoystickMap.keys(); } diff --git a/src/QGCApplication.cc b/src/QGCApplication.cc index 0cee51a7a90..3ae0bdfdf56 100644 --- a/src/QGCApplication.cc +++ b/src/QGCApplication.cc @@ -278,6 +278,7 @@ void QGCApplication::init() VideoManager::registerQmlTypes(); QGCCorePlugin::registerQmlTypes(); GPSRtk::registerQmlTypes(); + JoystickManager::registerQmlTypes(); #ifdef QGC_VIEWER3D Viewer3DManager::registerQmlTypes(); #endif @@ -745,6 +746,9 @@ QGCImageProvider* QGCApplication::qgcImageProvider() void QGCApplication::shutdown() { qCDebug(QGCApplicationLog) << "Exit"; + + VideoManager::instance()->cleanup(); + // This is bad, but currently qobject inheritances are incorrect and cause crashes on exit without delete _qmlAppEngine; } diff --git a/src/Vehicle/Actuators/ActuatorTesting.h b/src/Vehicle/Actuators/ActuatorTesting.h index 735cc3fbc04..c5bb5cbe462 100644 --- a/src/Vehicle/Actuators/ActuatorTesting.h +++ b/src/Vehicle/Actuators/ActuatorTesting.h @@ -12,7 +12,7 @@ #include "QmlObjectListModel.h" #include "Vehicle.h" -#include "QGCMAVLink.h" +#include "MAVLinkLib.h" #include #include #include diff --git a/src/Vehicle/Actuators/CMakeLists.txt b/src/Vehicle/Actuators/CMakeLists.txt index 6956de3cb9f..d43fc86658d 100644 --- a/src/Vehicle/Actuators/CMakeLists.txt +++ b/src/Vehicle/Actuators/CMakeLists.txt @@ -26,8 +26,8 @@ target_link_libraries(VehicleActuators PUBLIC Qt6::Core Qt6::Gui - Comms FactSystem + MAVLink QmlControls Vehicle ) diff --git a/src/Vehicle/CMakeLists.txt b/src/Vehicle/CMakeLists.txt index 49c65ebbb93..ccc23922912 100644 --- a/src/Vehicle/CMakeLists.txt +++ b/src/Vehicle/CMakeLists.txt @@ -41,7 +41,6 @@ target_link_libraries(Vehicle Audio AutoPilotPlugins Camera - FirmwarePlugin Joystick MockLink PositionManager @@ -53,6 +52,7 @@ target_link_libraries(Vehicle Qt6::Positioning Comms FactSystem + FirmwarePlugin Gimbal LibEventsWrapper MAVLink diff --git a/src/Vehicle/Components/CMakeLists.txt b/src/Vehicle/Components/CMakeLists.txt index 3be20b85d16..6dc3ec56108 100644 --- a/src/Vehicle/Components/CMakeLists.txt +++ b/src/Vehicle/Components/CMakeLists.txt @@ -27,8 +27,8 @@ target_link_libraries(VehicleComponents Vehicle PUBLIC Qt6::Core - Comms FactSystem + MAVLink Utilities ) diff --git a/src/Vehicle/Components/CompInfo.h b/src/Vehicle/Components/CompInfo.h index c36870f493e..c8eb32dd51d 100644 --- a/src/Vehicle/Components/CompInfo.h +++ b/src/Vehicle/Components/CompInfo.h @@ -9,7 +9,7 @@ #pragma once -#include "QGCMAVLink.h" +#include "MAVLinkLib.h" #include diff --git a/src/Vehicle/Components/CompInfoParam.h b/src/Vehicle/Components/CompInfoParam.h index 2197406bfc5..2b2e77b4fee 100644 --- a/src/Vehicle/Components/CompInfoParam.h +++ b/src/Vehicle/Components/CompInfoParam.h @@ -10,7 +10,7 @@ #pragma once #include "CompInfo.h" -#include "QGCMAVLink.h" +#include "MAVLinkLib.h" #include "FactMetaData.h" #include diff --git a/src/Vehicle/Components/ComponentInformationManager.h b/src/Vehicle/Components/ComponentInformationManager.h index 5ac7a7fb6f3..85043d6b8b5 100644 --- a/src/Vehicle/Components/ComponentInformationManager.h +++ b/src/Vehicle/Components/ComponentInformationManager.h @@ -9,7 +9,7 @@ #pragma once -#include "QGCMAVLink.h" +#include "MAVLinkLib.h" #include "StateMachine.h" #include diff --git a/src/Vehicle/StandardModes.h b/src/Vehicle/StandardModes.h index 374d2a47768..94858688b95 100644 --- a/src/Vehicle/StandardModes.h +++ b/src/Vehicle/StandardModes.h @@ -9,8 +9,8 @@ #pragma once -#include "MAVLinkLib.h" #include "FirmwarePlugin.h" +#include "MAVLinkLib.h" #include #include diff --git a/src/Vehicle/Vehicle.h b/src/Vehicle/Vehicle.h index 7f193525cbb..7e1920f95fd 100644 --- a/src/Vehicle/Vehicle.h +++ b/src/Vehicle/Vehicle.h @@ -97,7 +97,7 @@ class Vehicle : public VehicleFactGroup Q_MOC_INCLUDE("Autotune.h") Q_MOC_INCLUDE("RemoteIDManager.h") Q_MOC_INCLUDE("QGCCameraManager.h") - Q_MOC_INCLUDE("Actuators/Actuators.h") + Q_MOC_INCLUDE("Actuators.h") friend class InitialConnectStateMachine; friend class VehicleLinkManager; diff --git a/src/VideoManager/VideoManager.cc b/src/VideoManager/VideoManager.cc index d96463823ba..cff05b3c1aa 100644 --- a/src/VideoManager/VideoManager.cc +++ b/src/VideoManager/VideoManager.cc @@ -65,12 +65,6 @@ VideoManager::VideoManager(QObject *parent) VideoManager::~VideoManager() { - for (VideoReceiverData &videoReceiver : _videoReceiverData) { - QGCCorePlugin::instance()->releaseVideoSink(videoReceiver.sink); - delete videoReceiver.receiver; - videoReceiver.receiver = nullptr; - } - // qCDebug(VideoManagerLog) << Q_FUNC_INFO << this; } @@ -206,6 +200,15 @@ void VideoManager::init() _initialized = true; } +void VideoManager::cleanup() +{ + for (VideoReceiverData &videoReceiver : _videoReceiverData) { + QGCCorePlugin::instance()->releaseVideoSink(videoReceiver.sink); + delete videoReceiver.receiver; + videoReceiver.receiver = nullptr; + } +} + void VideoManager::startVideo() { if (!_videoSettings->streamEnabled()->rawValue().toBool() || !hasVideo()) { diff --git a/src/VideoManager/VideoManager.h b/src/VideoManager/VideoManager.h index 3e4f92a664d..27ba89b3619 100644 --- a/src/VideoManager/VideoManager.h +++ b/src/VideoManager/VideoManager.h @@ -69,6 +69,7 @@ class VideoManager : public QObject Q_INVOKABLE void stopVideo(); void init(); + void cleanup(); bool autoStreamConfigured() const; bool decoding() const { return _decoding; } bool fullScreen() const { return _fullScreen; } diff --git a/tools/setup/install-qt-debian.sh b/tools/setup/install-qt-debian.sh index 6ba4521b86c..52bfc044864 100755 --- a/tools/setup/install-qt-debian.sh +++ b/tools/setup/install-qt-debian.sh @@ -1,10 +1,10 @@ #!/usr/bin/env bash -QT_VERSION="${QT_VERSION:-6.6.3}" +QT_VERSION="${QT_VERSION:-6.8.1}" QT_PATH="${QT_PATH:-/opt/Qt}" QT_HOST="${QT_HOST:-linux}" QT_TARGET="${QT_TARGET:-desktop}" -QT_ARCH="${QT_ARCH:-gcc_64}" +QT_ARCH="${QT_ARCH:-linux_gcc_64}" QT_MODULES="${QT_MODULES:-qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors}" set -e diff --git a/translations/qgc-lupdate.sh b/translations/qgc-lupdate.sh index 6923472a05f..47e6e7465a8 100755 --- a/translations/qgc-lupdate.sh +++ b/translations/qgc-lupdate.sh @@ -1,5 +1,5 @@ #!/bin/bash # This script will update both the Qt and Json string translation files. -QT_PATH=~/Qt/6.6.3/macos/bin +QT_PATH=~/Qt/6.8.1/macos/bin $QT_PATH/lupdate ../src -ts qgc.ts -no-obsolete python3 qgc-lupdate-json.py