Page MenuHomePhorge

D219.1750621614.diff
No OneTemporary

Size
3 KB
Referenced Files
None
Subscribers
None

D219.1750621614.diff

diff --git a/src/contents/ui/RoomPage.qml b/src/contents/ui/RoomPage.qml
--- a/src/contents/ui/RoomPage.qml
+++ b/src/contents/ui/RoomPage.qml
@@ -34,6 +34,7 @@
signal viewEventHistoryRequested(string eventId)
title: roomNameProvider.name
+ padding: 0
property var isInvite: room.membership === MK.MatrixRoom.Invite
property var isJoin: room.membership === MK.MatrixRoom.Join
@@ -77,6 +78,16 @@
text: l10n.get('room-pinned-events-action', { count: roomPage.pinnedEvents.count })
onTriggered: activateRoomPinnedEventsPage(room)
},
+ Kirigami.Action {
+ id: scrollToLatestAction
+ objectName: 'scrollToLatestAction'
+ icon.name: "go-down"
+ enabled: !roomTimelineView.atYEnd
+ text: l10n.get("room-timeline-scroll-to-latest-action")
+ onTriggered: {
+ roomTimelineView.positionViewAtBeginning();
+ }
+ },
Kirigami.Action {
id: roomSettingsAction
icon.name: 'settings-configure'
@@ -125,6 +136,8 @@
}
RoomTimelineView {
+ id: roomTimelineView
+ objectName: 'roomTimelineView'
timeline: roomPage.roomTimeline
}
diff --git a/src/l10n/cmn-Hans/100-ui.ftl b/src/l10n/cmn-Hans/100-ui.ftl
--- a/src/l10n/cmn-Hans/100-ui.ftl
+++ b/src/l10n/cmn-Hans/100-ui.ftl
@@ -159,6 +159,7 @@
sticker-picker-room-default-sticker-pack-name = {$room} 中的默认包
room-timeline-load-more-action = 加载更多
+room-timeline-scroll-to-latest-action = 滚动到最新的消息
room-invite-accept-action = 接受邀请
room-invite-reject-action = 拒绝邀请
diff --git a/src/l10n/en/100-ui.ftl b/src/l10n/en/100-ui.ftl
--- a/src/l10n/en/100-ui.ftl
+++ b/src/l10n/en/100-ui.ftl
@@ -163,6 +163,7 @@
sticker-picker-room-default-sticker-pack-name = Default pack in {$room}
room-timeline-load-more-action = Load more
+room-timeline-scroll-to-latest-action = Scroll to latest message
room-invite-accept-action = Accept invite
room-invite-reject-action = Reject invite
diff --git a/src/tests/quick-tests/tst_RoomPage.qml b/src/tests/quick-tests/tst_RoomPage.qml
--- a/src/tests/quick-tests/tst_RoomPage.qml
+++ b/src/tests/quick-tests/tst_RoomPage.qml
@@ -65,6 +65,10 @@
}),
})
+ property var roomScrollToLatest: JsHelpers.factory.room({
+ timeline: () => Qt.createComponent("QtQml.Models", "ListModel").createObject()
+ })
+
ColumnLayout {
Kazv.RoomPage {
id: pageInvite
@@ -85,6 +89,11 @@
id: pageWithPinned
room: roomWithPinned
}
+
+ Kazv.RoomPage {
+ id: pageScrollToLatest
+ room: roomScrollToLatest
+ }
}
TestCase {
@@ -143,5 +152,23 @@
verify(findChild(pageWithPinned, 'pinnedEventsAction').visible);
verify(findChild(pageWithPinned, 'pinnedEventsAction').enabled);
}
+
+ function test_scrollToLatest() {
+ const action = findChild(pageScrollToLatest, 'scrollToLatestAction');
+ const roomTimelineView = findChild(pageScrollToLatest, 'roomTimelineView');
+
+ verify(action.visible);
+ verify(!action.enabled);
+
+ while (item.height > roomTimelineView.contentHeight) {
+ roomTimelineView.model.append({});
+ roomTimelineView.forceLayout();
+ }
+ roomTimelineView.positionViewAtEnd();
+ verify(action.enabled);
+ action.triggered();
+ verify(!action.enabled);
+ verify(roomTimelineView.atYEnd);
+ }
}
}

File Metadata

Mime Type
text/plain
Expires
Sun, Jun 22, 12:46 PM (11 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
234009
Default Alt Text
D219.1750621614.diff (3 KB)

Event Timeline