Create a content provider instance to get message content models from
This means that all content models will now come from the same source to remove duplication across multiple models and `chatbarcaches`. It also handily breaks the dependency on needing `MessageContentModel` for `NeochatRoom`
This commit is contained in:
@@ -50,6 +50,22 @@ void MessageAttached::setTimeline(QQuickItem *timeline)
|
||||
Q_EMIT timelineChanged();
|
||||
}
|
||||
|
||||
MessageContentModel *MessageAttached::contentModel() const
|
||||
{
|
||||
return m_contentModel;
|
||||
}
|
||||
|
||||
void MessageAttached::setContentModel(MessageContentModel *contentModel)
|
||||
{
|
||||
m_explicitContentModel = true;
|
||||
if (m_contentModel == contentModel) {
|
||||
return;
|
||||
}
|
||||
m_contentModel = contentModel;
|
||||
propagateMessage(this);
|
||||
Q_EMIT contentModelChanged();
|
||||
}
|
||||
|
||||
int MessageAttached::index() const
|
||||
{
|
||||
return m_index;
|
||||
@@ -126,6 +142,11 @@ void MessageAttached::propagateMessage(MessageAttached *message)
|
||||
Q_EMIT timelineChanged();
|
||||
}
|
||||
|
||||
if (!m_explicitContentModel && m_contentModel != message->contentModel()) {
|
||||
m_contentModel = message->contentModel();
|
||||
Q_EMIT contentModelChanged();
|
||||
}
|
||||
|
||||
if (m_explicitIndex || m_index != message->index()) {
|
||||
m_index = message->index();
|
||||
Q_EMIT indexChanged();
|
||||
|
||||
Reference in New Issue
Block a user