Files
qt-migration-legatus/qt5-before/dlbo/Lts/Common/LtsTimelineClassic/TimelineIndicator.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

140 lines
3.1 KiB
C++

/**
* @RDE_HEADER@
* offers zoom-buttons, current zoom in percent and date-time indicators coresponding to the viewport
* $Id$
* $HeadURL$
* $Author$
* Created by Mike Wille, SLSE, 2014-10-01
*/
#pragma once
#include "EventTools.h"
#include "LineMap.h"
#include <QWidget>
#include <QPoint>
#include <QPair>
namespace NGL
{
class INGLLogger;
//class Settings;
}
class QPushButton;
class QLabel;
class QComboBox;
namespace LtsTimelineClassic
{
/**
* @brief offers zoom-buttons, current zoom in percent and date-time indicators coresponding to the viewport
*/
class TimelineIndicator : public QWidget
{
Q_OBJECT
//static const int s_MinimalZoomPoints = 1; // no need to zoom out of 100% (logically)
static const int s_TimeTextDistanceTolerancePixels = 10;
static const int s_pbSize = 18;
public:
explicit TimelineIndicator(QWidget *parent);
~TimelineIndicator();
qint64 zoomFactorPoints() const { return m_zoomFactorPoints * 1000; }
/**
* @brief refreshes the indicator data, which triggers all views to refresh also
*/
void refreshData();
private:
QVector<qint64> m_timeArray;
qint64 m_zoomFactorPoints;
QPushButton *m_pbZoom;
QPushButton *m_pbUnzoom;
QComboBox *m_cbZoomLevel;
int m_currentTextHeight; // text height of last drawn text
int m_currentTextWidth;
LineMap m_lineMap;
int m_sectionPos;
int m_sectionSize;
NGL::INGLLogger &m_logger;
protected:
/**
* @brief draws all date texts on itself
*/
void paintEvent(QPaintEvent *);
signals:
/**
* @brief gives connected classes new max & min values
* @param min new first event in timeline in seconds since epoch
* @param max new last event in timeline in seconds since epoch
*/
void signalSetTimelineRange(qint64 min, qint64 max);
/**
* @brief gives connected classes new zoom factor value (seconds)
* @param zoomFactor new zoom factor
*/
void signalSetZoomFactor(qint64 zoomFactor);
/**
* @brief gives connected classes the command to delete their line list (date text line lists)
*/
void signalResetLineList();
/**
* @brief gives connected classes date text line pixel position which should be added to a list,
* so that the view can draw them on itself
* @param posX pixel position of date text line
*/
void signalAddLine(int posX, qint64 time);
void signalZoomChanged();
private slots:
void afterZoom();
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 is called when push button "zoom" (+) is pressed
*/
void slotZoom();
/**
* @brief is called when push button "zoom" (+) is pressed
*/
void slotUnzoom();
/**
* @brief deletes line list (date text line lists)
*/
void slotResetLineList();
/**
* @brief add date text line pixel position which should be added to a list,
* so that the view can draw them on itself
* @param posX pixel position of date text line
*/
void slotAddLine(double posX, qint64 time);
};
}