diff options
-rw-r--r-- | resources/qml/ForwardCompleter.qml | 7 | ||||
-rw-r--r-- | src/timeline/TimelineViewManager.cpp | 51 | ||||
-rw-r--r-- | src/timeline/TimelineViewManager.h | 48 |
3 files changed, 55 insertions, 51 deletions
diff --git a/resources/qml/ForwardCompleter.qml b/resources/qml/ForwardCompleter.qml index 6dbd8926..c544378b 100644 --- a/resources/qml/ForwardCompleter.qml +++ b/resources/qml/ForwardCompleter.qml @@ -25,7 +25,10 @@ Popup { height: implicitHeight + completerPopup.height + padding * 2 leftPadding: 10 rightPadding: 10 - background: null + background: Rectangle { + color: colors.window + } + onOpened: { completerPopup.open(); roomTextInput.forceActiveFocus(); @@ -108,7 +111,7 @@ Popup { } Overlay.modal: Rectangle { - color: Qt.rgba(colors.window.r, colors.window.g, colors.window.b, 0.75) + color: Qt.rgba(colors.window.r, colors.window.g, colors.window.b, 0.7) } } diff --git a/src/timeline/TimelineViewManager.cpp b/src/timeline/TimelineViewManager.cpp index 518ccaf1..9d12825f 100644 --- a/src/timeline/TimelineViewManager.cpp +++ b/src/timeline/TimelineViewManager.cpp @@ -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); -} \ No newline at end of file +} diff --git a/src/timeline/TimelineViewManager.h b/src/timeline/TimelineViewManager.h index 809b286e..9703ee56 100644 --- a/src/timeline/TimelineViewManager.h +++ b/src/timeline/TimelineViewManager.h @@ -16,7 +16,6 @@ #include "Cache.h" #include "CallManager.h" -#include "EventAccessors.h" #include "Logging.h" #include "TimelineModel.h" #include "Utils.h" @@ -153,53 +152,6 @@ private slots: void openImageOverlayInternal(QString eventId, QImage img); private: - 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); - } - } - } - -private: #ifdef USE_QUICK_VIEW QQuickView *view; #else |