diff --git a/CMakeLists.txt b/CMakeLists.txt index 1131ea3..cab93d7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,7 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) +include_directories("${CMAKE_CURRENT_SOURCE_DIR}/compat") # set(CMAKE_AUTOUIC ON) # set(CMAKE_AUTOMOC ON) @@ -18,7 +19,7 @@ include(CheckIncludeFiles) include(CheckSymbolExists) include(FeatureSummary) -find_package(Qt5 COMPONENTS Core DBus Widgets X11Extras Quick LinguistTools REQUIRED) +find_package(Qt6 COMPONENTS Core DBus Widgets Quick LinguistTools REQUIRED) find_package(X11) # ----------- Check -------------------- @@ -66,13 +67,9 @@ add_subdirectory(checkpass) feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) -# Get the installation directory from qmake -get_target_property(QT_QMAKE_EXECUTABLE ${Qt5Core_QMAKE_EXECUTABLE} IMPORTED_LOCATION) -if(NOT QT_QMAKE_EXECUTABLE) - message(FATAL_ERROR "qmake is not found.") -endif() - -execute_process(COMMAND ${QT_QMAKE_EXECUTABLE} -query QT_INSTALL_QML +# Get the installation directory from qtpaths +find_program(QT_PATHS_EXECUTABLE NAMES qtpaths6 REQUIRED) +execute_process(COMMAND ${QT_PATHS_EXECUTABLE} -query QT_INSTALL_QML OUTPUT_VARIABLE INSTALL_QMLDIR OUTPUT_STRIP_TRAILING_WHITESPACE ) @@ -84,7 +81,7 @@ endif() # Install translations 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(cutefish-screenlocker translations) install(FILES ${QM_FILES} DESTINATION /usr/share/cutefish-screenlocker/translations) diff --git a/compat/QX11Info b/compat/QX11Info new file mode 100644 index 0000000..14c3543 --- /dev/null +++ b/compat/QX11Info @@ -0,0 +1,36 @@ +/* Qt 6 compatibility layer for the legacy QX11Info API. */ +#ifndef CUTEFISH_QX11INFO_COMPAT +#define CUTEFISH_QX11INFO_COMPAT + +#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; + } + +private: + static QNativeInterface::QX11Application *nativeInterface() + { + return qGuiApp ? qGuiApp->nativeInterface() : nullptr; + } +}; + +#endif diff --git a/screenlocker/CMakeLists.txt b/screenlocker/CMakeLists.txt index 2b8e62d..54ab20d 100644 --- a/screenlocker/CMakeLists.txt +++ b/screenlocker/CMakeLists.txt @@ -17,11 +17,10 @@ add_executable(cutefish-screenlocker target_link_libraries(cutefish-screenlocker PRIVATE - Qt5::Core - Qt5::DBus - Qt5::Widgets - Qt5::X11Extras - Qt5::Quick + Qt6::Core + Qt6::DBus + Qt6::Widgets + Qt6::Quick ${X11_LIBRARIES} ) diff --git a/screenlocker/application.cpp b/screenlocker/application.cpp index a8adf10..c564b53 100644 --- a/screenlocker/application.cpp +++ b/screenlocker/application.cpp @@ -46,7 +46,7 @@ class FocusOutEventFilter : public QAbstractNativeEventFilter { public: - bool nativeEventFilter(const QByteArray &eventType, void *message, long int *result) override { + bool nativeEventFilter(const QByteArray &eventType, void *message, qintptr *result) override { Q_UNUSED(result) if (qstrcmp(eventType, "xcb_generic_event_t") != 0) { return false; diff --git a/screenlocker/main.cpp b/screenlocker/main.cpp index 57499bb..ee23b58 100644 --- a/screenlocker/main.cpp +++ b/screenlocker/main.cpp @@ -19,6 +19,7 @@ #include "application.h" #include +#include #include #include diff --git a/screenlocker/qml/LockScreen.qml b/screenlocker/qml/LockScreen.qml index c9c360f..cd88d82 100644 --- a/screenlocker/qml/LockScreen.qml +++ b/screenlocker/qml/LockScreen.qml @@ -21,7 +21,7 @@ import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.12 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import Cutefish.Accounts 1.0 as Accounts import Cutefish.System 1.0 as System diff --git a/screenlocker/qml/MprisItem.qml b/screenlocker/qml/MprisItem.qml index 9c0c8d8..d84fb72 100644 --- a/screenlocker/qml/MprisItem.qml +++ b/screenlocker/qml/MprisItem.qml @@ -20,7 +20,7 @@ import QtQuick 2.12 import QtQuick.Layouts 1.12 import QtQuick.Controls 2.12 -import QtGraphicalEffects 1.0 +import Qt5Compat.GraphicalEffects import FishUI 1.0 as FishUI import Cutefish.Mpris 1.0