mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-22 03:00:46 +03:00
Try out scrollview for timeline
This commit is contained in:
parent
fab7805610
commit
280f316b27
6 changed files with 293 additions and 295 deletions
|
@ -143,11 +143,11 @@ Page {
|
|||
enabled: false
|
||||
height: avatarSize
|
||||
roomid: model.id
|
||||
textColor: model.avatarUrl.startsWith(":/") ? communityItem.unimportantText : communityItem.importantText
|
||||
textColor: model.avatarUrl?.startsWith(":/") == true ? communityItem.unimportantText : communityItem.importantText
|
||||
url: {
|
||||
if (model.avatarUrl.startsWith("mxc://"))
|
||||
if (model.avatarUrl?.startsWith("mxc://") == true)
|
||||
return model.avatarUrl.replace("mxc://", "image://MxcImage/");
|
||||
else if (model.avatarUrl.length > 0)
|
||||
else if ((model.avatarUrl?.length ?? 0) > 0)
|
||||
return model.avatarUrl;
|
||||
else
|
||||
return "";
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// TODO: using any Qt 6 API version will screw up the reply text color. We need to
|
||||
// figure out a more permanent fix than just importing the old version.
|
||||
//import QtQuick 2.15
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import im.nheko
|
||||
|
|
|
@ -31,23 +31,16 @@ Item {
|
|||
|
||||
target: MainWindow
|
||||
}
|
||||
ScrollBar {
|
||||
id: scrollbar
|
||||
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.right: parent.right
|
||||
anchors.top: parent.top
|
||||
parent: chat.parent
|
||||
}
|
||||
ScrollView {
|
||||
id: scrollView
|
||||
anchors.fill: parent
|
||||
ListView {
|
||||
id: chat
|
||||
|
||||
property int delegateMaxWidth: ((Settings.timelineMaxWidth > 100 && Settings.timelineMaxWidth < chatRoot.availableWidth) ? Settings.timelineMaxWidth : chatRoot.availableWidth) - chatRoot.padding * 2 - (scrollbar.interactive ? scrollbar.width : 0)
|
||||
property int delegateMaxWidth: ((Settings.timelineMaxWidth > 100 && Settings.timelineMaxWidth < chatRoot.availableWidth) ? Settings.timelineMaxWidth : chatRoot.availableWidth) - chatRoot.padding * 2 - scrollView.effectiveScrollBarWidth
|
||||
readonly property alias filteringInProgress: filteredTimeline.filteringInProgress
|
||||
|
||||
ScrollBar.vertical: scrollbar
|
||||
anchors.fill: parent
|
||||
anchors.rightMargin: scrollbar.interactive ? scrollbar.width : 0
|
||||
// reuseItems still has a few bugs, see https://bugreports.qt.io/browse/QTBUG-95105 https://bugreports.qt.io/browse/QTBUG-95107
|
||||
//onModelChanged: if (room) room.sendReset()
|
||||
//reuseItems: true
|
||||
|
@ -359,6 +352,8 @@ Item {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Platform.Menu {
|
||||
id: messageContextMenuC
|
||||
|
||||
|
@ -641,7 +636,7 @@ Item {
|
|||
anchors {
|
||||
bottom: parent.bottom
|
||||
bottomMargin: Nheko.paddingMedium + (fullWidth - width) / 2
|
||||
right: scrollbar.left
|
||||
right: parent.left
|
||||
rightMargin: Nheko.paddingMedium + (fullWidth - width) / 2
|
||||
}
|
||||
Image {
|
||||
|
|
|
@ -29,7 +29,7 @@ Rectangle {
|
|||
anchors.rightMargin: replyPopup.width < 450 ? 2 * (22 + 16) : 3 * (22 + 16)
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: Nheko.paddingSmall
|
||||
eventId: room.reply ?? ""
|
||||
eventId: room?.reply ?? ""
|
||||
userColor: TimelineManager.userColor(modelData.userId, palette.window)
|
||||
visible: room && room.reply
|
||||
maxWidth: parent.width - anchors.leftMargin - anchors.rightMargin
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
|
||||
import ".."
|
||||
import "../components"
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Controls 2.5
|
||||
import QtQuick.Layouts 1.3
|
||||
import im.nheko 1.0
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
import im.nheko
|
||||
|
||||
|
||||
ApplicationWindow {
|
||||
|
|
|
@ -163,14 +163,20 @@ TimelineFilter::setSource(TimelineModel *s)
|
|||
|
||||
this->setSourceModel(s);
|
||||
|
||||
connect(s, &TimelineModel::currentIndexChanged, this, &TimelineFilter::currentIndexChanged);
|
||||
if (s) {
|
||||
connect(
|
||||
s, &TimelineModel::fetchedMore, this, &TimelineFilter::fetchAgain, Qt::QueuedConnection);
|
||||
s, &TimelineModel::currentIndexChanged, this, &TimelineFilter::currentIndexChanged);
|
||||
connect(s,
|
||||
&TimelineModel::fetchedMore,
|
||||
this,
|
||||
&TimelineFilter::fetchAgain,
|
||||
Qt::QueuedConnection);
|
||||
connect(s,
|
||||
&TimelineModel::dataChanged,
|
||||
this,
|
||||
&TimelineFilter::sourceDataChanged,
|
||||
Qt::QueuedConnection);
|
||||
}
|
||||
|
||||
// reset the search index a second time just to be safe.
|
||||
incrementalSearchIndex = 0;
|
||||
|
|
Loading…
Reference in a new issue