Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Common/LtsTimelineClassic/TimelineIndicator.h
T

96 lines
1.8 KiB
C++

#pragma once
#include "ltstimelineclassic_export.h"
#include "EventTools.h"
#include "LineMap.h"
#include <QtWidgets/QComboBox>
#include <QtCore/QObject>
#include <QtCore/QPair>
#include <QtCore/QPoint>
#include <QtWidgets/QWidget>
namespace NGL
{
class INGLLogger;
}
class QPushButton;
class QLabel;
namespace LtsTimelineClassic
{
class TimelineIndicatorTest;
class LTSTIMELINECLASSIC_EXPORT TimelineIndicator : public QWidget
{
Q_OBJECT
friend class TimelineIndicatorTest;
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;
}
void refreshData();
private:
QVector<qint64> m_timeArray;
qint64 m_zoomFactorPoints;
QPushButton* m_pbZoom;
QPushButton* m_pbUnzoom;
QComboBox* m_cbZoomLevel;
int m_currentTextHeight;
int m_currentTextWidth;
LineMap m_lineMap;
int m_sectionPos;
int m_sectionSize;
protected:
NGL::INGLLogger& m_logger;
void paintEvent(QPaintEvent*);
public:
// Public getter for testing
QComboBox* zoomLevelComboBox() const { return m_cbZoomLevel; }
signals:
void signalSetTimelineRange(qint64 min, qint64 max);
void signalSetZoomFactor(qint64 zoomFactor);
void signalResetLineList();
void signalAddLine(int posX, qint64 time);
void signalZoomChanged();
private slots:
void afterZoom();
public slots:
void slotSectionResized(int logicalIndex, int oldSize, int newSize);
void slotZoom();
void slotUnzoom();
void slotResetLineList();
void slotAddLine(double posX, qint64 time);
};
} // namespace LtsTimelineClassic