Make forward messages a bit more readable
This commit is contained in:
parent
65d85768d0
commit
2b253ead9e
3 changed files with 55 additions and 51 deletions
|
|
@ -18,6 +18,7 @@
|
|||
#include "CompletionProxyModel.h"
|
||||
#include "DelegateChooser.h"
|
||||
#include "DeviceVerificationFlow.h"
|
||||
#include "EventAccessors.h"
|
||||
#include "Logging.h"
|
||||
#include "MainWindow.h"
|
||||
#include "MatrixClient.h"
|
||||
|
|
@ -36,6 +37,54 @@ Q_DECLARE_METATYPE(std::vector<DeviceInfo>)
|
|||
|
||||
namespace msgs = mtx::events::msg;
|
||||
|
||||
namespace {
|
||||
template<template<class...> class Op, class... Args>
|
||||
using is_detected = typename nheko::detail::detector<nheko::nonesuch, void, Op, Args...>::value_t;
|
||||
|
||||
template<class Content>
|
||||
using file_t = decltype(Content::file);
|
||||
|
||||
template<class Content>
|
||||
using url_t = decltype(Content::url);
|
||||
|
||||
template<class Content>
|
||||
using body_t = decltype(Content::body);
|
||||
|
||||
template<class Content>
|
||||
using formatted_body_t = decltype(Content::formatted_body);
|
||||
|
||||
template<typename T>
|
||||
static constexpr bool
|
||||
messageWithFileAndUrl(const mtx::events::Event<T> &)
|
||||
{
|
||||
return is_detected<file_t, T>::value && is_detected<url_t, T>::value;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
static constexpr void
|
||||
removeReplyFallback(mtx::events::Event<T> &e)
|
||||
{
|
||||
if constexpr (is_detected<body_t, T>::value) {
|
||||
if constexpr (std::is_same_v<std::optional<std::string>,
|
||||
std::remove_cv_t<decltype(e.content.body)>>) {
|
||||
if (e.content.body) {
|
||||
e.content.body = utils::stripReplyFromBody(e.content.body);
|
||||
}
|
||||
} else if constexpr (std::is_same_v<std::string,
|
||||
std::remove_cv_t<decltype(e.content.body)>>) {
|
||||
e.content.body = utils::stripReplyFromBody(e.content.body);
|
||||
}
|
||||
}
|
||||
|
||||
if constexpr (is_detected<formatted_body_t, T>::value) {
|
||||
if (e.content.format == "org.matrix.custom.html") {
|
||||
e.content.formatted_body =
|
||||
utils::stripReplyFromFormattedBody(e.content.formatted_body);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TimelineViewManager::updateEncryptedDescriptions()
|
||||
{
|
||||
|
|
@ -694,4 +743,4 @@ TimelineViewManager::forwardMessageToRoom(mtx::events::collections::TimelineEven
|
|||
}
|
||||
},
|
||||
*e);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue