From 96a5b3b55aab17ac147423677eed668d9a744248 Mon Sep 17 00:00:00 2001 From: "B.Melnik" Date: Thu, 20 May 2021 09:45:05 +0300 Subject: [PATCH] chore: add StatusRadioButton Closes #11 --- ui/StatusQ/sandbox/Controls.qml | 4 ++ ui/StatusQ/sandbox/sandbox.pro | 1 + .../StatusQ/Controls/StatusRadioButton.qml | 40 +++++++++++++++++++ ui/StatusQ/src/StatusQ/Controls/qmldir | 2 +- 4 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 ui/StatusQ/src/StatusQ/Controls/StatusRadioButton.qml diff --git a/ui/StatusQ/sandbox/Controls.qml b/ui/StatusQ/sandbox/Controls.qml index e5208f10ea..df786e3abc 100644 --- a/ui/StatusQ/sandbox/Controls.qml +++ b/ui/StatusQ/sandbox/Controls.qml @@ -89,4 +89,8 @@ GridLayout { StatusSwitch { } + + StatusRadioButton { + text: "i'm radio!" + } } diff --git a/ui/StatusQ/sandbox/sandbox.pro b/ui/StatusQ/sandbox/sandbox.pro index 489806db8b..7050a5ef95 100644 --- a/ui/StatusQ/sandbox/sandbox.pro +++ b/ui/StatusQ/sandbox/sandbox.pro @@ -36,3 +36,4 @@ DISTFILES += \ ../src/StatusQ/Controls/StatusButton.qml \ ../src/StatusQ/Controls/StatusFlatRoundButton.qml \ ../src/StatusQ/Controls/StatusSwitch.qml + ../src/StatusQ/Controls/StatusRadioButton.qml diff --git a/ui/StatusQ/src/StatusQ/Controls/StatusRadioButton.qml b/ui/StatusQ/src/StatusQ/Controls/StatusRadioButton.qml new file mode 100644 index 0000000000..b58eddbf04 --- /dev/null +++ b/ui/StatusQ/src/StatusQ/Controls/StatusRadioButton.qml @@ -0,0 +1,40 @@ +import QtQuick 2.14 +import QtQuick.Controls 2.14 +import QtQml 2.14 + +import StatusQ.Core 0.1 +import StatusQ.Core.Theme 0.1 +import StatusQ.Components 0.1 + + +RadioButton { + id: statusRadioButton + + width: indicator.implicitWidth + + indicator: Rectangle { + implicitWidth: 20 + implicitHeight: 20 + x: 0 + y: 6 + radius: 10 + color: statusRadioButton.checked ? Theme.palette.primaryColor1 + : Theme.palette.directColor8 + + Rectangle { + width: 12 + height: 12 + radius: 6 + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + color: statusRadioButton.checked ? Theme.palette.white : "transparent" + visible: statusRadioButton.checked + } + } + contentItem: StatusBaseText { + text: statusRadioButton.text + verticalAlignment: Text.AlignVCenter + leftPadding: !!statusRadioButton.text ? statusRadioButton.indicator.width + statusRadioButton.spacing + : statusRadioButton.indicator.width + } +} diff --git a/ui/StatusQ/src/StatusQ/Controls/qmldir b/ui/StatusQ/src/StatusQ/Controls/qmldir index de217d6a76..da702f231e 100644 --- a/ui/StatusQ/src/StatusQ/Controls/qmldir +++ b/ui/StatusQ/src/StatusQ/Controls/qmldir @@ -9,4 +9,4 @@ StatusFlatButton 0.1 StatusFlatButton.qml StatusRoundButton 0.1 StatusRoundButton.qml StatusFlatRoundButton 0.1 StatusFlatRoundButton.qml StatusSwitch 0.1 StatusSwitch.qml - +StatusRadioButton 0.1 StatusRadioButton.qml