From 0e1169e7f4a3bfc2c8fd3edd4fd8e8fff180af4d Mon Sep 17 00:00:00 2001 From: "Sebastian J. Wolf" Date: Tue, 22 Sep 2020 22:46:48 +0200 Subject: [PATCH] Some delay for lazy loading... --- qml/components/ProfileThumbnail.qml | 4 ++- qml/pages/ChatPage.qml | 49 +++++++++++++++++++---------- 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/qml/components/ProfileThumbnail.qml b/qml/components/ProfileThumbnail.qml index a24bf14..90a10f0 100644 --- a/qml/components/ProfileThumbnail.qml +++ b/qml/components/ProfileThumbnail.qml @@ -45,6 +45,8 @@ Item { } function updatePicture() { + profileImageLoader.active = false; + replacementThumbnailItem.visible = true; if (typeof photoData === "object") { if (photoData.local.is_downloading_completed) { profileImageLoader.active = true; @@ -57,7 +59,7 @@ Item { Timer { id: updatePictureTimer - interval: 100 + interval: 500 running: false repeat: false onTriggered: { diff --git a/qml/pages/ChatPage.qml b/qml/pages/ChatPage.qml index 59139b5..39d0060 100644 --- a/qml/pages/ChatPage.qml +++ b/qml/pages/ChatPage.qml @@ -382,12 +382,10 @@ Page { } onContentYChanged: { - if (!chatPage.loading && !chatView.inCooldown) { - if (chatView.indexAt(chatView.contentX, chatView.contentY) < 10) { - console.log("[ChatPage] Trying to get older history items..."); - chatView.inCooldown = true; - chatModel.triggerLoadMoreHistory(); - } + if (!chatPage.loading && !chatView.inCooldown && chatView.indexAt(chatView.contentX, chatView.contentY) < 10) { + console.log("[ChatPage] Trying to get older history items..."); + chatView.inCooldown = true; + chatModel.triggerLoadMoreHistory(); } } @@ -449,6 +447,25 @@ Page { } } + Component.onCompleted: { + delegateComponentLoadingTimer.start(); + } + + Timer { + id: delegateComponentLoadingTimer + interval: 500 + repeat: false + running: false + onTriggered: { + webPagePreviewLoader.active = ( typeof display.content.web_page !== "undefined" ); + imagePreviewLoader.active = ( display.content['@type'] === "messagePhoto" ); + stickerPreviewLoader.active = ( display.content['@type'] === "messageSticker" ); + videoPreviewLoader.active = (( display.content['@type'] === "messageVideo" ) || ( display.content['@type'] === "messageAnimation" )); + audioPreviewLoader.active = (( display.content['@type'] === "messageVoiceNote" ) || ( display.content['@type'] === "messageAudio" )); + documentPreviewLoader.active = ( display.content['@type'] === "messageDocument" ); + } + } + RemorseItem { id: deleteMessageRemorseItem } @@ -474,7 +491,7 @@ Page { Loader { id: profileThumbnailLoader - active: ( chatPage.isBasicGroup || chatPage.isSuperGroup ) && !chatPage.isChannel + active: (( chatPage.isBasicGroup || chatPage.isSuperGroup ) && !chatPage.isChannel) asynchronous: true width: active ? Theme.itemSizeSmall : 0 height: active ? Theme.itemSizeSmall : 0 @@ -513,10 +530,8 @@ Page { width: messageBackground.width - Theme.horizontalPageMargin anchors.centerIn: messageBackground - Component.onCompleted: { - if (display.reply_to_message_id !== 0) { - tdLibWrapper.getMessage(chatInformation.id, display.reply_to_message_id); - } + Behavior on height { + PropertyAnimation { easing.type: Easing.OutBack; duration: 200 } } Connections { @@ -579,7 +594,7 @@ Page { Loader { id: webPagePreviewLoader - active: ( typeof display.content.web_page !== "undefined" ) + active: false asynchronous: true width: parent.width sourceComponent: webPagePreviewComponent @@ -598,7 +613,7 @@ Page { Loader { id: imagePreviewLoader - active: ( display.content['@type'] === "messagePhoto" ) + active: false asynchronous: true width: parent.width sourceComponent: imagePreviewComponent @@ -616,7 +631,7 @@ Page { Loader { id: stickerPreviewLoader - active: ( display.content['@type'] === "messageSticker" ) + active: false asynchronous: true width: parent.width sourceComponent: stickerPreviewComponent @@ -636,7 +651,7 @@ Page { Loader { id: videoPreviewLoader - active: (( display.content['@type'] === "messageVideo" ) || ( display.content['@type'] === "messageAnimation" )) + active: false asynchronous: true width: parent.width sourceComponent: videoPreviewComponent @@ -656,7 +671,7 @@ Page { Loader { id: audioPreviewLoader - active: (( display.content['@type'] === "messageVoiceNote" ) || ( display.content['@type'] === "messageAudio" )) + active: false asynchronous: true width: parent.width sourceComponent: audioPreviewComponent @@ -673,7 +688,7 @@ Page { Loader { id: documentPreviewLoader - active: ( display.content['@type'] === "messageDocument" ) + active: false asynchronous: true width: parent.width sourceComponent: documentPreviewComponent