diff --git a/.github/actions/qt-android/action.yml b/.github/actions/qt-android/action.yml index dbc1ca3a988f..3a2283354240 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.10.0 + default: 6.10.1 abis: description: ABIs to Build required: false diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index b838b3a7660d..e6419818cc34 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -15,7 +15,7 @@ Ground Control Station for MAVLink-enabled UAVs supporting PX4 and ArduPilot. **Golden Rule**: Multi-vehicle support means ALWAYS null-check `MultiVehicleManager::instance()->activeVehicle()`. ## Tech Stack -- **C++20** with **Qt 6.10.0** (QtQml, QtQuick) +- **C++20** with **Qt 6.10.1** (QtQml, QtQuick) - **Build**: CMake 3.25+, Ninja - **Protocol**: MAVLink 2.0 - **Platforms**: Windows, macOS, Linux, Android, iOS @@ -181,7 +181,7 @@ void method(Vehicle* vehicle) { ## Build Commands ```bash git submodule update --init --recursive -~/Qt/6.10.0/gcc_64/bin/qt-cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug +~/Qt/6.10.1/gcc_64/bin/qt-cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug cmake --build build --config Debug ./build/Debug/QGroundControl --unittest # Run tests ``` diff --git a/.github/workflows/android-linux.yml b/.github/workflows/android-linux.yml index fd928327396a..0147a462e88b 100644 --- a/.github/workflows/android-linux.yml +++ b/.github/workflows/android-linux.yml @@ -32,7 +32,7 @@ jobs: fail-fast: false matrix: build_type: [Release] - qt_version: [6.10.0] + qt_version: [6.10.1] defaults: run: diff --git a/.github/workflows/android-macos.yml b/.github/workflows/android-macos.yml index b9bc9219df9b..223506a1a247 100644 --- a/.github/workflows/android-macos.yml +++ b/.github/workflows/android-macos.yml @@ -37,7 +37,7 @@ jobs: env: ARTIFACT: QGroundControl.apk - QT_VERSION: 6.10.0 + QT_VERSION: 6.10.1 QT_ANDROID_KEYSTORE_PATH: ${{ github.workspace }}/deploy/android/android_release.keystore QT_ANDROID_KEYSTORE_ALIAS: QGCAndroidKeyStore QT_ANDROID_KEYSTORE_STORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} diff --git a/.github/workflows/android-windows.yml b/.github/workflows/android-windows.yml index 215241fbd9d9..279fee4f7417 100644 --- a/.github/workflows/android-windows.yml +++ b/.github/workflows/android-windows.yml @@ -37,7 +37,7 @@ jobs: env: ARTIFACT: QGroundControl.apk - QT_VERSION: 6.10.0 + QT_VERSION: 6.10.1 QT_ANDROID_KEYSTORE_PATH: ${{ github.workspace }}\deploy\android\android_release.keystore QT_ANDROID_KEYSTORE_ALIAS: QGCAndroidKeyStore QT_ANDROID_KEYSTORE_STORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} diff --git a/.github/workflows/custom.yml b/.github/workflows/custom.yml index d1beea4eadcc..ca9dd19dfcb7 100644 --- a/.github/workflows/custom.yml +++ b/.github/workflows/custom.yml @@ -32,7 +32,7 @@ jobs: shell: cmd env: - QT_VERSION: 6.10.0 + QT_VERSION: 6.10.1 GST_VERSION: 1.22.12 steps: diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 6c07f373d882..1d73ad3abef9 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -22,7 +22,7 @@ jobs: env: ARTIFACT: QGroundControl.app PACKAGE: QGroundControl - QT_VERSION: 6.10.0 + QT_VERSION: 6.10.1 steps: - name: Checkout repo diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 34f39fd36c59..7af8a3a11ee0 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -54,7 +54,7 @@ jobs: shell: bash env: - QT_VERSION: 6.10.0 + QT_VERSION: 6.10.1 steps: - name: Checkout repo diff --git a/.github/workflows/lupdate.yaml b/.github/workflows/lupdate.yaml index 11d50e985571..28750fda789e 100644 --- a/.github/workflows/lupdate.yaml +++ b/.github/workflows/lupdate.yaml @@ -26,7 +26,7 @@ jobs: - name: Install Qt for Linux uses: jurplel/install-qt-action@v4 with: - version: 6.10.0 + version: 6.10.1 cache: true - name: Update translation files diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index ec105016afaa..e7a22eb81efb 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -34,7 +34,7 @@ jobs: shell: bash env: - QT_VERSION: 6.10.0 + QT_VERSION: 6.10.1 steps: - name: Checkout repo diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index e99ce9238ed7..36bd6bdc8f82 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -17,7 +17,7 @@ jobs: pipx ensurepath USER_BASE_BIN="$(python3 -m site --user-base)/bin" export PATH="$USER_BASE_BIN:$PATH" - QT_VERSION=6.10.0 + QT_VERSION=6.10.1 QT_ARCH=linux_gcc_64 QT_PATH=/opt/Qt aqt install-qt linux desktop $QT_VERSION $QT_ARCH -O $QT_PATH diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 4a52f27b8a8a..970b9d1dfbe3 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -43,18 +43,21 @@ jobs: build_type: Release package: QGroundControl-installer-ARM64 + # Qt 6.10.0 for cross-compiled until aqtinstall fix is released + # See: https://github.com/miurahr/aqtinstall/pull/952 - os: windows-2022 host: windows arch: win64_msvc2022_arm64_cross_compiled build_type: Release package: QGroundControl-installer-AMD64-ARM64 + qt_version: '6.10.0' defaults: run: shell: cmd env: - QT_VERSION: 6.10.0 + QT_VERSION: 6.10.1 steps: - name: Checkout repo @@ -85,10 +88,10 @@ jobs: build-type: ${{ matrix.build_type }} cpm-modules: ${{ runner.temp }}\build\cpm_modules - - name: Install Qt ${{ env.QT_VERSION }} + - name: Install Qt ${{ matrix.qt_version || env.QT_VERSION }} uses: jurplel/install-qt-action@v4 with: - version: ${{ env.QT_VERSION }} + version: ${{ matrix.qt_version || env.QT_VERSION }} host: ${{ matrix.host }} target: desktop arch: ${{ matrix.arch }} diff --git a/AGENTS.md b/AGENTS.md index 3c7b207491bc..a212caa12fd6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ # QGroundControl Quick Reference for AI Assistants -**Ground Control Station** for UAVs using MAVLink protocol. **C++20/Qt 6.10.0** with QML UI. +**Ground Control Station** for UAVs using MAVLink protocol. **C++20/Qt 6.10.1** with QML UI. ## πŸ”‘ Most Critical Architecture Pattern @@ -43,7 +43,7 @@ src/ ```bash git submodule update --init --recursive -~/Qt/6.10.0/gcc_64/bin/qt-cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug +~/Qt/6.10.1/gcc_64/bin/qt-cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug cmake --build build --config Debug ./build/Debug/QGroundControl --unittest # Run tests ``` diff --git a/cmake/CustomOptions.cmake b/cmake/CustomOptions.cmake index 590cd18dbee4..789f7a2f64ce 100644 --- a/cmake/CustomOptions.cmake +++ b/cmake/CustomOptions.cmake @@ -139,7 +139,7 @@ set(QGC_WINDOWS_RESOURCE_FILE_PATH "${CMAKE_SOURCE_DIR}/deploy/windows/QGroundCo # ============================================================================ set(QGC_QT_MINIMUM_VERSION "6.10.0" CACHE STRING "Minimum supported Qt version") -set(QGC_QT_MAXIMUM_VERSION "6.10.0" CACHE STRING "Maximum supported Qt version") +set(QGC_QT_MAXIMUM_VERSION "6.10.1" CACHE STRING "Maximum supported Qt version") set(QT_QML_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/qml" CACHE PATH "QML output directory") set(QML_IMPORT_PATH "${QT_QML_OUTPUT_DIRECTORY}" CACHE STRING "Additional QML import paths") @@ -150,6 +150,9 @@ option(QT_DEBUG_FIND_PACKAGE "Print search paths when package not found" ON) option(QT_QML_GENERATE_QMLLS_INI "Generate qmlls.ini for QML language server" ON) option(QGC_ENABLE_QMLLINT "Enable automatic QML linting during build" OFF) +set(QGC_QT_DISABLE_DEPRECATED_UP_TO "0x061000" CACHE STRING "Disable Qt APIs deprecated before this version") +set(QGC_QT_ENABLE_STRICT_MODE_UP_TO "0x061000" CACHE STRING "Enable strict Qt API mode up to this version") + # Debug environment variables (uncomment to enable) # set(ENV{QT_DEBUG_PLUGINS} "1") # set(ENV{QML_IMPORT_TRACE} "1") diff --git a/cmake/platform/Android.cmake b/cmake/platform/Android.cmake index f2441f839b6b..79eb0d2c94fb 100644 --- a/cmake/platform/Android.cmake +++ b/cmake/platform/Android.cmake @@ -9,9 +9,9 @@ endif() # ---------------------------------------------------------------------------- # Android NDK Version Validation # ---------------------------------------------------------------------------- -if(Qt6_VERSION VERSION_EQUAL "6.10.0") +if(Qt6_VERSION VERSION_EQUAL "6.10.1") if(NOT CMAKE_ANDROID_NDK_VERSION VERSION_EQUAL "27.2") - message(FATAL_ERROR "QGC: Invalid NDK Version: ${CMAKE_ANDROID_NDK_VERSION}. Qt 6.10.0 requires NDK 27.2") + message(FATAL_ERROR "QGC: Invalid NDK Version: ${CMAKE_ANDROID_NDK_VERSION}. Qt 6.10.1 requires NDK 27.2") endif() endif() diff --git a/deploy/docker/Dockerfile-build-android b/deploy/docker/Dockerfile-build-android index dc9ffc918ebd..7057a6771e6c 100644 --- a/deploy/docker/Dockerfile-build-android +++ b/deploy/docker/Dockerfile-build-android @@ -27,7 +27,7 @@ RUN mkdir -p $ANDROID_SDK_ROOT/cmdline-tools/latest && \ $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT "platform-tools" "platforms;android-35" "build-tools;35.0.0" "ndk;26.1.10909125" # Qt setup and environment variables -ENV QT_VERSION="6.10.0" +ENV QT_VERSION="6.10.1" ENV QT_PATH="/opt/Qt" ENV QT_HOST="linux" ENV QT_HOST_ARCH="gcc_64" diff --git a/deploy/docker/Dockerfile-build-ubuntu b/deploy/docker/Dockerfile-build-ubuntu index 322d152f37f2..3558ec1063a1 100644 --- a/deploy/docker/Dockerfile-build-ubuntu +++ b/deploy/docker/Dockerfile-build-ubuntu @@ -38,7 +38,7 @@ RUN chmod +x /tmp/qt/*.sh && \ /tmp/qt/install-qt-debian.sh && \ rm -rf /tmp/qt # keep the image slim -ENV QT_ROOT_DIR=/opt/Qt/6.10.0/gcc_64 +ENV QT_ROOT_DIR=/opt/Qt/6.10.1/gcc_64 ENV PATH=$QT_ROOT_DIR/bin:$PATH # ---------- Git safe directory (avoids β€œdetected dubious ownership”) ---------- diff --git a/deploy/linux/appimagecraft.yml b/deploy/linux/appimagecraft.yml index 8046922c246d..b8b2c5397ba3 100644 --- a/deploy/linux/appimagecraft.yml +++ b/deploy/linux/appimagecraft.yml @@ -8,7 +8,7 @@ build: cmake: source_dir: src/ extra_variables: - - Qt6_ROOT=/home/runner/work/_temp/Qt/6.10.0/gcc_64 + - Qt6_ROOT=/home/runner/work/_temp/Qt/6.10.1/gcc_64 environment: BUILD_TYPE: Release diff --git a/deploy/vagrant/.vagrantconfig.yml b/deploy/vagrant/.vagrantconfig.yml index f8a1ad569ac1..ed7ecd7541bb 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.10.0/gcc_64/bin' - 'qt_deps_lib_unpack_dir': '/home/vagrant/Qt/6.10.0/gcc_64/lib' - 'qt_deps_plugins_unpack_dir': '/home/vagrant/Qt/6.10.0/gcc_64/plugins' - 'qt_deps_qml_unpack_dir': '/home/vagrant/Qt/6.10.0/gcc_64/qml' + 'qt_deps_bin_unpack_dir': '/home/vagrant/Qt/6.10.1/gcc_64/bin' + 'qt_deps_lib_unpack_dir': '/home/vagrant/Qt/6.10.1/gcc_64/lib' + 'qt_deps_plugins_unpack_dir': '/home/vagrant/Qt/6.10.1/gcc_64/plugins' + 'qt_deps_qml_unpack_dir': '/home/vagrant/Qt/6.10.1/gcc_64/qml' 'project_root_dir': '/vagrant' diff --git a/deploy/vagrant/Vagrantfile b/deploy/vagrant/Vagrantfile index 8f4a97846c56..68eb3f24a54d 100644 --- a/deploy/vagrant/Vagrantfile +++ b/deploy/vagrant/Vagrantfile @@ -91,7 +91,7 @@ Vagrant.configure(2) do |config| apt-get install -y patchelf dir="%{qt_deps_unpack_dir}" - version="6.10.0" + version="6.10.1" host="linux" target="desktop" modules="qtcharts qtlocation qtpositioning qtspeech qt5compat qtmultimedia qtserialport qtimageformats qtshadertools qtconnectivity qtquick3d qtsensors qtscxml" diff --git a/docs/en/qgc-dev-guide/getting_started/index.md b/docs/en/qgc-dev-guide/getting_started/index.md index a780cc935db5..fba801e7b888 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.10.0 +qt_version: 6.10.1 --- # Getting Started with Source and Builds diff --git a/docs/en/qgc-user-guide/releases/daily_build_new_features.md b/docs/en/qgc-user-guide/releases/daily_build_new_features.md index 91dee80581a7..415ca8d8dfae 100644 --- a/docs/en/qgc-user-guide/releases/daily_build_new_features.md +++ b/docs/en/qgc-user-guide/releases/daily_build_new_features.md @@ -39,5 +39,5 @@ There is also a [Change Log](https://github.com/mavlink/qgroundcontrol/blob/mast * Developer changes * Build system fully converted to cmake * qmake no longer supported - * Source updated to use Qt 6.10.0 + * Source updated to use Qt 6.10.1 * GStreamer support updated to 1.22 diff --git a/src/ADSB/ADSBVehicle.cc b/src/ADSB/ADSBVehicle.cc index f01bb74f355f..9c402b06e425 100644 --- a/src/ADSB/ADSBVehicle.cc +++ b/src/ADSB/ADSBVehicle.cc @@ -36,7 +36,7 @@ void ADSBVehicle::update(const ADSB::VehicleInfo_t &vehicleInfo) return; } - qCDebug(ADSBVehicleLog) << "Updating" << QStringLiteral("%1 Flags: %2").arg(vehicleInfo.icaoAddress, 0, 16).arg(vehicleInfo.availableFlags, 0, 2); + qCDebug(ADSBVehicleLog) << "Updating" << QStringLiteral("%1 Flags: %2").arg(vehicleInfo.icaoAddress, 0, 16).arg(vehicleInfo.availableFlags.toInt(), 0, 2); if (vehicleInfo.availableFlags & ADSB::LocationAvailable) { if (!QGC::fuzzyCompare(vehicleInfo.location.latitude(), coordinate().latitude()) || !QGC::fuzzyCompare(vehicleInfo.location.longitude(), coordinate().longitude())) { diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 44f9dbcc6910..d3d9507df8ea 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -181,6 +181,12 @@ target_compile_definitions(${CMAKE_PROJECT_NAME} ) # Build configuration-specific definitions +target_compile_definitions(${CMAKE_PROJECT_NAME} + PRIVATE + QT_DISABLE_DEPRECATED_UP_TO=${QGC_QT_DISABLE_DEPRECATED_UP_TO} + QT_ENABLE_STRICT_MODE_UP_TO=${QGC_QT_ENABLE_STRICT_MODE_UP_TO} +) + if(CMAKE_BUILD_TYPE STREQUAL "Release") target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE @@ -191,8 +197,6 @@ if(CMAKE_BUILD_TYPE STREQUAL "Release") else() target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE - QT_DISABLE_DEPRECATED_UP_TO=0x060800 - QT_ENABLE_STRICT_MODE_UP_TO=0x060800 $<$:QT_QML_DEBUG> ) endif() diff --git a/tools/setup/install-qt-debian.sh b/tools/setup/install-qt-debian.sh index 7776617551a2..8831fc356a9d 100755 --- a/tools/setup/install-qt-debian.sh +++ b/tools/setup/install-qt-debian.sh @@ -2,7 +2,7 @@ set -e -QT_VERSION="${QT_VERSION:-6.10.0}" +QT_VERSION="${QT_VERSION:-6.10.1}" QT_PATH="${QT_PATH:-/opt/Qt}" QT_HOST="${QT_HOST:-linux}" QT_TARGET="${QT_TARGET:-desktop}" diff --git a/tools/setup/install-qt-macos.sh b/tools/setup/install-qt-macos.sh index fc5df4a4de86..de5f579944e8 100755 --- a/tools/setup/install-qt-macos.sh +++ b/tools/setup/install-qt-macos.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # Set defaults appropriate for macOS. -QT_VERSION="${QT_VERSION:-6.10.0}" +QT_VERSION="${QT_VERSION:-6.10.1}" QT_PATH="${QT_PATH:-/opt/Qt}" QT_HOST="${QT_HOST:-mac}" QT_TARGET="${QT_TARGET:-desktop}" diff --git a/tools/setup/install-qt-windows.ps1 b/tools/setup/install-qt-windows.ps1 index 833514684e03..68d84e485e25 100644 --- a/tools/setup/install-qt-windows.ps1 +++ b/tools/setup/install-qt-windows.ps1 @@ -11,7 +11,7 @@ # β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” # 1) Defaults (env overrides supported) # β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” -$QT_VERSION = $env:QT_VERSION -or '6.10.0' +$QT_VERSION = $env:QT_VERSION -or '6.10.1' $QT_PATH = $env:QT_PATH -or 'C:\Qt' $QT_HOST = $env:QT_HOST -or 'windows' $QT_TARGET = $env:QT_TARGET -or 'desktop'