Files
qt6-migration-pipeline/Lts/Common/LtsScriptTimeline/track_widget.h
T

90 lines
2.4 KiB
C++
Executable File

#pragma once
#include <LtsScriptTimeline/ltsscripttimeline_export.h>
#include "track_entry_painters.h"
#include <QWidget>
#include <QMap>
#include <functional>
namespace Ui
{
class TrackWidget;
}
namespace LtsScriptTimeline
{
class TrackEntry;
class TrackContentWidget;
class FilterTrackWidget;
class FilterBackgroundWidget;
class ScriptTimeline;
class Tools;
class LTSSCRIPTTIMELINE_EXPORT TrackWidget : public QWidget
{
Q_OBJECT
public:
explicit TrackWidget(int baseWidth, bool readonly, Tools *tools, bool filtersAllowed, QWidget *parent = nullptr);
~TrackWidget();
void setReadonly(bool readonly);
void updateMe();
void unselectAll();
bool isSelected() const;
QString trackName() const;
bool addTrackEntry(TrackEntry *te, bool selectTrackEntry);
void setTrackName(const QString &name);
void addCorrespondingTrackWidget(TrackContentWidget *pCorrespondingTrackWidget);
TrackContentWidget *getTrackContentWidget() const;
void setBaseWidth(int width);
void setIndicatorTime(int time);
void selectEntry(int topicId);
void setInternalName(const QString &name);
QVector<TrackEntry *> getTrackEntriesFiltersAsEntries(bool selectedEntriesOnly = false) const;
QVector<TrackEntry *> getTrackEntriesWithFilters(bool selectedEntriesOnly = false) const;
QVector<TrackEntry *> getTrackEntries(bool selectedEntriesOnly = false) const;
QVector<TrackEntry *> getSelectedFilterEntries() const;
const QVector<TrackEntry *> &getSelectedEntries() const;
int getParentTopicIdOfFilter(const TrackEntry *te) const;
void setScriptTimeline(ScriptTimeline *scriptTimeline);
const QVector<FilterTrackWidget *> &filterLines() const { return m_filterLines; }
void keyPressEvent(QKeyEvent *event) override;
private:
QVector<FilterTrackWidget *> m_filterLines;
Ui::TrackWidget *ui;
int m_baseWidth;
QString m_internalName;
bool m_readonly;
ScriptTimeline *m_scriptTimeline;
Tools *m_tools;
protected:
void paintEvent(QPaintEvent *event) override;
private slots:
void slotExpand();
void slotTrackEntryAdded(TrackEntry *te);
void slotTrackEntryDeleted(const int topicId);
void slotMainChangesMade();
void slotAddFilter();
signals:
void signalUnselectAll();
void signalSelectTrack();
void signalTrackEntrySelectionChanged(TrackEntry *te);
void signalChangesMade();
void signalEditEntry(const int topicId);
void signalTrackEntryDeleted(const int topicId);
void signalTrackEntryAdded(TrackEntry *te);
};
}