Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
+86
@@ -0,0 +1,86 @@
|
||||
/**
|
||||
* @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();
|
||||
};
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user