moment/harmonyqml/components/chat/MessageList.qml
miruka 8f35e60801 Capitalization, list model and room header work
- Standardized capitalization for variables and file names everywhere in
  QML and JS, get rid of mixed camelCase/snakeCase,
  use camelCase like everywhere in Qt

- ListModel items are now stored and returned as real QObjects with
  PyQt properties and signals.
  This makes dynamic property binding a lot easier and eliminates the need
  for many hacks.

- New update(), updateOrAppendWhere() methods and roles property
  for ListModel

- RoomHeader now properly updates when the room title or topic changes

- Add Backend.pdb(), to make it easier to start the debugger from QML
2019-04-20 17:43:57 -04:00

38 lines
918 B
QML

import QtQuick 2.7
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.4
Rectangle {
property int space: 8
Layout.fillWidth: true
Layout.fillHeight: true
Layout.leftMargin: space
Layout.rightMargin: space
ListView {
id: messageListView
anchors.fill: parent
delegate: MessageDelegate {}
model: Backend.models.roomEvents.get(chatPage.roomId)
clip: true
topMargin: space
bottomMargin: space
verticalLayoutDirection: ListView.BottomToTop
// Keep x scroll pages cached, to limit images having to be
// reloaded from network.
cacheBuffer: height * 6
// Declaring this "alias" provides the on... signal
property real yPos: visibleArea.yPosition
onYPosChanged: {
if (yPos <= 0.1) {
Backend.loadPastEvents(chatPage.roomId)
}
}
}
}