Lts/Viewer: Migrate CMakeLists.txt to Qt6 and add missing submodules

- Updated all CMakeLists.txt files to use Qt6:: libraries
- Added LtsFileDialog submodule (copied from qt5-before)
- Added LtsReportDisplay submodule (copied from qt5-before)
- Enabled both submodules in main Viewer CMakeLists.txt
- Qt5::Core/Widgets → Qt6::Core/Widgets in all Viewer modules

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
torstenandCopilot committed 2026-08-25 13:39:54 +02:00
1 parent 45eb8ee689
commit 01dce5fe52
16 files changed
+1876 -4

No files matched your search

@@ -0,0 +1,28 @@
#
# CMakeLists.txt for File Dialog
#
# $Id$
# $HeadURL$
# $Author$
# Created by Iuliana Ojog, SLSE, 2017-07-12
#
FIND_PACKAGE(KDReports REQUIRED)
SET(ltsReportDisplay_SRCS
lts_report_display_widget.h
lts_report_display_widget.cpp
)
NGL_ADD_LIBRARY2(WS LtsReportDisplay SHARED ${ltsReportDisplay_SRCS})
NGL_TARGET_LINK_LIBRARIES(LtsReportDisplay
PRIVATE
LtsWidgets
PUBLIC
Qt6::Widgets
KDReports::KDReports
)
NGL_TARGET_INCLUDE_DIRECTORIES(LtsReportDisplay
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../
)
@@ -0,0 +1,96 @@
/**
* @RDE_HEADER@
* Shows a report of combat power in form of curves
* $Id$
* $HeadURL$
* $Author$
*/
#include "lts_report_display_widget.h"
#include <QResizeEvent>
#include <QPainter>
#include <QPaintEvent>
#include <QtCore/QTimer>
// Taken from KDReportsLayoutHelper.cpp START
// (WebCMS-TES-UAE-RP 2953 Falsche Positionierung im AAR)
QT_BEGIN_NAMESPACE
Q_GUI_EXPORT extern int qt_defaultDpi(); // This is what QTextDocument uses...
QT_END_NAMESPACE
// Taken from KDReportsLayoutHelper.cpp END
namespace LtsWidgets
{
LtsReportDisplayWidget::LtsReportDisplayWidget(QWidget *parent)
: QWidget(parent)
{
// setAttribute(Qt::WA_OpaquePaintEvent);
// minimale Breite, danach sollte die ScrollArea einen horizontalen Scrollbar darstellen
setMinimumWidth(400);
setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
}
void LtsReportDisplayWidget::setReport(KDReports::Report *report)
{
m_report = report;
update();
}
void LtsReportDisplayWidget::paintEvent(QPaintEvent *event)
{
if (!m_report)
{
QWidget::paintEvent(event);
return;
}
if (m_pixmap.size() != size())
{
QImage img(size(), QImage::Format_ARGB32);
QPainter p(&img);
p.fillRect(rect(), Qt::white);
m_report->paintPage(0, p);
p.end();
m_pixmap = QPixmap::fromImage(img);
}
QPainter p(this);
p.drawPixmap(0, 0, m_pixmap);
p.end();
}
void LtsReportDisplayWidget::resizeEvent(QResizeEvent *event)
{
QWidget::resizeEvent(event);
if (!m_report)
return;
qreal withPixel = size().width();
// qreal withMM = withPixel / physicalDpiX() * 25.4;
qreal withMM = withPixel / qt_defaultDpi() * 25.4;
m_report->setWidthForEndlessPrinter(withMM);
if (!m_bNewMinSizeSlotCalled)
{
m_bNewMinSizeSlotCalled = true;
QTimer::singleShot(10, this, &LtsReportDisplayWidget::setNewMinimumSize);
}
}
void LtsReportDisplayWidget::setNewMinimumSize()
{
m_bNewMinSizeSlotCalled = false;
if (!m_report)
return;
// die neue minimale Höhe festlegen um ggf. einen vertikalen Scrollbar anzuzeigen
QSize newSize = m_report->paperSize().toSize();
// DEBUG_LOG(m_logger) << "old min height: " << minimumHeight() << " - new min height: " << newSize.height() << END_LOG;
// Zur Erklärung: es kann passieren, dass die ScrollArea entscheidet, dass der vertikale Scrollbar jetzt nicht mehr nötig ist
// dies triggert ein resize Event und demnach eine neue Breite. Dadurch verändert sich dann natürlich auch die
// neue minimale Höhe was widerrum dazu führt, dass der Scrollbar wieder nötig ist usw.
// deshalb eine kleine hysterese, hoffentlich reicht es so
if (minimumHeight() >= newSize.height() && minimumHeight() - 20 <= newSize.height())
return;
setMinimumHeight(newSize.height());
}
} // namespace LtsWidgets
@@ -0,0 +1,42 @@
/**
* @RDE_HEADER@
* Shows a report of combat power in form of curves
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
#include <QWidget>
#include <QPixmap>
#include <KDReports/KDReportsReport>
#include <LtsReportDisplay/ltsreportdisplay_export.h>
namespace LtsWidgets
{
class LTSREPORTDISPLAY_EXPORT LtsReportDisplayWidget : public QWidget
{
Q_OBJECT
public:
explicit LtsReportDisplayWidget(QWidget *parent = nullptr);
~LtsReportDisplayWidget() = default;
void setReport(KDReports::Report *report);
public slots:
void setNewMinimumSize();
protected:
void paintEvent(QPaintEvent *event) override;
void resizeEvent(QResizeEvent *event) override;
private:
bool m_bNewMinSizeSlotCalled{false};
QPixmap m_pixmap;
KDReports::Report *m_report{nullptr};
};
}