Better rich reply.

This commit is contained in:
Black Hat
2018-11-27 18:14:48 +08:00
parent cc5ba20375
commit e7b2698521
6 changed files with 42 additions and 34 deletions

View File

@@ -10,6 +10,8 @@
#include "csapi/joining.h"
#include "csapi/logout.h"
#include "utils.h"
#include <QClipboard>
#include <QFile>
#include <QFileInfo>
@@ -242,3 +244,7 @@ int Controller::dpi() {
void Controller::setDpi(int dpi) {
SettingsGroup("Interface").setValue("dpi", dpi);
}
QString Controller::removeReply(const QString& text) {
return utils::removeReply(text);
}

View File

@@ -76,6 +76,8 @@ class Controller : public QObject {
void loadSettings();
void saveSettings() const;
Q_INVOKABLE QString removeReply(const QString& text);
private slots:
void invokeLogin();

View File

@@ -261,7 +261,7 @@ QVariant MessageEventModel::data(const QModelIndex &idx, int role) const {
const auto &evt = isPending ? **pendingIt : **timelineIt;
if (role == Qt::DisplayRole) {
return utils::eventToString(evt, m_currentRoom, Qt::RichText);
return utils::removeReply(utils::eventToString(evt, m_currentRoom, Qt::RichText));
}
if (role == MessageRole) {
@@ -389,7 +389,7 @@ QVariant MessageEventModel::data(const QModelIndex &idx, int role) const {
case ReplyEventIdRole:
return replyEventId;
case ReplyDisplayRole:
return utils::eventToString(replyEvt, m_currentRoom, Qt::RichText);
return utils::removeReply(utils::eventToString(replyEvt, m_currentRoom, Qt::RichText));
case ReplyAuthorRole:
return QVariant::fromValue(
m_currentRoom->user(replyEvt.senderId()));

View File

@@ -2,5 +2,7 @@
QString utils::removeReply(const QString& text) {
QString result(text);
return result.remove(utils::removeReplyRegex);
result.remove(utils::removeRichReplyRegex);
result.remove(utils::removeReplyRegex);
return result;
}

View File

@@ -15,6 +15,7 @@
namespace utils {
const QRegExp removeReplyRegex{"> <.*>.*\\n\\n"};
const QRegExp removeRichReplyRegex{"<mx-reply>.*</mx-reply>"};
QString removeReply(const QString& text);