--- /dev/null
+import QtQuick 1.1
+
+Item {
+ Row {
+ id: chatLine
+ Text { text: timestamp; wrapMode: Text.NoWrap; width: 100 }
+ Text { text: sender; wrapMode: Text.NoWrap; width: 100 }
+ Text { text: contents; wrapMode: Text.Wrap; width: chatView.width-200}
+ }
+ height: chatLine.height
+}
Rectangle {
id: container
- Component {
- id: msgDelegate
- Item {
- id: msgDelegateItem
- Row {
- id: chatline
- Text { text: timestamp; wrapMode: Text.NoWrap; width: 100 }
- Text { text: sender; wrapMode: Text.NoWrap; width: 100 }
- Text { text: contents; wrapMode: Text.Wrap; width: flickable.width-200}
- }
- height: chatline.height
- }
- }
-
ListView {
- id: flickable
+ id: chatView
anchors.fill: parent
-
-
model: msgModel
-
- delegate: msgDelegate
+ delegate: Component {
+ ChatLine { }
+ }
Connections {
target: msgModel
- onRowsInserted: flickable.positionViewAtEnd();
+ onRowsInserted: chatView.positionViewAtEnd();
}
Rectangle {
id: scrollbar
- anchors.right: flickable.right
- y: flickable.visibleArea.yPosition * flickable.height
+ anchors.right: chatView.right
+ y: chatView.visibleArea.yPosition * chatView.height
width: 10
- height: flickable.visibleArea.heightRatio * flickable.height
- color: "black"
+ height: chatView.visibleArea.heightRatio * chatView.height
+ color: "grey"
}
}
}
UserRole
};
- QmlMessageModel(QObject *parent);
+ QmlMessageModel(QObject *parent = 0);
virtual QVariant data(const QModelIndex &index, int role) const;
virtual inline const MessageModelItem *messageItemAt(int i) const { return &_messageList[i]; }