diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-04-11 16:42:12 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-04-11 18:33:32 +0000 |
commit | 53a101f35b76ccea0e8a6bd00055259811df41d1 (patch) | |
tree | a757b336e9c63ec0d4e8a79c06341c7c33451806 /src/imports | |
parent | 4503d45b93721e516e949419f3b9c6b796a7c13e (diff) |
QQuickIconLabel: create icon and label items lazily
Before:
Average: 120.2 frames; using samples; MedianAll=120; StdDev=0.447214, CoV=0.00372058
After:
Average: 129.8 frames; using samples; MedianAll=130; StdDev=0.447214, CoV=0.00344541
Task-number: QTBUG-59746
Change-Id: I44b521688cd60e7e287968828f9d4062cc642a0d
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/controls/Button.qml | 22 | ||||
-rw-r--r-- | src/imports/controls/ToolButton.qml | 17 | ||||
-rw-r--r-- | src/imports/controls/material/Button.qml | 21 | ||||
-rw-r--r-- | src/imports/controls/material/ToolButton.qml | 19 | ||||
-rw-r--r-- | src/imports/controls/universal/Button.qml | 18 | ||||
-rw-r--r-- | src/imports/controls/universal/ToolButton.qml | 18 |
6 files changed, 29 insertions, 86 deletions
diff --git a/src/imports/controls/Button.qml b/src/imports/controls/Button.qml index 8a98bbad..438265d1 100644 --- a/src/imports/controls/Button.qml +++ b/src/imports/controls/Button.qml @@ -62,22 +62,12 @@ T.Button { mirrored: control.mirrored display: control.display - icon: IconImage { - name: control.icon.name - source: control.icon.source - sourceSize.width: control.icon.width - sourceSize.height: control.icon.height - color: control.icon.color - } - label: Text { - text: control.text - font: control.font - opacity: enabled || control.highlighted || control.checked ? 1 : 0.3 - color: control.checked || control.highlighted ? - Default.textLightColor : - (control.visualFocus ? Default.focusColor : (control.down ? Default.textDarkColor : Default.textColor)) - elide: Text.ElideRight - } + icon: control.icon + text: control.text + font: control.font + color: Color.transparent(control.checked || control.highlighted ? Default.textLightColor : + control.visualFocus ? Default.focusColor : control.down ? Default.textDarkColor : Default.textColor, + enabled || control.highlighted || control.checked ? 1 : 0.3) } background: Rectangle { diff --git a/src/imports/controls/ToolButton.qml b/src/imports/controls/ToolButton.qml index e31f45a0..184bbfad 100644 --- a/src/imports/controls/ToolButton.qml +++ b/src/imports/controls/ToolButton.qml @@ -60,19 +60,10 @@ T.ToolButton { mirrored: control.mirrored display: control.display - icon: IconImage { - name: control.icon.name - source: control.icon.source - sourceSize.width: control.icon.width - sourceSize.height: control.icon.height - color: control.icon.color - } - label: Text { - text: control.text - font: control.font - color: control.enabled ? (control.visualFocus ? Default.focusColor : Default.textDarkColor) : Default.textDisabledLightColor - elide: Text.ElideRight - } + icon: control.icon + text: control.text + font: control.font + color: control.enabled ? (control.visualFocus ? Default.focusColor : Default.textDarkColor) : Default.textDisabledLightColor } background: Rectangle { diff --git a/src/imports/controls/material/Button.qml b/src/imports/controls/material/Button.qml index 0142dacf..9e21c8a0 100644 --- a/src/imports/controls/material/Button.qml +++ b/src/imports/controls/material/Button.qml @@ -69,21 +69,12 @@ T.Button { mirrored: control.mirrored display: control.display - icon: IconImage { - name: control.icon.name - source: control.icon.source - sourceSize.width: control.icon.width - sourceSize.height: control.icon.height - color: control.icon.color - } - label: Text { - text: control.text - font: control.font - color: !control.enabled ? control.Material.hintTextColor : - control.flat && control.highlighted ? control.Material.accentColor : - control.highlighted ? control.Material.primaryHighlightedTextColor : control.Material.foreground - elide: Text.ElideRight - } + icon: control.icon + text: control.text + font: control.font + color: !control.enabled ? control.Material.hintTextColor : + control.flat && control.highlighted ? control.Material.accentColor : + control.highlighted ? control.Material.primaryHighlightedTextColor : control.Material.foreground } // TODO: Add a proper ripple/ink effect for mouse/touch input and focus state diff --git a/src/imports/controls/material/ToolButton.qml b/src/imports/controls/material/ToolButton.qml index 4f0fdc9b..c794a468 100644 --- a/src/imports/controls/material/ToolButton.qml +++ b/src/imports/controls/material/ToolButton.qml @@ -62,20 +62,11 @@ T.ToolButton { mirrored: control.mirrored display: control.display - icon: IconImage { - name: control.icon.name - source: control.icon.source - sourceSize.width: control.icon.width - sourceSize.height: control.icon.height - color: control.icon.color - } - label: Text { - text: control.text - font: control.font - color: !control.enabled ? control.Material.hintTextColor : - control.checked || control.highlighted ? control.Material.accent : control.Material.foreground - elide: Text.ElideRight - } + icon: control.icon + text: control.text + font: control.font + color: !control.enabled ? control.Material.hintTextColor : + control.checked || control.highlighted ? control.Material.accent : control.Material.foreground } background: Ripple { diff --git a/src/imports/controls/universal/Button.qml b/src/imports/controls/universal/Button.qml index d2f4f10d..44f86a38 100644 --- a/src/imports/controls/universal/Button.qml +++ b/src/imports/controls/universal/Button.qml @@ -65,20 +65,10 @@ T.Button { mirrored: control.mirrored display: control.display - icon: IconImage { - name: control.icon.name - source: control.icon.source - sourceSize.width: control.icon.width - sourceSize.height: control.icon.height - color: control.icon.color - } - label: Text { - text: control.text - font: control.font - elide: Text.ElideRight - opacity: enabled ? 1.0 : 0.2 - color: control.Universal.foreground - } + icon: control.icon + text: control.text + font: control.font + color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2) } background: Rectangle { diff --git a/src/imports/controls/universal/ToolButton.qml b/src/imports/controls/universal/ToolButton.qml index 5a2e98fd..3b349717 100644 --- a/src/imports/controls/universal/ToolButton.qml +++ b/src/imports/controls/universal/ToolButton.qml @@ -63,20 +63,10 @@ T.ToolButton { mirrored: control.mirrored display: control.display - icon: IconImage { - name: control.icon.name - source: control.icon.source - sourceSize.width: control.icon.width - sourceSize.height: control.icon.height - color: control.icon.color - } - label: Text { - text: control.text - font: control.font - elide: Text.ElideRight - opacity: enabled ? 1.0 : 0.2 - color: control.Universal.foreground - } + icon: control.icon + text: control.text + font: control.font + color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2) } background: Rectangle { |