File: MultiTextElement.qml

package info (click to toggle)
qt6-declarative 6.9.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 308,920 kB
  • sloc: cpp: 775,911; javascript: 514,247; xml: 10,855; python: 2,806; ansic: 2,253; java: 810; sh: 262; makefile: 41; php: 27
file content (74 lines) | stat: -rw-r--r-- 2,039 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
// Copyright (C) 2018 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only

import QtQml 2.15
import QtQuick 2.15

Text {
    id: root

    property real descent: fontMetrics.descent
    property real leading: fontMetrics.leading
    property real fontHeight: fontMetrics.height

    property real baselineOffset: -999

    //lineHeight: root.fontHeight - root.descent + root.baselineOffset - root.leading

    Binding on lineHeight {
        when: root.baselineOffset !== -999
        value: root.fontHeight - root.descent + root.baselineOffset - root.leading
    }

    onLineHeightChanged: {
        print("lh")
        print(root.baseLineOffset)
    }

    FontMetrics {
        id: fontMetrics
        font: root.font
    }

    lineHeightMode: root.baselineOffset !== -999 ? Text.FixedHeight : Text.ProportionalHeight

    width: visible ? implicitWidth : 0
    height: visible ? implicitHeight : 0


    property Text __backupText: Text {
        id: backupText
        visible: false
    }

    property Text languageExceptionItem: backupText
    onLanguageExceptionItemChanged: {
        if (root.__completed)
            root.assignException()
    }

    property bool __completed: false

    Component.onCompleted: {
        root.__backupText.font = root.font
        root.__backupText.text = root.text
        root.__backupText.color = root.color
        root.__backupText.lineHeight = root.lineHeight
        root.__backupText.lineHeightMode = root.lineHeightMode

        root.__completed = true
        print("start " + root.languageExceptionItem)
        root.assignException()
    }

    function assignException() {
        print("assign")
        print(root.languageExceptionItem)
        root.font = root.languageExceptionItem.font
        root.text = root.languageExceptionItem.text
        root.color = root.languageExceptionItem.color
        root.lineHeight = root.languageExceptionItem.lineHeight
        root.lineHeightMode = root.languageExceptionItem.lineHeightMode
    }

}