summaryrefslogtreecommitdiff
path: root/src/plugins/qmldesigner/components/formeditor/seekerslider.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/components/formeditor/seekerslider.h')
-rw-r--r--src/plugins/qmldesigner/components/formeditor/seekerslider.h64
1 files changed, 34 insertions, 30 deletions
diff --git a/src/plugins/qmldesigner/components/formeditor/seekerslider.h b/src/plugins/qmldesigner/components/formeditor/seekerslider.h
index 0c9a6a65dc..d8bc8686ca 100644
--- a/src/plugins/qmldesigner/components/formeditor/seekerslider.h
+++ b/src/plugins/qmldesigner/components/formeditor/seekerslider.h
@@ -2,50 +2,54 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#pragma once
-#include <QWidget>
-#include <QMouseEvent>
-#include <QIcon>
+#include <QSlider>
+#include <QWidgetAction>
namespace QmlDesigner {
-
-class SeekerSlider : public QWidget
+class SeekerSlider : public QSlider
{
Q_OBJECT
-public:
- SeekerSlider(QWidget *parentWidget);
- int position() const;
- int maxPosition() const
- {
- return m_maxPosition;
- }
- void setMaxPosition(int pos)
- {
- m_maxPosition = qMax(0, pos);
- }
+public:
+ explicit SeekerSlider(QWidget *parent = nullptr);
-Q_SIGNALS:
- void positionChanged();
+ int maxValue() const;
+ void setMaxValue(int maxValue);
protected:
- void paintEvent(QPaintEvent *event) override;
void mousePressEvent(QMouseEvent *event) override;
void mouseMoveEvent(QMouseEvent *event) override;
void mouseReleaseEvent(QMouseEvent *event) override;
private:
- int m_position = 0;
- int m_startPos = 0;
- int m_sliderPos = 0;
- int m_sliderHalfWidth = 0;
- int m_maxPosition = 30;
+ using QSlider::setMinimum;
+ using QSlider::setMaximum;
+ using QSlider::setRange;
+
bool m_moving = false;
- int m_bgWidth;
- int m_bgHeight;
- int m_handleWidth;
- int m_handleHeight;
- QIcon m_bgIcon;
- QIcon m_handleIcon;
+};
+
+class SeekerSlider;
+class SeekerSliderAction : public QWidgetAction
+{
+ Q_OBJECT
+
+public:
+ explicit SeekerSliderAction(QObject *parent);
+ virtual ~SeekerSliderAction();
+
+ SeekerSlider *defaultSlider() const;
+ int value();
+
+signals:
+ void valueChanged(int);
+
+protected:
+ virtual QWidget *createWidget(QWidget *parent) override;
+
+private:
+ using QWidgetAction::setDefaultWidget;
+ SeekerSlider *m_defaultSlider = nullptr;
};
} // namespace QmlDesigner