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
This commit is contained in:
miruka
2019-04-20 17:36:21 -04:00
parent b33f5f1d34
commit 8f35e60801
34 changed files with 304 additions and 250 deletions

View File

@@ -4,7 +4,10 @@ import QtQuick.Layouts 1.4
import "../base" as Base
Rectangle {
id: root
property string displayName: ""
property string topic: ""
id: "root"
Layout.fillWidth: true
Layout.minimumHeight: 36
Layout.maximumHeight: Layout.minimumHeight
@@ -19,21 +22,23 @@ Rectangle {
id: "avatar"
Layout.alignment: Qt.AlignTop
dimmension: root.Layout.minimumHeight
name: chatPage.room.display_name
name: displayName
}
Base.HLabel {
id: "roomName"
text: chatPage.room.display_name
text: displayName
font.pixelSize: bigSize
elide: Text.ElideRight
maximumLineCount: 1
Layout.maximumWidth: row.width - row.spacing * (row.children.length - 1) - avatar.width
Layout.maximumWidth:
row.width - row.spacing * (row.children.length - 1) -
avatar.width
}
Base.HLabel {
id: "roomDescription"
text: chatPage.room.description || ""
id: "roomTopic"
text: topic
font.pixelSize: smallSize
elide: Text.ElideRight
maximumLineCount: 1