Files
qt-migration-legatus/qt5-before/dlbo/Lts/Common/LtsTimelineClassic/TimelineHeaderView.h
T
torstenandCopilot 7173785915 Qt6 Migration: Complete migration with DDS/RTI support and build validation
Major Changes:
- Merged latest Qt5 devel content from dlbo (292 files changed, 7 new dirs)
- Consolidated forward-declarations and include folders
- Removed unneeded modules per Niklas' repo check list

Build System Fixes:
- Fixed CMake VERSION_GREATER syntax in ParticipantManagement/CMakeLists.txt
- Added VLC packages (libvlc-dev, vlc-plugin-base) to docker_build.sh
- Added PostgreSQL dev packages (libpq-dev, postgresql-server-dev-all) to Dockerfile
- Fixed locale warnings (ANSI_X3.4-1968 → C.UTF-8)
- Fixed ArcGIS SDK path warnings when BUILD_ARCGIS=OFF

Code Generation Fixes:
- Fixed IDL enum collisions (PortType→CorePortType/DdsutPortType, PdmEventType)
- Fixed Grantlee template svc_translation.cpp.grantlee:
  - Changed {{ idl_enum.name }}_def:: to {{ idl_enum.name }}::
  - Fixed .underlying() calls for C++11 scoped enums (enum class)
- Removed generated files from repo (moc_*, *_dtc.h, *_ftc.h)

Validation:
- BUILD_RTI=ON: SUCCESS
- BUILD_RTI=OFF: SUCCESS
- C++17 standard maintained for RTI 7.7 compatibility
- Ubuntu 26.04 Docker environment verified

Remaining Warnings (expected):
- BgViewer, KDChart, KDReports, Poppler-Qt6 not found (optional features)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-09-15 18:20:26 +00:00

87 lines
2.3 KiB
C++

/**
* @RDE_HEADER@
* replaces the original header of the view - offers a user-movable position mark
* $Id$
* $HeadURL$
* $Author$
* Created by Mike Wille, SLSE, 2014-10-01
*/
#pragma once
#include "EventTools.h"
#include <QHeaderView>
class QPainter;
namespace LtsTimelineClassic
{
/**
* @brief replaces the original header of the view - offers a user-movable position mark
* since Qt does NOT provide delegates for QHeaderViews (although it inherits from QAbstractItemView),
* we must reimplement this class and use paintSection(..) instead
*/
class TimelineHeaderView : public QHeaderView
{
Q_OBJECT
public:
explicit TimelineHeaderView(QWidget *parent = nullptr);
/**
* @brief refreshes the header view data, which triggers all views to refresh also
*/
void refreshData();
void setLiveTime(qint64 time);
private:
qint64 m_posMarkTime; // posMarkTime is set exactly ONE time when clicked on the header > then the time will be et'd so that posMarkPos can vary
QRect m_paintingRange; // seen from the widget itself (so y is 0!)
// double posMark; DO NOT USE POSMARK INSTEAD OF POSMARKTIME !
qint64 m_liveTime;
protected:
/**
* @brief paints the coherant section with a position mark (if set)
* @param painter painter which draws on the coherant section
* @param rect boundaries to draw in
* @param logicalIndex which section to draw on
*/
void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const;
signals:
/**
* @brief gives new position mark pixel position to the view
* @param pos pixel position of new position mark
*/
void signalSetPosMarkPos(int pos); // header clicked -> new position mark position
public slots:
/**
* @brief sets new values to this class
* @param index affected column
* @param oldSize old width of column
* @param newSize new width of column
*/
void slotSectionResized(int logicalIndex, int oldSize, int newSize);
/**
* @brief setPosMarkTime sets m_posMarkTime - should be called if posMarker was set manually, not with mouse in header!
* @param time time to set the posMarker's position to
*/
void setPosMarkTime(qint64 time);
private:
/**
* @brief sets new position of the position mark in all necessary classes
*/
void setPosMarkPos();
};
}