Fix high CPU usage when a room is open

This commit is contained in:
Nicolas Werner 2021-07-10 17:21:15 +02:00
parent b064eb34aa
commit d61a9c718a
No known key found for this signature in database
GPG Key ID: C8D75E610773F2D9
5 changed files with 34 additions and 35 deletions

View File

@ -5,7 +5,6 @@
import "./delegates" import "./delegates"
import "./emoji" import "./emoji"
import "./ui" import "./ui"
import Qt.labs.platform 1.1 as Platform import Qt.labs.platform 1.1 as Platform
import QtGraphicalEffects 1.0 import QtGraphicalEffects 1.0
import QtQuick 2.12 import QtQuick 2.12
@ -413,6 +412,7 @@ ScrollView {
visible: chat.model && chat.model.paginationInProgress visible: chat.model && chat.model.paginationInProgress
z: 3 z: 3
} }
} }
Platform.Menu { Platform.Menu {

View File

@ -6,9 +6,8 @@ import "./components"
import "./delegates" import "./delegates"
import "./device-verification" import "./device-verification"
import "./emoji" import "./emoji"
import "./voip"
import "./ui" import "./ui"
import "./voip"
import Qt.labs.platform 1.1 as Platform import Qt.labs.platform 1.1 as Platform
import QtGraphicalEffects 1.0 import QtGraphicalEffects 1.0
import QtQuick 2.9 import QtQuick 2.9

View File

@ -65,9 +65,9 @@ Rectangle {
url: avatarUrl.replace("mxc://", "image://MxcImage/") url: avatarUrl.replace("mxc://", "image://MxcImage/")
displayName: roomName displayName: roomName
onClicked: { onClicked: {
if (room) { if (room)
room.openRoomSettings(); room.openRoomSettings();
}
} }
} }

View File

@ -2,10 +2,9 @@
// //
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
import QtQuick 2.12
import QtGraphicalEffects 1.12
import "./animations" import "./animations"
import QtGraphicalEffects 1.12
import QtQuick 2.12
Item { Item {
id: spinner id: spinner
@ -76,48 +75,62 @@ Item {
BlinkAnimation { BlinkAnimation {
id: anim1 id: anim1
target: rect1 target: rect1
running: spinner.running
pauseDuration: spinner.pauseDuration pauseDuration: spinner.pauseDuration
glowDuration: spinner.glowDuration glowDuration: spinner.glowDuration
offset: 0 / spinner.barCount
loops: Animation.Infinite
} }
BlinkAnimation { BlinkAnimation {
id: anim2 id: anim2
target: rect2 target: rect2
running: spinner.running
pauseDuration: spinner.pauseDuration pauseDuration: spinner.pauseDuration
glowDuration: spinner.glowDuration glowDuration: spinner.glowDuration
offset: 1 / spinner.barCount
} }
BlinkAnimation { BlinkAnimation {
id: anim3 id: anim3
target: rect3 target: rect3
running: spinner.running
pauseDuration: spinner.pauseDuration pauseDuration: spinner.pauseDuration
glowDuration: spinner.glowDuration glowDuration: spinner.glowDuration
offset: 2 / spinner.barCount
} }
BlinkAnimation { BlinkAnimation {
id: anim4 id: anim4
target: rect4 target: rect4
running: spinner.running
pauseDuration: spinner.pauseDuration pauseDuration: spinner.pauseDuration
glowDuration: spinner.glowDuration glowDuration: spinner.glowDuration
offset: 3 / spinner.barCount
} }
BlinkAnimation { BlinkAnimation {
id: anim5 id: anim5
target: rect5 target: rect5
running: spinner.running
pauseDuration: spinner.pauseDuration pauseDuration: spinner.pauseDuration
glowDuration: spinner.glowDuration glowDuration: spinner.glowDuration
offset: 4 / spinner.barCount
} }
BlinkAnimation { BlinkAnimation {
id: anim6 id: anim6
target: rect6 target: rect6
running: spinner.running
pauseDuration: spinner.pauseDuration pauseDuration: spinner.pauseDuration
glowDuration: spinner.glowDuration glowDuration: spinner.glowDuration
offset: 5 / spinner.barCount
} }
transform: Matrix4x4 { transform: Matrix4x4 {
@ -126,25 +139,6 @@ Item {
} }
Timer {
// ----- Private Properties ----- //
property int _barIndex: 0
interval: 80
repeat: true
running: spinner.running
onTriggered: {
if (_barIndex === spinner.barCount) {
_barIndex = 0;
stop();
} else {
anims[_barIndex].start();
_barIndex++;
}
}
Component.onCompleted: start()
}
Glow { Glow {
anchors.fill: row anchors.fill: row
radius: 14 radius: 14

View File

@ -2,25 +2,31 @@
// //
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
import QtQuick 2.12
import QtGraphicalEffects 1.12 import QtGraphicalEffects 1.12
import QtQuick 2.12
SequentialAnimation { SequentialAnimation {
property alias target: numberAnimation.target property alias target: numberAnimation.target
property alias glowDuration: numberAnimation.duration property alias glowDuration: numberAnimation.duration
property alias pauseDuration: pauseAnimation.duration property int pauseDuration: 150
property double offset: 0
loops: Animation.Infinite loops: Animation.Infinite
PauseAnimation {
duration: pauseDuration * offset
}
NumberAnimation { NumberAnimation {
id: numberAnimation id: numberAnimation
property: "opacity" property: "opacity"
from: 0 from: 0
to: 1 to: 1
} }
PauseAnimation { PauseAnimation {
id: pauseAnimation duration: pauseDuration * (1 - offset)
} }
} }