gpt4all

Форк
0
/
PopupDialog.qml 
75 строк · 2.1 Кб
1
import QtCore
2
import QtQuick
3
import QtQuick.Controls
4
import QtQuick.Controls.Basic
5
import QtQuick.Layouts
6

7
Dialog {
8
    id: popupDialog
9
    anchors.centerIn: parent
10
    padding: 20
11
    property alias text: textField.text
12
    property bool shouldTimeOut: true
13
    property bool shouldShowBusy: false
14
    modal: shouldShowBusy
15
    closePolicy: shouldShowBusy ? Popup.NoAutoClose : (Popup.CloseOnEscape | Popup.CloseOnPressOutside)
16

17
    Theme {
18
        id: theme
19
    }
20

21
    Row {
22
        anchors.centerIn: parent
23
        spacing: 20
24

25
        Label {
26
            id: textField
27
            width: Math.min(1024, implicitWidth)
28
            height: Math.min(600, implicitHeight)
29
            anchors.verticalCenter: shouldShowBusy ? busyIndicator.verticalCenter : parent.verticalCenter
30
            horizontalAlignment: Text.AlignLeft
31
            verticalAlignment: Text.AlignVCenter
32
            textFormat: Text.StyledText
33
            wrapMode: Text.WordWrap
34
            color: theme.textColor
35
            linkColor: theme.linkColor
36
            Accessible.role: Accessible.HelpBalloon
37
            Accessible.name: text
38
            Accessible.description: qsTr("Reveals a shortlived help balloon")
39
            onLinkActivated: function(link) { Qt.openUrlExternally(link) }
40
        }
41

42
        MyBusyIndicator {
43
            id: busyIndicator
44
            visible: shouldShowBusy
45
            running: shouldShowBusy
46

47
            Accessible.role: Accessible.Animation
48
            Accessible.name: qsTr("Busy indicator")
49
            Accessible.description: qsTr("Displayed when the popup is showing busy")
50
        }
51
    }
52

53
    background: Rectangle {
54
        anchors.fill: parent
55
        color: theme.containerBackground
56
        border.width: 1
57
        border.color: theme.dialogBorder
58
        radius: 10
59
    }
60

61
    exit: Transition {
62
        NumberAnimation { duration: 500; property: "opacity"; from: 1.0; to: 0.0 }
63
    }
64

65
    onOpened: {
66
        if (shouldTimeOut)
67
            timer.start()
68
    }
69

70
    Timer {
71
        id: timer
72
        interval: 500; running: false; repeat: false
73
        onTriggered: popupDialog.close()
74
    }
75
}

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

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

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

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