From 11ae39e242bc11a4768c015a959dea628e36f870 Mon Sep 17 00:00:00 2001 From: reionwong Date: Sat, 29 Aug 2026 21:31:56 -0400 Subject: [PATCH] fix(settings): port settings to Qt6 --- CMakeLists.txt | 38 ++++++++++++------------ compat/QX11Info | 43 ++++++++++++++++++++++++++++ src/background.cpp | 4 ++- src/qml/Appearance/Main.qml | 2 +- src/qml/Application/Main.qml | 2 +- src/qml/Battery/BatteryItem.qml | 2 +- src/qml/Cursor/Main.qml | 2 +- src/qml/Fonts/Main.qml | 2 +- src/qml/Hideable.qml | 2 +- src/qml/Hotspot/Main.qml | 2 +- src/qml/IconButton.qml | 2 +- src/qml/IconCheckBox.qml | 2 +- src/qml/LanguagePage.qml | 2 +- src/qml/Power/Main.qml | 2 +- src/qml/SideBar.qml | 2 +- src/qml/Update/Main.qml | 2 +- src/qml/User/Main.qml | 2 +- src/qml/User/UserDelegateItem.qml | 2 +- src/qml/WLAN/Main.qml | 2 +- src/qml/WLAN/NewNetworkDialog.qml | 2 +- src/qml/WLAN/WifiItem.qml | 2 +- src/qml/Wallpaper/DesktopPreview.qml | 2 +- src/qml/Wallpaper/Main.qml | 2 +- src/qml/Wired/Main.qml | 2 +- src/qml/Wired/WiredItem.qml | 2 +- src/qml/main.qml | 2 +- 26 files changed, 87 insertions(+), 44 deletions(-) create mode 100644 compat/QX11Info diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b13e44..80a0cc1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,7 @@ set(PROJECT_NAME cutefish-settings) project(${PROJECT_NAME}) set(CMAKE_INCLUDE_CURRENT_DIR ON) +include_directories("${CMAKE_CURRENT_SOURCE_DIR}/compat") set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) @@ -11,17 +12,17 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake;${CMAKE_CURRENT_SOURCE_DIR}/cmake") -set(QT Core Gui Widgets Quick QuickControls2 X11Extras DBus Xml Concurrent LinguistTools) -find_package(Qt5 REQUIRED ${QT}) +set(QT Core Gui Widgets Quick QuickControls2 DBus Xml Concurrent LinguistTools) +find_package(Qt6 REQUIRED ${QT}) find_package(X11 REQUIRED) find_package(Freetype REQUIRED) find_package(PkgConfig REQUIRED) find_package(Libcrypt REQUIRED) # find_package(QApt REQUIRED) -find_package(KF5NetworkManagerQt REQUIRED) -find_package(KF5ModemManagerQt REQUIRED) -find_package(KF5Config) +find_package(KF6NetworkManagerQt REQUIRED) +find_package(KF6ModemManagerQt REQUIRED) +find_package(KF6Config) pkg_search_module(FontConfig REQUIRED fontconfig IMPORTED_TARGET) pkg_search_module(ICU REQUIRED icu-i18n) @@ -69,28 +70,25 @@ set(RESOURCES src/resources.qrc ) -qt5_add_dbus_adaptor(DBUS_SOURCES +qt6_add_dbus_adaptor(DBUS_SOURCES src/com.cutefish.SettingsUI.xml src/application.h Application) set_source_files_properties(${DBUS_SOURCES} PROPERTIES SKIP_AUTOGEN ON) -# qt5_add_dbus_interface(DBUS_SOURCES src/datetime/org.freedesktop.timedate1.xml timedated_interface) - add_executable(${PROJECT_NAME} ${DBUS_SOURCES} ${SRCS} ${RESOURCES}) target_link_libraries(${PROJECT_NAME} - Qt5::Core - Qt5::Widgets - Qt5::Quick - Qt5::QuickControls2 - Qt5::DBus - Qt5::Xml - Qt5::X11Extras - Qt5::Concurrent + Qt6::Core + Qt6::Widgets + Qt6::Quick + Qt6::QuickControls2 + Qt6::DBus + Qt6::Xml + Qt6::Concurrent # FishUI - KF5::NetworkManagerQt - KF5::ModemManagerQt - KF5::ConfigCore + KF6::NetworkManagerQt + KF6::ModemManagerQt + KF6::ConfigCore PkgConfig::FontConfig ${FREETYPE_LIBRARIES} @@ -106,7 +104,7 @@ target_link_libraries(${PROJECT_NAME} ) file(GLOB TS_FILES translations/*.ts) -qt5_add_translation(QM_FILES ${TS_FILES}) +qt6_add_translation(QM_FILES ${TS_FILES}) add_custom_target(translations DEPENDS ${QM_FILES} SOURCES ${TS_FILES}) add_dependencies(${PROJECT_NAME} translations) diff --git a/compat/QX11Info b/compat/QX11Info new file mode 100644 index 0000000..93a19ad --- /dev/null +++ b/compat/QX11Info @@ -0,0 +1,43 @@ +/* Qt 6 compatibility layer for the legacy QX11Info API. */ +#ifndef CUTEFISH_QX11INFO_COMPAT +#define CUTEFISH_QX11INFO_COMPAT + +#include +#include +#include +#include + +class QX11Info +{ +public: + static bool isPlatformX11() + { + return nativeInterface() != nullptr; + } + + static xcb_connection_t *connection() + { + const auto native = nativeInterface(); + return native ? native->connection() : nullptr; + } + + static Display *display() + { + const auto native = nativeInterface(); + return native ? native->display() : nullptr; + } + + static int appDpiY() + { + QScreen *screen = qGuiApp ? qGuiApp->primaryScreen() : nullptr; + return screen ? qRound(screen->logicalDotsPerInchY()) : 96; + } + +private: + static QNativeInterface::QX11Application *nativeInterface() + { + return qGuiApp ? qGuiApp->nativeInterface() : nullptr; + } +}; + +#endif diff --git a/src/background.cpp b/src/background.cpp index 9ceae86..c78283e 100644 --- a/src/background.cpp +++ b/src/background.cpp @@ -9,7 +9,9 @@ static QVariantList getBackgroundPaths() QString bg = it.next(); list.append(QVariant(bg)); } - std::sort(list.begin(), list.end()); + std::sort(list.begin(), list.end(), [](const QVariant &left, const QVariant &right) { + return left.toString() < right.toString(); + }); return list; } diff --git a/src/qml/Appearance/Main.qml b/src/qml/Appearance/Main.qml index 36a6ac5..5195c2c 100644 --- a/src/qml/Appearance/Main.qml +++ b/src/qml/Appearance/Main.qml @@ -20,7 +20,7 @@ import QtQuick 2.4 import QtQuick.Controls 2.4 import QtQuick.Layouts 1.3 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import Cutefish.Settings 1.0 import FishUI 1.0 as FishUI diff --git a/src/qml/Application/Main.qml b/src/qml/Application/Main.qml index e8351fd..f56b9c5 100644 --- a/src/qml/Application/Main.qml +++ b/src/qml/Application/Main.qml @@ -20,7 +20,7 @@ import QtQuick 2.4 import QtQuick.Controls 2.4 import QtQuick.Layouts 1.3 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import FishUI 1.0 as FishUI import "../" diff --git a/src/qml/Battery/BatteryItem.qml b/src/qml/Battery/BatteryItem.qml index 875e19b..c390ef9 100644 --- a/src/qml/Battery/BatteryItem.qml +++ b/src/qml/Battery/BatteryItem.qml @@ -19,7 +19,7 @@ import QtQuick 2.12 import QtQuick.Controls 2.12 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import QtQuick.Particles 2.12 import FishUI 1.0 as FishUI diff --git a/src/qml/Cursor/Main.qml b/src/qml/Cursor/Main.qml index 87eef0b..ca4be74 100644 --- a/src/qml/Cursor/Main.qml +++ b/src/qml/Cursor/Main.qml @@ -20,7 +20,7 @@ import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.12 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import FishUI 1.0 as FishUI import Cutefish.Settings 1.0 diff --git a/src/qml/Fonts/Main.qml b/src/qml/Fonts/Main.qml index feadbd3..b9b2bb3 100644 --- a/src/qml/Fonts/Main.qml +++ b/src/qml/Fonts/Main.qml @@ -20,7 +20,7 @@ import QtQuick 2.4 import QtQuick.Controls 2.4 import QtQuick.Layouts 1.3 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import Cutefish.Settings 1.0 import FishUI 1.0 as FishUI diff --git a/src/qml/Hideable.qml b/src/qml/Hideable.qml index ca5bbc7..5bb6491 100644 --- a/src/qml/Hideable.qml +++ b/src/qml/Hideable.qml @@ -19,7 +19,7 @@ import QtQuick 2.4 import QtQuick.Layouts 1.3 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects Item { id: _root diff --git a/src/qml/Hotspot/Main.qml b/src/qml/Hotspot/Main.qml index d5c8638..09e5290 100644 --- a/src/qml/Hotspot/Main.qml +++ b/src/qml/Hotspot/Main.qml @@ -20,7 +20,7 @@ import QtQuick 2.4 import QtQuick.Controls 2.4 import QtQuick.Layouts 1.3 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import FishUI 1.0 as FishUI import Cutefish.NetworkManagement 1.0 as NM diff --git a/src/qml/IconButton.qml b/src/qml/IconButton.qml index 12528ea..7fa3894 100644 --- a/src/qml/IconButton.qml +++ b/src/qml/IconButton.qml @@ -19,7 +19,7 @@ import QtQuick 2.4 import QtQuick.Controls 2.4 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import FishUI 1.0 as FishUI Item { diff --git a/src/qml/IconCheckBox.qml b/src/qml/IconCheckBox.qml index 497672c..cf8ab69 100644 --- a/src/qml/IconCheckBox.qml +++ b/src/qml/IconCheckBox.qml @@ -20,7 +20,7 @@ import QtQuick 2.4 import QtQuick.Controls 2.4 import QtQuick.Layouts 1.3 -import QtGraphicalEffects 1.12 +import Qt5Compat.GraphicalEffects import FishUI 1.0 as FishUI Item { diff --git a/src/qml/LanguagePage.qml b/src/qml/LanguagePage.qml index 6c2737a..fc7649a 100644 --- a/src/qml/LanguagePage.qml +++ b/src/qml/LanguagePage.qml @@ -20,7 +20,7 @@ import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.12 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import FishUI 1.0 as FishUI import Cutefish.Settings 1.0 as Settings diff --git a/src/qml/Power/Main.qml b/src/qml/Power/Main.qml index 346b410..1e340f5 100644 --- a/src/qml/Power/Main.qml +++ b/src/qml/Power/Main.qml @@ -20,7 +20,7 @@ import QtQuick 2.4 import QtQuick.Controls 2.4 import QtQuick.Layouts 1.3 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import Cutefish.Settings 1.0 import FishUI 1.0 as FishUI diff --git a/src/qml/SideBar.qml b/src/qml/SideBar.qml index 9020d55..7de848f 100644 --- a/src/qml/SideBar.qml +++ b/src/qml/SideBar.qml @@ -20,7 +20,7 @@ import QtQuick 2.4 import QtQuick.Controls 2.4 import QtQuick.Layouts 1.3 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import FishUI 1.0 as FishUI import Cutefish.Settings 1.0 import Cutefish.NetworkManagement 1.0 as NM diff --git a/src/qml/Update/Main.qml b/src/qml/Update/Main.qml index c79108d..24872d5 100644 --- a/src/qml/Update/Main.qml +++ b/src/qml/Update/Main.qml @@ -20,7 +20,7 @@ import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.12 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import FishUI 1.0 as FishUI import "../" diff --git a/src/qml/User/Main.qml b/src/qml/User/Main.qml index decc304..39771e9 100644 --- a/src/qml/User/Main.qml +++ b/src/qml/User/Main.qml @@ -20,7 +20,7 @@ import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.12 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import FishUI 1.0 as FishUI import Cutefish.Settings 1.0 diff --git a/src/qml/User/UserDelegateItem.qml b/src/qml/User/UserDelegateItem.qml index 50a12ca..3b96766 100644 --- a/src/qml/User/UserDelegateItem.qml +++ b/src/qml/User/UserDelegateItem.qml @@ -21,7 +21,7 @@ import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.12 import QtQuick.Dialogs 1.2 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import Cutefish.Settings 1.0 import Cutefish.Accounts 1.0 diff --git a/src/qml/WLAN/Main.qml b/src/qml/WLAN/Main.qml index 9a7c72a..b9bcc8d 100644 --- a/src/qml/WLAN/Main.qml +++ b/src/qml/WLAN/Main.qml @@ -20,7 +20,7 @@ import QtQuick 2.4 import QtQuick.Controls 2.4 import QtQuick.Layouts 1.3 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import FishUI 1.0 as FishUI import Cutefish.NetworkManagement 1.0 as NM diff --git a/src/qml/WLAN/NewNetworkDialog.qml b/src/qml/WLAN/NewNetworkDialog.qml index ee6fe23..bec677c 100644 --- a/src/qml/WLAN/NewNetworkDialog.qml +++ b/src/qml/WLAN/NewNetworkDialog.qml @@ -20,7 +20,7 @@ import QtQuick 2.4 import QtQuick.Controls 2.4 import QtQuick.Layouts 1.3 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import FishUI 1.0 as FishUI import Cutefish.NetworkManagement 1.0 as NM diff --git a/src/qml/WLAN/WifiItem.qml b/src/qml/WLAN/WifiItem.qml index 69e439c..45fe041 100644 --- a/src/qml/WLAN/WifiItem.qml +++ b/src/qml/WLAN/WifiItem.qml @@ -20,7 +20,7 @@ import QtQuick 2.4 import QtQuick.Controls 2.4 import QtQuick.Layouts 1.3 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import QtQuick.Window 2.3 import FishUI 1.0 as FishUI diff --git a/src/qml/Wallpaper/DesktopPreview.qml b/src/qml/Wallpaper/DesktopPreview.qml index 15bac27..813b68f 100644 --- a/src/qml/Wallpaper/DesktopPreview.qml +++ b/src/qml/Wallpaper/DesktopPreview.qml @@ -21,7 +21,7 @@ import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.12 import FishUI 1.0 as FishUI -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects Item { id: control diff --git a/src/qml/Wallpaper/Main.qml b/src/qml/Wallpaper/Main.qml index 44cace1..db769c2 100644 --- a/src/qml/Wallpaper/Main.qml +++ b/src/qml/Wallpaper/Main.qml @@ -20,7 +20,7 @@ import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.12 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import Cutefish.Settings 1.0 import FishUI 1.0 as FishUI diff --git a/src/qml/Wired/Main.qml b/src/qml/Wired/Main.qml index d2f7343..72b96a0 100644 --- a/src/qml/Wired/Main.qml +++ b/src/qml/Wired/Main.qml @@ -20,7 +20,7 @@ import QtQuick 2.4 import QtQuick.Controls 2.4 import QtQuick.Layouts 1.3 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import FishUI 1.0 as FishUI import Cutefish.NetworkManagement 1.0 as NM diff --git a/src/qml/Wired/WiredItem.qml b/src/qml/Wired/WiredItem.qml index dae98cf..5a780ae 100644 --- a/src/qml/Wired/WiredItem.qml +++ b/src/qml/Wired/WiredItem.qml @@ -20,7 +20,7 @@ import QtQuick 2.4 import QtQuick.Controls 2.4 import QtQuick.Layouts 1.3 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import FishUI 1.0 as FishUI import Cutefish.NetworkManagement 1.0 as NM diff --git a/src/qml/main.qml b/src/qml/main.qml index 7daeb0b..0843651 100644 --- a/src/qml/main.qml +++ b/src/qml/main.qml @@ -21,7 +21,7 @@ import QtQuick 2.4 import QtQuick.Controls 2.4 import QtQuick.Layouts 1.3 import QtQuick.Window 2.3 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import FishUI 1.0 as FishUI FishUI.Window {