From c00c4c88c4a7ac06b6edc0251f21214ae5f7f1ab Mon Sep 17 00:00:00 2001 From: "kali kaneko (leap communications)" Date: Mon, 4 Oct 2021 00:21:27 +0200 Subject: [ui] checkbox fixes --- gui/components/Locations.qml | 2 +- gui/components/MaterialCheckBox.qml | 84 +++++++++++++++++++++++++++++++++++++ gui/components/Preferences.qml | 6 +-- gui/gui.qrc | 1 + 4 files changed, 89 insertions(+), 4 deletions(-) create mode 100644 gui/components/MaterialCheckBox.qml diff --git a/gui/components/Locations.qml b/gui/components/Locations.qml index 1b87f88..4fd5a82 100644 --- a/gui/components/Locations.qml +++ b/gui/components/Locations.qml @@ -243,7 +243,7 @@ ThemedPage { if (bridgeWarning.visible) { h += bridgeWarning.height } - return h + 30 + return h + 50 } function getSignalFor(location) { diff --git a/gui/components/MaterialCheckBox.qml b/gui/components/MaterialCheckBox.qml new file mode 100644 index 0000000..dd32d5b --- /dev/null +++ b/gui/components/MaterialCheckBox.qml @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.12 +import QtQuick.Templates 2.12 as T +import QtQuick.Controls.Material 2.12 +import QtQuick.Controls.Material.impl 2.12 + +T.CheckBox { + id: control + + implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, + implicitContentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, + implicitContentHeight + topPadding + bottomPadding, + implicitIndicatorHeight + topPadding + bottomPadding) + + spacing: 4 + padding: 4 + verticalPadding: padding + 2 + + indicator: CheckIndicator { + // XXX modified left offset to align with headers + x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) - 4 : control.leftPadding + (control.availableWidth - width) / 2 + y: control.topPadding + (control.availableHeight - height) / 2 + control: control + + Ripple { + x: (parent.width - width) / 2 + y: (parent.height - height) / 2 + width: 28; height: 28 + + z: -1 + anchor: control + pressed: control.pressed + active: control.down || control.visualFocus || control.hovered + color: control.checked ? control.Material.highlightedRippleColor : control.Material.rippleColor + } + } + + contentItem: Text { + leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 + + text: control.text + font: control.font + color: control.enabled ? control.Material.foreground : control.Material.hintTextColor + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + } +} diff --git a/gui/components/Preferences.qml b/gui/components/Preferences.qml index cc25101..02c4b29 100644 --- a/gui/components/Preferences.qml +++ b/gui/components/Preferences.qml @@ -70,7 +70,7 @@ ThemedPage { Layout.preferredWidth: 240 } - CheckBox { + MaterialCheckBox { id: useBridgesCheckBox checked: false text: qsTr("Use obfs4 bridges") @@ -94,7 +94,7 @@ ThemedPage { } } - CheckBox { + MaterialCheckBox { id: useSnowflake //wrapMode: Label.Wrap text: qsTr("Use Snowflake (experimental)") @@ -122,7 +122,7 @@ ThemedPage { Layout.rightMargin: 10 } - CheckBox { + MaterialCheckBox { id: useUDP text: qsTr("UDP") enabled: false diff --git a/gui/gui.qrc b/gui/gui.qrc index 385b476..f2043be 100644 --- a/gui/gui.qrc +++ b/gui/gui.qrc @@ -16,6 +16,7 @@ components/MaterialRadioButton.qml components/MaterialRadioIndicator.qml components/WrappedRadioButton.qml + components/MaterialCheckBox.qml components/StatusBox.qml components/Systray.qml components/Help.qml -- cgit v1.2.3