From 18bdd5338e46f850c40f7d6b30d78f98a8f78a28 Mon Sep 17 00:00:00 2001 From: "Peter P. Lupo" Date: Thu, 18 Jun 2026 00:48:52 -0400 Subject: [PATCH 1/3] Port Chromium wrapper to Qt 6.11.1 Signed-off-by: Peter P. Lupo --- .../lib/qt_wrapper/CMakeLists.txt | 31 +++++++++---------- .../lib/qt_wrapper/include/qcefview.h | 4 +-- .../lib/qt_wrapper/include/qcefview_media.h | 2 +- .../lib/qt_wrapper/qtascdocumentscore.pro | 6 +--- .../lib/qt_wrapper/src/qcefview_media.cpp | 4 +++ .../lib/qt_wrapper/src/qdpichecker.cpp | 23 ++++++-------- .../videoplayerlib/CMakeLists.txt | 2 +- 7 files changed, 33 insertions(+), 39 deletions(-) diff --git a/ChromiumBasedEditors/lib/qt_wrapper/CMakeLists.txt b/ChromiumBasedEditors/lib/qt_wrapper/CMakeLists.txt index 946db1375..382261415 100644 --- a/ChromiumBasedEditors/lib/qt_wrapper/CMakeLists.txt +++ b/ChromiumBasedEditors/lib/qt_wrapper/CMakeLists.txt @@ -10,14 +10,18 @@ set(CMAKE_AUTORCC ON) add_compile_options(-march=native) # Find Qt -set(QT_ROOT "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/qt/Qt-5.9.9/gcc_64/") -set(QT_DIR "${QT_ROOT}/lib/cmake/Qt5") -#set(QT_DIR "/build-cache-desktop/vcpkg_installed/x64-linux-dynamic/qt/Qt-5.9.9/gcc_64/lib/cmake/Qt5/") -set(Qt5_DIR "${QT_ROOT}/lib/cmake/Qt5") -#set(Qt5_DIR "/build-cache-desktop/vcpkg_installed/x64-linux-dynamic/qt/Qt-5.9.9/gcc_64/lib/cmake/Qt5/") +if(NOT QT_ROOT) + if(DEFINED ENV{QT6_ROOT}) + set(QT_ROOT "$ENV{QT6_ROOT}/6.11.1/gcc_64") + else() + set(QT_ROOT "/qt6/6.11.1/gcc_64") + endif() +endif() +set(QT_DIR "${QT_ROOT}/lib/cmake/Qt6") +set(Qt6_DIR "${QT_ROOT}/lib/cmake/Qt6") -find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Gui PrintSupport Widgets Multimedia MultimediaWidgets) -find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui PrintSupport Widgets Multimedia MultimediaWidgets) +find_package(QT NAMES Qt6 REQUIRED COMPONENTS Core Gui GuiPrivate PrintSupport Widgets Multimedia MultimediaWidgets) +find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui GuiPrivate PrintSupport Widgets Multimedia MultimediaWidgets) # Paths set(CORE_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../../core") @@ -46,7 +50,7 @@ endif() # --- Main Target --- add_library(qtascdocumentscore SHARED) -target_compile_definitions(qtascdocumentscore PRIVATE DESKTOP_USE_DYNAMIC_LIBRARY_BUILDING) +target_compile_definitions(qtascdocumentscore PRIVATE DESKTOP_USE_DYNAMIC_LIBRARY_BUILDING QT_VERSION_6) target_include_directories(qtascdocumentscore PRIVATE "${CMAKE_CURRENT_LIST_DIR}/include" @@ -90,15 +94,10 @@ if(WIN32) endif() if(UNIX AND NOT APPLE) - target_compile_definitions(qtascdocumentscore PRIVATE _LINUX LINUX OS_LINUX _X11 QT_VERSION_LESS_5_15) + target_compile_definitions(qtascdocumentscore PRIVATE _LINUX LINUX OS_LINUX _X11) - # Qt5/6 Linux handling - if(QT_VERSION_MAJOR LESS_EQUAL 5) - find_package(Qt5 REQUIRED COMPONENTS X11Extras) - target_link_libraries(qtascdocumentscore PRIVATE Qt5::X11Extras) - else() - target_link_libraries(qtascdocumentscore PRIVATE Qt6::GuiPrivate) - endif() + # Qt6 Linux handling + target_link_libraries(qtascdocumentscore PRIVATE Qt${QT_VERSION_MAJOR}::GuiPrivate) #target_link_options(qtascdocumentscore PRIVATE "-Wl,-unresolved-symbols=ignore-in-shared-libs") diff --git a/ChromiumBasedEditors/lib/qt_wrapper/include/qcefview.h b/ChromiumBasedEditors/lib/qt_wrapper/include/qcefview.h index d726114c1..76a7467e2 100644 --- a/ChromiumBasedEditors/lib/qt_wrapper/include/qcefview.h +++ b/ChromiumBasedEditors/lib/qt_wrapper/include/qcefview.h @@ -108,12 +108,12 @@ class DESKTOP_DECL QCefView : public QWidget, public CCefViewWidgetImpl void Init(); -signals: +Q_SIGNALS: void closeWidget(QCloseEvent *); void _loaded(); void _closed(); -protected slots: +protected Q_SLOTS: void _loadedSlot(); void _closedSlot(); }; diff --git a/ChromiumBasedEditors/lib/qt_wrapper/include/qcefview_media.h b/ChromiumBasedEditors/lib/qt_wrapper/include/qcefview_media.h index d3a91682e..3f40913b4 100644 --- a/ChromiumBasedEditors/lib/qt_wrapper/include/qcefview_media.h +++ b/ChromiumBasedEditors/lib/qt_wrapper/include/qcefview_media.h @@ -48,7 +48,7 @@ class DESKTOP_DECL QCefView_Media : public QCefView protected: QAscVideoView* m_pMediaView; -protected slots: +protected Q_SLOTS: void onMediaKeyDown(int key, Qt::KeyboardModifiers mods); }; diff --git a/ChromiumBasedEditors/lib/qt_wrapper/qtascdocumentscore.pro b/ChromiumBasedEditors/lib/qt_wrapper/qtascdocumentscore.pro index 544c33966..8f157bbcd 100644 --- a/ChromiumBasedEditors/lib/qt_wrapper/qtascdocumentscore.pro +++ b/ChromiumBasedEditors/lib/qt_wrapper/qtascdocumentscore.pro @@ -39,11 +39,7 @@ core_windows { } core_linux { - !greaterThan(QT_MAJOR_VERSION, 5) { - QT += x11extras - } else { - QT += gui-private - } + QT += gui-private LIBS += -Wl,-unresolved-symbols=ignore-in-shared-libs ADD_DEPENDENCY(graphics, kernel, UnicodeConverter) diff --git a/ChromiumBasedEditors/lib/qt_wrapper/src/qcefview_media.cpp b/ChromiumBasedEditors/lib/qt_wrapper/src/qcefview_media.cpp index 47623044e..6d22f97c3 100644 --- a/ChromiumBasedEditors/lib/qt_wrapper/src/qcefview_media.cpp +++ b/ChromiumBasedEditors/lib/qt_wrapper/src/qcefview_media.cpp @@ -46,12 +46,16 @@ QCefView_Media::~QCefView_Media() } #ifdef _LINUX +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) #include +#endif QWidget* getMainPanel(QWidget* widget, int& x, int& y) { x = 0; y = 0; +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) if (!QX11Info::isCompositingManagerRunning()) return widget; +#endif QWidget* cur = widget; while (cur->parentWidget() && cur->objectName() != "mainPanel") diff --git a/ChromiumBasedEditors/lib/qt_wrapper/src/qdpichecker.cpp b/ChromiumBasedEditors/lib/qt_wrapper/src/qdpichecker.cpp index 8b35cac7f..85f09d28f 100644 --- a/ChromiumBasedEditors/lib/qt_wrapper/src/qdpichecker.cpp +++ b/ChromiumBasedEditors/lib/qt_wrapper/src/qdpichecker.cpp @@ -29,18 +29,16 @@ #include #include "./../include/qcefview.h" -#ifdef QT_VERSION_LESS_5_15 -#include -#endif - #ifdef _LINUX -#ifndef QT_VERSION_6 -#include -#else +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) #include +#else +#include #endif #endif + + QDpiChecker::QDpiChecker(CAscApplicationManager* pManager) : CAscDpiChecker(pManager) { } @@ -75,16 +73,17 @@ int QDpiChecker::GetMonitorDpi(int nScreenNumber, unsigned int* dx, unsigned int int nDpiY = _screen->physicalDotsPerInchY(); #ifdef _LINUX - if ( QX11Info::isPlatformX11() ) + if (QX11Info::isPlatformX11()) { int _x11_dpix = QX11Info::appDpiX(nScreenNumber), _x11_dpiy = QX11Info::appDpiY(nScreenNumber); - if ( nDpiX < _x11_dpix ) nDpiX = _x11_dpix; - if ( nDpiY < _x11_dpiy ) nDpiY = _x11_dpiy; + if (nDpiX < _x11_dpix) nDpiX = _x11_dpix; + if (nDpiY < _x11_dpiy) nDpiY = _x11_dpiy; } #endif + QSize size = _screen->size(); if (size.width() <= 1600 && size.height() <= 900) { @@ -122,10 +121,6 @@ int QDpiChecker::GetWidgetDpi(QWidget* w, unsigned int* dx, unsigned int* dy) *dy = 96; return 0; } -#ifndef QT_VERSION_LESS_5_15 int nScreenNumber = QApplication::screens().indexOf(w->screen()); -#else - int nScreenNumber = QApplication::desktop()->screenNumber(w); -#endif return GetMonitorDpi(nScreenNumber, dx, dy); } diff --git a/ChromiumBasedEditors/videoplayerlib/CMakeLists.txt b/ChromiumBasedEditors/videoplayerlib/CMakeLists.txt index fbece70f1..455617807 100644 --- a/ChromiumBasedEditors/videoplayerlib/CMakeLists.txt +++ b/ChromiumBasedEditors/videoplayerlib/CMakeLists.txt @@ -64,7 +64,7 @@ endif() target_sources(videoplayerlib PRIVATE ${SOURCES} ${HEADERS} IconsVideoPlayerLib.qrc) # --- Definitions --- -target_compile_definitions(videoplayerlib PRIVATE QT_DEPRECATED_WARNINGS BUILD_VIDEO_LIBRARY) +target_compile_definitions(videoplayerlib PRIVATE QT_DEPRECATED_WARNINGS BUILD_VIDEO_LIBRARY QT_VERSION_6) if(USE_LIBVLC) target_compile_definitions(videoplayerlib PRIVATE USE_VLC_LIBRARY) From 17d585dd7389a75f424676b5f7026d257a7affa4 Mon Sep 17 00:00:00 2001 From: "Peter P. Lupo" Date: Fri, 19 Jun 2026 00:17:29 -0400 Subject: [PATCH 2/3] Linker & QPrinter API Fixes: * Linker Error Resolved: Fixed the final build failure by removing the invalid OfficeUtils target from the editors_helper linker dependencies (as it is already compiled directly into the kernel static library). * qascprinter.cpp: Fixed a compilation error by replacing an incorrect Qt 6 macro check and migrating the removed QPrinter::pageRect() method to use pageLayout().fullRectPixels(). * gtkprintdialog.cpp: Replaced deprecated setPaperName() and setPaperSize() usages with setPageSize(). * qmultimedia.h: Included the missing header to ensure compilation flags evaluate properly. Signed-off-by: Peter P. Lupo --- ChromiumBasedEditors/lib/CMakeLists.txt | 2 +- ChromiumBasedEditors/lib/qt_wrapper/CMakeLists.txt | 4 ++-- ChromiumBasedEditors/lib/qt_wrapper/src/qascprinter.cpp | 4 ++-- ChromiumBasedEditors/videoplayerlib/CMakeLists.txt | 2 +- ChromiumBasedEditors/videoplayerlib/src/lib_base.cpp | 2 +- ChromiumBasedEditors/videoplayerlib/src/qascmediaplayer.h | 2 +- ChromiumBasedEditors/videoplayerlib/src/qascvideowidget.cpp | 4 ++-- ChromiumBasedEditors/videoplayerlib/src/qmultimedia.h | 5 +++-- ChromiumBasedEditors/videoplayerlib/src/qvideoplaylist.cpp | 2 +- 9 files changed, 14 insertions(+), 13 deletions(-) diff --git a/ChromiumBasedEditors/lib/CMakeLists.txt b/ChromiumBasedEditors/lib/CMakeLists.txt index ea5711919..9a25f9e46 100644 --- a/ChromiumBasedEditors/lib/CMakeLists.txt +++ b/ChromiumBasedEditors/lib/CMakeLists.txt @@ -1214,6 +1214,6 @@ elseif(UNIX AND NOT APPLE) ) # Extra Linux dependencies defined in ascdocumentscore_helper.pro target_link_libraries(editors_helper PRIVATE - graphics kernel kernel_network UnicodeConverter OfficeUtils + graphics kernel kernel_network UnicodeConverter ) endif() \ No newline at end of file diff --git a/ChromiumBasedEditors/lib/qt_wrapper/CMakeLists.txt b/ChromiumBasedEditors/lib/qt_wrapper/CMakeLists.txt index 382261415..caebfe313 100644 --- a/ChromiumBasedEditors/lib/qt_wrapper/CMakeLists.txt +++ b/ChromiumBasedEditors/lib/qt_wrapper/CMakeLists.txt @@ -12,7 +12,7 @@ add_compile_options(-march=native) # Find Qt if(NOT QT_ROOT) if(DEFINED ENV{QT6_ROOT}) - set(QT_ROOT "$ENV{QT6_ROOT}/6.11.1/gcc_64") + set(QT_ROOT "$ENV{QT6_ROOT}") else() set(QT_ROOT "/qt6/6.11.1/gcc_64") endif() @@ -50,7 +50,7 @@ endif() # --- Main Target --- add_library(qtascdocumentscore SHARED) -target_compile_definitions(qtascdocumentscore PRIVATE DESKTOP_USE_DYNAMIC_LIBRARY_BUILDING QT_VERSION_6) +target_compile_definitions(qtascdocumentscore PRIVATE DESKTOP_USE_DYNAMIC_LIBRARY_BUILDING) target_include_directories(qtascdocumentscore PRIVATE "${CMAKE_CURRENT_LIST_DIR}/include" diff --git a/ChromiumBasedEditors/lib/qt_wrapper/src/qascprinter.cpp b/ChromiumBasedEditors/lib/qt_wrapper/src/qascprinter.cpp index b79a46dd3..4b42b578c 100644 --- a/ChromiumBasedEditors/lib/qt_wrapper/src/qascprinter.cpp +++ b/ChromiumBasedEditors/lib/qt_wrapper/src/qascprinter.cpp @@ -119,7 +119,7 @@ void QAscPrinterContext::GetPhysicalRect(int& nX, int& nY, int& nW, int& nH) return; } -#ifndef QT_VERSION_6 +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QRect rect1 = m_oPrinter.pageRect(); QRect rect2 = m_oPrinter.paperRect(); #else @@ -142,7 +142,7 @@ void QAscPrinterContext::GetPrintAreaSize(int& nW, int& nH) return; } -#ifndef QT_VERSION_6 +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QRect rect = m_oPrinter.pageRect(); #else QRect rect = m_oPrinter.pageLayout().fullRectPixels(m_oPrinter.resolution()); diff --git a/ChromiumBasedEditors/videoplayerlib/CMakeLists.txt b/ChromiumBasedEditors/videoplayerlib/CMakeLists.txt index 455617807..fbece70f1 100644 --- a/ChromiumBasedEditors/videoplayerlib/CMakeLists.txt +++ b/ChromiumBasedEditors/videoplayerlib/CMakeLists.txt @@ -64,7 +64,7 @@ endif() target_sources(videoplayerlib PRIVATE ${SOURCES} ${HEADERS} IconsVideoPlayerLib.qrc) # --- Definitions --- -target_compile_definitions(videoplayerlib PRIVATE QT_DEPRECATED_WARNINGS BUILD_VIDEO_LIBRARY QT_VERSION_6) +target_compile_definitions(videoplayerlib PRIVATE QT_DEPRECATED_WARNINGS BUILD_VIDEO_LIBRARY) if(USE_LIBVLC) target_compile_definitions(videoplayerlib PRIVATE USE_VLC_LIBRARY) diff --git a/ChromiumBasedEditors/videoplayerlib/src/lib_base.cpp b/ChromiumBasedEditors/videoplayerlib/src/lib_base.cpp index bbc7bcdb7..e119fdec9 100644 --- a/ChromiumBasedEditors/videoplayerlib/src/lib_base.cpp +++ b/ChromiumBasedEditors/videoplayerlib/src/lib_base.cpp @@ -12,7 +12,7 @@ LONG WINAPI vlc_exception_filter(struct _EXCEPTION_POINTERS *lpExceptionInfo) return EXCEPTION_CONTINUE_EXECUTION; } -#ifdef QT_VERSION_6 +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) #include static void CheckWindowsOld() { diff --git a/ChromiumBasedEditors/videoplayerlib/src/qascmediaplayer.h b/ChromiumBasedEditors/videoplayerlib/src/qascmediaplayer.h index b2b7beedc..7b31966c7 100644 --- a/ChromiumBasedEditors/videoplayerlib/src/qascmediaplayer.h +++ b/ChromiumBasedEditors/videoplayerlib/src/qascmediaplayer.h @@ -3,7 +3,7 @@ #include #include -#ifdef QT_VERSION_6 +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) #include typedef QMediaPlayer::PlaybackState QMediaPlayer_State; diff --git a/ChromiumBasedEditors/videoplayerlib/src/qascvideowidget.cpp b/ChromiumBasedEditors/videoplayerlib/src/qascvideowidget.cpp index d2ac71c8c..953e26585 100644 --- a/ChromiumBasedEditors/videoplayerlib/src/qascvideowidget.cpp +++ b/ChromiumBasedEditors/videoplayerlib/src/qascvideowidget.cpp @@ -87,14 +87,14 @@ QAscVideoWidget::QAscVideoWidget(QWidget *parent) #endif #ifndef USE_VLC_LIBRARY -#ifndef QT_VERSION_6 +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) m_pEngine->setNotifyInterval(500); #endif #else m_pEngine->setNotifyInterval(500); #endif -#ifdef QT_VERSION_6 +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) QObject::connect(m_pEngine, &QMediaPlayer::playbackStateChanged, this, &QAscVideoWidget::slotChangeState); #else QObject::connect(m_pEngine, &QMediaPlayer::stateChanged, this, &QAscVideoWidget::slotChangeState); diff --git a/ChromiumBasedEditors/videoplayerlib/src/qmultimedia.h b/ChromiumBasedEditors/videoplayerlib/src/qmultimedia.h index aabb343a6..e81a88886 100644 --- a/ChromiumBasedEditors/videoplayerlib/src/qmultimedia.h +++ b/ChromiumBasedEditors/videoplayerlib/src/qmultimedia.h @@ -4,11 +4,12 @@ #include #include +#include #include "./qascmediaplayer.h" static QMediaPlayer_State getPlayerState(QMediaPlayer* player) { -#ifdef QT_VERSION_6 +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) return player->playbackState(); #else return player->state(); @@ -17,7 +18,7 @@ static QMediaPlayer_State getPlayerState(QMediaPlayer* player) static bool isVideoAvailable(QMediaPlayer* player) { -#ifdef QT_VERSION_6 +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) return player->videoOutput() != nullptr; #else return player->isVideoAvailable(); diff --git a/ChromiumBasedEditors/videoplayerlib/src/qvideoplaylist.cpp b/ChromiumBasedEditors/videoplayerlib/src/qvideoplaylist.cpp index 888309ce3..606f9b9fc 100644 --- a/ChromiumBasedEditors/videoplayerlib/src/qvideoplaylist.cpp +++ b/ChromiumBasedEditors/videoplayerlib/src/qvideoplaylist.cpp @@ -109,7 +109,7 @@ QVideoPlaylist::QVideoPlaylist(QWidget *parent) : QWidget(parent) QObject::connect(m_pCheckPlayer, SIGNAL(durationChanged(qint64)), this, SLOT(_onSlotDurationChanged(qint64))); QObject::connect(m_pCheckPlayer, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)), this, SLOT(_onSlotMediaStatusChanged(QMediaPlayer::MediaStatus))); -#ifndef QT_VERSION_6 +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QObject::connect(m_pCheckPlayer, SIGNAL(mediaChanged(QMediaContent)), this, SLOT(_onSlotMediaChanged(QMediaContent))); QObject::connect(m_pCheckPlayer, SIGNAL(error(QMediaPlayer::Error)), this, SLOT(_onSlotError(QMediaPlayer::Error))); #else From 02d643dbe2878c29196c78bd6f0614443e498e10 Mon Sep 17 00:00:00 2001 From: Hendrik Leidinger Date: Fri, 26 Jun 2026 09:07:57 -0700 Subject: [PATCH 3/3] desktop windows Qt6 support Signed-off-by: Hendrik Leidinger --- ChromiumBasedEditors/lib/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ChromiumBasedEditors/lib/CMakeLists.txt b/ChromiumBasedEditors/lib/CMakeLists.txt index af6e2d340..6d4624768 100644 --- a/ChromiumBasedEditors/lib/CMakeLists.txt +++ b/ChromiumBasedEditors/lib/CMakeLists.txt @@ -1109,7 +1109,7 @@ target_sources(ascdocumentscore PRIVATE ${ASCDOCUMENTSCORE_HEADERS} ${ASCDOCUMEN # Add Crypto & Compound dependencies target_link_directories(ascdocumentscore PRIVATE "${CORE_BUILDS_LIBRARIES_PATH}" $<$:${CEF_ROOT}/Debug> - $<$:${CEF_ROOT}/Release> + $<$>:${CEF_ROOT}/Release> ) # Boost and ICU @@ -1181,7 +1181,7 @@ add_officeutils(editors_helper ${CORE_ROOT_DIR}/OfficeUtils) target_link_directories(editors_helper PRIVATE $<$:${CEF_ROOT}/Debug> - $<$:${CEF_ROOT}/Release> + $<$>:${CEF_ROOT}/Release> ) target_link_libraries(editors_helper PUBLIC