Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package adwaita-qt for openSUSE:Factory checked in at 2022-02-24 18:21:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/adwaita-qt (Old) and /work/SRC/openSUSE:Factory/.adwaita-qt.new.1958 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "adwaita-qt" Thu Feb 24 18:21:01 2022 rev:13 rq:957350 version:1.4.1 Changes: -------- --- /work/SRC/openSUSE:Factory/adwaita-qt/adwaita-qt.changes 2021-10-23 00:52:01.901149294 +0200 +++ /work/SRC/openSUSE:Factory/.adwaita-qt.new.1958/adwaita-qt.changes 2022-02-24 18:24:22.822643994 +0100 @@ -1,0 +2,24 @@ +Thu Feb 24 11:11:59 UTC 2022 - Bj??rn Lie <bjorn....@gmail.com> + +- Add hard cmake(Qt6Core) and cmake(Qt6Widgets) Requires to + libadwaita-qt6-devel sub-package. +- Nuke the generated .pc file from the same sub-package, it is + invalid. +- Use ldconfig_scriptlets macro for post(un) handling. + +------------------------------------------------------------------- +Wed Feb 23 20:19:25 UTC 2022 - Bj??rn Lie <bjorn....@gmail.com> + +- Drop baselibs.conf: Stop supporting 32bit on x86_64, the only + known consumer have dropped it also. + +------------------------------------------------------------------- +Wed Nov 10 18:11:01 UTC 2021 - Enrico Belleri <ide...@protonmail.com> + +- Update to version 1.4.1 + * Support for Qt6 build with CMake option -DUSE_QT6=true. + * QProgressBar: correctly get information whether we should + render horizontal or vertical bar. +- Convert to _multibuild: enable builds for Qt5 and Qt6. + +------------------------------------------------------------------- Old: ---- adwaita-qt-1.4.0.tar.gz baselibs.conf New: ---- _multibuild adwaita-qt-1.4.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ adwaita-qt.spec ++++++ --- /var/tmp/diff_new_pack.0BOqDK/_old 2022-02-24 18:24:23.258643881 +0100 +++ /var/tmp/diff_new_pack.0BOqDK/_new 2022-02-24 18:24:23.266643879 +0100 @@ -1,7 +1,7 @@ # -# spec file for package adwaita-qt +# spec file # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # Copyright (c) 2015 Bj??rn Lie, Bryne, Norway. # # All modifications and additions to the file contributed by third parties @@ -17,82 +17,160 @@ # +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "" +ExclusiveArch: do_not_build +%endif +%if "%{flavor}" == "qt5" + %define qt5 1 + %define qt_min_version 5.15.2 + %define _plugindir %{_libqt5_plugindir} + %define _suffix %{nil} +%endif +%if "%{flavor}" == "qt6" + %define qt6 1 + %define qt_min_version 6.2.0 + %define _plugindir %{_qt6_pluginsdir} + %define _suffix 6 +%endif %define sover 1 -Name: adwaita-qt -Version: 1.4.0 +Name: adwaita-qt%{?_suffix}%{?_suffix:-src} +Version: 1.4.1 Release: 0 Summary: Adwaita theme for Qt-based applications License: GPL-2.0-or-later AND LGPL-2.1-or-later URL: https://github.com/FedoraQt/adwaita-qt -Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz -Source99: baselibs.conf -BuildRequires: cmake >= 3.18 +Source0: %{url}/archive/%{version}/adwaita-qt-%{version}.tar.gz +BuildRequires: cmake >= 3.17 BuildRequires: fdupes -BuildRequires: libqt5-qtbase-devel >= 5.12 -BuildRequires: libqt5-qtx11extras-devel -BuildRequires: libxcb-devel -Requires: adwaita-qt5 +BuildRequires: pkgconfig +%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150400 +BuildRequires: extra-cmake-modules +%else +BuildRequires: gcc-c++ +%endif +%if 0%{?qt5} +BuildRequires: cmake(Qt5Core) >= %{qt_min_version} +BuildRequires: cmake(Qt5DBus) +BuildRequires: cmake(Qt5Gui) +BuildRequires: cmake(Qt5Widgets) +BuildRequires: cmake(Qt5X11Extras) +BuildRequires: pkgconfig(xcb) >= 1.10 +Requires: adwaita-%{flavor} Obsoletes: adwaita-qt4 < 1.2.0 +%endif +%if 0%{?qt6} +BuildRequires: cmake(Qt6Core) >= %{qt_min_version} +BuildRequires: cmake(Qt6DBus) +BuildRequires: cmake(Qt6Gui) +BuildRequires: cmake(Qt6Widgets) +Requires: adwaita-%{flavor} +%endif %description Theme to let Qt applications fit nicely into GNOME desktop. -%package -n adwaita-qt5 +%package -n adwaita-%{flavor} +Requires: libadwaita%{flavor}-%{sover} = %{version}-%{release} +%if 0%{?qt5} Summary: Adwaita Qt5 theme -Requires: libadwaitaqt%{sover} = %{version}-%{release} +%endif +%if 0%{?qt6} +Summary: Adwaita Qt6 theme +%endif +%if 0%{?qt5} Supplements: (libQt5Core5 and gnome-session) +%endif +%if 0%{?qt6} +Supplements: (libQt6Core6 and gnome-session) +%endif -%description -n adwaita-qt5 +%description -n adwaita-%{flavor} +%if 0%{?qt5} Adwaita theme variant for applications utilizing Qt5 +%endif +%if 0%{?qt6} +Adwaita theme variant for applications utilizing Qt6 +%endif -%package -n libadwaitaqt%{sover} +%package -n libadwaita%{flavor}-%{sover} +%if 0%{?qt5} Summary: Adwaita Qt5 library # The package was wwronlgy called libadwaitaqt1_2_0 in the past # As long as we are at .so.1, we can obsolete this old, wrong # package name Obsoletes: libadwaitaqt1_2_0 +Obsoletes: libadwaitaqt%{sover} <= 1.4.0 +Provides: libadwaitaqt%{sover} = %{version} +%endif +%if 0%{?qt6} +Summary: Adwaita Qt6 library +%endif -%description -n libadwaitaqt%{sover} +%description -n libadwaita%{flavor}-%{sover} +%if 0%{?qt5} Adwaita theme variant for applications utilizing Qt5 - -%package -n libadwaitaqt-devel -Summary: Development files for libadwaitaqt -Requires: libadwaitaqt%{sover} = %{version}-%{release} - -%description -n libadwaitaqt-devel -The libadwaitaqt-devel package contains libraries and header files for -developing applications that use libadwaitaqt%{sover}. +%endif +%if 0%{?qt6} +Adwaita theme variant for applications utilizing Qt6 +%endif + +%package -n libadwaita-%{flavor}-devel +Summary: Development files for libadwaita-%{flavor} +Requires: libadwaita%{flavor}-%{sover} = %{version} +%if 0%{?qt5} +Obsoletes: libadwaitaqt-devel <= 1.4.0 +Provides: libadwaitaqt-devel = %{version} +%endif +%if 0%{?qt6} +Requires: cmake(Qt6Core) +Requires: cmake(Qt6Widgets) +%endif + +%description -n libadwaita-%{flavor}-devel +The libadwaita-%{flavor}-devel package contains libraries and header files for +developing applications that use libadwaita-%{flavor}-%{sover}. %prep -%autosetup -p1 +%autosetup -p1 -n adwaita-qt-%{version} %build -%cmake +%cmake \ +%if 0%{?qt5} + -DUSE_QT6=false \ +%endif +%if 0%{?qt6} + -DUSE_QT6=true \ +%endif + %cmake_build %install %cmake_install +# qt6 does not have a pc file, so the generated pc we have is invalid, nuke it. +rm -rf %{buildroot}%{_libdir}/pkgconfig/adwaita-qt6.pc -%post -n libadwaitaqt%{sover} -p /sbin/ldconfig -%postun -n libadwaitaqt%{sover} -p /sbin/ldconfig +%ldconfig_scriptlets -n libadwaita%{flavor}-%{sover} -%files -n adwaita-qt5 +%files -n adwaita-%{flavor} %license LICENSE.LGPL2 %doc README.md -%dir %{_libdir}/qt5/plugins/styles -%{_libdir}/qt5/plugins/styles/adwaita.so +%dir %{_plugindir}/styles +%{_plugindir}/styles/adwaita.so -%files -n libadwaitaqt%{sover} -%{_libdir}/libadwaitaqt.so.* -%{_libdir}/libadwaitaqtpriv.so.* - -%files -n libadwaitaqt-devel -%dir %{_includedir}/AdwaitaQt -%{_includedir}/AdwaitaQt/*.h -%dir %{_libdir}/cmake/AdwaitaQt -%{_libdir}/cmake/AdwaitaQt/*.cmake -%{_libdir}/pkgconfig/adwaita-qt.pc -%{_libdir}/libadwaitaqt.so -%{_libdir}/libadwaitaqtpriv.so +%files -n libadwaita%{flavor}-%{sover} +%{_libdir}/libadwaitaqt%{_suffix}.so.* +%{_libdir}/libadwaitaqt%{_suffix}priv.so.* + +%files -n libadwaita-%{flavor}-devel +%dir %{_includedir}/AdwaitaQt%{_suffix} +%{_includedir}/AdwaitaQt%{_suffix}/*.h +%dir %{_libdir}/cmake/AdwaitaQt%{_suffix} +%{_libdir}/cmake/AdwaitaQt%{_suffix}/*.cmake +%if 0%{?qt5} +%{_libdir}/pkgconfig/adwaita-qt%{_suffix}.pc +%endif +%{_libdir}/libadwaitaqt%{_suffix}.so +%{_libdir}/libadwaitaqt%{_suffix}priv.so %changelog ++++++ _multibuild ++++++ <multibuild> <flavor>qt5</flavor> <flavor>qt6</flavor> </multibuild> ++++++ adwaita-qt-1.4.0.tar.gz -> adwaita-qt-1.4.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/.github/workflows/build.yml new/adwaita-qt-1.4.1/.github/workflows/build.yml --- old/adwaita-qt-1.4.0/.github/workflows/build.yml 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/.github/workflows/build.yml 2021-11-10 11:25:40.000000000 +0100 @@ -13,40 +13,60 @@ BUILD_TYPE: Release jobs: - Linux: + Linux_Qt5: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install dependencies run: | sudo apt update - sudo apt install qt5-default libqt5gui5 libqt5x11extras5 cmake pkg-config qtbase5-dev libqt5x11extras5-dev qtbase5-private-dev libx11-dev xcb libx11-xcb-dev sassc - + sudo apt install cmake make pkg-config libx11-dev xcb libx11-xcb-dev libxkbcommon-dev sassc + + - name: Install Qt + uses: jurplel/install-qt-action@v2 + with: + version: 5.15.2 + - name: Create Build Environment - run: cmake -E make_directory ${{runner.workspace}}/build + run: cmake -E make_directory ${{runner.workspace}}/build - name: Configure CMake shell: bash working-directory: ${{runner.workspace}}/build - run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_EXAMPLE=true + run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_EXAMPLE=true -DUSE_QT6=OFF - name: Build working-directory: ${{runner.workspace}}/build shell: bash run: make -j2 - - name: Install + Linux_Qt6: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Install dependencies + run: | + sudo apt update + sudo apt install cmake make pkg-config libx11-dev xcb libx11-xcb-dev libxkbcommon-dev sassc + + - name: Install Qt + uses: jurplel/install-qt-action@v2 + with: + version: 6.2.0 + + - name: Create Build Environment + run: cmake -E make_directory ${{runner.workspace}}/build + + - name: Configure CMake + shell: bash + working-directory: ${{runner.workspace}}/build + run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_EXAMPLE=true -DUSE_QT6=ON + + - name: Build working-directory: ${{runner.workspace}}/build shell: bash - run: sudo make install + run: make -j2 - #- name: Test - #working-directory: ${{runner.workspace}}/build - #shell: bash - #run: | - #cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_EXAMPLE=true -DBUILD_TESTING=true - #make -j2 - #make test Windows: runs-on: windows-latest steps: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/CMakeLists.txt new/adwaita-qt-1.4.1/CMakeLists.txt --- old/adwaita-qt-1.4.0/CMakeLists.txt 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/CMakeLists.txt 2021-11-10 11:25:40.000000000 +0100 @@ -1,72 +1,60 @@ project(Adwaita) -cmake_minimum_required(VERSION 3.18) +cmake_minimum_required(VERSION 3.17) set(ADWAITAQT_VERSION_MAJOR 1) -set(ADWAITAQT_VERSION "1.4.0") +set(ADWAITAQT_VERSION "1.4.1") -set(QT_MIN_VERSION "5.12.0") -set(CMAKE_AUTOMOC ON) +option(USE_QT6 "Use Qt6 instead of Qt5" OFF) + +if (USE_QT6) + set(QT_MIN_VERSION "6.2.0") + set(CMAKE_CXX_STANDARD 17) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + set(ADWAITAQT_SUFFIX "6") +else() + set(QT_MIN_VERSION "5.15.2") + set(CMAKE_CXX_STANDARD 11) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + set(ADWAITAQT_SUFFIX "") +endif() +set(CMAKE_AUTOMOC ON) set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/ ${CMAKE_MODULE_PATH}) include(GNUInstallDirs) -add_definitions(-std=c++11) +if (USE_QT6) + find_package(QT NAMES Qt6 COMPONENTS Core DBus Gui Widgets REQUIRED) +else() + find_package(QT NAMES Qt5 COMPONENTS Core DBus Gui Widgets REQUIRED) +endif() + -find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS +find_package(Qt${QT_VERSION_MAJOR} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core DBus Gui Widgets ) -if (NOT APPLE AND NOT WIN32) +if (NOT APPLE AND NOT WIN32 AND NOT USE_QT6) find_package(XCB 1.10 COMPONENTS XCB) set(ADWAITA_HAVE_X11 ${XCB_FOUND}) - find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS + find_package(Qt${QT_VERSION_MAJOR} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS X11Extras ) endif() -get_target_property(REAL_QMAKE_EXECUTABLE ${Qt5Core_QMAKE_EXECUTABLE} - IMPORTED_LOCATION) -if (NOT QT_PLUGINS_DIR) - execute_process(COMMAND "${REAL_QMAKE_EXECUTABLE}" -query QT_INSTALL_PLUGINS - OUTPUT_VARIABLE QT_PLUGINS_DIR - ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) +if (NOT USE_QT6) + get_target_property(REAL_QMAKE_EXECUTABLE ${Qt5Core_QMAKE_EXECUTABLE} IMPORTED_LOCATION) + if (NOT QT_PLUGINS_DIR) + execute_process(COMMAND "${REAL_QMAKE_EXECUTABLE}" -query QT_INSTALL_PLUGINS + OUTPUT_VARIABLE QT_PLUGINS_DIR + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + endif() endif() add_subdirectory(src) - -# Tests need to be build from the root directory -# We now only test whether we can find and build against Adwaita library -if (BUILD_TESTING) - enable_testing() - - find_package(Qt5 ${QT_MIN_VERSION} NO_MODULE REQUIRED Test) - - find_package(PkgConfig REQUIRED) - pkg_check_modules(ADWAITAQT adwaita-qt>=${ADWAITAQT_VERSION}) - - if (NOT ADWAITAQT_FOUND) - message(FATAL_ERROR "Unable to find Adwaita-qt using PkgConfig") - endif() - - find_package(AdwaitaQt ${ADWAITAQT_VERSION} REQUIRED) - - set(test_SRCS - tests/test.cpp - ) - - add_executable(test-pkgconfig ${test_SRCS}) - target_link_libraries(test-pkgconfig Qt5::Test ${ADWAITAQT_LIBRARIES}) - - add_executable(test-cmake ${test_SRCS}) - target_link_libraries(test-cmake Qt5::Test AdwaitaQt) - - add_test(NAME TestPkgConfig COMMAND test-pkgconfig) - add_test(NAME TestCmake COMMAND test-cmake) -endif() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/README.md new/adwaita-qt-1.4.1/README.md --- old/adwaita-qt-1.4.0/README.md 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/README.md 2021-11-10 11:25:40.000000000 +0100 @@ -1,7 +1,7 @@ adwaita-qt ========== -A native style to bend Qt5 applications to look like they belong into GNOME Shell. +A native style to bend Qt5/Qt6 applications to look like they belong into GNOME Shell. This style provides all four variants of GTK Adwaita theme: @@ -26,7 +26,7 @@ ``` mkdir build cd build -cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr .. +cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr [-DUSE_QT6] .. make make install ``` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/src/demo/CMakeLists.txt new/adwaita-qt-1.4.1/src/demo/CMakeLists.txt --- old/adwaita-qt-1.4.0/src/demo/CMakeLists.txt 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/src/demo/CMakeLists.txt 2021-11-10 11:25:40.000000000 +0100 @@ -10,7 +10,11 @@ widgetfactory.ui ) -qt5_wrap_ui(showcase_SRCS ${showcase_UI}) +if (USE_QT6) + qt6_wrap_ui(showcase_SRCS ${showcase_UI}) +else() + qt5_wrap_ui(showcase_SRCS ${showcase_UI}) +endif() add_executable(showcase ${showcase_SRCS}) -target_link_libraries(showcase Qt5::Core Qt5::Widgets) +target_link_libraries(showcase Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Widgets) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/src/demo/widgetfactory.cpp new/adwaita-qt-1.4.1/src/demo/widgetfactory.cpp --- old/adwaita-qt-1.4.0/src/demo/widgetfactory.cpp 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/src/demo/widgetfactory.cpp 2021-11-10 11:25:40.000000000 +0100 @@ -25,6 +25,7 @@ #include "ui_widgetfactory.h" #include <QAction> +#include <QActionGroup> #include <QLineEdit> #include <QMenu> #include <QMenuBar> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/src/demo/widgetfactory.ui new/adwaita-qt-1.4.1/src/demo/widgetfactory.ui --- old/adwaita-qt-1.4.0/src/demo/widgetfactory.ui 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/src/demo/widgetfactory.ui 2021-11-10 11:25:40.000000000 +0100 @@ -737,7 +737,7 @@ <string>Chaotic</string> </property> <property name="flags"> - <set>ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable|ItemIsEnabled|ItemIsTristate</set> + <set>ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable|ItemIsEnabled|ItemIsUserTristate</set> </property> </item> <item> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/src/lib/AdwaitaQtConfig.cmake.in new/adwaita-qt-1.4.1/src/lib/AdwaitaQtConfig.cmake.in --- old/adwaita-qt-1.4.0/src/lib/AdwaitaQtConfig.cmake.in 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/src/lib/AdwaitaQtConfig.cmake.in 2021-11-10 11:25:40.000000000 +0100 @@ -1,10 +1,10 @@ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) -find_dependency(Qt5Core @QT_MIN_VERSION@) -find_dependency(Qt5Gui @QT_MIN_VERSION@) -find_dependency(Qt5Widgets @QT_MIN_VERSION@) +find_dependency(Qt@QT_VERSION_MAJOR@Core @QT_MIN_VERSION@) +find_dependency(Qt@QT_VERSION_MAJOR@Gui @QT_MIN_VERSION@) +find_dependency(Qt@QT_VERSION_MAJOR@Widgets @QT_MIN_VERSION@) -set(ADWAITAQT_LIBRARIES adwaitaqt) +set(ADWAITAQT_LIBRARIES adwaitaqt@ADWAITAQT_SUFFIX@) set(ADWAITAQT_INCLUDE_DIRS @CMAKE_INSTALL_FULL_INCLUDEDIR@) -include("${CMAKE_CURRENT_LIST_DIR}/AdwaitaQtTargets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/AdwaitaQt@ADWAITAQT_SUFFIX@Targets.cmake") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/src/lib/CMakeLists.txt new/adwaita-qt-1.4.1/src/lib/CMakeLists.txt --- old/adwaita-qt-1.4.0/src/lib/CMakeLists.txt 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/src/lib/CMakeLists.txt 2021-11-10 11:25:40.000000000 +0100 @@ -5,7 +5,7 @@ ) configure_file(config-adwaita.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-adwaita.h ) -configure_file(adwaita-qt.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/adwaita-qt.pc @ONLY) +configure_file(adwaita-qt.pc.cmake "${CMAKE_CURRENT_BINARY_DIR}/adwaita-qt${ADWAITAQT_SUFFIX}.pc" @ONLY) set(libadwaitaqt_priv_SRCS # Animations @@ -56,12 +56,12 @@ adwaitaqt_export.h ) -add_library(adwaitaqtpriv SHARED ${libadwaitaqt_priv_SRCS}) -target_link_libraries(adwaitaqtpriv - Qt5::Core - Qt5::DBus - Qt5::Gui - Qt5::Widgets +add_library("adwaitaqt${ADWAITAQT_SUFFIX}priv" SHARED ${libadwaitaqt_priv_SRCS}) +target_link_libraries("adwaitaqt${ADWAITAQT_SUFFIX}priv" + Qt${QT_VERSION_MAJOR}::Core + Qt${QT_VERSION_MAJOR}::DBus + Qt${QT_VERSION_MAJOR}::Gui + Qt${QT_VERSION_MAJOR}::Widgets ) # We need this done before we start building adwaitaqt public library @@ -83,63 +83,70 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/stylesheet/stylesheet.qrc.in" "${CMAKE_CURRENT_BINARY_DIR}/stylesheet/stylesheet.qrc") -qt5_add_resources(libadwaitaqt_SRCS "${CMAKE_CURRENT_BINARY_DIR}/stylesheet/stylesheet.qrc") - -add_library(adwaitaqt SHARED ${libadwaitaqt_SRCS}) -add_library(AdwaitaQt ALIAS adwaitaqt) +if (USE_QT6) + qt6_add_resources(libadwaitaqt_SRCS "${CMAKE_CURRENT_BINARY_DIR}/stylesheet/stylesheet.qrc") +else() + qt5_add_resources(libadwaitaqt_SRCS "${CMAKE_CURRENT_BINARY_DIR}/stylesheet/stylesheet.qrc") +endif() +add_library("adwaitaqt${ADWAITAQT_SUFFIX}" SHARED ${libadwaitaqt_SRCS}) +add_library("AdwaitaQt${ADWAITAQT_SUFFIX}" ALIAS "adwaitaqt${ADWAITAQT_SUFFIX}") -target_link_libraries(adwaitaqt +target_link_libraries("adwaitaqt${ADWAITAQT_SUFFIX}" PUBLIC - Qt5::Core - Qt5::Gui - Qt5::Widgets + Qt${QT_VERSION_MAJOR}::Core + Qt${QT_VERSION_MAJOR}::Gui + Qt${QT_VERSION_MAJOR}::Widgets PRIVATE - adwaitaqtpriv + "adwaitaqt${ADWAITAQT_SUFFIX}priv" ) -set_target_properties(adwaitaqtpriv PROPERTIES VERSION ${ADWAITAQT_VERSION} SOVERSION 1) +set_target_properties("adwaitaqt${ADWAITAQT_SUFFIX}priv" PROPERTIES VERSION ${ADWAITAQT_VERSION} SOVERSION 1) if(MINGW AND BUILD_SHARED_LIBS) - get_target_property(ADWAITA_QT_SOVERSION adwaitaqtpriv SOVERSION) - set_target_properties(adwaitaqtpriv PROPERTIES SUFFIX "-${ADWAITA_QT_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}") + get_target_property(ADWAITA_QT_SOVERSION "adwaitaqt${ADWAITAQT_SUFFIX}priv" SOVERSION) + set_target_properties("adwaitaqt${ADWAITAQT_SUFFIX}priv" PROPERTIES SUFFIX "-${ADWAITA_QT_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}") endif() -set_target_properties(adwaitaqt PROPERTIES VERSION ${ADWAITAQT_VERSION} SOVERSION 1) +set_target_properties("adwaitaqt${ADWAITAQT_SUFFIX}" PROPERTIES VERSION ${ADWAITAQT_VERSION} SOVERSION 1) if(MINGW AND BUILD_SHARED_LIBS) - get_target_property(ADWAITA_QT_SOVERSION adwaitaqt SOVERSION) - set_target_properties(adwaitaqt PROPERTIES SUFFIX "-${ADWAITA_QT_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}") + get_target_property(ADWAITA_QT_SOVERSION "adwaitaqt${ADWAITAQT_SUFFIX}" SOVERSION) + set_target_properties("adwaitaqt${ADWAITAQT_SUFFIX}" PROPERTIES SUFFIX "-${ADWAITA_QT_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}") endif() -target_include_directories(adwaitaqt PUBLIC ${Qt5Core_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS}) +if (USE_QT6) + target_include_directories("adwaitaqt${ADWAITAQT_SUFFIX}" PUBLIC ${Qt6Core_INCLUDE_DIRS} ${Qt6Gui_INCLUDE_DIRS} ${Qt6Widgets_INCLUDE_DIRS}) +else() + target_include_directories("adwaitaqt${ADWAITAQT_SUFFIX}" PUBLIC ${Qt5Core_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS}) +endif() -install(TARGETS adwaitaqtpriv EXPORT AdwaitaQtTargets RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -install(TARGETS adwaitaqt EXPORT AdwaitaQtTargets RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(TARGETS "adwaitaqt${ADWAITAQT_SUFFIX}priv" EXPORT "AdwaitaQt${ADWAITAQT_SUFFIX}Targets" RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(TARGETS "adwaitaqt${ADWAITAQT_SUFFIX}" EXPORT "AdwaitaQt${ADWAITAQT_SUFFIX}Targets" RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -install(FILES ${libadwaitaqt_HEADERS} DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/AdwaitaQt) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/adwaita-qt.pc DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig) +install(FILES ${libadwaitaqt_HEADERS} DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}/AdwaitaQt${ADWAITAQT_SUFFIX}") +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/adwaita-qt${ADWAITAQT_SUFFIX}.pc" DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig) # create a Config.cmake and a ConfigVersion.cmake file and install them -set(CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/cmake/AdwaitaQt") +set(CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/cmake/AdwaitaQt${ADWAITAQT_SUFFIX}") include(CMakePackageConfigHelpers) configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/AdwaitaQtConfig.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/AdwaitaQtConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/AdwaitaQt${ADWAITAQT_SUFFIX}Config.cmake" INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} ) write_basic_package_version_file( - ${CMAKE_CURRENT_BINARY_DIR}/AdwaitaQtConfigVersion.cmake + "${CMAKE_CURRENT_BINARY_DIR}/AdwaitaQt${ADWAITAQT_SUFFIX}ConfigVersion.cmake" VERSION ${ADWAITAQT_VERSION} COMPATIBILITY AnyNewerVersion ) install(FILES - "${CMAKE_CURRENT_BINARY_DIR}/AdwaitaQtConfig.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/AdwaitaQtConfigVersion.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/AdwaitaQt${ADWAITAQT_SUFFIX}Config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/AdwaitaQt${ADWAITAQT_SUFFIX}ConfigVersion.cmake" DESTINATION "${CMAKECONFIG_INSTALL_DIR}" COMPONENT Devel ) -install(EXPORT AdwaitaQtTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE AdwaitaQtTargets.cmake) +install(EXPORT "AdwaitaQt${ADWAITAQT_SUFFIX}Targets" DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE "AdwaitaQt${ADWAITAQT_SUFFIX}Targets.cmake") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/src/lib/adwaita-qt.pc.cmake new/adwaita-qt-1.4.1/src/lib/adwaita-qt.pc.cmake --- old/adwaita-qt-1.4.0/src/lib/adwaita-qt.pc.cmake 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/src/lib/adwaita-qt.pc.cmake 2021-11-10 11:25:40.000000000 +0100 @@ -2,12 +2,12 @@ libdir=@CMAKE_INSTALL_FULL_LIBDIR@ includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ -Name: adwaita-qt +Name: adwaita-qt@ADWAITAQT_SUFFIX@ Description: Qt Adwaita Style Version: @ADWAITAQT_VERSION@ Requires: @PC_REQUIRES@ @PC_REQUIRES_PRIVATE@ -Libs: -L${libdir} -ladwaitaqt +Libs: -L${libdir} -ladwaitaqt@ADWAITAQT_SUFFIX@ Cflags: -I${includedir} -Requires: Qt5Core Qt5Widgets +Requires: Qt@QT_VERSION_MAJOR@Core Qt@QT_VERSION_MAJOR@Widgets diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/src/lib/adwaita.h new/adwaita-qt-1.4.1/src/lib/adwaita.h --- old/adwaita-qt-1.4.0/src/lib/adwaita.h 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/src/lib/adwaita.h 2021-11-10 11:25:40.000000000 +0100 @@ -34,8 +34,6 @@ namespace Adwaita { -static bool isDarkMode(); - //*@name convenience typedef //@{ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/src/lib/adwaitacolors.cpp new/adwaita-qt-1.4.1/src/lib/adwaitacolors.cpp --- old/adwaita-qt-1.4.0/src/lib/adwaitacolors.cpp 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/src/lib/adwaitacolors.cpp 2021-11-10 11:25:40.000000000 +0100 @@ -24,6 +24,7 @@ #include "adwaitadebug.h" #include "animations/adwaitaanimationdata.h" +#include <QtGlobal> #include <QGuiApplication> #include <QFile> #include <QMetaEnum> @@ -50,10 +51,18 @@ QColor Colors::darken(const QColor &color, qreal amount) { +#if QT_VERSION >= 0x060000 + float h, s, l, a; + color.getHslF(&h, &s, &l, &a); + + float lightness = l - amount; +#else qreal h, s, l, a; color.getHslF(&h, &s, &l, &a); qreal lightness = l - amount; +#endif + if (lightness < 0) { lightness = 0; } @@ -63,10 +72,17 @@ QColor Colors::desaturate(const QColor &color, qreal amount) { +#if QT_VERSION >= 0x060000 + float h, s, l, a; + color.getHslF(&h, &s, &l, &a); + + float saturation = s - amount; +#else qreal h, s, l, a; color.getHslF(&h, &s, &l, &a); qreal saturation = s - amount; +#endif if (saturation < 0) { saturation = 0; } @@ -75,10 +91,18 @@ QColor Colors::lighten(const QColor &color, qreal amount) { +#if QT_VERSION >= 0x060000 + float h, s, l, a; + color.getHslF(&h, &s, &l, &a); + + float lightness = l + amount; +#else qreal h, s, l, a; color.getHslF(&h, &s, &l, &a); qreal lightness = l + amount; +#endif + if (lightness > 1) { lightness = 1; } @@ -114,10 +138,18 @@ QColor Colors::transparentize(const QColor &color, qreal amount) { +#if QT_VERSION >= 0x060000 + float h, s, l, a; + color.getHslF(&h, &s, &l, &a); + + float alpha = a - amount; +#else qreal h, s, l, a; color.getHslF(&h, &s, &l, &a); qreal alpha = a - amount; +#endif + if (alpha < 0) { alpha = 0; } @@ -399,7 +431,7 @@ { QPalette copy(source); - const QList<QPalette::ColorRole> roles = { QPalette::Background, QPalette::Highlight, QPalette::WindowText, QPalette::ButtonText, QPalette::Text, QPalette::Button }; + const QList<QPalette::ColorRole> roles = {QPalette::Window, QPalette::Highlight, QPalette::WindowText, QPalette::ButtonText, QPalette::Text, QPalette::Button}; foreach (const QPalette::ColorRole &role, roles) { copy.setColor(role, Colors::mix(source.color(QPalette::Active, role), source.color(QPalette::Disabled, role), 1.0 - ratio)); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/src/lib/adwaitacolors_p.h new/adwaita-qt-1.4.1/src/lib/adwaitacolors_p.h --- old/adwaita-qt-1.4.0/src/lib/adwaitacolors_p.h 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/src/lib/adwaitacolors_p.h 2021-11-10 11:25:40.000000000 +0100 @@ -22,7 +22,7 @@ #include "adwaita.h" -#include <QMap> +#include <QHash> class QColor; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/src/lib/adwaitarenderer.cpp new/adwaita-qt-1.4.1/src/lib/adwaitarenderer.cpp --- old/adwaita-qt-1.4.0/src/lib/adwaitarenderer.cpp 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/src/lib/adwaitarenderer.cpp 2021-11-10 11:25:40.000000000 +0100 @@ -728,7 +728,6 @@ // copy options.rect() and radius QRectF frameRect(options.rect()); frameRect.adjust(2, 2, -2, -2); - qreal radius(frameRadius()); // content { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/src/lib/adwaitasplitterproxy.cpp new/adwaita-qt-1.4.1/src/lib/adwaitasplitterproxy.cpp --- old/adwaita-qt-1.4.0/src/lib/adwaitasplitterproxy.cpp 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/src/lib/adwaitasplitterproxy.cpp 2021-11-10 11:25:40.000000000 +0100 @@ -210,8 +210,13 @@ // map event position to current splitter and post. QMouseEvent copy( mouseEvent->type(), +#if QT_VERSION >= 0x060000 + _splitter.data()->mapFromGlobal(mouseEvent->globalPosition().toPoint()), + mouseEvent->globalPosition().toPoint(), +#else _splitter.data()->mapFromGlobal(mouseEvent->globalPos()), mouseEvent->globalPos(), +#endif mouseEvent->button(), mouseEvent->buttons(), mouseEvent->modifiers()); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/src/lib/adwaitawindowmanager.cpp new/adwaita-qt-1.4.1/src/lib/adwaitawindowmanager.cpp --- old/adwaita-qt-1.4.0/src/lib/adwaitawindowmanager.cpp 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/src/lib/adwaitawindowmanager.cpp 2021-11-10 11:25:40.000000000 +0100 @@ -304,7 +304,12 @@ } // retrieve widget's child at event position +#if QT_VERSION >= 0x060000 + QPoint position(mouseEvent->position().toPoint()); +#else QPoint position(mouseEvent->pos()); +#endif + QWidget *child = widget->childAt(position); if (!canDrag(widget, child, position)) { return false; @@ -313,7 +318,11 @@ // save target and drag point _target = widget; _dragPoint = position; +#if QT_VERSION >= 0x060000 + _globalDragPoint = mouseEvent->globalPosition().toPoint(); +#else _globalDragPoint = mouseEvent->globalPos(); +#endif _dragAboutToStart = true; // send a move event to the current child with same position @@ -346,7 +355,11 @@ QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event); if (!_dragInProgress) { if (_dragAboutToStart) { +#if QT_VERSION >= 0x060000 + if (mouseEvent->position().toPoint() == _dragPoint) { +#else if (mouseEvent->pos() == _dragPoint) { +#endif // start timer, _dragAboutToStart = false; if (_dragTimer.isActive()) { @@ -357,7 +370,11 @@ resetDrag(); } } else { +#if QT_VERSION >= 0x060000 + if (QPoint(mouseEvent->globalPosition().toPoint() - _globalDragPoint).manhattanLength() >= _dragDistance) { +#else if (QPoint(mouseEvent->globalPos() - _globalDragPoint).manhattanLength() >= _dragDistance) { +#endif _dragTimer.start(0, this); } } @@ -367,7 +384,11 @@ // use QWidget::move for the grabbing /* this works only if the sending object and the target are identical */ QWidget *window(_target.data()->window()); +#if QT_VERSION >= 0x060000 + window->move(window->pos() + mouseEvent->position().toPoint() - _dragPoint); +#else window->move(window->pos() + mouseEvent->pos() - _dragPoint); +#endif return true; } else { return false; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/src/lib/animations/adwaitadialdata.cpp new/adwaita-qt-1.4.1/src/lib/animations/adwaitadialdata.cpp --- old/adwaita-qt-1.4.0/src/lib/animations/adwaitadialdata.cpp 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/src/lib/animations/adwaitadialdata.cpp 2021-11-10 11:25:40.000000000 +0100 @@ -69,7 +69,11 @@ QHoverEvent *hoverEvent = static_cast<QHoverEvent *>(event); // store position +#if QT_VERSION >= 0x060000 + _position = hoverEvent->position().toPoint(); +#else _position = hoverEvent->pos(); +#endif // trigger animation if position match handle rect updateState(_handleRect.contains(_position)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/src/lib/animations/adwaitascrollbardata.cpp new/adwaita-qt-1.4.1/src/lib/animations/adwaitascrollbardata.cpp --- old/adwaita-qt-1.4.0/src/lib/animations/adwaitascrollbardata.cpp 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/src/lib/animations/adwaitascrollbardata.cpp 2021-11-10 11:25:40.000000000 +0100 @@ -94,6 +94,8 @@ return subLineAnimation(); case QStyle::SC_ScrollBarGroove: return grooveAnimation(); + default: + return animation(); } return animation(); @@ -111,6 +113,8 @@ return subLineOpacity(); case QStyle::SC_ScrollBarGroove: return grooveOpacity(); + default: + return 0; } return 0; @@ -130,14 +134,24 @@ // cast event QHoverEvent *hoverEvent = static_cast<QHoverEvent *>(event); - QStyle::SubControl hoverControl = scrollBar->style()->hitTestComplexControl(QStyle::CC_ScrollBar, &opt, hoverEvent->pos(), scrollBar); + QStyle::SubControl hoverControl = scrollBar->style()->hitTestComplexControl(QStyle::CC_ScrollBar, &opt, +#if QT_VERSION >= 0x060000 + hoverEvent->position().toPoint(), +#else + hoverEvent->pos(), +#endif + scrollBar); // update hover state updateAddLineArrow(hoverControl); updateSubLineArrow(hoverControl); // store position +#if QT_VERSION >= 0x060000 + _position = hoverEvent->position().toPoint(); +#else _position = hoverEvent->pos(); +#endif } //______________________________________________ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/src/lib/animations/adwaitatransitionwidget.cpp new/adwaita-qt-1.4.1/src/lib/animations/adwaitatransitionwidget.cpp --- old/adwaita-qt-1.4.0/src/lib/animations/adwaitatransitionwidget.cpp 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/src/lib/animations/adwaitatransitionwidget.cpp 2021-11-10 11:25:40.000000000 +0100 @@ -216,7 +216,7 @@ widgets.append(parent); // stop at topLevel - if (parent->isTopLevel() || parent->autoFillBackground()) { + if (parent->isWindow() || parent->autoFillBackground()) { break; } } @@ -235,7 +235,7 @@ p.fillRect(pixmap.rect(), backgroundBrush); } - if (parent->isTopLevel() && parent->testAttribute(Qt::WA_StyledBackground)) { + if (parent->isWindow() && parent->testAttribute(Qt::WA_StyledBackground)) { QStyleOption option; option.initFrom(parent); option.rect = rect; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/src/style/CMakeLists.txt new/adwaita-qt-1.4.1/src/style/CMakeLists.txt --- old/adwaita-qt-1.4.0/src/style/CMakeLists.txt 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/src/style/CMakeLists.txt 2021-11-10 11:25:40.000000000 +0100 @@ -21,16 +21,16 @@ add_library(${LIBRARY_NAME} MODULE ${Adwaita_SRCS}) target_link_libraries(${LIBRARY_NAME} - adwaitaqt - adwaitaqtpriv - Qt5::Core - Qt5::DBus - Qt5::Gui - Qt5::Widgets + adwaitaqt${ADWAITAQT_SUFFIX} + adwaitaqt${ADWAITAQT_SUFFIX}priv + Qt${QT_VERSION_MAJOR}::Core + Qt${QT_VERSION_MAJOR}::DBus + Qt${QT_VERSION_MAJOR}::Gui + Qt${QT_VERSION_MAJOR}::Widgets ) if (ADWAITA_HAVE_X11) - target_link_libraries(${LIBRARY_NAME} ${XCB_LIBRARIES} Qt5::X11Extras) + target_link_libraries(${LIBRARY_NAME} ${XCB_LIBRARIES} Qt${QT_VERSION_MAJOR}::X11Extras) endif() if (NOT APPLE AND NOT WIN32) @@ -41,4 +41,8 @@ PREFIX "") endif() -install(TARGETS ${LIBRARY_NAME} DESTINATION "${QT_PLUGINS_DIR}/styles") +if (USE_QT6) + install(TARGETS ${LIBRARY_NAME} DESTINATION "${QT6_INSTALL_PLUGINS}/styles") +else() + install(TARGETS ${LIBRARY_NAME} DESTINATION "${QT_PLUGINS_DIR}/styles") +endif() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/src/style/adwaitastyle.cpp new/adwaita-qt-1.4.1/src/style/adwaitastyle.cpp --- old/adwaita-qt-1.4.0/src/style/adwaitastyle.cpp 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/src/style/adwaitastyle.cpp 2021-11-10 11:25:40.000000000 +0100 @@ -1028,7 +1028,7 @@ case PE_IndicatorBranch: fcn = &Style::drawIndicatorBranchPrimitive; break; - case PE_FrameStatusBar: + case PE_FrameStatusBarItem: fcn = &Style::emptyPrimitive; break; case PE_Frame: @@ -1380,7 +1380,11 @@ } // map position to scrollarea +#if QT_VERSION >= 0x060000 + QPoint position(scrollBar->mapFrom(widget, mouseEvent->position().toPoint() - offset)); +#else QPoint position(scrollBar->mapFrom(widget, mouseEvent->pos() - offset)); +#endif // check if contains if (!scrollBar->rect().contains(position)) { @@ -1457,7 +1461,7 @@ styleOptions.setOutlineColor(outline); if (dockWidget->isFloating()) { Adwaita::Renderer::renderMenuFrame(styleOptions, false); - } else if (Adwaita::Config::DockWidgetDrawFrame || (dockWidget->features() & QDockWidget::AllDockWidgetFeatures)) { + } else if (Adwaita::Config::DockWidgetDrawFrame || (dockWidget->features() & (QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetMovable|QDockWidget::DockWidgetFloatable))) { Adwaita::Renderer::renderFrame(styleOptions); } } @@ -1749,7 +1753,12 @@ bool textVisible(progressBarOption->textVisible); bool busy(progressBarOption->minimum == 0 && progressBarOption->maximum == 0); - bool horizontal(!progressBarOption || progressBarOption->orientation == Qt::Horizontal); + const State &state(option->state); +#if QT_VERSION >= 0x060000 + bool horizontal(state & QStyle::State_Horizontal); +#else + bool horizontal((state & QStyle::State_Horizontal) || (progressBarOption->orientation == Qt::Horizontal)); +#endif // copy rectangle and adjust QRect rect(option->rect); @@ -1794,7 +1803,12 @@ } // get orientation - bool horizontal(!progressBarOption || progressBarOption->orientation == Qt::Horizontal); + const State &state(option->state); +#if QT_VERSION >= 0x060000 + bool horizontal(state & QStyle::State_Horizontal); +#else + bool horizontal((state & QStyle::State_Horizontal) || (progressBarOption->orientation == Qt::Horizontal)); +#endif // check inverted appearance bool inverted(progressBarOption ? progressBarOption->invertedAppearance : false); @@ -1836,8 +1850,14 @@ return QRect(); } - // get direction and check - bool horizontal(!progressBarOption || progressBarOption->orientation == Qt::Horizontal); + // get orientation + const State &state(option->state); +#if QT_VERSION >= 0x060000 + bool horizontal(state & QStyle::State_Horizontal); +#else + bool horizontal((state & QStyle::State_Horizontal) || (progressBarOption->orientation == Qt::Horizontal)); +#endif + if (!horizontal) { return QRect(); } @@ -2910,8 +2930,6 @@ QSize size = contentsSize; // get relevant state flags - const State &state(option->state); - bool autoRaise(state & State_AutoRaise); bool hasPopupMenu(toolButtonOption->features & QStyleOptionToolButton::MenuButtonPopup); const bool hasInlineIndicator(toolButtonOption->features & QStyleOptionToolButton::HasMenu && toolButtonOption->features & QStyleOptionToolButton::PopupDelay @@ -3033,7 +3051,12 @@ return contentsSize; } - bool horizontal(!progressBarOption || progressBarOption->orientation == Qt::Horizontal); + const State &state(option->state); +#if QT_VERSION >= 0x060000 + bool horizontal(state & QStyle::State_Horizontal); +#else + bool horizontal((state & QStyle::State_Horizontal) || (progressBarOption->orientation == Qt::Horizontal)); +#endif // make local copy QSize size(contentsSize); @@ -3330,7 +3353,6 @@ return true; } - const State &state(option->state); QRectF rect(QRectF(option->rect).adjusted(0, 0, -1, -1)); const QPalette &palette(option->palette); @@ -3583,7 +3605,6 @@ _animations->toolButtonEngine().updateState(widget, AnimationHover, arrowHover); bool animated(_animations->toolButtonEngine().isAnimated(widget, AnimationHover)); - qreal opacity(_animations->toolButtonEngine().opacity(widget, AnimationHover)); // Style ooptions styleOptions.setAnimationMode(animated ? AnimationHover : AnimationNone); @@ -3724,7 +3745,6 @@ bool Style::drawPanelButtonToolPrimitive(const QStyleOption *option, QPainter *painter, const QWidget *widget) const { // copy palette and rect - const QPalette &palette(option->palette); QRect rect(option->rect); // store relevant flags @@ -3934,16 +3954,12 @@ return false; } - // try cast widget - const QAbstractItemView *abstractItemView = qobject_cast<const QAbstractItemView *>(widget); - // store palette and rect const QPalette &palette(option->palette); QRect rect(option->rect); // store flags const State &state(option->state); - bool mouseOver((state & State_Active) && (state & State_MouseOver) && (!abstractItemView || abstractItemView->selectionMode() != QAbstractItemView::NoSelection)); bool selected(state & State_Selected); bool enabled(state & State_Enabled); bool windowActive(state & State_Active); @@ -4166,7 +4182,6 @@ } // store palette and rect - const QPalette &palette(option->palette); const QRect &rect(option->rect); // update animation state @@ -4174,9 +4189,6 @@ _animations->widgetStateEngine().updateState(widget, AnimationPressed, sunken); _animations->widgetStateEngine().updateState(widget, AnimationHover, mouseOver); - AnimationMode mode(_animations->widgetStateEngine().buttonAnimationMode(widget)); - qreal opacity(_animations->widgetStateEngine().buttonOpacity(widget)); - // Style options StyleOptions styleOptions(option->palette, _variant); styleOptions.setMouseOver(mouseOver); @@ -4320,7 +4332,6 @@ // store rect and palette QRect rect(option->rect); - const QPalette &palette(option->palette); // store state const State &state(option->state); @@ -4374,7 +4385,6 @@ // store rect and palette const QRect &rect(option->rect); - const QPalette &palette(option->palette); // store state const State &state(option->state); @@ -4783,14 +4793,6 @@ if (!buttonOption->text.isEmpty()) { textRect = option->fontMetrics.boundingRect(textRect, textFlags, buttonOption->text); drawItemText(painter, textRect, textFlags, palette, enabled, buttonOption->text, QPalette::Text); - - // check focus state - bool hasFocus(enabled && (state & State_HasFocus)); - - // update animation state - _animations->widgetStateEngine().updateState(widget, AnimationFocus, hasFocus); - bool isFocusAnimated(_animations->widgetStateEngine().isAnimated(widget, AnimationFocus)); - qreal opacity(_animations->widgetStateEngine().opacity(widget, AnimationFocus)); } return true; @@ -4808,14 +4810,6 @@ return false; } - // need to alter palette for focused buttons - const State &state(option->state); - bool enabled(state & State_Enabled); - bool sunken(state & (State_On | State_Sunken)); - bool mouseOver((state & State_Active) && enabled && (option->state & State_MouseOver)); - bool hasFocus(enabled && !mouseOver && (option->state & State_HasFocus)); - bool flat(!comboBoxOption->frame); - QPalette::ColorRole textRole = QPalette::ButtonText; // change pen color directly @@ -4837,7 +4831,7 @@ mode = QIcon::Disabled; } - QPixmap pixmap = cb->currentIcon.pixmap(widget->windowHandle(), cb->iconSize, mode); + QPixmap pixmap = cb->currentIcon.pixmap(cb->iconSize, mode); QRect iconRect(editRect); iconRect.setWidth(cb->iconSize.width() + 4); iconRect = alignedRect(cb->direction, @@ -4927,7 +4921,6 @@ // store state const State &state(option->state); bool enabled(state & State_Enabled); - bool selected(enabled && (state & State_Selected)); bool sunken(enabled && (state & State_Sunken)); bool useStrongFocus(Adwaita::Config::MenuItemDrawStrongFocus); @@ -5185,9 +5178,6 @@ // set font painter->setFont(menuItemOption->font); - // color role - const QPalette::ColorRole role = (useStrongFocus && (selected || sunken)) ? QPalette::HighlightedText : QPalette::WindowText; - // locate accelerator and render int tabPosition(text.indexOf(QLatin1Char('\t'))); if (tabPosition >= 0) { @@ -5268,7 +5258,12 @@ const QPalette &palette(option->palette); // get direction - bool horizontal = !progressBarOption || progressBarOption->orientation == Qt::Horizontal; + const State &state(option->state); +#if QT_VERSION >= 0x060000 + bool horizontal(state & QStyle::State_Horizontal); +#else + bool horizontal((state & QStyle::State_Horizontal) || (progressBarOption->orientation == Qt::Horizontal)); +#endif bool inverted(progressBarOption ? progressBarOption->invertedAppearance : false); bool reverse = horizontal && option->direction == Qt::RightToLeft; if (inverted) @@ -5350,7 +5345,13 @@ } // get direction and check - bool horizontal = !progressBarOption || progressBarOption->orientation == Qt::Horizontal; + const State &state(option->state); +#if QT_VERSION >= 0x060000 + bool horizontal(state & QStyle::State_Horizontal); +#else + bool horizontal((state & QStyle::State_Horizontal) || (progressBarOption->orientation == Qt::Horizontal)); +#endif + if (!horizontal) { return true; } @@ -5362,7 +5363,6 @@ palette.setColor(QPalette::WindowText, Colors::transparentize(palette.color(QPalette::Active, QPalette::WindowText), 0.6)); // store state and direction - const State &state(option->state); bool enabled(state & State_Enabled); // define text rect @@ -5386,7 +5386,6 @@ // copy rect and palette const QRect &rect(horizontal ? option->rect.adjusted(-1, 4, 0, -4) : option->rect.adjusted(4, -1, -4, 0)); - const QPalette &palette(option->palette); // define handle rect QRect handleRect; @@ -5400,7 +5399,6 @@ bool hasFocus(enabled && parent && parent->hasFocus()); // enable animation state - bool handleActive(sliderOption->activeSubControls & SC_ScrollBarSlider); _animations->scrollBarEngine().updateState(widget, AnimationFocus, hasFocus); _animations->scrollBarEngine().updateState(widget, AnimationPressed, sunken); _animations->scrollBarEngine().updateState(widget, AnimationHover, mouseOver); @@ -5708,7 +5706,6 @@ const State &state(option->state); bool enabled(state & State_Enabled); bool mouseOver((state & State_Active) && enabled && (state & State_MouseOver)); - bool sunken(enabled && (state & (State_On | State_Sunken))); const QStyleOptionHeader *headerOption(qstyleoption_cast<const QStyleOptionHeader *>(option)); if (!headerOption) { @@ -5722,8 +5719,6 @@ // update animation state _animations->headerViewEngine().updateState(widget, rect.topLeft(), mouseOver); - bool animated(enabled && _animations->headerViewEngine().isAnimated(widget, rect.topLeft())); - qreal opacity(_animations->headerViewEngine().opacity(widget, rect.topLeft())); QBrush color = palette.base(); @@ -5919,7 +5914,6 @@ // store rect and palette const QRect &rect(option->rect); - const QPalette &palette(option->palette); // check focus const State &state(option->state); @@ -5930,7 +5924,6 @@ // update mouse over animation state _animations->tabBarEngine().updateState(widget, rect.topLeft(), AnimationFocus, hasFocus); bool animated(enabled && selected && _animations->tabBarEngine().isAnimated(widget, rect.topLeft(), AnimationFocus)); - qreal opacity(_animations->tabBarEngine().opacity(widget, rect.topLeft(), AnimationFocus)); if (!(hasFocus || animated)) return true; @@ -6003,8 +5996,6 @@ // update mouse over animation state _animations->tabBarEngine().updateState(widget, rect.topLeft(), AnimationHover, mouseOver); - bool animated(enabled && !selected && _animations->tabBarEngine().isAnimated(widget, rect.topLeft(), AnimationHover)); - qreal opacity(_animations->tabBarEngine().opacity(widget, rect.topLeft(), AnimationHover)); // lock state if (selected && widget && isDragged) { @@ -6016,7 +6007,6 @@ // tab position const QStyleOptionTab::TabPosition &position = tabOption->position; bool isSingle(position == QStyleOptionTab::OnlyOneTab); - bool isQtQuickControl(this->isQtQuickControl(option, widget)); bool isFirst(isSingle || position == QStyleOptionTab::Beginning); bool isLast(isSingle || position == QStyleOptionTab::End); bool isLeftOfSelected(!isLocked && tabOption->selectedPosition == QStyleOptionTab::NextIsSelected); @@ -6035,10 +6025,6 @@ qSwap(isLeftOfSelected, isRightOfSelected); } - // overlap - // for QtQuickControls, ovelap is already accounted of in the option. Unlike in the qwidget case - int overlap(isQtQuickControl ? 0 : Metrics::TabBar_TabOverlap); - // adjust rect and define corners based on tabbar orientation Corners corners; switch (tabOption->shape) { @@ -6340,7 +6326,6 @@ const State &state(option->state); bool enabled(state & State_Enabled); bool mouseOver((state & State_Active) && enabled && (option->state & State_MouseOver)); - bool hasFocus(enabled && (option->state & State_HasFocus)); bool sunken(state & (State_On | State_Sunken)); bool flat(state & State_AutoRaise); @@ -6640,10 +6625,6 @@ // arrow if (option->subControls & SC_ComboBoxArrow) { - // detect empty comboboxes - const QComboBox *comboBox = qobject_cast<const QComboBox *>(widget); - bool empty(comboBox && !comboBox->count()); - // Style options styleOptions.setColorRole(QPalette::ButtonText); @@ -6889,7 +6870,6 @@ // handle state bool handleActive(sliderOption->activeSubControls & SC_SliderHandle); - bool sunken(state & (State_On | State_Sunken)); // animation state _animations->widgetStateEngine().updateState(widget, AnimationHover, handleActive && mouseOver); @@ -7263,7 +7243,6 @@ bool subControlSunken(enabled && (sunken) && (option->activeSubControls & subControl)); _animations->spinBoxEngine().updateState(widget, subControl, subControlHover, subControlSunken); - bool animated(enabled && _animations->spinBoxEngine().isAnimated(widget, subControl)); qreal opacity(_animations->spinBoxEngine().opacity(widget, subControl)); qreal pressedOpacity(_animations->spinBoxEngine().pressed(widget, subControl)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/tests/test.cpp new/adwaita-qt-1.4.1/tests/test.cpp --- old/adwaita-qt-1.4.0/tests/test.cpp 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/tests/test.cpp 1970-01-01 01:00:00.000000000 +0100 @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2020 Jan Grulich <jgrul...@redhat.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - */ - -#include "test.h" - -#include <QTest> - -#include <AdwaitaQt/adwaita.h> -#include <AdwaitaQt/adwaitacolors.h> - -#include <memory> - -QTEST_MAIN(Test) - -void Test::initTestCase() -{ - // Just simple test whether we can link against the Adwaita library - // and find headers - std::unique_ptr<Adwaita::StyleOptions> options(new Adwaita::StyleOptions(QPalette())); - QVERIFY(options); -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adwaita-qt-1.4.0/tests/test.h new/adwaita-qt-1.4.1/tests/test.h --- old/adwaita-qt-1.4.0/tests/test.h 2021-08-24 10:41:14.000000000 +0200 +++ new/adwaita-qt-1.4.1/tests/test.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2020 Jan Grulich <jgrul...@redhat.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - */ - -#ifndef ADWAITA_TEST_H -#define ADWAITA_TEST_H - -#include <QObject> -#include <QTest> - -class Test : public QObject -{ - Q_OBJECT -private Q_SLOTS: - void initTestCase(); -}; - -#endif // ADWAITAQT_TEST_H