From 47242aa66c8f3ee4b73e9e52ac33b4fd97781218 Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Tue, 23 Apr 2024 12:30:16 +0200 Subject: [PATCH] Remove remaining uses of MatrixImageProvider and remove it --- src/CMakeLists.txt | 2 -- src/chatbar/EmojiDelegate.qml | 4 ++-- src/main.cpp | 5 ++--- src/models/accountemoticonmodel.cpp | 2 +- src/models/customemojimodel.cpp | 6 +++--- src/qml/AccountSwitchDialog.qml | 2 +- src/qml/CollapsedRoomDelegate.qml | 2 +- src/qml/ContextMenu.qml | 2 +- src/qml/DirectChatDrawerHeader.qml | 2 +- src/qml/GroupChatDrawerHeader.qml | 4 ++-- src/qml/Main.qml | 2 -- src/qml/RoomDelegate.qml | 2 +- src/qml/SpaceDrawer.qml | 2 +- src/qml/SpaceListContextMenu.qml | 2 +- src/qml/UserInfo.qml | 2 +- src/settings/AccountEditorPage.qml | 2 +- src/settings/AccountsPage.qml | 2 +- src/settings/Permissions.qml | 2 +- src/settings/RoomGeneralPage.qml | 2 +- src/timeline/TimelineEndDelegate.qml | 2 +- 20 files changed, 23 insertions(+), 28 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a20e93fa3..bb5db407e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -20,8 +20,6 @@ add_library(neochat STATIC models/customemojimodel.h clipboard.cpp clipboard.h - matriximageprovider.cpp - matriximageprovider.h models/messageeventmodel.cpp models/messageeventmodel.h models/messagefiltermodel.cpp diff --git a/src/chatbar/EmojiDelegate.qml b/src/chatbar/EmojiDelegate.qml index a3dc0e6d2..ecf28440d 100644 --- a/src/chatbar/EmojiDelegate.qml +++ b/src/chatbar/EmojiDelegate.qml @@ -24,7 +24,7 @@ QQC2.ItemDelegate { contentItem: Item { Kirigami.Heading { anchors.fill: parent - visible: !root.emoji.startsWith("image") && !root.isImage + visible: !root.emoji.startsWith("mxc") && !root.isImage text: root.emoji horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter @@ -41,7 +41,7 @@ QQC2.ItemDelegate { } Image { anchors.fill: parent - visible: root.emoji.startsWith("image") || root.isImage + visible: root.emoji.startsWith("mxc") || root.isImage source: visible ? root.emoji : "" } } diff --git a/src/main.cpp b/src/main.cpp index e9818165a..85d20d786 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -46,11 +47,10 @@ #include "colorschemer.h" #include "controller.h" #include "logger.h" -#include "matriximageprovider.h" #include "neochatconfig.h" #include "roommanager.h" -#include "windowcontroller.h" #include "sharehandler.h" +#include "windowcontroller.h" #ifdef HAVE_RUNNER #include "runner.h" @@ -286,7 +286,6 @@ int main(int argc, char *argv[]) ShareHandler::instance().setText(parser.value(shareOption)); } - engine.addImageProvider(QLatin1String("mxc"), MatrixImageProvider::create(&engine, &engine)); engine.addImageProvider(QLatin1String("blurhash"), new BlurhashImageProvider); engine.loadFromModule("org.kde.neochat", "Main"); diff --git a/src/models/accountemoticonmodel.cpp b/src/models/accountemoticonmodel.cpp index 2de63577d..708640265 100644 --- a/src/models/accountemoticonmodel.cpp +++ b/src/models/accountemoticonmodel.cpp @@ -37,7 +37,7 @@ QVariant AccountEmoticonModel::data(const QModelIndex &index, int role) const const auto &row = index.row(); const auto &image = m_images->images[row]; if (role == UrlRole) { - return m_connection->makeMediaUrl(image.url); + return m_connection->makeMediaUrl(image.url).toString(); } if (role == BodyRole) { if (image.body) { diff --git a/src/models/customemojimodel.cpp b/src/models/customemojimodel.cpp index 918e70f67..90e4a11cd 100644 --- a/src/models/customemojimodel.cpp +++ b/src/models/customemojimodel.cpp @@ -153,13 +153,13 @@ QVariant CustomEmojiModel::data(const QModelIndex &idx, int role) const switch (Roles(role)) { case Roles::ModelData: - return QVariant::fromValue(Emoji(QStringLiteral("image://mxc/") + data.url.mid(6), data.name, true)); + return QVariant::fromValue(Emoji(m_connection->makeMediaUrl(QUrl(data.url)).toString(), data.name, true)); case Roles::Name: case Roles::DisplayRole: case Roles::ReplacedTextRole: return data.name; case Roles::ImageURL: - return QUrl(QStringLiteral("image://mxc/") + data.url.mid(6)); + return m_connection->makeMediaUrl(QUrl(data.url)); case Roles::MxcUrl: return m_connection->makeMediaUrl(QUrl(data.url)); default: @@ -205,7 +205,7 @@ QVariantList CustomEmojiModel::filterModel(const QString &filter) if (!emoji.name.contains(filter, Qt::CaseInsensitive)) continue; - results << QVariant::fromValue(Emoji(QStringLiteral("image://mxc/") + emoji.url.mid(6), emoji.name, true)); + results << QVariant::fromValue(Emoji(m_connection->makeMediaUrl(QUrl(emoji.url)).toString(), emoji.name, true)); } return results; } diff --git a/src/qml/AccountSwitchDialog.qml b/src/qml/AccountSwitchDialog.qml index 06e0e9705..33aba46cd 100644 --- a/src/qml/AccountSwitchDialog.qml +++ b/src/qml/AccountSwitchDialog.qml @@ -125,7 +125,7 @@ Kirigami.Dialog { width: Kirigami.Units.gridUnit + Kirigami.Units.largeSpacing height: Kirigami.Units.gridUnit + Kirigami.Units.largeSpacing } - source: userDelegate.connection.localUser.avatarMediaId ? ("image://mxc/" + userDelegate.connection.localUser.avatarMediaId) : "" + source: userDelegate.connection.localUser.avatarMediaId ? userDelegate.connection.makeMediaUrl("mxc://" + userDelegate.connection.localUser.avatarMediaId) : "" name: userDelegate.connection.localUser.displayName ?? userDelegate.connection.localUser.id } diff --git a/src/qml/CollapsedRoomDelegate.qml b/src/qml/CollapsedRoomDelegate.qml index 3ab84048c..0c59ca75d 100644 --- a/src/qml/CollapsedRoomDelegate.qml +++ b/src/qml/CollapsedRoomDelegate.qml @@ -32,7 +32,7 @@ QQC2.ItemDelegate { visible: root.categoryVisible || filterText.length > 0 contentItem: KirigamiComponents.Avatar { - source: root.avatar ? `image://mxc/${root.avatar}` : "" + source: root.avatar ? root.currentRoom.connection.makeMediaUrl("mxc://" + root.avatar) : "" name: root.displayName sourceSize { diff --git a/src/qml/ContextMenu.qml b/src/qml/ContextMenu.qml index 6b30bb9a7..200ccb09b 100644 --- a/src/qml/ContextMenu.qml +++ b/src/qml/ContextMenu.qml @@ -161,7 +161,7 @@ Loader { spacing: Kirigami.Units.largeSpacing KirigamiComponents.Avatar { id: avatar - source: room.avatarMediaId ? ("image://mxc/" + room.avatarMediaId) : "" + source: room.avatarMediaId ? root.connection.makeMediaUrl("mxc://" + room.avatarMediaId) : "" name: room.displayName Layout.preferredWidth: Kirigami.Units.gridUnit * 3 Layout.preferredHeight: Kirigami.Units.gridUnit * 3 diff --git a/src/qml/DirectChatDrawerHeader.qml b/src/qml/DirectChatDrawerHeader.qml index 38130c915..471f3e9d2 100644 --- a/src/qml/DirectChatDrawerHeader.qml +++ b/src/qml/DirectChatDrawerHeader.qml @@ -38,7 +38,7 @@ ColumnLayout { contentItem: KirigamiComponents.Avatar { name: root.room ? root.room.displayName : "" - source: root.room ? ("image://mxc/" + root.room.avatarMediaId) : "" + source: root.room ? root.room.connection.makeMediaUrl("mxc://" + root.room.avatarMediaId) : "" Rectangle { visible: root.room.usesEncryption diff --git a/src/qml/GroupChatDrawerHeader.qml b/src/qml/GroupChatDrawerHeader.qml index b9e3fd756..26ab71ff2 100644 --- a/src/qml/GroupChatDrawerHeader.qml +++ b/src/qml/GroupChatDrawerHeader.qml @@ -34,7 +34,7 @@ ColumnLayout { Layout.preferredHeight: Kirigami.Units.iconSizes.large name: root.room ? root.room.displayName : "" - source: root.room && root.room.avatarMediaId ? ("image://mxc/" + root.room.avatarMediaId) : "" + source: root.room ? root.room.connection.makeMediaUrl("mxc://" + root.room.avatarMediaId) : "" Rectangle { visible: room.usesEncryption @@ -92,7 +92,7 @@ ColumnLayout { text: barcode.content, title: root.room ? root.room.displayName : "", subtitle: root.room ? root.room.id : "", - avatarSource: root.room && root.room.avatarMediaId ? ("image://mxc/" + root.room.avatarMediaId) : "" + avatarSource: root.room && root.room.avatarMediaId ? root.room.connection.makeMediaUrl("mxc://" + root.room.avatarMediaId) : "" }); map.open(); } diff --git a/src/qml/Main.qml b/src/qml/Main.qml index 7469f5667..5311fd986 100644 --- a/src/qml/Main.qml +++ b/src/qml/Main.qml @@ -40,7 +40,6 @@ Kirigami.ApplicationWindow { onConnectionChanged: { CustomEmojiModel.connection = root.connection; - MatrixImageProvider.connection = root.connection; SpaceHierarchyCache.connection = root.connection; if (ShareHandler.text && root.connection) { root.handleShare(); @@ -190,7 +189,6 @@ Kirigami.ApplicationWindow { Component.onCompleted: { CustomEmojiModel.connection = root.connection; - MatrixImageProvider.connection = root.connection; SpaceHierarchyCache.connection = root.connection; WindowController.setBlur(pageStack, Config.blur && !Config.compactLayout); if (ShareHandler.text && root.connection) { diff --git a/src/qml/RoomDelegate.qml b/src/qml/RoomDelegate.qml index b239d8f51..79b6c3013 100644 --- a/src/qml/RoomDelegate.qml +++ b/src/qml/RoomDelegate.qml @@ -54,7 +54,7 @@ Delegates.RoundedItemDelegate { spacing: Kirigami.Units.largeSpacing Components.Avatar { - source: root.avatar ? "image://mxc/" + root.avatar : "" + source: root.avatar ? root.connection.makeMediaUrl("mxc://" + root.avatar) : "" name: root.displayName visible: Config.showAvatarInRoomDrawer implicitHeight: Kirigami.Units.gridUnit + (Config.compactRoomList ? 0 : Kirigami.Units.largeSpacing * 2) diff --git a/src/qml/SpaceDrawer.qml b/src/qml/SpaceDrawer.qml index 1947c1077..692db3817 100644 --- a/src/qml/SpaceDrawer.qml +++ b/src/qml/SpaceDrawer.qml @@ -188,7 +188,7 @@ QQC2.Control { Layout.maximumHeight: width - Kirigami.Units.smallSpacing text: displayName - source: avatar ? ("image://mxc/" + avatar) : "" + source: avatar ? root.connection.makeMediaUrl("mxc://" + avatar) : "" activeFocusOnTab: true diff --git a/src/qml/SpaceListContextMenu.qml b/src/qml/SpaceListContextMenu.qml index a193356a4..382b58820 100644 --- a/src/qml/SpaceListContextMenu.qml +++ b/src/qml/SpaceListContextMenu.qml @@ -98,7 +98,7 @@ Loader { KirigamiComponents.Avatar { id: avatar - source: room.avatarMediaId ? ("image://mxc/" + room.avatarMediaId) : "" + source: room.avatarMediaId ? root.room.connection.makeMediaUrl("mxc://" + room.avatarMediaId) : "" Layout.preferredWidth: Kirigami.Units.gridUnit * 3 Layout.preferredHeight: Kirigami.Units.gridUnit * 3 Layout.alignment: Qt.AlignTop diff --git a/src/qml/UserInfo.qml b/src/qml/UserInfo.qml index cb4a83700..10019863d 100644 --- a/src/qml/UserInfo.qml +++ b/src/qml/UserInfo.qml @@ -44,7 +44,7 @@ RowLayout { Layout.leftMargin: Kirigami.Units.largeSpacing text: i18n("Edit this account") - source: mediaId ? ("image://mxc/" + mediaId) : "" + source: mediaId ? root.connection.makeMediaUrl("mxc://" + mediaId) : "" activeFocusOnTab: true diff --git a/src/settings/AccountEditorPage.qml b/src/settings/AccountEditorPage.qml index 0bbd3cb7c..b373f3ed3 100644 --- a/src/settings/AccountEditorPage.qml +++ b/src/settings/AccountEditorPage.qml @@ -34,7 +34,7 @@ FormCard.FormCardPage { padding: 0 - source: root.connection && root.connection.localUser.avatarMediaId ? ("image://mxc/" + root.connection.localUser.avatarMediaId) : "" + source: root.connection && root.connection.localUser.avatarMediaId ? root.connection.makeMediaUrl("mxc://" + root.connection.localUser.avatarMediaId) : "" name: root.connection.localUser.displayName onClicked: { diff --git a/src/settings/AccountsPage.qml b/src/settings/AccountsPage.qml index 7824d9ab0..f49369b2a 100644 --- a/src/settings/AccountsPage.qml +++ b/src/settings/AccountsPage.qml @@ -37,7 +37,7 @@ FormCard.FormCardPage { contentItem: RowLayout { KirigamiComponents.Avatar { name: accountDelegate.connection.localUser.displayName - source: accountDelegate.connection.localUser.avatarMediaId ? ("image://mxc/" + accountDelegate.connection.localUser.avatarMediaId) : "" + source: accountDelegate.connection.localUser.avatarMediaId ? accountDelegate.connection.makeMediaUrl("mxc://" + accountDelegate.connection.localUser.avatarMediaId) : "" Layout.rightMargin: Kirigami.Units.largeSpacing implicitWidth: Kirigami.Units.iconSizes.medium diff --git a/src/settings/Permissions.qml b/src/settings/Permissions.qml index 356ccde61..40b892684 100644 --- a/src/settings/Permissions.qml +++ b/src/settings/Permissions.qml @@ -189,7 +189,7 @@ FormCard.FormCardPage { KirigamiComponents.Avatar { Layout.preferredWidth: Kirigami.Units.iconSizes.medium Layout.preferredHeight: Kirigami.Units.iconSizes.medium - source: userListItem.avatar ? ("image://" + userListItem.avatar) : "" + source: userListItem.avatar ? root.room.connection.makeMediaUrl(userListItem.avatar) : "" name: userListItem.name } diff --git a/src/settings/RoomGeneralPage.qml b/src/settings/RoomGeneralPage.qml index fbcab309e..0bba78841 100644 --- a/src/settings/RoomGeneralPage.qml +++ b/src/settings/RoomGeneralPage.qml @@ -35,7 +35,7 @@ FormCard.FormCardPage { id: avatar Layout.alignment: Qt.AlignRight name: room.name - source: room.avatarMediaId ? ("image://mxc/" + room.avatarMediaId) : "" + source: room.avatarMediaId ? root.connection.makeMediaUrl("mxc://" + room.avatarMediaId) : "" implicitWidth: Kirigami.Units.iconSizes.enormous implicitHeight: Kirigami.Units.iconSizes.enormous } diff --git a/src/timeline/TimelineEndDelegate.qml b/src/timeline/TimelineEndDelegate.qml index 89ee07b9e..9a8bf6baa 100644 --- a/src/timeline/TimelineEndDelegate.qml +++ b/src/timeline/TimelineEndDelegate.qml @@ -30,7 +30,7 @@ TimelineDelegate { Layout.preferredHeight: Kirigami.Units.iconSizes.large name: root.room ? root.room.displayName : "" - source: root.room && root.room.avatarMediaId ? ("image://mxc/" + root.room.avatarMediaId) : "" + source: root.room && root.room.avatarMediaId ? root.room.connection.makeMediaUrl("mxc://" + root.room.avatarMediaId) : "" Rectangle { visible: room.usesEncryption