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

126 lines
3.7 KiB
C++

#pragma once
#include <LtsScriptTimeline/ltsscripttimeline_export.h>
#include "track_entry_painters.h"
#include <QWidget>
#include <QKeyEvent>
#include <QPointer>
namespace Ui
{
class ScriptTimeline;
}
class QRubberBand;
namespace LtsScriptTimeline
{
class TrackContentWidget;
class TrackWidget;
class TrackEntry;
class Tools;
class LTSSCRIPTTIMELINE_EXPORT ScriptTimeline : public QWidget
{
Q_OBJECT
public:
explicit ScriptTimeline(QWidget *parent = nullptr);
~ScriptTimeline();
TrackWidget *addTrack(const QString &name, bool filtersAllowed = true);
void setScriptId(int scriptId) { m_scriptId = scriptId; }
bool addTopic(TrackEntry *te); // from dds
QString newTrackName() const;
int nextUniqueId() { return ++m_uniqueId; }
void setUniqueIdCounter(int uniqueId) { m_uniqueId = uniqueId; }
QVector<TrackEntry *> getTrackEntriesWithFiltersAsEntries(bool selectedEntriesOnly = false) const;
QMap<QString, QVector<TrackEntry *> > getTrackEntriesWithFilters(bool selectedEntriesOnly = false) const;
QVector<TrackEntry *> getTrackEntries(bool selectedEntriesOnly = false) const;
QVector<TrackEntry *> getSelectedEntriesWithFilterEntries() const;
QVector<TrackEntry *> getSelectedFilterEntries() const;
TrackEntry *getTrackEntry(int topicId);
TrackEntry *getTrackEntryWithFiltersAsEntries(int topicId);
void setIndicatorTime(int time);
int getCurrentScriptEndTime();
//void selectTrackEntry(int topicId);
void updateEverything();
void clear();
void setReadonly(bool readonly);
QList<TrackWidget *> getTrackWidgets() const;
void lockIndicator(bool lock = true);
int getFilterTrackEntryRealTime(TrackEntry *te);
bool checkNewLength(TrackEntry *te, int newLength);
bool importTrackEntries(const QVector<LtsScriptTimeline::TrackEntry *> &importTes);
protected:
void keyPressEvent(QKeyEvent *event) override;
void mousePressEvent(QMouseEvent *event) override;
void mouseMoveEvent(QMouseEvent *) override;
void mouseReleaseEvent(QMouseEvent *) override;
private:
Ui::ScriptTimeline *ui;
int m_uniqueId;
int m_scriptId;
int m_baseTrackWidgetWidth;
QVector<TrackEntry *> m_clipboard;
//QMap<QString, TrackWidget *> m_trackMap;
bool m_readonly;
int m_time;
Tools *m_tools;
TrackContentWidget *m_mlmsMaster;
QHash<TrackContentWidget *, bool> m_mlmsTCWStates;
bool m_ignoreChanges;
QHash<TrackWidget *, QByteArray> m_copyTopics;
struct RubberbandAction
{
QPoint origin;
QPointer<QRubberBand> rubberBand;
} m_rubberbandAction;
void resizeEvent(QResizeEvent *event) override;
void updateAllTracks();
signals:
void signalTrackEntrySelectionChanged(TrackEntry *te);
void signalChangesMade();
void signalHeaderIndicatorTimeChanged(int time);
void signalHeaderIndicatorTimeUserChanged(int time); // only emitted on user change
void signalEditEntry(const int topicId);
void signalTrackEntryDeleted(const int topicId);
void signalTrackEntryAdded(TrackEntry *te);
void signalSave();
public slots:
void slotUnselectAll();
void slotEscapeRubberband();
void slotStopRubberband();
void slotStartRubberband(const QPoint &pos);
void slotModifyRubberband();
void selectAll();
void slotCopyTopics();
void slotCutTopics();
void slotPasteTopics();
void slotDeleteSelectedTopics();
void slotMoveAll(int direction);
void slotScroll(int incr);
private slots:
void slotScrollbarValueChanged();
void slotZoomValueChanged(int value);
void slotDeleteTracks();
void slotSelectTrack();
void slotHeaderHandleResized(int newSize);
void slotHeaderIndicatorTimeChanged(int time);
void slotTrackEntrySelectionChanged(TrackEntry *te);
void slotSetNewScrollBarMaximum();
};
} // namespace LtsScriptTimeline