SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
cursorwindowslider.h
Go to the documentation of this file.
1
22#ifndef OPENSWMMVIS_UI_WIDGETS_CURSORWINDOWSLIDER_H
23#define OPENSWMMVIS_UI_WIDGETS_CURSORWINDOWSLIDER_H
24
25#include <QWidget>
26
27namespace openswmmvis::ui {
28
29class CursorWindowSlider : public QWidget
30{
31 Q_OBJECT
32 Q_PROPERTY(qreal cursorNorm READ cursorNorm WRITE setCursorNorm NOTIFY cursorChanged)
33 Q_PROPERTY(qreal windowNorm READ windowNorm WRITE setWindowNorm NOTIFY windowNormChanged)
34public:
35 explicit CursorWindowSlider(QWidget *parent = nullptr);
36
37 qreal cursorNorm() const noexcept { return m_cursor; }
38 qreal windowNorm() const noexcept { return m_windowNorm; }
39
40 QSize sizeHint() const override { return {300, 20}; }
41 QSize minimumSizeHint() const override { return {120, 20}; }
42
43public slots:
48 void setCursorNorm(qreal v);
49
53 void setWindowNorm(qreal w);
54
55signals:
68
69protected:
70 void paintEvent(QPaintEvent *e) override;
71 void mousePressEvent(QMouseEvent *e) override;
72 void mouseMoveEvent(QMouseEvent *e) override;
73 void mouseReleaseEvent(QMouseEvent *e) override;
74 void keyPressEvent(QKeyEvent *e) override;
75
76private:
77 int trackLeft() const noexcept;
78 int trackRight() const noexcept;
79 int trackWidth() const noexcept;
80 qreal pixelToNorm(int px) const noexcept;
81 int normToPixel(qreal v) const noexcept;
82 bool overThumb(const QPoint &p) const noexcept;
83
84 qreal m_cursor = 0.0;
85 qreal m_windowNorm = 0.0;
86 bool m_dragging = false;
87};
88
89} // namespace openswmmvis::ui
90
91#endif // OPENSWMMVIS_UI_WIDGETS_CURSORWINDOWSLIDER_H
Definition cursorwindowslider.h:30
void keyPressEvent(QKeyEvent *e) override
Definition cursorwindowslider.cpp:147
qreal cursorNorm
Definition cursorwindowslider.h:32
void cursorReleased(qreal cursorNorm)
2026-07-19 — emitted once when a scrub gesture ends (mouse release after a drag / click,...
qreal windowNorm
Definition cursorwindowslider.h:33
void paintEvent(QPaintEvent *e) override
Definition cursorwindowslider.cpp:72
void setCursorNorm(qreal v)
Set the cursor position (clamped to [0..1]). Emits cursorChanged only when the value actually moves....
Definition cursorwindowslider.cpp:33
void windowNormChanged(qreal windowNorm)
Emitted when the window band width changes.
void mouseMoveEvent(QMouseEvent *e) override
Definition cursorwindowslider.cpp:120
void mouseReleaseEvent(QMouseEvent *e) override
Definition cursorwindowslider.cpp:132
QSize sizeHint() const override
Definition cursorwindowslider.h:40
qreal windowNorm() const noexcept
Definition cursorwindowslider.h:38
QSize minimumSizeHint() const override
Definition cursorwindowslider.h:41
void cursorChanged(qreal cursorNorm)
Emitted when the cursor moves (user drag / track click, or a programmatic setCursorNorm that actually...
void setWindowNorm(qreal w)
Set the look-back window width as a fraction of the full timeline (clamped to [0.....
Definition cursorwindowslider.cpp:42
void mousePressEvent(QMouseEvent *e) override
Definition cursorwindowslider.cpp:107
int e
Definition inpmeshreader.cpp:41
ArrowPlacement p
Definition linesymbollayer.cpp:27
int w
Definition mesh2dresultsexport.cpp:387
Definition openswmmvislayer.h:43
QVector< int > v
pool vertex indices
Definition pslgminsize.cpp:159
QVector< int > parent
union-find
Definition pslgminsize.cpp:176