Apply all the required styling in cpp
Apply all the required styling to show links, table, spoilers, etc in cpp. This also updates the method of revealing spoilers so now you can click to reveal then click again to hide.
This commit is contained in:
@@ -73,6 +73,8 @@ QQC2.Control {
|
||||
*/
|
||||
signal showMessageMenu
|
||||
|
||||
Message.contentFilterModel: messageContentFilterModel
|
||||
|
||||
contentItem: RowLayout {
|
||||
Kirigami.Icon {
|
||||
source: "content-loading-symbolic"
|
||||
@@ -87,6 +89,7 @@ QQC2.Control {
|
||||
Repeater {
|
||||
id: contentRepeater
|
||||
model: MessageContentFilterModel {
|
||||
id: messageContentFilterModel
|
||||
showAuthor: root.showAuthor
|
||||
sourceModel: root.contentModel
|
||||
}
|
||||
|
||||
@@ -66,6 +66,22 @@ void MessageAttached::setContentModel(MessageContentModel *contentModel)
|
||||
Q_EMIT contentModelChanged();
|
||||
}
|
||||
|
||||
MessageContentFilterModel *MessageAttached::contentFilterModel() const
|
||||
{
|
||||
return m_contentFilterModel;
|
||||
}
|
||||
|
||||
void MessageAttached::setContentFilterModel(MessageContentFilterModel *contentFilterModel)
|
||||
{
|
||||
m_explicitContentFilterModel = true;
|
||||
if (m_contentFilterModel == contentFilterModel) {
|
||||
return;
|
||||
}
|
||||
m_contentFilterModel = contentFilterModel;
|
||||
propagateMessage(this);
|
||||
Q_EMIT contentFilterModelChanged();
|
||||
}
|
||||
|
||||
int MessageAttached::index() const
|
||||
{
|
||||
return m_index;
|
||||
@@ -147,6 +163,11 @@ void MessageAttached::propagateMessage(MessageAttached *message)
|
||||
Q_EMIT contentModelChanged();
|
||||
}
|
||||
|
||||
if (!m_explicitContentFilterModel && m_contentFilterModel != message->contentFilterModel()) {
|
||||
m_contentFilterModel = message->contentFilterModel();
|
||||
Q_EMIT contentFilterModelChanged();
|
||||
}
|
||||
|
||||
if (m_explicitIndex || m_index != message->index()) {
|
||||
m_index = message->index();
|
||||
Q_EMIT indexChanged();
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include <QQuickAttachedPropertyPropagator>
|
||||
#include <QQuickItem>
|
||||
|
||||
#include "models/messagecontentfiltermodel.h"
|
||||
#include "models/messagecontentmodel.h"
|
||||
#include "neochatroom.h"
|
||||
|
||||
@@ -32,6 +33,11 @@ class MessageAttached : public QQuickAttachedPropertyPropagator
|
||||
*/
|
||||
Q_PROPERTY(MessageContentModel *contentModel READ contentModel WRITE setContentModel NOTIFY contentModelChanged FINAL)
|
||||
|
||||
/**
|
||||
* @brief The content model for the current message.
|
||||
*/
|
||||
Q_PROPERTY(MessageContentFilterModel *contentFilterModel READ contentFilterModel WRITE setContentFilterModel NOTIFY contentFilterModelChanged FINAL)
|
||||
|
||||
/**
|
||||
* @brief The index of the message in the timeline
|
||||
*/
|
||||
@@ -66,6 +72,9 @@ public:
|
||||
MessageContentModel *contentModel() const;
|
||||
void setContentModel(MessageContentModel *contentModel);
|
||||
|
||||
MessageContentFilterModel *contentFilterModel() const;
|
||||
void setContentFilterModel(MessageContentFilterModel *contentFilterModel);
|
||||
|
||||
int index() const;
|
||||
void setIndex(int index);
|
||||
|
||||
@@ -82,6 +91,7 @@ Q_SIGNALS:
|
||||
void roomChanged();
|
||||
void timelineChanged();
|
||||
void contentModelChanged();
|
||||
void contentFilterModelChanged();
|
||||
void indexChanged();
|
||||
void maxContentWidthChanged();
|
||||
void selectedTextChanged();
|
||||
@@ -101,6 +111,9 @@ private:
|
||||
QPointer<MessageContentModel> m_contentModel;
|
||||
bool m_explicitContentModel = false;
|
||||
|
||||
QPointer<MessageContentFilterModel> m_contentFilterModel;
|
||||
bool m_explicitContentFilterModel = false;
|
||||
|
||||
int m_index = -1;
|
||||
bool m_explicitIndex = false;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user