cool-retro-term

Форк
0
/
CheckableSlider.qml 
72 строки · 2.1 Кб
1
/*******************************************************************************
2
* Copyright (c) 2013-2021 "Filippo Scognamiglio"
3
* https://github.com/Swordfish90/cool-retro-term
4
*
5
* This file is part of cool-retro-term.
6
*
7
* cool-retro-term is free software: you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation, either version 3 of the License, or
10
* (at your option) any later version.
11
*
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
* GNU General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
19
*******************************************************************************/
20
import QtQuick 2.2
21
import QtQuick.Controls 2.0
22
import QtQuick.Layouts 1.1
23

24
import "Components"
25

26
RowLayout {
27
    property alias name: check.text
28

29
    property double value
30
    property alias min_value: slider.from
31
    property alias max_value: slider.to
32
    property alias stepSize: slider.stepSize
33

34
    signal newValue(real newValue)
35

36
    id: setting_component
37
    Layout.fillWidth: true
38

39
    onValueChanged: {
40
        check.checked = !(value == 0)
41
        if (check.checked)
42
            slider.value = value
43
    }
44

45
    CheckBox {
46
        id: check
47
        implicitWidth: 160
48
        onClicked: {
49
            if (!checked) {
50
                checked = false
51
                slider.enabled = false
52
                newValue(0)
53
            } else {
54
                checked = true
55
                newValue(slider.value)
56
                slider.enabled = true
57
            }
58
        }
59
    }
60
    Slider {
61
        id: slider
62
        stepSize: parent.stepSize
63
        Layout.fillWidth: true
64
        onValueChanged: {
65
            newValue(value)
66
        }
67
    }
68
    SizedLabel {
69
        text: Math.round(
70
                  ((value - min_value) / (max_value - min_value)) * 100) + "%"
71
    }
72
}
73

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.