aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicknativestyle/items
diff options
context:
space:
mode:
Diffstat (limited to 'src/quicknativestyle/items')
-rw-r--r--src/quicknativestyle/items/qquickstyleitem.h4
-rw-r--r--src/quicknativestyle/items/qquickstyleitembutton.h2
-rw-r--r--src/quicknativestyle/items/qquickstyleitemcheckbox.h2
-rw-r--r--src/quicknativestyle/items/qquickstyleitemcheckdelegate.cpp32
-rw-r--r--src/quicknativestyle/items/qquickstyleitemcheckdelegate.h25
-rw-r--r--src/quicknativestyle/items/qquickstyleitemdelaybutton.cpp28
-rw-r--r--src/quicknativestyle/items/qquickstyleitemdelaybutton.h25
-rw-r--r--src/quicknativestyle/items/qquickstyleitemdial.cpp4
-rw-r--r--src/quicknativestyle/items/qquickstyleitemradiobutton.h2
-rw-r--r--src/quicknativestyle/items/qquickstyleitemradiodelegate.cpp29
-rw-r--r--src/quicknativestyle/items/qquickstyleitemradiodelegate.h25
-rw-r--r--src/quicknativestyle/items/qquickstyleitemscrollbar.cpp8
-rw-r--r--src/quicknativestyle/items/qquickstyleitemscrollbar.h2
13 files changed, 183 insertions, 5 deletions
diff --git a/src/quicknativestyle/items/qquickstyleitem.h b/src/quicknativestyle/items/qquickstyleitem.h
index 1ad8932d23..3d04371b7e 100644
--- a/src/quicknativestyle/items/qquickstyleitem.h
+++ b/src/quicknativestyle/items/qquickstyleitem.h
@@ -14,6 +14,8 @@
#include "qquickstyle.h"
#include "qquickstyleoption.h"
+#include <QtCore/qpointer.h>
+
// Work-around for now, to avoid creator getting confused
// about missing macros. Should eventually be defined
// in qt declarative somewhere I assume.
@@ -274,6 +276,4 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QQuickStyleItem::DebugFlags)
QT_END_NAMESPACE
-QML_DECLARE_TYPE(QQuickStyleItem)
-
#endif // QQUICKSTYLEITEM_H
diff --git a/src/quicknativestyle/items/qquickstyleitembutton.h b/src/quicknativestyle/items/qquickstyleitembutton.h
index 668013ac6f..82dff23048 100644
--- a/src/quicknativestyle/items/qquickstyleitembutton.h
+++ b/src/quicknativestyle/items/qquickstyleitembutton.h
@@ -23,7 +23,7 @@ protected:
StyleItemGeometry calculateGeometry() override;
private:
- void initStyleOption(QStyleOptionButton &styleOption) const;
+ virtual void initStyleOption(QStyleOptionButton &styleOption) const;
};
QT_END_NAMESPACE
diff --git a/src/quicknativestyle/items/qquickstyleitemcheckbox.h b/src/quicknativestyle/items/qquickstyleitemcheckbox.h
index 92cda579ef..f50c621d12 100644
--- a/src/quicknativestyle/items/qquickstyleitemcheckbox.h
+++ b/src/quicknativestyle/items/qquickstyleitemcheckbox.h
@@ -23,7 +23,7 @@ protected:
StyleItemGeometry calculateGeometry() override;
private:
- void initStyleOption(QStyleOptionButton &styleOption) const;
+ virtual void initStyleOption(QStyleOptionButton &styleOption) const;
};
QT_END_NAMESPACE
diff --git a/src/quicknativestyle/items/qquickstyleitemcheckdelegate.cpp b/src/quicknativestyle/items/qquickstyleitemcheckdelegate.cpp
new file mode 100644
index 0000000000..22576c50d2
--- /dev/null
+++ b/src/quicknativestyle/items/qquickstyleitemcheckdelegate.cpp
@@ -0,0 +1,32 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "qquickstyleitemcheckdelegate.h"
+
+#include <QtQuickTemplates2/private/qquickcheckdelegate_p.h>
+
+QT_BEGIN_NAMESPACE
+
+void QQuickStyleItemCheckDelegate::connectToControl() const
+{
+ QQuickStyleItem::connectToControl();
+ auto checkDelegate = control<QQuickCheckDelegate>();
+ connect(checkDelegate, &QQuickCheckDelegate::downChanged, this, &QQuickStyleItem::markImageDirty);
+ connect(checkDelegate, &QQuickCheckDelegate::checkStateChanged, this, &QQuickStyleItem::markImageDirty);
+}
+
+void QQuickStyleItemCheckDelegate::initStyleOption(QStyleOptionButton &styleOption) const
+{
+ initStyleOptionBase(styleOption);
+ auto checkDelegate = control<QQuickCheckDelegate>();
+
+ styleOption.state |= checkDelegate->isDown() ? QStyle::State_Sunken : QStyle::State_Raised;
+ if (checkDelegate->isTristate() && checkDelegate->checkState() == Qt::PartiallyChecked)
+ styleOption.state |= QStyle::State_NoChange;
+ else
+ styleOption.state |= checkDelegate->isChecked() ? QStyle::State_On : QStyle::State_Off;
+}
+
+QT_END_NAMESPACE
+
+#include "moc_qquickstyleitemcheckdelegate.cpp"
diff --git a/src/quicknativestyle/items/qquickstyleitemcheckdelegate.h b/src/quicknativestyle/items/qquickstyleitemcheckdelegate.h
new file mode 100644
index 0000000000..27ff42de25
--- /dev/null
+++ b/src/quicknativestyle/items/qquickstyleitemcheckdelegate.h
@@ -0,0 +1,25 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef QQUICKSTYLEITEMCHECKDELEGATE_H
+#define QQUICKSTYLEITEMCHECKDELEGATE_H
+
+#include "qquickstyleitemcheckbox.h"
+
+QT_BEGIN_NAMESPACE
+
+class QQuickStyleItemCheckDelegate : public QQuickStyleItemCheckBox
+{
+ Q_OBJECT
+ QML_NAMED_ELEMENT(CheckDelegate)
+
+protected:
+ void connectToControl() const override;
+
+private:
+ void initStyleOption(QStyleOptionButton &styleOption) const override;
+};
+
+QT_END_NAMESPACE
+
+#endif // QQUICKSTYLEITEMCHECKDELEGATE_H
diff --git a/src/quicknativestyle/items/qquickstyleitemdelaybutton.cpp b/src/quicknativestyle/items/qquickstyleitemdelaybutton.cpp
new file mode 100644
index 0000000000..19309d11b6
--- /dev/null
+++ b/src/quicknativestyle/items/qquickstyleitemdelaybutton.cpp
@@ -0,0 +1,28 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "qquickstyleitemdelaybutton.h"
+
+#include <QtQuickTemplates2/private/qquickdelaybutton_p.h>
+
+QT_BEGIN_NAMESPACE
+
+void QQuickStyleItemDelayButton::connectToControl() const
+{
+ QQuickStyleItem::connectToControl();
+ auto button = control<QQuickDelayButton>();
+ connect(button, &QQuickButton::downChanged, this, &QQuickStyleItem::markImageDirty);
+ connect(button, &QQuickButton::checkedChanged, this, &QQuickStyleItem::markImageDirty);
+}
+
+void QQuickStyleItemDelayButton::initStyleOption(QStyleOptionButton &styleOption) const
+{
+ initStyleOptionBase(styleOption);
+ auto button = control<QQuickDelayButton>();
+
+ styleOption.state |= button->isDown() ? QStyle::State_Sunken : QStyle::State_Raised;
+}
+
+QT_END_NAMESPACE
+
+#include "moc_qquickstyleitemdelaybutton.cpp"
diff --git a/src/quicknativestyle/items/qquickstyleitemdelaybutton.h b/src/quicknativestyle/items/qquickstyleitemdelaybutton.h
new file mode 100644
index 0000000000..e2a0bf2174
--- /dev/null
+++ b/src/quicknativestyle/items/qquickstyleitemdelaybutton.h
@@ -0,0 +1,25 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef QQUICKSTYLEITEMDELAYBUTTON_H
+#define QQUICKSTYLEITEMDELAYBUTTON_H
+
+#include "qquickstyleitembutton.h"
+
+QT_BEGIN_NAMESPACE
+
+class QQuickStyleItemDelayButton : public QQuickStyleItemButton
+{
+ Q_OBJECT
+ QML_NAMED_ELEMENT(DelayButton)
+
+protected:
+ void connectToControl() const override;
+
+private:
+ void initStyleOption(QStyleOptionButton &styleOption) const override;
+};
+
+QT_END_NAMESPACE
+
+#endif // QQUICKSTYLEITEMDELAYBUTTON_H
diff --git a/src/quicknativestyle/items/qquickstyleitemdial.cpp b/src/quicknativestyle/items/qquickstyleitemdial.cpp
index e2407e9e81..fe36f866e4 100644
--- a/src/quicknativestyle/items/qquickstyleitemdial.cpp
+++ b/src/quicknativestyle/items/qquickstyleitemdial.cpp
@@ -19,6 +19,8 @@ void QQuickStyleItemDial::connectToControl() const
connect(dial, &QQuickDial::positionChanged, this, &QQuickStyleItem::markImageDirty);
connect(dial, &QQuickDial::valueChanged, this, &QQuickStyleItem::markImageDirty);
connect(dial, &QQuickDial::stepSizeChanged, this, &QQuickStyleItem::markImageDirty);
+ connect(dial, &QQuickDial::startAngleChanged, this, &QQuickStyleItem::markImageDirty);
+ connect(dial, &QQuickDial::endAngleChanged, this, &QQuickStyleItem::markImageDirty);
connect(dial, &QQuickDial::pressedChanged, this, &QQuickStyleItem::markImageDirty);
}
@@ -54,6 +56,8 @@ void QQuickStyleItemDial::initStyleOption(QStyleOptionSlider &styleOption) const
styleOption.tickInterval = dial->stepSize();
styleOption.dialWrapping = dial->wrap();
styleOption.upsideDown = true;
+ styleOption.startAngle = dial->startAngle();
+ styleOption.endAngle = dial->endAngle();
if (dial->isPressed())
styleOption.state |= QStyle::State_Sunken;
diff --git a/src/quicknativestyle/items/qquickstyleitemradiobutton.h b/src/quicknativestyle/items/qquickstyleitemradiobutton.h
index 4674098116..209d2cc65f 100644
--- a/src/quicknativestyle/items/qquickstyleitemradiobutton.h
+++ b/src/quicknativestyle/items/qquickstyleitemradiobutton.h
@@ -23,7 +23,7 @@ protected:
StyleItemGeometry calculateGeometry() override;
private:
- void initStyleOption(QStyleOptionButton &styleOption) const;
+ virtual void initStyleOption(QStyleOptionButton &styleOption) const;
};
QT_END_NAMESPACE
diff --git a/src/quicknativestyle/items/qquickstyleitemradiodelegate.cpp b/src/quicknativestyle/items/qquickstyleitemradiodelegate.cpp
new file mode 100644
index 0000000000..a4325cfe15
--- /dev/null
+++ b/src/quicknativestyle/items/qquickstyleitemradiodelegate.cpp
@@ -0,0 +1,29 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "qquickstyleitemradiodelegate.h"
+
+#include <QtQuickTemplates2/private/qquickradiodelegate_p.h>
+
+QT_BEGIN_NAMESPACE
+
+void QQuickStyleItemRadioDelegate::connectToControl() const
+{
+ QQuickStyleItem::connectToControl();
+ auto radioDelegate = control<QQuickRadioDelegate>();
+ connect(radioDelegate, &QQuickRadioDelegate::downChanged, this, &QQuickStyleItem::markImageDirty);
+ connect(radioDelegate, &QQuickRadioDelegate::checkedChanged, this, &QQuickStyleItem::markImageDirty);
+}
+
+void QQuickStyleItemRadioDelegate::initStyleOption(QStyleOptionButton &styleOption) const
+{
+ initStyleOptionBase(styleOption);
+ auto radioDelegate = control<QQuickRadioDelegate>();
+
+ styleOption.state |= radioDelegate->isDown() ? QStyle::State_Sunken : QStyle::State_Raised;
+ styleOption.state |= radioDelegate->isChecked() ? QStyle::State_On : QStyle::State_Off;
+}
+
+QT_END_NAMESPACE
+
+#include "moc_qquickstyleitemradiodelegate.cpp"
diff --git a/src/quicknativestyle/items/qquickstyleitemradiodelegate.h b/src/quicknativestyle/items/qquickstyleitemradiodelegate.h
new file mode 100644
index 0000000000..3661ce792e
--- /dev/null
+++ b/src/quicknativestyle/items/qquickstyleitemradiodelegate.h
@@ -0,0 +1,25 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef QQUICKSTYLEITEMRADIODELEGATE_H
+#define QQUICKSTYLEITEMRADIODELEGATE_H
+
+#include "qquickstyleitemradiobutton.h"
+
+QT_BEGIN_NAMESPACE
+
+class QQuickStyleItemRadioDelegate : public QQuickStyleItemRadioButton
+{
+ Q_OBJECT
+ QML_NAMED_ELEMENT(RadioDelegate)
+
+protected:
+ void connectToControl() const override;
+
+private:
+ void initStyleOption(QStyleOptionButton &styleOption) const override;
+};
+
+QT_END_NAMESPACE
+
+#endif // QQUICKSTYLEITEMRADIODELEGATE_H
diff --git a/src/quicknativestyle/items/qquickstyleitemscrollbar.cpp b/src/quicknativestyle/items/qquickstyleitemscrollbar.cpp
index c328ab6d1f..097341eb56 100644
--- a/src/quicknativestyle/items/qquickstyleitemscrollbar.cpp
+++ b/src/quicknativestyle/items/qquickstyleitemscrollbar.cpp
@@ -5,6 +5,14 @@
QT_BEGIN_NAMESPACE
+QQuickStyleItemScrollBar::QQuickStyleItemScrollBar(QQuickItem *parent)
+ : QQuickStyleItem(parent)
+{
+#ifdef QT_DEBUG
+ setObjectName("styleItemScrollBar");
+#endif
+}
+
QFont QQuickStyleItemScrollBar::styleFont(QQuickItem *control) const
{
return style()->font(QStyle::CE_ProgressBarLabel, controlSize(control));
diff --git a/src/quicknativestyle/items/qquickstyleitemscrollbar.h b/src/quicknativestyle/items/qquickstyleitemscrollbar.h
index 6ef232420f..57a9c19059 100644
--- a/src/quicknativestyle/items/qquickstyleitemscrollbar.h
+++ b/src/quicknativestyle/items/qquickstyleitemscrollbar.h
@@ -26,6 +26,8 @@ public:
};
Q_ENUM(SubControl)
+ explicit QQuickStyleItemScrollBar(QQuickItem *parent = nullptr);
+
QFont styleFont(QQuickItem *control) const override;
protected: