enabled support for KUnifiedPush
OBS-URL: https://build.opensuse.org/package/show/KDE:Applications/neochat?expand=0&rev=51
This commit is contained in:
commit
01e9a813d7
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.osc
|
532
0001-Cherry-pick-compatability-changes-for-libquotient-0.patch
Normal file
532
0001-Cherry-pick-compatability-changes-for-libquotient-0.patch
Normal file
@ -0,0 +1,532 @@
|
|||||||
|
From eb802ff91f98204784d87db61a698b4038b7ef84 Mon Sep 17 00:00:00 2001
|
||||||
|
From: James Graham <james.h.graham@protonmail.com>
|
||||||
|
Date: Sat, 26 Oct 2024 07:47:15 +0000
|
||||||
|
Subject: [PATCH] Cherry pick compatability changes for libquotient 0.9
|
||||||
|
|
||||||
|
Title
|
||||||
|
---
|
||||||
|
src/actionshandler.cpp | 8 ++
|
||||||
|
src/eventhandler.cpp | 151 +++++++++++++++++++++++------
|
||||||
|
src/eventhandler.h | 12 ++-
|
||||||
|
src/models/messagecontentmodel.cpp | 18 +++-
|
||||||
|
src/models/messageeventmodel.cpp | 5 +
|
||||||
|
src/neochatroom.cpp | 44 ++++++++-
|
||||||
|
6 files changed, 199 insertions(+), 39 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/actionshandler.cpp b/src/actionshandler.cpp
|
||||||
|
index e5ddaadbd..c47b780b1 100644
|
||||||
|
--- a/src/actionshandler.cpp
|
||||||
|
+++ b/src/actionshandler.cpp
|
||||||
|
@@ -91,10 +91,18 @@ void ActionsHandler::handleMessage(const QString &text, QString handledText, Cha
|
||||||
|
|
||||||
|
for (auto it = m_room->messageEvents().crbegin(); it != m_room->messageEvents().crend(); it++) {
|
||||||
|
if (const auto event = eventCast<const RoomMessageEvent>(&**it)) {
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ if (event->senderId() == m_room->localMember().id() && event->has<EventContent::TextContent>()) {
|
||||||
|
+#else
|
||||||
|
if (event->senderId() == m_room->localMember().id() && event->hasTextContent()) {
|
||||||
|
+#endif
|
||||||
|
QString originalString;
|
||||||
|
if (event->content()) {
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ originalString = event->get<EventContent::TextContent>()->body;
|
||||||
|
+#else
|
||||||
|
originalString = static_cast<const Quotient::EventContent::TextContent *>(event->content())->body;
|
||||||
|
+#endif
|
||||||
|
} else {
|
||||||
|
originalString = event->plainBody();
|
||||||
|
}
|
||||||
|
diff --git a/src/eventhandler.cpp b/src/eventhandler.cpp
|
||||||
|
index 8cad14601..6b02ade67 100644
|
||||||
|
--- a/src/eventhandler.cpp
|
||||||
|
+++ b/src/eventhandler.cpp
|
||||||
|
@@ -9,6 +9,8 @@
|
||||||
|
|
||||||
|
#include <Quotient/eventitem.h>
|
||||||
|
#include <Quotient/events/encryptionevent.h>
|
||||||
|
+#include <Quotient/events/event.h>
|
||||||
|
+#include <Quotient/events/eventcontent.h>
|
||||||
|
#include <Quotient/events/reactionevent.h>
|
||||||
|
#include <Quotient/events/redactionevent.h>
|
||||||
|
#include <Quotient/events/roomavatarevent.h>
|
||||||
|
@@ -234,10 +236,18 @@ QString EventHandler::rawMessageBody(const Quotient::RoomMessageEvent &event)
|
||||||
|
{
|
||||||
|
QString body;
|
||||||
|
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ if (event.has<EventContent::FileContent>()) {
|
||||||
|
+#else
|
||||||
|
if (event.hasFileContent()) {
|
||||||
|
+#endif
|
||||||
|
// if filename is given or body is equal to filename,
|
||||||
|
// then body is a caption
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ QString filename = event.get<EventContent::FileContent>()->originalName;
|
||||||
|
+#else
|
||||||
|
QString filename = event.content()->fileInfo()->originalName;
|
||||||
|
+#endif
|
||||||
|
QString body = event.plainBody();
|
||||||
|
if (filename.isEmpty() || filename == body) {
|
||||||
|
return QString();
|
||||||
|
@@ -245,8 +255,13 @@ QString EventHandler::rawMessageBody(const Quotient::RoomMessageEvent &event)
|
||||||
|
return body;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ if (event.has<EventContent::TextContent>() && event.content()) {
|
||||||
|
+ body = event.get<EventContent::TextContent>()->body;
|
||||||
|
+#else
|
||||||
|
if (event.hasTextContent() && event.content()) {
|
||||||
|
body = static_cast<const EventContent::TextContent *>(event.content())->body;
|
||||||
|
+#endif
|
||||||
|
} else {
|
||||||
|
body = event.plainBody();
|
||||||
|
}
|
||||||
|
@@ -461,11 +476,16 @@ QString EventHandler::getMessageBody(const RoomMessageEvent &event, Qt::TextForm
|
||||||
|
{
|
||||||
|
TextHandler textHandler;
|
||||||
|
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ if (event.has<EventContent::FileContent>()) {
|
||||||
|
+ QString fileCaption = event.get<EventContent::FileContent>()->originalName;
|
||||||
|
+#else
|
||||||
|
if (event.hasFileContent()) {
|
||||||
|
auto fileCaption = event.content()->fileInfo()->originalName;
|
||||||
|
+#endif
|
||||||
|
if (fileCaption.isEmpty()) {
|
||||||
|
fileCaption = event.plainBody();
|
||||||
|
- } else if (event.content()->fileInfo()->originalName != event.plainBody()) {
|
||||||
|
+ } else if (fileCaption != event.plainBody()) {
|
||||||
|
fileCaption = event.plainBody() + " | "_ls + fileCaption;
|
||||||
|
}
|
||||||
|
textHandler.setData(fileCaption);
|
||||||
|
@@ -473,8 +493,13 @@ QString EventHandler::getMessageBody(const RoomMessageEvent &event, Qt::TextForm
|
||||||
|
}
|
||||||
|
|
||||||
|
QString body;
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ if (event.has<EventContent::TextContent>() && event.content()) {
|
||||||
|
+ body = event.get<EventContent::TextContent>()->body;
|
||||||
|
+#else
|
||||||
|
if (event.hasTextContent() && event.content()) {
|
||||||
|
body = static_cast<const EventContent::TextContent *>(event.content())->body;
|
||||||
|
+#endif
|
||||||
|
} else {
|
||||||
|
body = event.plainBody();
|
||||||
|
}
|
||||||
|
@@ -655,39 +680,65 @@ QVariantMap EventHandler::getMediaInfoForEvent(const Quotient::RoomEvent *event)
|
||||||
|
// Get the file info for the event.
|
||||||
|
if (event->is<RoomMessageEvent>()) {
|
||||||
|
auto roomMessageEvent = eventCast<const RoomMessageEvent>(event);
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ if (!roomMessageEvent->has<EventContent::FileContentBase>()) {
|
||||||
|
+#else
|
||||||
|
if (!roomMessageEvent->hasFileContent()) {
|
||||||
|
+#endif
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
- const EventContent::FileInfo *fileInfo;
|
||||||
|
- fileInfo = roomMessageEvent->content()->fileInfo();
|
||||||
|
- QVariantMap mediaInfo = getMediaInfoFromFileInfo(fileInfo, eventId, false, false);
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ const auto content = roomMessageEvent->get<EventContent::FileContentBase>();
|
||||||
|
+ QVariantMap mediaInfo = getMediaInfoFromFileInfo(content.get(), eventId, false, false);
|
||||||
|
+#else
|
||||||
|
+ const auto content = static_cast<const EventContent::FileContent *>(roomMessageEvent->content());
|
||||||
|
+ QVariantMap mediaInfo = getMediaInfoFromFileInfo(content, eventId, false, false);
|
||||||
|
+#endif
|
||||||
|
// if filename isn't specifically given, it is in body
|
||||||
|
// https://spec.matrix.org/latest/client-server-api/#mfile
|
||||||
|
- mediaInfo["filename"_ls] = (fileInfo->originalName.isEmpty()) ? roomMessageEvent->plainBody() : fileInfo->originalName;
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ mediaInfo["filename"_ls] = content->commonInfo().originalName.isEmpty() ? roomMessageEvent->plainBody() : content->commonInfo().originalName;
|
||||||
|
+#else
|
||||||
|
+ mediaInfo["filename"_ls] = (content->fileInfo()->originalName.isEmpty()) ? roomMessageEvent->plainBody() : content->fileInfo()->originalName;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
return mediaInfo;
|
||||||
|
} else if (event->is<StickerEvent>()) {
|
||||||
|
- const EventContent::FileInfo *fileInfo;
|
||||||
|
-
|
||||||
|
auto stickerEvent = eventCast<const StickerEvent>(event);
|
||||||
|
- fileInfo = &stickerEvent->image();
|
||||||
|
+ auto content = &stickerEvent->image();
|
||||||
|
|
||||||
|
- return getMediaInfoFromFileInfo(fileInfo, eventId, false, true);
|
||||||
|
+ return getMediaInfoFromFileInfo(content, eventId, false, true);
|
||||||
|
} else {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-QVariantMap EventHandler::getMediaInfoFromFileInfo(const EventContent::FileInfo *fileInfo, const QString &eventId, bool isThumbnail, bool isSticker) const
|
||||||
|
+QVariantMap EventHandler::getMediaInfoFromFileInfo(
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ const Quotient::EventContent::FileContentBase *fileContent,
|
||||||
|
+#else
|
||||||
|
+ const Quotient::EventContent::TypedBase *fileContent,
|
||||||
|
+#endif
|
||||||
|
+ const QString &eventId,
|
||||||
|
+ bool isThumbnail,
|
||||||
|
+ bool isSticker) const
|
||||||
|
{
|
||||||
|
QVariantMap mediaInfo;
|
||||||
|
|
||||||
|
// Get the mxc URL for the media.
|
||||||
|
- if (!fileInfo->url().isValid() || fileInfo->url().scheme() != QStringLiteral("mxc") || eventId.isEmpty()) {
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ if (!fileContent->url().isValid() || fileContent->url().scheme() != QStringLiteral("mxc") || eventId.isEmpty()) {
|
||||||
|
+#else
|
||||||
|
+ if (!fileContent->fileInfo()->url().isValid() || fileContent->fileInfo()->url().scheme() != QStringLiteral("mxc") || eventId.isEmpty()) {
|
||||||
|
+#endif
|
||||||
|
mediaInfo["source"_ls] = QUrl();
|
||||||
|
} else {
|
||||||
|
- QUrl source = m_room->makeMediaUrl(eventId, fileInfo->url());
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ QUrl source = m_room->makeMediaUrl(eventId, fileContent->url());
|
||||||
|
+#else
|
||||||
|
+ QUrl source = m_room->makeMediaUrl(eventId, fileContent->fileInfo()->url());
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
if (source.isValid()) {
|
||||||
|
mediaInfo["source"_ls] = source;
|
||||||
|
@@ -696,7 +747,7 @@ QVariantMap EventHandler::getMediaInfoFromFileInfo(const EventContent::FileInfo
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- auto mimeType = fileInfo->mimeType;
|
||||||
|
+ auto mimeType = fileContent->type();
|
||||||
|
// Add the MIME type for the media if available.
|
||||||
|
mediaInfo["mimeType"_ls] = mimeType.name();
|
||||||
|
|
||||||
|
@@ -704,45 +755,53 @@ QVariantMap EventHandler::getMediaInfoFromFileInfo(const EventContent::FileInfo
|
||||||
|
mediaInfo["mimeIcon"_ls] = mimeType.iconName();
|
||||||
|
|
||||||
|
// Add media size if available.
|
||||||
|
- mediaInfo["size"_ls] = fileInfo->payloadSize;
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ mediaInfo["size"_ls] = fileContent->commonInfo().payloadSize;
|
||||||
|
+#else
|
||||||
|
+ mediaInfo["size"_ls] = static_cast<const EventContent::FileContent *>(fileContent)->fileInfo()->payloadSize;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
mediaInfo["isSticker"_ls] = isSticker;
|
||||||
|
|
||||||
|
// Add parameter depending on media type.
|
||||||
|
if (mimeType.name().contains(QStringLiteral("image"))) {
|
||||||
|
- if (auto castInfo = static_cast<const EventContent::ImageContent *>(fileInfo)) {
|
||||||
|
+ if (auto castInfo = static_cast<const EventContent::ImageContent *>(fileContent)) {
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
mediaInfo["width"_ls] = castInfo->imageSize.width();
|
||||||
|
mediaInfo["height"_ls] = castInfo->imageSize.height();
|
||||||
|
+#else
|
||||||
|
+ const auto imageInfo = static_cast<const EventContent::ImageInfo *>(castInfo->fileInfo());
|
||||||
|
+ mediaInfo["width"_ls] = imageInfo->imageSize.width();
|
||||||
|
+ mediaInfo["height"_ls] = imageInfo->imageSize.height();
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
// TODO: Images in certain formats (e.g. WebP) will be erroneously marked as animated, even if they are static.
|
||||||
|
mediaInfo["animated"_ls] = QMovie::supportedFormats().contains(mimeType.preferredSuffix().toUtf8());
|
||||||
|
|
||||||
|
- if (!isThumbnail) {
|
||||||
|
- QVariantMap tempInfo;
|
||||||
|
- auto thumbnailInfo = getMediaInfoFromFileInfo(castInfo->thumbnailInfo(), eventId, true);
|
||||||
|
- if (thumbnailInfo["source"_ls].toUrl().scheme() == "mxc"_ls) {
|
||||||
|
- tempInfo = thumbnailInfo;
|
||||||
|
+ QVariantMap tempInfo;
|
||||||
|
+ auto thumbnailInfo = getMediaInfoFromTumbnail(castInfo->thumbnail, eventId);
|
||||||
|
+ if (thumbnailInfo["source"_ls].toUrl().scheme() == "mxc"_ls) {
|
||||||
|
+ tempInfo = thumbnailInfo;
|
||||||
|
+ } else {
|
||||||
|
+ QString blurhash = castInfo->originalInfoJson["xyz.amorgan.blurhash"_ls].toString();
|
||||||
|
+ if (blurhash.isEmpty()) {
|
||||||
|
+ tempInfo["source"_ls] = QUrl();
|
||||||
|
} else {
|
||||||
|
- QString blurhash = castInfo->originalInfoJson["xyz.amorgan.blurhash"_ls].toString();
|
||||||
|
- if (blurhash.isEmpty()) {
|
||||||
|
- tempInfo["source"_ls] = QUrl();
|
||||||
|
- } else {
|
||||||
|
- tempInfo["source"_ls] = QUrl("image://blurhash/"_ls + blurhash);
|
||||||
|
- }
|
||||||
|
+ tempInfo["source"_ls] = QUrl("image://blurhash/"_ls + blurhash);
|
||||||
|
}
|
||||||
|
- mediaInfo["tempInfo"_ls] = tempInfo;
|
||||||
|
}
|
||||||
|
+ mediaInfo["tempInfo"_ls] = tempInfo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (mimeType.name().contains(QStringLiteral("video"))) {
|
||||||
|
- if (auto castInfo = static_cast<const EventContent::VideoContent *>(fileInfo)) {
|
||||||
|
+ if (auto castInfo = static_cast<const EventContent::VideoContent *>(fileContent)) {
|
||||||
|
mediaInfo["width"_ls] = castInfo->imageSize.width();
|
||||||
|
mediaInfo["height"_ls] = castInfo->imageSize.height();
|
||||||
|
mediaInfo["duration"_ls] = castInfo->duration;
|
||||||
|
|
||||||
|
if (!isThumbnail) {
|
||||||
|
QVariantMap tempInfo;
|
||||||
|
- auto thumbnailInfo = getMediaInfoFromFileInfo(castInfo->thumbnailInfo(), eventId, true);
|
||||||
|
+ auto thumbnailInfo = getMediaInfoFromTumbnail(castInfo->thumbnail, eventId);
|
||||||
|
if (thumbnailInfo["source"_ls].toUrl().scheme() == "mxc"_ls) {
|
||||||
|
tempInfo = thumbnailInfo;
|
||||||
|
} else {
|
||||||
|
@@ -758,7 +817,7 @@ QVariantMap EventHandler::getMediaInfoFromFileInfo(const EventContent::FileInfo
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (mimeType.name().contains(QStringLiteral("audio"))) {
|
||||||
|
- if (auto castInfo = static_cast<const EventContent::AudioContent *>(fileInfo)) {
|
||||||
|
+ if (auto castInfo = static_cast<const EventContent::AudioContent *>(fileContent)) {
|
||||||
|
mediaInfo["duration"_ls] = castInfo->duration;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -766,6 +825,38 @@ QVariantMap EventHandler::getMediaInfoFromFileInfo(const EventContent::FileInfo
|
||||||
|
return mediaInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
+QVariantMap EventHandler::getMediaInfoFromTumbnail(const Quotient::EventContent::Thumbnail &thumbnail, const QString &eventId) const
|
||||||
|
+{
|
||||||
|
+ QVariantMap thumbnailInfo;
|
||||||
|
+
|
||||||
|
+ if (!thumbnail.url().isValid() || thumbnail.url().scheme() != QStringLiteral("mxc") || eventId.isEmpty()) {
|
||||||
|
+ thumbnailInfo["source"_ls] = QUrl();
|
||||||
|
+ } else {
|
||||||
|
+ QUrl source = m_room->makeMediaUrl(eventId, thumbnail.url());
|
||||||
|
+
|
||||||
|
+ if (source.isValid()) {
|
||||||
|
+ thumbnailInfo["source"_ls] = source;
|
||||||
|
+ } else {
|
||||||
|
+ thumbnailInfo["source"_ls] = QUrl();
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ auto mimeType = thumbnail.mimeType;
|
||||||
|
+ // Add the MIME type for the media if available.
|
||||||
|
+ thumbnailInfo["mimeType"_ls] = mimeType.name();
|
||||||
|
+
|
||||||
|
+ // Add the MIME type icon if available.
|
||||||
|
+ thumbnailInfo["mimeIcon"_ls] = mimeType.iconName();
|
||||||
|
+
|
||||||
|
+ // Add media size if available.
|
||||||
|
+ thumbnailInfo["size"_ls] = thumbnail.payloadSize;
|
||||||
|
+
|
||||||
|
+ thumbnailInfo["width"_ls] = thumbnail.imageSize.width();
|
||||||
|
+ thumbnailInfo["height"_ls] = thumbnail.imageSize.height();
|
||||||
|
+
|
||||||
|
+ return thumbnailInfo;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
bool EventHandler::hasReply() const
|
||||||
|
{
|
||||||
|
if (m_event == nullptr) {
|
||||||
|
diff --git a/src/eventhandler.h b/src/eventhandler.h
|
||||||
|
index 277273c9e..6a3520882 100644
|
||||||
|
--- a/src/eventhandler.h
|
||||||
|
+++ b/src/eventhandler.h
|
||||||
|
@@ -339,6 +339,14 @@ private:
|
||||||
|
QString getMessageBody(const Quotient::RoomMessageEvent &event, Qt::TextFormat format, bool stripNewlines) const;
|
||||||
|
|
||||||
|
QVariantMap getMediaInfoForEvent(const Quotient::RoomEvent *event) const;
|
||||||
|
- QVariantMap
|
||||||
|
- getMediaInfoFromFileInfo(const Quotient::EventContent::FileInfo *fileInfo, const QString &eventId, bool isThumbnail = false, bool isSticker = false) const;
|
||||||
|
+ QVariantMap getMediaInfoFromFileInfo(
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ const Quotient::EventContent::FileContentBase *fileContent,
|
||||||
|
+#else
|
||||||
|
+ const Quotient::EventContent::TypedBase *fileContent,
|
||||||
|
+#endif
|
||||||
|
+ const QString &eventId,
|
||||||
|
+ bool isThumbnail = false,
|
||||||
|
+ bool isSticker = false) const;
|
||||||
|
+ QVariantMap getMediaInfoFromTumbnail(const Quotient::EventContent::Thumbnail &thumbnail, const QString &eventId) const;
|
||||||
|
};
|
||||||
|
diff --git a/src/models/messagecontentmodel.cpp b/src/models/messagecontentmodel.cpp
|
||||||
|
index 7de11f274..ac1756f84 100644
|
||||||
|
--- a/src/models/messagecontentmodel.cpp
|
||||||
|
+++ b/src/models/messagecontentmodel.cpp
|
||||||
|
@@ -7,6 +7,7 @@
|
||||||
|
|
||||||
|
#include <QImageReader>
|
||||||
|
|
||||||
|
+#include <Quotient/events/eventcontent.h>
|
||||||
|
#include <Quotient/events/redactionevent.h>
|
||||||
|
#include <Quotient/events/roommessageevent.h>
|
||||||
|
#include <Quotient/events/stickerevent.h>
|
||||||
|
@@ -445,10 +446,19 @@ QList<MessageComponent> MessageContentModel::componentsForType(MessageComponentT
|
||||||
|
auto fileTransferInfo = m_room->cachedFileTransferInfo(m_event.get());
|
||||||
|
|
||||||
|
#ifndef Q_OS_ANDROID
|
||||||
|
- Q_ASSERT(event->content() != nullptr && event->content()->fileInfo() != nullptr);
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ Q_ASSERT(event->content() != nullptr && event->has<EventContent::FileContent>());
|
||||||
|
+ const QMimeType mimeType = event->get<EventContent::FileContent>()->mimeType;
|
||||||
|
+#else
|
||||||
|
+ Q_ASSERT(event->content() != nullptr && event->hasFileContent());
|
||||||
|
const QMimeType mimeType = event->content()->fileInfo()->mimeType;
|
||||||
|
+#endif
|
||||||
|
if (mimeType.name() == QStringLiteral("text/plain") || mimeType.parentMimeTypes().contains(QStringLiteral("text/plain"))) {
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ QString originalName = event->get<EventContent::FileContent>()->originalName;
|
||||||
|
+#else
|
||||||
|
QString originalName = event->content()->fileInfo()->originalName;
|
||||||
|
+#endif
|
||||||
|
if (originalName.isEmpty()) {
|
||||||
|
originalName = event->plainBody();
|
||||||
|
}
|
||||||
|
@@ -571,8 +581,12 @@ void MessageContentModel::updateItineraryModel()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (auto event = eventCast<const Quotient::RoomMessageEvent>(m_event)) {
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ if (event->has<EventContent::FileContent>()) {
|
||||||
|
+#else
|
||||||
|
if (event->hasFileContent()) {
|
||||||
|
- auto filePath = m_room->cachedFileTransferInfo(m_event.get()).localPath;
|
||||||
|
+#endif
|
||||||
|
+ auto filePath = m_room->cachedFileTransferInfo(event).localPath;
|
||||||
|
if (filePath.isEmpty() && m_itineraryModel != nullptr) {
|
||||||
|
delete m_itineraryModel;
|
||||||
|
m_itineraryModel = nullptr;
|
||||||
|
diff --git a/src/models/messageeventmodel.cpp b/src/models/messageeventmodel.cpp
|
||||||
|
index 09c738d0e..784fcd36e 100644
|
||||||
|
--- a/src/models/messageeventmodel.cpp
|
||||||
|
+++ b/src/models/messageeventmodel.cpp
|
||||||
|
@@ -8,6 +8,7 @@
|
||||||
|
#include "neochatconfig.h"
|
||||||
|
|
||||||
|
#include <Quotient/csapi/rooms.h>
|
||||||
|
+#include <Quotient/events/eventcontent.h>
|
||||||
|
#include <Quotient/events/redactionevent.h>
|
||||||
|
#include <Quotient/events/roommessageevent.h>
|
||||||
|
#include <Quotient/events/stickerevent.h>
|
||||||
|
@@ -498,7 +499,11 @@ QVariant MessageEventModel::data(const QModelIndex &idx, int role) const
|
||||||
|
|
||||||
|
if (role == ProgressInfoRole) {
|
||||||
|
if (auto e = eventCast<const RoomMessageEvent>(&evt)) {
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ if (e->has<EventContent::FileContent>()) {
|
||||||
|
+#else
|
||||||
|
if (e->hasFileContent()) {
|
||||||
|
+#endif
|
||||||
|
return QVariant::fromValue(m_currentRoom->cachedFileTransferInfo(&evt));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/src/neochatroom.cpp b/src/neochatroom.cpp
|
||||||
|
index f5b1eb57b..8f4201e58 100644
|
||||||
|
--- a/src/neochatroom.cpp
|
||||||
|
+++ b/src/neochatroom.cpp
|
||||||
|
@@ -9,6 +9,7 @@
|
||||||
|
#include <QMimeDatabase>
|
||||||
|
#include <QTemporaryFile>
|
||||||
|
|
||||||
|
+#include <Quotient/events/eventcontent.h>
|
||||||
|
#include <Quotient/jobs/basejob.h>
|
||||||
|
#include <Quotient/quotient_common.h>
|
||||||
|
#include <qcoro/qcorosignal.h>
|
||||||
|
@@ -76,11 +77,16 @@ NeoChatRoom::NeoChatRoom(Connection *connection, QString roomId, JoinState joinS
|
||||||
|
const auto m_event = evtIt->viewAs<RoomEvent>();
|
||||||
|
QString mxcUrl;
|
||||||
|
if (auto event = eventCast<const Quotient::RoomMessageEvent>(m_event)) {
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ if (event->has<EventContent::FileContentBase>()) {
|
||||||
|
+ mxcUrl = event->get<EventContent::FileContentBase>()->url().toString();
|
||||||
|
+#else
|
||||||
|
if (event->hasFileContent()) {
|
||||||
|
mxcUrl = event->content()->fileInfo()->url().toString();
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
} else if (auto event = eventCast<const Quotient::StickerEvent>(m_event)) {
|
||||||
|
- mxcUrl = event->image().fileInfo()->url().toString();
|
||||||
|
+ mxcUrl = event->image().url().toString();
|
||||||
|
}
|
||||||
|
if (mxcUrl.isEmpty()) {
|
||||||
|
return;
|
||||||
|
@@ -255,7 +261,11 @@ QCoro::Task<void> NeoChatRoom::doUploadFile(QUrl url, QString body)
|
||||||
|
auto mime = QMimeDatabase().mimeTypeForUrl(url);
|
||||||
|
url.setScheme("file"_ls);
|
||||||
|
QFileInfo fileInfo(url.isLocalFile() ? url.toLocalFile() : url.toString());
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ EventContent::FileContentBase *content;
|
||||||
|
+#else
|
||||||
|
EventContent::TypedBase *content;
|
||||||
|
+#endif
|
||||||
|
if (mime.name().startsWith("image/"_ls)) {
|
||||||
|
QImage image(url.toLocalFile());
|
||||||
|
content = new EventContent::ImageContent(url, fileInfo.size(), mime, image.size(), fileInfo.fileName());
|
||||||
|
@@ -270,7 +280,11 @@ QCoro::Task<void> NeoChatRoom::doUploadFile(QUrl url, QString body)
|
||||||
|
} else {
|
||||||
|
content = new EventContent::FileContent(url, fileInfo.size(), mime, fileInfo.fileName());
|
||||||
|
}
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ QString txnId = postFile(body.isEmpty() ? url.fileName() : body, std::unique_ptr<EventContent::FileContentBase>(content));
|
||||||
|
+#else
|
||||||
|
QString txnId = postFile(body.isEmpty() ? url.fileName() : body, content);
|
||||||
|
+#endif
|
||||||
|
setHasFileUploading(true);
|
||||||
|
connect(this, &Room::fileTransferCompleted, [this, txnId](const QString &id, FileSourceInfo) {
|
||||||
|
if (id == txnId) {
|
||||||
|
@@ -396,8 +410,13 @@ bool NeoChatRoom::lastEventIsSpoiler() const
|
||||||
|
{
|
||||||
|
if (auto event = lastEvent()) {
|
||||||
|
if (auto e = eventCast<const RoomMessageEvent>(event)) {
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ if (e->has<EventContent::TextContent>() && e->content() && e->mimeType().name() == "text/html"_ls) {
|
||||||
|
+ auto htmlBody = e->get<EventContent::TextContent>()->body;
|
||||||
|
+#else
|
||||||
|
if (e->hasTextContent() && e->content() && e->mimeType().name() == "text/html"_ls) {
|
||||||
|
auto htmlBody = static_cast<const Quotient::EventContent::TextContent *>(e->content())->body;
|
||||||
|
+#endif
|
||||||
|
return htmlBody.contains("data-mx-spoiler"_ls);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -1456,7 +1475,11 @@ void NeoChatRoom::openEventMediaExternally(const QString &eventId)
|
||||||
|
const auto evtIt = findInTimeline(eventId);
|
||||||
|
if (evtIt != messageEvents().rend() && is<RoomMessageEvent>(**evtIt)) {
|
||||||
|
const auto event = evtIt->viewAs<RoomMessageEvent>();
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ if (event->has<EventContent::FileContent>()) {
|
||||||
|
+#else
|
||||||
|
if (event->hasFileContent()) {
|
||||||
|
+#endif
|
||||||
|
const auto transferInfo = cachedFileTransferInfo(event);
|
||||||
|
if (transferInfo.completed()) {
|
||||||
|
UrlHelper helper;
|
||||||
|
@@ -1489,7 +1512,11 @@ void NeoChatRoom::copyEventMedia(const QString &eventId)
|
||||||
|
const auto evtIt = findInTimeline(eventId);
|
||||||
|
if (evtIt != messageEvents().rend() && is<RoomMessageEvent>(**evtIt)) {
|
||||||
|
const auto event = evtIt->viewAs<RoomMessageEvent>();
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ if (event->has<EventContent::FileContent>()) {
|
||||||
|
+#else
|
||||||
|
if (event->hasFileContent()) {
|
||||||
|
+#endif
|
||||||
|
const auto transferInfo = fileTransferInfo(eventId);
|
||||||
|
if (transferInfo.completed()) {
|
||||||
|
Clipboard clipboard;
|
||||||
|
@@ -1522,13 +1549,20 @@ FileTransferInfo NeoChatRoom::cachedFileTransferInfo(const Quotient::RoomEvent *
|
||||||
|
QString mxcUrl;
|
||||||
|
int total = 0;
|
||||||
|
if (auto evt = eventCast<const Quotient::RoomMessageEvent>(event)) {
|
||||||
|
+#if Quotient_VERSION_MINOR > 8
|
||||||
|
+ if (evt->has<EventContent::FileContent>()) {
|
||||||
|
+ const auto fileContent = evt->get<EventContent::FileContent>();
|
||||||
|
+#else
|
||||||
|
if (evt->hasFileContent()) {
|
||||||
|
- mxcUrl = evt->content()->fileInfo()->url().toString();
|
||||||
|
- total = evt->content()->fileInfo()->payloadSize;
|
||||||
|
+ const auto fileContent = evt->content()->fileInfo();
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ mxcUrl = fileContent->url().toString();
|
||||||
|
+ total = fileContent->payloadSize;
|
||||||
|
}
|
||||||
|
} else if (auto evt = eventCast<const Quotient::StickerEvent>(event)) {
|
||||||
|
- mxcUrl = evt->image().fileInfo()->url().toString();
|
||||||
|
- total = evt->image().fileInfo()->payloadSize;
|
||||||
|
+ mxcUrl = evt->image().url().toString();
|
||||||
|
+ total = evt->image().payloadSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
FileTransferInfo transferInfo = fileTransferInfo(event->id());
|
||||||
|
--
|
||||||
|
2.47.0
|
||||||
|
|
BIN
applications.keyring
Normal file
BIN
applications.keyring
Normal file
Binary file not shown.
3
neochat-24.05.2.tar.xz
Normal file
3
neochat-24.05.2.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:cfd419a87cbbe5fecbd7833189255ee2f582b4e1fb0f4f88bdef7e60a92fbc8f
|
||||||
|
size 980740
|
16
neochat-24.05.2.tar.xz.sig
Normal file
16
neochat-24.05.2.tar.xz.sig
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQIzBAABCgAdFiEE2BwMs463Je9mkcOFu0YzUNbvMe8FAmaDnTEACgkQu0YzUNbv
|
||||||
|
Me+NtQ/9GvS+JIQ/Q2lIz7j+kHAM8AB/+iU2QT/9EEwUB1C43KnGr71xK/SW9Cnc
|
||||||
|
Ug1ctNLE1kuDu1cfOo59+MY/ite1r4lksGl/3lGFUe6OGexbkfj9sArtFrm2ci4+
|
||||||
|
JIiNfceGgFIrVcDotyDEqyoSrRTpeT33IIlNbmB6TrJmPNPQtnHwE4CPp1K7/oXK
|
||||||
|
/YEYfikYJ7FJ3a329qQ6IqiX9pNGNYnA10Hnh7fFEIrEqPPjQOG/0wIOXYtZHdfK
|
||||||
|
sjWYpxkXm47NDuvJdh40oRYYFEPfnsTMyalA08jZ/v7LJk6tii2UPkQXDW3QRdj5
|
||||||
|
1CHgtScM5bmwvpOqPoPmC3tldS3aQQmevRARIKucXfp2cG+oXvWWejOM+rcFCQK9
|
||||||
|
/B8E+M8Yg5emLUNGHmnC0yp7TnwjY3E5SQO43Vvu3o87pM+VICP9q2tjtM1p41dH
|
||||||
|
TbGVMEJghD502IGS49zXTDpgxmvcfEY1DcfaaMIQTEvlc2vYEYiF9iYlBka/snUb
|
||||||
|
1UjvwIpZE6XPkV1eZx0QZEjwE9lqrIwImKp+gqOFWvMlDsc/nw4BgzbofNApZFkU
|
||||||
|
rDtBiUpRUJzCUBR0mGY+u45RT+PfMsZ4jwTCK7b7HS/CFBlMgNEB+QIrlA3hH7Hd
|
||||||
|
s6D27AhtAfNv6BO2gmmghrq7mp1NPqZd7OonOrIm6HpM12LVo/U=
|
||||||
|
=uTZj
|
||||||
|
-----END PGP SIGNATURE-----
|
3
neochat-24.08.0.tar.xz
Normal file
3
neochat-24.08.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:6b72d1864cc0d90704318c8970b9dc6a2dacd541fc5b95c46dcebb5c6a61705f
|
||||||
|
size 1024700
|
16
neochat-24.08.0.tar.xz.sig
Normal file
16
neochat-24.08.0.tar.xz.sig
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQIzBAABCgAdFiEE2BwMs463Je9mkcOFu0YzUNbvMe8FAma+4OIACgkQu0YzUNbv
|
||||||
|
Me9Ulg//RSBBVRtllnbfvqEtMsR4GTdAl9MzMI56XvPRszsHWiNVJqP3PXOYR7+m
|
||||||
|
fqpGkxbAxelBxKn8gpYzBqj75TLMnPKQdjXR5op3kI9EIr5kToc6VWvPyr7+MOaW
|
||||||
|
V1Jos7n3EzzL9cMOyWcG+ty9ar5+o80Zr3MuLNN7bevc11YQSzmx+EG1A6sfCPCO
|
||||||
|
wWyjX0CBepYZJsuafbT0Zxd1+hHvjGOTQg6GmVl1l0kn1Jkt7jb1hS+pVzNPgniJ
|
||||||
|
y3/sMkR6PE/fNmteUbBiqYBMVLyx7Ii2lqwlD+8vWRrRjSF/p5QjAieVjYybY/6q
|
||||||
|
sHgsBvfoPS4znN6ld1Guvx9KdoCUkoftJ54xZpe6fPZBlRLAqxd91a7guZ1aqbSp
|
||||||
|
XRsVnos0JCsViHIXCgaSm8KmmtGgHZSQX3rxmRzx2hnLn7V16zs7rAA6rXRE36XH
|
||||||
|
6fntJwYBKPER6BK06h8bxCxna0qljF9v1nSx84qN06jtWcn78dGZsR+EWR8PcN6C
|
||||||
|
gPpoXyp050sUwtVYPaYD/xZ/ypsuRFj0z2fbmUslONFwMPwmCdgcYoaRcUXey6Nc
|
||||||
|
iEQe2YkUY0408INPgVafA5puVgWrGm6dU6wSv6sjQHl70Z2p/RDA91hpQC/662Fy
|
||||||
|
cvoREbi83cVIpzrf+EaYCGLd6JiDhddpaZayPCG/XvGm7Qr+mfc=
|
||||||
|
=q5Hs
|
||||||
|
-----END PGP SIGNATURE-----
|
3
neochat-24.08.1.tar.xz
Normal file
3
neochat-24.08.1.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:a394f04cf19d5567437e558075c9f7ce5c37bf73943b13c47739ff56acde571d
|
||||||
|
size 1025240
|
16
neochat-24.08.1.tar.xz.sig
Normal file
16
neochat-24.08.1.tar.xz.sig
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQIzBAABCgAdFiEE2BwMs463Je9mkcOFu0YzUNbvMe8FAmbf/SUACgkQu0YzUNbv
|
||||||
|
Me8geQ//RxjnQ0GVT7lKRZAIqd3Do6mFGt8Mi0L1pspRRRW8W9HmG+k7aO5Syo2D
|
||||||
|
slkPngcLFEOwm/4x5dqIre2SOt+vvJwC07TDkUv8pkd4GjsmnyJmnAV2Y6yz1+cw
|
||||||
|
kDKP569Re/IW+EZxnuweGTlAn7eu4sp36LpFwZwFHxNUcdHMX2BvO24nk4kLy2VC
|
||||||
|
Igt8BCZfng1Qf0jybIjIqKGPDmaJ8WGmUMRfyqn9aPVc+O9Tb6SMo4cPSUMbic4i
|
||||||
|
XAFpPlrkgudwd0KlBftAx1zGNFxUU/3o3kTQv/2ZNj/Y4ouuRBpR0vl5Js5zDK4E
|
||||||
|
+S5bVtSTIFU4qYcxm1nTVYrfjp0DGADUavz64op5DgLzmalMAe7DNqHIhOmA25O3
|
||||||
|
urKbyU6p9WtUZ2Dx6ZPO78TepTGgl+CSkfPtCTTtSGFwQyR/D7HzihMXqXHb7rjK
|
||||||
|
L+FjUq7Kq+Vkl5cXyYWJaqMBDbwRRRU0Vv72DUB/Lj6GpVUSaJzNKTlU76Xgp/hj
|
||||||
|
vUhIvanwube9FTiKLfRxuf64vm56j2/llkAqpb3sBFz6ygOlwMo+AF7gFKmvHtlc
|
||||||
|
UuF4khQQYimjaoAMI/skd1xBmjVGVZmrTpiX3ZeDwhb9Sq240kazRxLwEnh7tfoG
|
||||||
|
0mEv0Efl7Zv5DR3G+x6MKJPmWxU6zn/fewlT59xfiFuAOyYp+as=
|
||||||
|
=F8mD
|
||||||
|
-----END PGP SIGNATURE-----
|
3
neochat-24.08.2.tar.xz
Normal file
3
neochat-24.08.2.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:873f08f35ef1055b17647098a2ba5a3924dc0fb8350441d380c3598d8213c1bc
|
||||||
|
size 1027192
|
16
neochat-24.08.2.tar.xz.sig
Normal file
16
neochat-24.08.2.tar.xz.sig
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQIzBAABCgAdFiEE2BwMs463Je9mkcOFu0YzUNbvMe8FAmcGk4kACgkQu0YzUNbv
|
||||||
|
Me8e9Q/+LTIxIAfoDPOM1KjqErxZC9FGfQVewTwQhE7G3+zsXmydxk3J0CskKlKL
|
||||||
|
3FrbKJKE5APPJU33fnGRK+5mBpF9ZlnfD4p6eN8Cj//8M09M8NOHK1uTeNXzxD9L
|
||||||
|
YTFkJftkW8lGqAoFE6xOPqJz3enZrnpjoH5tisRp6UHRgAjSL72yljVL5PPID1Rn
|
||||||
|
aTISvCvPd3efKDdTiLJozYCSzboH5hJI4t3Unq9EACBXCnpecFZGQaFx/IGkm+wc
|
||||||
|
VF46g6YPV5wnYseqYrmS2esCBrdDz7DmT2chfeeJz42HkhmVUpqzyWs00tTo3j6n
|
||||||
|
cHcsOv5IFpHe9ryxnHPBfeh4uSnVvHMpDpeFbjWvQqF3zssiJNMluqiXAKKyHK2e
|
||||||
|
W5WJZd5+gSerSNDEnNUnCiX6hVhJ2+EN1Ez5CINJferJx7yp9Vz+Gsh3119E6chs
|
||||||
|
x/x9qJS3Jtibi4gKKZq+dKFEzGiaFyUcBG9iXM864rrzKumZ4cATmar8ik7x35Sh
|
||||||
|
tp6B8IvklMREZz4t327eV8l8FtbogEanvNFKyv+bohDAzyDgNG9eRvCLto4W9/ab
|
||||||
|
2QZVydVru1hnbQRgg1UcxNe/WIqex4zLS5hSUpISWmxanJGGzGJn4z8lUQxs14GF
|
||||||
|
/jQjwN5DIpa90Rcl9OY9KKNNd6ZTbN5V9M0dGBLENJuThx/Hf6E=
|
||||||
|
=w8nA
|
||||||
|
-----END PGP SIGNATURE-----
|
3
neochat-24.08.3.tar.xz
Normal file
3
neochat-24.08.3.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:f28988f68ebf405b0c448ab9f8e4ddace819e08e86fad9d6b2149bb98e7d0f09
|
||||||
|
size 1031148
|
16
neochat-24.08.3.tar.xz.sig
Normal file
16
neochat-24.08.3.tar.xz.sig
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQIzBAABCgAdFiEE2BwMs463Je9mkcOFu0YzUNbvMe8FAmcpZPAACgkQu0YzUNbv
|
||||||
|
Me+WHg/8CZJFrkPTvJ9r/hYwLheQhvgBqfcU4HnxM/IDss62ckeba3XQohMg5xze
|
||||||
|
jxgPq72zVRAB9UDN4srpsUH2JKdmKgEbYJP1MLzr9x7074mh7c8Ooa0iyMDrrlGR
|
||||||
|
+NfHU7vBCphUYd6oSEMzoOnV03pWAQ5o3nz7YW5+syZrJgnhbPbqZ9YXVrGcDuZy
|
||||||
|
wbrEjEnPXy9StPKi8M+kbr8ufHardBfgoccYr7Vn8ONeLm6iEzmnT8CjDumAZBSL
|
||||||
|
I28ZpO6dn3+5zbdtUDe2EkFNqzQvrlSVPornFtSpl1wfnmBwwCdBRjiuy1FFLUF0
|
||||||
|
YCB0W6Boog1S62j10pWaQl5zrHjJbT/+QTkzSTtp4x6GWwk0k5L/jOTrwe3NUVEO
|
||||||
|
Ztc4MGO2vDw5OZ7QjGPGa/YxWAwvx1lnyHpxz+DiXKGZQ9Ry0rILg/sOMkHnI0s7
|
||||||
|
BtM7KW4b160MCLP7Z2iIXx6GWJBL94/VLM3+quJ5ou7z9rxYHgyLJsbTrE38X1Af
|
||||||
|
WkXoixjJRH4BYVBe/xyyu4x2y/bNC270CH/t7CdA2ZPZcFa6TV7LfSxi9taqMuPe
|
||||||
|
K4DX3Hfh8+f47+/KZ7KivCqtLEpldYIpTEGCa59po+ueIxAXstr/CYscZ7GXjne5
|
||||||
|
m4c9gFkcPbXwseOh+8KsjiMjIHLj1xWvdhnkYYT6WuyDgvG2jVw=
|
||||||
|
=seO3
|
||||||
|
-----END PGP SIGNATURE-----
|
588
neochat.changes
Normal file
588
neochat.changes
Normal file
@ -0,0 +1,588 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Nov 13 09:31:29 UTC 2024 - Adam Mizerski <adam@mizerski.pl>
|
||||||
|
|
||||||
|
- enabled support for KUnifiedPush
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Nov 5 10:44:14 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 24.08.3
|
||||||
|
* New bugfix release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/24.08.3/
|
||||||
|
- Changes since 24.08.2:
|
||||||
|
* Cherry pick compatability changes for libquotient 0.9
|
||||||
|
* snap: add snap package
|
||||||
|
- Drop patch, merged upstream:
|
||||||
|
* 0001-Cherry-pick-compatability-changes-for-libquotient-0.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Oct 28 07:59:23 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Add upstream change:
|
||||||
|
* 0001-Cherry-pick-compatability-changes-for-libquotient-0.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Oct 8 12:02:28 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 24.08.2
|
||||||
|
* New bugfix release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/24.08.2/
|
||||||
|
- Changes since 24.08.1:
|
||||||
|
* Fix for not rendering html in replies
|
||||||
|
* Fix compilation
|
||||||
|
* Fix compilation against changes in libQuotient
|
||||||
|
* Adapt to libQuotient changes
|
||||||
|
* Unify redaction handling
|
||||||
|
* Escape html from redaction message
|
||||||
|
* Ensure floating buttons have correct size on mobile
|
||||||
|
* Make sure that m_components cannot be accessed out of bounds in closeLinkPreview
|
||||||
|
* Fix NeoChatRoom::directChatRemoteMember (kde#492733)
|
||||||
|
* Fix crash in MessageContentModel
|
||||||
|
* Fix display name in verification message
|
||||||
|
* Fix filtering users in the member list
|
||||||
|
* Don't open a room by default on mobile
|
||||||
|
* Fix increasing font size of certain emojis
|
||||||
|
* Use autoTransform on images
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Sep 10 14:11:42 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 24.08.1
|
||||||
|
* New bugfix release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/24.08.1/
|
||||||
|
- Changes since 24.08.0:
|
||||||
|
* Web Shortcuts: kcmshell5 does not exist anymore on Plasma 6
|
||||||
|
* LocationHelper: Move clamp from zoomToFit to QML
|
||||||
|
* AuthorDelegate: Don't make empty space clickable
|
||||||
|
* AuthorDelegate: Add pointing hand cursor to indicate you can tap
|
||||||
|
* Make the SectionDelegate look just a little bit better
|
||||||
|
* Fix pending indicator
|
||||||
|
* Use plaintext for reply author component
|
||||||
|
* Don't run QtKeychain job in a nested event loop
|
||||||
|
* Adapt to libQuotient API change
|
||||||
|
* Ensure that room list does not show rooms without title during startup
|
||||||
|
* Include missing ECMQmlModule
|
||||||
|
* Re-add pending event indicator (kde#491277)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Aug 19 07:14:43 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 24.08.0
|
||||||
|
* New feature release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/24.08.0/
|
||||||
|
- Too many changes since 24.05.2, only listing bugfixes:
|
||||||
|
* Re-add pending event indicator (kde#491277)
|
||||||
|
* Only enable taphandler for mouse clicks (kde#486545)
|
||||||
|
* GlobalMenu: remove shortcut for QuickSwitcher (kde#488212)
|
||||||
|
* Make notifications more useful (kde#475228)
|
||||||
|
* Use simpler and less restrictive server url regex (kde#486888)
|
||||||
|
* Make sure to ask before leaving a room (kde#486546)
|
||||||
|
* Push ImageEditorPage using pushDialogLayer (kde#486315)
|
||||||
|
* Fix the master show link preview setting and add back the per room setting (kde#486126)
|
||||||
|
* Fix Roomlist Shortcuts (kde#485949)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jul 2 13:55:13 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 24.05.2
|
||||||
|
* New bugfix release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/24.05.2/
|
||||||
|
- Changes since 24.05.1:
|
||||||
|
* GlobalMenu: remove shortcut for QuickSwitcher (kde#488212)
|
||||||
|
* Fix global menu
|
||||||
|
* CI: Disable requiring Windows tests passing
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jun 12 07:34:49 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 24.05.1
|
||||||
|
* New bugfix release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/24.05.1/
|
||||||
|
- Changes since 24.05.0:
|
||||||
|
* Fix keyboard navigation on search pages
|
||||||
|
* Fix the tooltips for the two drawer buttons at the top
|
||||||
|
* Fix keyboard navigation in space drawer
|
||||||
|
* Add keyboard navigation for server selection in room search dialog
|
||||||
|
* Remove room member highlight on click
|
||||||
|
* Use Qt.alpha in ThemeRadioButton
|
||||||
|
* Add focus border for the theme radio button, used on the Appearance page
|
||||||
|
* Fix QR code not showing when tapping the button under account settings
|
||||||
|
* Fix map copyright link activation
|
||||||
|
* Don't show the map if there's no locations available
|
||||||
|
* Fixup AttachDialog
|
||||||
|
* CreateRoomDialog: Add missing formcard separators
|
||||||
|
* Fix if X11 on apple
|
||||||
|
* Cleanup quick switcher
|
||||||
|
* Fix spacing of HiddenDelegate
|
||||||
|
* Fix micro spacing inconsistency in SpaceHierarchyDelegate
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun May 19 09:57:37 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 24.05.0
|
||||||
|
* New feature release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/24.05.0/
|
||||||
|
- Changes since 24.04.80:
|
||||||
|
* Fix module
|
||||||
|
* Adapt to behavior change in libQuotient
|
||||||
|
* Push ImageEditorPage using pushDialogLayer (kde#486315)
|
||||||
|
* Fix opening room on mobile
|
||||||
|
* Fix AddServerSheet
|
||||||
|
* Revert "Preserve mx-reply in the edited message if it exists"
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri May 3 09:17:23 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 24.04.80
|
||||||
|
* New feature release
|
||||||
|
- Too many changes since 24.02.2, only listing bugfixes:
|
||||||
|
* Fix Roomlist Shortcuts (kde#485949)
|
||||||
|
* Fix Verification Window Sizing (kde#485309)
|
||||||
|
* Linkpreviewer Improvements (kde#484927)
|
||||||
|
* Re-add requirement for having devtools active for the show message source action (kde#485140)
|
||||||
|
* Only ask for URL opening confirmation for QR codes (kde#484870)
|
||||||
|
* Add "Leave room" button to sidebar (kde#484425)
|
||||||
|
* UserInfo compact (kde#482261)
|
||||||
|
* Remove external room window feature (kde#455984)
|
||||||
|
* Support selected text for replies in the right click menu (kde#463885)
|
||||||
|
* Don't Maximize Stickers (kde#482701)
|
||||||
|
* Fix Message Components for Tags with Attributes (kde#482331)
|
||||||
|
* Fix crash when visiting user (kde#483744)
|
||||||
|
* Remove manual window toggling for system tray icon (kde#479721)
|
||||||
|
* Favourites -> Favorites (kde#481814)
|
||||||
|
* Port RoomList to TreeView (kde#456643)
|
||||||
|
* Move notifications button to space drawer. (kde#479051)
|
||||||
|
* Readonly Room (kde#479590)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Apr 9 18:09:45 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 24.02.2
|
||||||
|
* New bugfix release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/24.02.2/
|
||||||
|
- Changes since 24.02.1:
|
||||||
|
* Fix crash when visiting user (kde#483744)
|
||||||
|
* Add back Appimage job, it is fixed now
|
||||||
|
* Remove craft-appimage-qt6
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Mar 19 15:27:55 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 24.02.1
|
||||||
|
* New bugfix release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/24.02.1/
|
||||||
|
- Changes since 24.02.0:
|
||||||
|
* Fix the quick format bar not actually doing anything
|
||||||
|
* Exclude lonely question marks from the linkify regex
|
||||||
|
* Don't destroy formatting when editing previous messages
|
||||||
|
* Prevent collision between KUnifiedPush DBus and KRunner DBus
|
||||||
|
* This is no longer needed now that ECM 6.0.0 is available
|
||||||
|
* Create an APPX package for NeoChat 24.02
|
||||||
|
* Remove manual window toggling for system tray icon (kde#479721)
|
||||||
|
* Don't link KDBusAddons on windows
|
||||||
|
* Don't require kirigami-addons master
|
||||||
|
* flatpak: Switch to non-preview runtime
|
||||||
|
* Fix (un)ignoring unknown users
|
||||||
|
* Fix saving images from maximize component
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Feb 29 14:33:12 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update the kquickimageeditor build requirement
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Feb 23 14:00:53 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 24.02.0
|
||||||
|
* New feature release
|
||||||
|
- Changes since 24.01.95:
|
||||||
|
* Fix saving images from maximize component
|
||||||
|
* Add feature flag for reply in thread
|
||||||
|
* Add neochat 24.02 release note
|
||||||
|
* Fix reaction update event when the event is not there anymore
|
||||||
|
* Fix reaction delegate sizing for text reaction
|
||||||
|
* Skip Welcome screen when there's only one connection and it's loaded
|
||||||
|
* Allow dropping connections from the welcome page
|
||||||
|
* Show custom emoji reactions as per MSC4027
|
||||||
|
* Fix AudioDelegate playback
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Feb 9 16:10:01 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 24.01.95
|
||||||
|
* https://kde.org/announcements/megarelease/6/rc2/
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Dec 5 14:20:34 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 23.08.4
|
||||||
|
* New bugfix release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/23.08.4/
|
||||||
|
- Changes since 23.08.3:
|
||||||
|
* Build Windows installers on invent
|
||||||
|
* Fix crash for forbidden non-mxc media (kde#476698)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Nov 7 17:05:35 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 23.08.3
|
||||||
|
* New bugfix release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/23.08.3/
|
||||||
|
- Changes since 23.08.2:
|
||||||
|
* snapcraft: remove dbus slots rejected by store.
|
||||||
|
* Add CI template for building APKs
|
||||||
|
* snapcraft: Fix libsecret support! BUndle gnomekeychain.
|
||||||
|
Set XDG variables so it finds keychain. Update qtkeychain.
|
||||||
|
* snapcraft: initial import snapcraft files.
|
||||||
|
* Use KF5 version of kirigami-addons in flatpak builds
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Oct 10 18:28:21 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 23.08.2
|
||||||
|
* New bugfix release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/23.08.2/
|
||||||
|
- No code change since 23.08.1
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Sep 12 11:56:49 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 23.08.1
|
||||||
|
* New bugfix release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/23.08.1/
|
||||||
|
- Changes since 23.08.0:
|
||||||
|
* Use shortcode as a fallback for body when sending stickers
|
||||||
|
* Add cmake check for qtlocation QML module
|
||||||
|
* Add Windows-specific screenshots as screenshots with custom attribute
|
||||||
|
* Deselect space when leaving it (kde#473271)
|
||||||
|
* Fix opening settings (kde#473789)
|
||||||
|
* Fix opening report sheet
|
||||||
|
* Force plain text user display name in user detail sheet
|
||||||
|
* Fix opening ban sheet
|
||||||
|
* Add release note for last two version
|
||||||
|
* Remove debuging value
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Sep 4 06:38:34 UTC 2023 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
|
||||||
|
- Add some qt5qmlimport runtime deps (boo#1214916)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Aug 20 14:00:22 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 23.08.0
|
||||||
|
* New feature release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/23.08.0/
|
||||||
|
- Changes since 23.07.90:
|
||||||
|
* Don't inherit color in TimelineContainer
|
||||||
|
* Use view-list-details instead of expand icon in room drawer
|
||||||
|
* Destroy the correct component in space list context menu
|
||||||
|
* Prevent the TapHandler in AvatarTabButton from triggering clicked()
|
||||||
|
* Add icons to the space list context menu items
|
||||||
|
* Prevent the chat bar from pasting a local file URL if we save the bitmap
|
||||||
|
* Ensure that the notification avatar is drawn with no pen
|
||||||
|
* Further notification avatar improvements
|
||||||
|
* Fix the account switcher width so it doesn't spill off the side
|
||||||
|
* Pick a better shadow and clean up emoji popup backgrounds
|
||||||
|
* Don't clip the emoji popups as they destroy shadows
|
||||||
|
* Improve tooltips in chatbar
|
||||||
|
* Wrap room display name in Room Drawer
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Aug 14 08:03:38 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 23.07.90
|
||||||
|
* New feature release
|
||||||
|
- Changes since 23.07.80:
|
||||||
|
* Display big emoji correctly
|
||||||
|
* Force plain text in room delegate
|
||||||
|
* Remove leftover debug statement
|
||||||
|
* Fix last active time in devices page
|
||||||
|
* Redesign timeline
|
||||||
|
* Fix opening account menu on right click
|
||||||
|
* Html-escape display names in state delegates
|
||||||
|
* Fix room list icon size in compact room list (kde#472682)
|
||||||
|
* Fix compilation with e2ee disabled
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Aug 1 10:14:34 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 23.07.80
|
||||||
|
* New feature release
|
||||||
|
- Too many changes since 23.04.3, only listing bugfixes:
|
||||||
|
* Fix toolbar of RoomList when using font size 11px (kde#467242)
|
||||||
|
* Don't try getting data for invalid indices (kde#470639)
|
||||||
|
* Refactor login (kde#469486)
|
||||||
|
* Improve Delegate Width Sizing (kde#470167)
|
||||||
|
* Fix replying and editing from chatbox (kde#469733)
|
||||||
|
* Fix the room timeline being dragged when selecting text (kde#467163)
|
||||||
|
* Focus message search window's search field by default (kde#469879)
|
||||||
|
* Cache last event (kde#455042)
|
||||||
|
* Add more bottom margin (kde#469616)
|
||||||
|
* Fix autocompletion not working (kde#468967)
|
||||||
|
* Remove Unread Count (kde#466515)
|
||||||
|
* Fix regressions from RoomPage refactoring (kde#469427)
|
||||||
|
* Improve RoomDrawer for direct chats (kde#466895)
|
||||||
|
* Prevent crash in SyntaxHighlighter when leaving room (kde#467722)
|
||||||
|
* Fix handling line separators (kde#468977)
|
||||||
|
* Fix Ctrl+Shift+, opening settings (kde#469057)
|
||||||
|
* Fix room search field shortcut (kde#469059)
|
||||||
|
* Fix Chat bubble background changing color when created (kde#468124)
|
||||||
|
* Fix Long Topics in the RoomDrawer Overflowing (kde#467512)
|
||||||
|
* Don't crash in UserListModel when there is no room (kde#466045)
|
||||||
|
* Fix state event visiblity in timeline (kde#455048)
|
||||||
|
* Improve Text Handling (kde#463932)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jul 4 10:20:37 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 23.04.3
|
||||||
|
* New bugfix release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/23.04.3/
|
||||||
|
- No code change since 23.04.2
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jun 6 20:01:53 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 23.04.2
|
||||||
|
* New bugfix release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/23.04.2/
|
||||||
|
- Changes since 23.04.1:
|
||||||
|
* Focus message search window's search field by default (kde#469879)
|
||||||
|
* Fix asan runtime error in texthandler
|
||||||
|
* Update appstream description
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue May 9 10:47:51 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 23.04.1
|
||||||
|
* New bugfix release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/23.04.1/
|
||||||
|
- Changes since 23.04.0:
|
||||||
|
* Don't enforce tests on windows Qt6
|
||||||
|
* Fix handling line separators (kde#468977)
|
||||||
|
* Prevent crash in SyntaxHighlighter when leaving room (kde#467722)
|
||||||
|
* Add loading title to LoadingPage
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Apr 15 08:46:39 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 23.04.0
|
||||||
|
* New feature release
|
||||||
|
* For more details please see:
|
||||||
|
* https://kde.org/announcements/gear/23.04.0/
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Mar 31 16:42:43 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 23.03.90
|
||||||
|
* New feature release
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Mar 18 18:47:55 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 23.03.80
|
||||||
|
* New feature release
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Feb 15 21:27:24 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 23.01.0
|
||||||
|
* notifications are now shown for all accounts
|
||||||
|
* new compact mode for the room list
|
||||||
|
* searching in history is now possible
|
||||||
|
* emojis and reactions improvements
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jan 23 12:19:20 UTC 2023 - Tamara Schmitz <tschmitz@suse.com>
|
||||||
|
|
||||||
|
- update to 22.11:
|
||||||
|
* work on end-to-end encryption implementation
|
||||||
|
* configuration settings ported to new form components
|
||||||
|
* new settings component for managing notifications settings
|
||||||
|
* add proxy configuration menu
|
||||||
|
* added developer tools for inspecting raw matrix events
|
||||||
|
* added confirmation dialog when signing out and when enabling end-to-end encryption
|
||||||
|
* rewrite of theaccount switcher
|
||||||
|
- fix buildrequires, remove redundant requires
|
||||||
|
- fix permissions of license file
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 29 19:55:16 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- update to 22.09:
|
||||||
|
* implemented support for configuring notifications on a per-room basis. As
|
||||||
|
part of his GSoC project, Snehit added a space selector to the room list,
|
||||||
|
which allows filtering the room list for rooms included in the selected
|
||||||
|
space. James also reworked the timeline layout to make it look nicer when
|
||||||
|
the window is very wide. There have also been a ton of other fixes and
|
||||||
|
improvements in translations, the layout and the stability of NeoChat.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Aug 5 06:07:29 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Use GCC 10 to build neochat on Leap.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Aug 3 07:56:35 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- update to 22.06:
|
||||||
|
* Sending of typing notifications can now be disabled.
|
||||||
|
* In the room list, the scrollbar will now disappear correctly when it is not needed.
|
||||||
|
* On wayland, NeoChat will now raise correctly when clicking on a notification.
|
||||||
|
* Several bugs have been fixed that would sometimes cause messages containing
|
||||||
|
markdown and/or HTML elements to be sent incorrectly.
|
||||||
|
* The quick switcher can now be controlled using the mouse.
|
||||||
|
* There is now an option to disable automatic room sidebar opening when
|
||||||
|
resizing the window.
|
||||||
|
* Creation of custom emojis has been fixed.
|
||||||
|
* Editing or replying to the last message using the keyboard shortcuts now
|
||||||
|
works correctly.
|
||||||
|
* When switching between rooms using the keyboard, the switching direction is
|
||||||
|
now correct.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Mar 22 09:03:48 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update the QCoro build dependency.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Feb 9 19:07:37 UTC 2022 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
|
||||||
|
- Update to 22.02:
|
||||||
|
* Implement sharing with Purpose (export)
|
||||||
|
* Implement adding labels for account
|
||||||
|
* Give settings window a title
|
||||||
|
* Reduce minimum height of the window
|
||||||
|
* Fix build with qcoro 0.4
|
||||||
|
* Fix issues with saveFileAs
|
||||||
|
* Changed “Settings” to “Configure NeoChat” in menu
|
||||||
|
* Improve toolbar on mobile
|
||||||
|
* Improve emoji pane
|
||||||
|
* Check if password can be changed
|
||||||
|
* Fix image tooltip
|
||||||
|
* Adapt list setting pages to new style
|
||||||
|
* Allow using ESC to go back to room list
|
||||||
|
* Port away from QNetworkConfigurationManager
|
||||||
|
* Remove lag when starting user autocompletion
|
||||||
|
* Set single window hint in desktop file
|
||||||
|
* Make room address selectable
|
||||||
|
* Display monochrome icon in tray
|
||||||
|
* Fix QuickSwitcher activation
|
||||||
|
* Fix Windows/mac build
|
||||||
|
* Fix notifications on Android
|
||||||
|
* Support raising when we receive a notification
|
||||||
|
* Don’t render html in RoomDrawer heading
|
||||||
|
* Add support for minimizing to system tray on startup
|
||||||
|
* Use non blocking passord reading
|
||||||
|
* Add a mobile oriented context menu for the room list
|
||||||
|
* Fix loading room settings on mobile
|
||||||
|
* Use icon from qrc for system tray icon
|
||||||
|
* Adapt to libQuotient API change
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Feb 7 16:09:09 UTC 2022 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
|
||||||
|
- Update to 21.12:
|
||||||
|
* Solved various problems related to login, logout and account switching
|
||||||
|
* Fixed a few problems in the timeline layout
|
||||||
|
* Added Spell checking while writing a message
|
||||||
|
* Improved Settings pages
|
||||||
|
* Many improvements to the android and general mobile support
|
||||||
|
* Show blurhashes while images load
|
||||||
|
* Support showing custom emojis
|
||||||
|
* Added a global menu
|
||||||
|
* Added support for spoilers
|
||||||
|
* Added a quick switcher to switch between rooms
|
||||||
|
* Added support for an optional fancy blur background effect
|
||||||
|
* Resizable left and right drawers
|
||||||
|
* Added Syntax highlighting in raw json messages
|
||||||
|
* Better wayland support
|
||||||
|
* Improved file reception and download
|
||||||
|
- Part of Plasma Mobile Gear now, adjust URL and neochat.keyring
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Jun 26 09:38:16 UTC 2021 - ecsos <ecsos@opensuse.org>
|
||||||
|
|
||||||
|
- Fix build error.
|
||||||
|
- Add missig cmark which will not be install with libcmark-devel.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jun 1 14:04:23 UTC 2021 - Paolo Stivanin <info@paolostivanin.com>
|
||||||
|
|
||||||
|
- Update to 1.2.0
|
||||||
|
* major UI redesign
|
||||||
|
* chage page is now using bubbles
|
||||||
|
* it's now possible to send custom reactions by replying
|
||||||
|
to a comment with /react <message>
|
||||||
|
* now supports opening Matrix URI from the web browser
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Feb 25 18:52:07 UTC 2021 - ecsos <ecsos@opensuse.org>
|
||||||
|
|
||||||
|
- Update to 1.1.1
|
||||||
|
- First launch experience improvements
|
||||||
|
- Allow logins to servers requiring SSO
|
||||||
|
- Display stickers
|
||||||
|
- Allow editing messages
|
||||||
|
- Multimodal mode to open a room into a new window
|
||||||
|
- New chat commands
|
||||||
|
- Better Plasma integration
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Feb 15 00:33:01 UTC 2021 - Tomas Cech <sleep_walker@opensuse.org>
|
||||||
|
|
||||||
|
- Add missing require libqt5-qtquickcontrols again.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Jan 16 10:14:57 UTC 2021 - Luca Beltrame <lbeltrame@kde.org>
|
||||||
|
|
||||||
|
- Adjust spec file to conform to the KDE team's guidelines
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jan 13 11:49:59 UTC 2021 - ecsos <ecsos@opensuse.org>
|
||||||
|
|
||||||
|
- Update to 1.0.1
|
||||||
|
- NeoChat doesn't require a .well-know configuration in the
|
||||||
|
server to work.
|
||||||
|
- Edited messages won’t show up duplicated anymore.
|
||||||
|
- NeoChat now ask for consent to terms and conditions if required
|
||||||
|
instead of displaying nothing.
|
||||||
|
- Users avatar in the room list are now displayed correctly.
|
||||||
|
- Fix image saving
|
||||||
|
- Various graphic glitches have been fixed.
|
||||||
|
- Switch source from invent.kde.org to download.kde.org, because in
|
||||||
|
git is not always the newest tar.
|
||||||
|
- Add language subpackages.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jan 4 14:16:53 UTC 2021 - ecsos <ecsos@opensuse.org>
|
||||||
|
|
||||||
|
- Add missing require libqt5-qtquickcontrols.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Dec 23 14:17:40 UTC 2020 - ecsos <ecsos@opensuse.org>
|
||||||
|
|
||||||
|
- Change from git version to version 1.0
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Nov 23 15:12:10 UTC 2020 - Dead Mozay <dead_mozay@opensuse.org>
|
||||||
|
|
||||||
|
- Initial package
|
126
neochat.spec
Normal file
126
neochat.spec
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
#
|
||||||
|
# spec file for package neochat
|
||||||
|
#
|
||||||
|
# Copyright (c) 2024 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%define kf6_version 6.3.0
|
||||||
|
%define qt6_version 6.6.0
|
||||||
|
|
||||||
|
%bcond_without released
|
||||||
|
Name: neochat
|
||||||
|
Version: 24.08.3
|
||||||
|
Release: 0
|
||||||
|
Summary: A chat client for Matrix, the decentralized communication protocol
|
||||||
|
License: BSD-2-Clause AND GPL-3.0-only AND GPL-3.0-or-later
|
||||||
|
Group: Productivity/Networking/Instant Messenger
|
||||||
|
URL: https://apps.kde.org/neochat/
|
||||||
|
Source0: https://download.kde.org/stable/release-service/%{version}/src/%{name}-%{version}.tar.xz
|
||||||
|
%if %{with released}
|
||||||
|
Source1: https://download.kde.org/stable/release-service/%{version}/src/%{name}-%{version}.tar.xz.sig
|
||||||
|
Source2: applications.keyring
|
||||||
|
%endif
|
||||||
|
# Needed for leap 15.5
|
||||||
|
BuildRequires: cmark
|
||||||
|
BuildRequires: fdupes
|
||||||
|
BuildRequires: kf6-extra-cmake-modules >= %{kf6_version}
|
||||||
|
# Both kquickimageeditor flavors provide the same CMake target name, use the devel package name instead
|
||||||
|
# BuildRequires: cmake(KQuickImageEditor)
|
||||||
|
BuildRequires: kquickimageeditor6-devel
|
||||||
|
BuildRequires: pkgconfig
|
||||||
|
BuildRequires: cmake(KF6ColorScheme) >= %{kf6_version}
|
||||||
|
BuildRequires: cmake(KF6Config) >= %{kf6_version}
|
||||||
|
BuildRequires: cmake(KF6CoreAddons) >= %{kf6_version}
|
||||||
|
BuildRequires: cmake(KF6Crash) >= %{kf6_version}
|
||||||
|
BuildRequires: cmake(KF6DBusAddons) >= %{kf6_version}
|
||||||
|
BuildRequires: cmake(KF6DocTools) >= %{kf6_version}
|
||||||
|
BuildRequires: cmake(KF6I18n) >= %{kf6_version}
|
||||||
|
BuildRequires: cmake(KF6ItemModels) >= %{kf6_version}
|
||||||
|
BuildRequires: cmake(KF6KIO) >= %{kf6_version}
|
||||||
|
BuildRequires: cmake(KF6Kirigami) >= %{kf6_version}
|
||||||
|
BuildRequires: cmake(KF6KirigamiAddons) >= 0.7.2
|
||||||
|
BuildRequires: cmake(KF6Notifications) >= %{kf6_version}
|
||||||
|
BuildRequires: cmake(KF6Purpose) >= %{kf6_version}
|
||||||
|
BuildRequires: cmake(KF6QQC2DesktopStyle) >= %{kf6_version}
|
||||||
|
BuildRequires: cmake(KF6Sonnet) >= %{kf6_version}
|
||||||
|
BuildRequires: cmake(KF6StatusNotifierItem) >= %{kf6_version}
|
||||||
|
BuildRequires: cmake(KF6SyntaxHighlighting) >= %{kf6_version}
|
||||||
|
BuildRequires: cmake(KF6WindowSystem) >= %{kf6_version}
|
||||||
|
BuildRequires: cmake(KUnifiedPush)
|
||||||
|
BuildRequires: cmake(QCoro6Core)
|
||||||
|
BuildRequires: cmake(Qt6Core) >= %{qt6_version}
|
||||||
|
BuildRequires: cmake(Qt6Gui) >= %{qt6_version}
|
||||||
|
BuildRequires: cmake(Qt6Multimedia) >= %{qt6_version}
|
||||||
|
BuildRequires: cmake(Qt6Quick) >= %{qt6_version}
|
||||||
|
BuildRequires: cmake(Qt6QuickControls2) >= %{qt6_version}
|
||||||
|
BuildRequires: cmake(Qt6Svg) >= %{qt6_version}
|
||||||
|
BuildRequires: cmake(Qt6WebView) >= %{qt6_version}
|
||||||
|
BuildRequires: cmake(Qt6Widgets) >= %{qt6_version}
|
||||||
|
BuildRequires: cmake(QuotientQt6) >= 0.7.0
|
||||||
|
BuildRequires: pkgconfig(icu-uc) >= 61.0
|
||||||
|
BuildRequires: pkgconfig(libcmark)
|
||||||
|
# It can only build on the same platforms as Qt Webengine
|
||||||
|
ExclusiveArch: x86_64 %{x86_64} aarch64 riscv64
|
||||||
|
Requires: kf6-kirigami-imports >= %{kf6_version}
|
||||||
|
Requires: kf6-kitemmodels-imports >= %{kf6_version}
|
||||||
|
Requires: kf6-kquickcharts >= %{kf6_version}
|
||||||
|
Requires: kf6-prison-imports >= %{kf6_version}
|
||||||
|
Requires: kf6-qqc2-desktop-style >= %{kf6_version}
|
||||||
|
Requires: kf6-syntax-highlighting-imports >= %{kf6_version}
|
||||||
|
Requires: kirigami-addons6 >= 0.7.2
|
||||||
|
Requires: qt6-location >= %{qt6_version}
|
||||||
|
Requires: qt6-positioning-imports >= %{qt6_version}
|
||||||
|
Requires: qt6qmlimport(org.kde.kquickimageeditor.1)
|
||||||
|
|
||||||
|
%description
|
||||||
|
Neochat is a client for Matrix, the decentralized communication protocol for
|
||||||
|
instant messaging.
|
||||||
|
|
||||||
|
%lang_package
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
%cmake_kf6
|
||||||
|
|
||||||
|
%kf6_build
|
||||||
|
|
||||||
|
%install
|
||||||
|
%kf6_install
|
||||||
|
|
||||||
|
%fdupes %{buildroot}
|
||||||
|
|
||||||
|
%find_lang %{name} --all-name --with-man
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSES/*
|
||||||
|
%doc README.md
|
||||||
|
%{_kf6_applicationsdir}/org.kde.neochat.desktop
|
||||||
|
%{_kf6_appstreamdir}/org.kde.neochat.appdata.xml
|
||||||
|
%{_kf6_bindir}/neochat
|
||||||
|
%{_kf6_debugdir}/neochat.categories
|
||||||
|
%{_kf6_iconsdir}/hicolor/*/apps/org.kde.neochat.svg
|
||||||
|
%{_kf6_iconsdir}/hicolor/scalable/apps/org.kde.neochat.tray.svg
|
||||||
|
%{_kf6_mandir}/man1/neochat.1%{?ext_man}
|
||||||
|
%dir %{_kf6_plugindir}/kf6/purpose
|
||||||
|
%{_kf6_plugindir}/kf6/purpose/neochatshareplugin.so
|
||||||
|
%{_kf6_notificationsdir}/neochat.notifyrc
|
||||||
|
%{_kf6_sharedir}/krunner/dbusplugins/plasma-runner-neochat.desktop
|
||||||
|
%{_kf6_sharedir}/dbus-1/services/org.kde.neochat.service
|
||||||
|
|
||||||
|
%files lang -f %{name}.lang
|
||||||
|
|
||||||
|
%changelog
|
Loading…
Reference in New Issue
Block a user