diff --git a/.gitlab-ci-files/macosx-desktop.yml b/.gitlab-ci-files/macosx-desktop.yml index f6bb3ed68..8f3803b07 100644 --- a/.gitlab-ci-files/macosx-desktop.yml +++ b/.gitlab-ci-files/macosx-desktop.yml @@ -26,7 +26,7 @@ .macosx-desktop: stage: build - tags: [ "macos-min-xcode12.2" ] + tags: [ "macmini-m1-xcode15" ] rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $DOCKER_UPDATE == null && $SKIP_MACOSX == null - if: $CI_PIPELINE_SOURCE == "schedule" && $DOCKER_UPDATE == null && $SKIP_MACOSX == null @@ -93,7 +93,7 @@ macosx-ninja-novideo: # WAIT for QT6 for arm64 macosx-ninja-package: stage: package - tags: [ "macos-min-xcode12.2" ] + tags: [ "macmini-m1-xcode15" ] needs: [] rules: - !reference [.rules-merge-request-manual, rules] @@ -117,7 +117,7 @@ macosx-ninja-package: macosx-codesigning: stage: signing - tags: [ "macos-min-xcode12.2" ] + tags: [ "macmini-m1-xcode15" ] needs: - macosx-ninja-package rules: @@ -142,7 +142,7 @@ macosx-codesigning: macosx-deploy: stage: deploy - tags: [ "macos-min-xcode12.2" ] + tags: [ "macmini-m1-xcode15" ] needs: - macosx-codesigning only: @@ -160,7 +160,7 @@ macosx-deploy: macosx-makefile-plugins-deploy: stage: deploy - tags: [ "macos-min-xcode12.2" ] + tags: [ "macmini-m1-xcode15" ] needs: - macosx-makefile only: diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e30b907d6..d44110a68 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,7 +21,7 @@ variables: #CMAKE_OPTIONS: -DENABLE_LIME_X3DH=YES # Docker image version - UBUNTU_2204_IMAGE_VERSION: 20250930_add_commercial_qt_versions_5.15.14_5.15.19_6.8.1_6.8.3_6.9.1 + UBUNTU_2204_IMAGE_VERSION: 20251106_add_commercial_qt_version_5.15.14_5.15.19_6.8.1_6.8.3_6.9.1_6.10.0 workflow: diff --git a/CHANGELOG.md b/CHANGELOG.md index e2312e036..bb3dd4c7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,3 +31,9 @@ Group changes to describe their impact on the project, as follows: - Default screen (between contacts, call history, conversations & meetings list) will change depending on where you were when the app was paused or killed, and you will return to that last visited screen on the next startup. - Minimum supported Qt version is now 6.5.3 - Some settings have changed name and/or section in linphonerc file. + + +## [6.1.0] - XXXX-XX-XX + +### Changed +- Minimum supported Qt version is now 6.10.0 \ No newline at end of file diff --git a/Linphone/core/proxy/SortFilterProxy.cpp b/Linphone/core/proxy/SortFilterProxy.cpp index 35047a6a7..aaa532a6e 100644 --- a/Linphone/core/proxy/SortFilterProxy.cpp +++ b/Linphone/core/proxy/SortFilterProxy.cpp @@ -63,9 +63,10 @@ int SortFilterProxy::getFilterType() const { void SortFilterProxy::setFilterType(int filterType) { if (getFilterType() != filterType) { + beginFilterChange(); mFilterType = filterType; + endFilterChange(); emit filterTypeChanged(filterType); - invalidate(); } } @@ -75,8 +76,9 @@ QString SortFilterProxy::getFilterText() const { void SortFilterProxy::setFilterText(const QString &filter) { if (mFilterText != filter) { + beginFilterChange(); mFilterText = filter; - invalidateFilter(); + endFilterChange(); emit filterTextChanged(); } } @@ -90,6 +92,6 @@ void SortFilterProxy::remove(int index, int count) { } void SortFilterProxy::invalidateFilter() { - // TODO : replace by begin/endFilterChanged when ci uses Qt6.10 - invalidate(); + QSortFilterProxyModel::beginFilterChange(); + QSortFilterProxyModel::endFilterChange(); } diff --git a/Linphone/view/Control/Display/Contact/PresenceStatusItem.qml b/Linphone/view/Control/Display/Contact/PresenceStatusItem.qml index 8eed0010d..7d2668a65 100644 --- a/Linphone/view/Control/Display/Contact/PresenceStatusItem.qml +++ b/Linphone/view/Control/Display/Contact/PresenceStatusItem.qml @@ -26,7 +26,6 @@ IconLabelButton { icon.source: UtilsCpp.getPresenceIcon(mainItem.presence) Layout.fillWidth: true shadowEnabled: false - contentImageColor: undefined padding: 0 onClicked: { diff --git a/Linphone/view/Style/DefaultStyle.qml b/Linphone/view/Style/DefaultStyle.qml index 229b07f49..c514f19e7 100644 --- a/Linphone/view/Style/DefaultStyle.qml +++ b/Linphone/view/Style/DefaultStyle.qml @@ -8,48 +8,48 @@ QtObject { property var currentTheme: Themes.themes.hasOwnProperty(SettingsCpp.themeMainColor) ? Themes.themes[SettingsCpp.themeMainColor] : Themes.themes["orange"] - property color main1_100: currentTheme.main100 - property color main1_200: currentTheme.main200 - property color main1_300: currentTheme.main300 - property color main1_500_main: currentTheme.main500 - property color main1_600: currentTheme.main600 - property color main1_700: currentTheme.main700 + property var main1_100: currentTheme.main100 + property var main1_200: currentTheme.main200 + property var main1_300: currentTheme.main300 + property var main1_500_main: currentTheme.main500 + property var main1_600: currentTheme.main600 + property var main1_700: currentTheme.main700 - property color main2_0: "#FAFEFF" - property color main2_100: "#EEF6F8" - property color main2_200: "#DFECF2" - property color main2_300: "#C0D1D9" - property color main2_400: "#9AABB5" - property color main2_500_main: "#6C7A87" - property color main2_600: "#4E6074" - property color main2_700: "#364860" - property color main2_800: "#22334D" - property color main2_900: "#2D3648" + property var main2_0: "#FAFEFF" + property var main2_100: "#EEF6F8" + property var main2_200: "#DFECF2" + property var main2_300: "#C0D1D9" + property var main2_400: "#9AABB5" + property var main2_500_main: "#6C7A87" + property var main2_600: "#4E6074" + property var main2_700: "#364860" + property var main2_800: "#22334D" + property var main2_900: "#2D3648" - property color grey_0: "#FFFFFF" - property color grey_100: "#F9F9F9" - property color grey_200: "#EDEDED" - property color grey_300: "#C9C9C9" - property color grey_400: "#949494" - property color grey_500: "#4E4E4E" - property color grey_600: "#2E3030" - property color grey_850: "#D9D9D9" - property color grey_900: "#070707" - property color grey_1000: "#000000" + property var grey_0: "#FFFFFF" + property var grey_100: "#F9F9F9" + property var grey_200: "#EDEDED" + property var grey_300: "#C9C9C9" + property var grey_400: "#949494" + property var grey_500: "#4E4E4E" + property var grey_600: "#2E3030" + property var grey_850: "#D9D9D9" + property var grey_900: "#070707" + property var grey_1000: "#000000" - property color warning_600: "#DBB820" - property color warning_700: "#AF9308" - property color danger_500_main: "#DD5F5F" - property color warning_500_main: "#FFDC2E" - property color danger_700: "#9E3548" - property color danger_900: "#723333" - property color success_500_main: "#4FAE80" - property color success_700: "#377d71" - property color success_900: "#1E4C53" - property color info_500_main: "#4AA8FF" + property var warning_600: "#DBB820" + property var warning_700: "#AF9308" + property var danger_500_main: "#DD5F5F" + property var warning_500_main: "#FFDC2E" + property var danger_700: "#9E3548" + property var danger_900: "#723333" + property var success_500_main: "#4FAE80" + property var success_700: "#377d71" + property var success_900: "#1E4C53" + property var info_500_main: "#4AA8FF" - property color vue_meter_light_green: "#6FF88D" - property color vue_meter_dark_green: "#00D916" + property var vue_meter_light_green: "#6FF88D" + property var vue_meter_dark_green: "#00D916" property real defaultHeight: 1007.0 property real defaultWidth: 1512.0 @@ -66,10 +66,10 @@ QtObject { property string flagFont: "Noto Color Emoji" property string defaultFont: "Noto Sans" - property color numericPadPressedButtonColor: "#EEF7F8" + property var numericPadPressedButtonColor: "#EEF7F8" - property color groupCallButtonColor: "#EEF7F8" + property var groupCallButtonColor: "#EEF7F8" - property color placeholders: '#CACACA' // No name in design + property var placeholders: '#CACACA' // No name in design } diff --git a/README.md b/README.md index 7b9ca7c40..f722b117a 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Linphone is dual licensed, and is available either : As linphone-desktop depends on [Linphone SDK](https://gitlab.linphone.org/BC/public/linphone-sdk), you need to install to Build dependencies common to all target platforms of this project: [The Linphone SDK depdencies](https://gitlab.linphone.org/BC/public/linphone-sdk#common-to-all-target-platforms) -For Desktop : you will need QT6 (6.9.0 or newer_). `C++17` support is required!. You have two way to install it : +For Desktop : you will need QT6 (_6.10.0 or newer_). `C++17` support is required!. You have two way to install it : - Using the [official QT installer](https://www.qt.io/download-thank-you) - Using an alternative installer like [aqtinstall](https://github.com/miurahr/aqtinstall) @@ -41,8 +41,8 @@ The following QT optional modules are required: qt5compat, qtmultimedia qtnetwor 2. You have to set the environment variable `Qt6_DIR` to point to the path containing the cmake folders of Qt6, and the `PATH` to the Qt6 `bin`. Example: ```bash -export Qt6_DIR="~/Qt/6.5.3/gcc_64/lib/cmake/Qt6" -export PATH="~/Qt/6.5.3/gcc_64/bin/:$PATH" +export Qt6_DIR="~/Qt/6.10.0/gcc_64/lib/cmake/Qt6" +export PATH="~/Qt/6.10.0/gcc_64/bin/:$PATH" ``` diff --git a/docker-files/bc-dev-ubuntu-22-04-lts b/docker-files/bc-dev-ubuntu-22-04-lts index 64e138b51..88b2d6ec8 100644 --- a/docker-files/bc-dev-ubuntu-22-04-lts +++ b/docker-files/bc-dev-ubuntu-22-04-lts @@ -1,16 +1,9 @@ ############################################################################### -# Dockerfile used to make gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-ubuntu-20-04-lts:20231024_add_multimedia +# Dockerfile used to make gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-ubuntu-22-04-lts:20251106_add_commercial_qt_version_5.15.14_5.15.19_6.8.1_6.8.3_6.9.1_6.10.0 ############################################################################### FROM ubuntu:22.04 -# Qt on Ubuntu 22.04 is too old. Use a downloader. -ARG QT_VERSION=5.15.2 -ARG QT6_VERSION=6.9.1 - -#Do not use it. It seems that it cannot be used from python command. -#ARG QT_MODULES=qtnetworkauth qtquick3d qtmultimedia qt5compat qtshadertools - LABEL Gaelle Braud # Use a Swiss mirror @@ -88,15 +81,18 @@ RUN sudo apt install --upgrade -y python3-setuptools # installation is split because there is a way where some modules are not downloaded in the first attempt. RUN sudo apt install -y python3-py7zr RUN sudo pip3 install --upgrade aqtinstall -RUN sudo python3 -m aqt install-qt linux desktop $QT_VERSION -O /opt/Qt/opensource -RUN sudo python3 -m aqt install-qt linux desktop $QT_VERSION -O /opt/Qt/opensource --noarchives -m qtnetworkauth qtquick3d -RUN sudo python3 -m aqt install-qt linux desktop $QT6_VERSION -O /opt/Qt/opensource -RUN sudo python3 -m aqt install-qt linux desktop $QT6_VERSION -O /opt/Qt/opensource --noarchives -m qtnetworkauth qtquick3d qtmultimedia qt5compat qtshadertools +RUN sudo python3 -m aqt install-qt linux desktop 5.15.2 -O /opt/Qt/opensource +RUN sudo python3 -m aqt install-qt linux desktop 5.15.2 -O /opt/Qt/opensource --noarchives -m qtnetworkauth qtquick3d +RUN sudo python3 -m aqt install-qt linux desktop 6.9.1 -O /opt/Qt/opensource +RUN sudo python3 -m aqt install-qt linux desktop 6.9.1 -O /opt/Qt/opensource --noarchives -m qtnetworkauth qtquick3d qtmultimedia qt5compat qtshadertools +RUN sudo python3 -m aqt install-qt linux desktop 6.10.0 -O /opt/Qt/opensource +RUN sudo python3 -m aqt install-qt linux desktop 6.10.0 -O /opt/Qt/opensource --noarchives -m qtnetworkauth qtquick3d qtmultimedia qt5compat qtshadertools RUN sudo chown -R bc:bc /opt/Qt/ -RUN qtchooser -install "$QT_VERSION-opensource" /opt/Qt/opensource/$QT_VERSION/gcc_64/bin/qmake -RUN qtchooser -install "$QT6_VERSION-opensource" /opt/Qt/opensource/$QT6_VERSION/gcc_64/bin/qmake +RUN qtchooser -install "5.15.2-opensource" /opt/Qt/opensource/5.15.2/gcc_64/bin/qmake +RUN qtchooser -install "6.9.1-opensource" /opt/Qt/opensource/6.9.1/gcc_64/bin/qmake +RUN qtchooser -install "6.10.0-opensource" /opt/Qt/opensource/6.10.0/gcc_64/bin/qmake # Download QT official installer for proprietary versions # -O : name the destination file after the remote file name, in the current directory @@ -158,10 +154,23 @@ RUN /opt/Qt/proprietary/MaintenanceTool \ --auto-answer OperationDoesNotExistError=Ignore,OverwriteTargetDirectory=Yes,stopProcessesForUpdates=Ignore,installationErrorWithCancel=Ignore,InstallationErrorWithIgnore=Ignore,AssociateCommonFiletypes=Yes,telemetry-question=No \ install qt.qt6.691.linux_gcc_64 qt.qt6.691.addons.qtnetworkauth qt.qt6.691.addons.qtquick3d qt.qt6.691.addons.qtmultimedia qt.qt6.691.addons.qt5compat qt.qt6.691.addons.qtshadertools +# # Install Qt 6.10.0 proprietary +RUN /opt/Qt/proprietary/MaintenanceTool \ + --accept-licenses \ + --accept-obligations \ + --confirm-command \ + --root "/opt/Qt/proprietary" \ + --auto-answer OperationDoesNotExistError=Ignore,OverwriteTargetDirectory=Yes,stopProcessesForUpdates=Ignore,installationErrorWithCancel=Ignore,InstallationErrorWithIgnore=Ignore,AssociateCommonFiletypes=Yes,telemetry-question=No \ + install qt.qt6.6100.linux_gcc_64 qt.qt6.6100.addons.qtnetworkauth qt.qt6.6100.addons.qtquick3d qt.qt6.6100.addons.qtmultimedia qt.qt6.6100.addons.qt5compat qt.qt6.6100.addons.qtshadertools + RUN qtchooser -install 5.15.19-proprietary /opt/Qt/proprietary/5.15.19/gcc_64/bin/qmake RUN qtchooser -install 5.15.14-proprietary /opt/Qt/proprietary/5.15.14/gcc_64/bin/qmake RUN qtchooser -install 6.8.1-proprietary /opt/Qt/proprietary/6.8.1/gcc_64/bin/qmake RUN qtchooser -install 6.8.3-proprietary /opt/Qt/proprietary/6.8.3/gcc_64/bin/qmake RUN qtchooser -install 6.9.1-proprietary /opt/Qt/proprietary/6.9.1/gcc_64/bin/qmake +RUN qtchooser -install 6.10.0-proprietary /opt/Qt/proprietary/6.10.0/gcc_64/bin/qmake + +RUN rm -f /home/bc/.local/share/Qt/qtaccount.ini +RUN rm -f /home/bc/.local/share/Qt/qtlicenses.ini cmd bash \ No newline at end of file