mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-08-14 02:24:12 +02:00
cmake(qt6): verify Qt6::GuiPrivate at configure time, drop #warning
<private/qpdf_p.h> (QPdfEngine::drawHyperlink) needs Qt's private GUI module, previously flagged only by a #warning at compile time. Qt >= 6.7 ships GuiPrivate as a proper find_package component, but some distro packages (e.g. Ubuntu's qt6-base-private-dev, Qt 6.8.3) do not install Qt6GuiPrivateConfig.cmake and only provide the implicit Qt6::GuiPrivate target created alongside Qt6::Gui. Requesting the component unconditionally would therefore break distro-Qt builds. Instead: try the component quietly, then hard-verify the Qt6::GuiPrivate target exists after the main find_package, failing at configure time with an actionable message if the private headers are missing. The compile-time #warning in pdf_links.cpp and projectprintwindow.cpp is now redundant and removed. Verified: cmake configure + compile of both translation units on Ubuntu 25.04 / Qt 6.8.3 (system KF6), cmake configure on Qt 5.15. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
committed by
Andre Rummler
parent
c14d6a6dd6
commit
206c37f620
@@ -28,8 +28,8 @@
|
||||
|
||||
#include "ui_projectprintwindow.h"
|
||||
|
||||
// Private Qt PDF engine for drawHyperlink() — not public API, stable since Qt4
|
||||
// Requires QT += gui-private in qelectrotech.pro
|
||||
// Private Qt PDF engine for drawHyperlink() — not public API.
|
||||
// Availability of Qt::GuiPrivate is verified at configure time in CMakeLists.txt.
|
||||
#include <private/qpdf_p.h>
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
|
||||
@@ -79,10 +79,14 @@ void ProjectPrintWindow::launchDialog(QETProject *project, QPrinter::OutputForma
|
||||
print_dialog.setWindowFlags(Qt::Sheet);
|
||||
#endif
|
||||
print_dialog.setWindowTitle(tr("Options d'impression", "window title"));
|
||||
// setOptions() is the modern spelling of the Qt4-era
|
||||
// setEnabledOptions() (removed in Qt 6): replace the enabled
|
||||
// option set with just PrintShowPageSize, on Qt 5 and 6 alike.
|
||||
print_dialog.setOptions(QAbstractPrintDialog::PrintShowPageSize);
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
|
||||
print_dialog.setEnabledOptions(QAbstractPrintDialog::PrintShowPageSize);
|
||||
#else
|
||||
#if TODO_LIST
|
||||
#pragma message("@TODO remove code for QT 6 or later")
|
||||
#endif
|
||||
qDebug()<<"Help code for QT 6 or later";
|
||||
#endif
|
||||
if (print_dialog.exec() == QDialog::Rejected) {
|
||||
delete printer_;
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user