mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-23 03:18:49 +03:00
Merge remote-tracking branch 'nheko-im/master' into video_player_enhancements
This commit is contained in:
commit
c68c8de74f
6 changed files with 191 additions and 7 deletions
178
CHANGELOG.md
178
CHANGELOG.md
|
@ -1,5 +1,183 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [0.9.0] -- Unreleased
|
||||||
|
|
||||||
|
### Highlights
|
||||||
|
|
||||||
|
- Somewhat stable end to end encryption
|
||||||
|
- Show the room verification status
|
||||||
|
- Configure Nheko to only send to verified users
|
||||||
|
- Store the encryption keys securely in the OS-provided secrets service.
|
||||||
|
- Support online keybackup as well as sharing historical session keys.
|
||||||
|
- Crosssigning bootstrapping
|
||||||
|
- Crosssigning is used to simplify the verification process. In this release
|
||||||
|
Nheko can setup crosssigning on a new account without having to use a
|
||||||
|
different client.
|
||||||
|
- Nheko now also prompts you, if there are any unverified devices and asks you to verify them.
|
||||||
|
- Room directory (Manu)
|
||||||
|
- Search for rooms on your server and other servers. (Prezu)
|
||||||
|
- If their topic interests you and it has the right amount of members, join
|
||||||
|
the room and the discussion!
|
||||||
|
- Custom sticker packs
|
||||||
|
- Add a custom sticker picker, that allows you to send stickers from MSC2545.
|
||||||
|
- Support creating new sticker (and emote) packs.
|
||||||
|
- You can share packs in a room and enable them globally or just for that
|
||||||
|
room.
|
||||||
|
- Token authenticated registration (Callum)
|
||||||
|
- Sign up with a token to servers, that have otherwise disabled registration.
|
||||||
|
- This was done as part of GSoC and makes it easier to run private servers for
|
||||||
|
your family and friends!
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- Support email in registration (required on matrix.org for example)
|
||||||
|
- Warn, if an @room would mention the whole room, because some people don't like that.
|
||||||
|
- Support device removal as well as renaming. (Thulinma)
|
||||||
|
- Show your devices without encryption support, when showing your profile.
|
||||||
|
(Thulinma)
|
||||||
|
- Move to the next room with unread messages by pressing `Alt-A`. (Symphorien)
|
||||||
|
- Support jdenticons as a placeholder for rooms or users without avatars.
|
||||||
|
(LorenDB)
|
||||||
|
- You will need to install https://github.com/Nheko-Reborn/qt-jdenticon
|
||||||
|
- Properly sign macOS builds.
|
||||||
|
- Support animated images like GIF and WebP.
|
||||||
|
- Optionally just play them on hover.
|
||||||
|
- Support accepting knocks in the timeline.
|
||||||
|
- Close a room when clicking it again. (LorenDB)
|
||||||
|
- Close image overlay with escape.
|
||||||
|
- Support .well-known discovery during registration.
|
||||||
|
- Limited spaces support.
|
||||||
|
- No nice display of nested spaces.
|
||||||
|
- No previews of unjoined rooms.
|
||||||
|
- No way to edit a space.
|
||||||
|
- Render room avatar changes in the timeline. (BShipman)
|
||||||
|
- Support pulling out the sidebar to make it wider.
|
||||||
|
- Allow editing pending messages instead of blocking until they are sent.
|
||||||
|
(balsoft)
|
||||||
|
- Support mnemonics in the context menus. (AppAraat)
|
||||||
|
- Support TOFU for encryption. (Trust on first use)
|
||||||
|
- Right click -> copy address location.
|
||||||
|
- Forward messages. (Jedi18)
|
||||||
|
- Alt-F to forward messages.
|
||||||
|
|
||||||
|
### Improvements
|
||||||
|
|
||||||
|
- Tranlation updates:
|
||||||
|
- French by MayeulC, ISSOtm, Glandos, Carl Schwan
|
||||||
|
- Dutch by Thulinma, Bas van Rossem, Glael, Thijs
|
||||||
|
- Esperanto by Tirifto, Colin
|
||||||
|
- Estonian by Priit
|
||||||
|
- Indonesian by Linerly
|
||||||
|
- German by 123, Konstantin, fnetX, Mr. X, CryptKid
|
||||||
|
- Portuguese (Portugal) by Tnpod, Xenovox, Gabriel R
|
||||||
|
- Portuguese (Brazil) by Terry, zerowhy
|
||||||
|
- Finnish by sdrrespudro, Priit
|
||||||
|
- Polish by Prezu, AXD, stabor
|
||||||
|
- Malayalam by vachan-maker
|
||||||
|
- Italian by Daniele, Lorenzo
|
||||||
|
- Spanish by lluise
|
||||||
|
- Russian by kirillpt
|
||||||
|
- Various wording improvements throughout.
|
||||||
|
- Verification status and identity keys should now update properly after login.
|
||||||
|
- Clicking the user in a read receipt opens their profile. (LorenDB)
|
||||||
|
- Invites should now work properly on mobile.
|
||||||
|
- Use the modern notifications on macOS.
|
||||||
|
- Decode blurhashes faster.
|
||||||
|
- Port various dialogs to Qml. (LorenDB)
|
||||||
|
- Improve paste support on Windows, when mimetype detection fails and pasting
|
||||||
|
SVGs (Thulinma)
|
||||||
|
- --help and --version now work, even if Nheko is already running somewhere.
|
||||||
|
- Update emoji support to version 14.
|
||||||
|
- Properly navigate to linked to events. (Thulinma)
|
||||||
|
- Lots of smaller bugfixes and refactorings. (LorenDB)
|
||||||
|
- Scroll entire profile page and properly trim contents. (Thulinma)
|
||||||
|
- Make it easy to switch between global and room specific profiles. (Thulinma)
|
||||||
|
- Deduplicate messages sent by the server. (Thulinma)
|
||||||
|
- Decrease the margin of blockquotes. (tastytea)
|
||||||
|
- Alerts now work, if the homeserver does not implement the notifications
|
||||||
|
endpoint. (Thulinma)
|
||||||
|
- Right click menu now works on replies.
|
||||||
|
- Decrypt encrypted media only in memory.
|
||||||
|
- Don't use CC-BY in the appstream license to not confuse Gnome Software.
|
||||||
|
- Document how to sync the repo on Gentoo. (alfasi)
|
||||||
|
- Support online key backup.
|
||||||
|
- Improve FAQ. (harmathy)
|
||||||
|
- Support Backtab/Shift-Tab for moving backwards in completer selections.
|
||||||
|
- Clear cache to support the new features.
|
||||||
|
- Improve the emoji completer (less jitter and fix places where it didn't open). (Thomaps Karpiniec)
|
||||||
|
- Cleanup @room escape logic.
|
||||||
|
- Improve performance of timeline rendering.
|
||||||
|
- Add fallback for sent stickers, so that they show on iOS.
|
||||||
|
- Load rooms somewhat lazily.
|
||||||
|
- Properly scale avatars to DPI.
|
||||||
|
- Round avatars once in the backend instead of on every render.
|
||||||
|
- Request keys of all members, when opening a room the first time.
|
||||||
|
- Timeout TCP connections, if heartbeat can't be heard.
|
||||||
|
- Change secrets name. You might need to rerequest your secrets after upgrading!
|
||||||
|
- Protect against replay attacks where megolm sessions are reused.
|
||||||
|
- Add "request keys" button to undecryptable messages.
|
||||||
|
- Remove superfluous permissions in Flatpak.
|
||||||
|
- Properly set window parents on Wayland.
|
||||||
|
- Properly show users and allow opening their profiles in the members and read
|
||||||
|
receipt dialogs. (LorenDB)
|
||||||
|
- Use Qt5.15 Connections syntax in Qml.
|
||||||
|
- Remove "respond to keyrequests option". We now reply to the right requests
|
||||||
|
automatically and securely.
|
||||||
|
- Show confirmation prompt when leaving a room.
|
||||||
|
- Add trailing newline to session export for gomuks compatibility.
|
||||||
|
- Use a fancy Nheko logo as the loading indicator.
|
||||||
|
- Improve how the invite dialog handles users. (LorenDB)
|
||||||
|
- Store more data about megolm sessions.
|
||||||
|
- Speed up database queries by caching transactions.
|
||||||
|
- Use curl for network requests.
|
||||||
|
- This removes the boost dependency.
|
||||||
|
- Proxies now work using the usual curl variables.
|
||||||
|
- Fixes a myriad of crashes.
|
||||||
|
- Faster.
|
||||||
|
- Less CPU load.
|
||||||
|
- Less bandwidth usage.
|
||||||
|
- Cleanup user color generation.
|
||||||
|
- Show borders around tables.
|
||||||
|
- Improve wording of a few menu entries. (absorber)
|
||||||
|
- Highlight navigated to message.
|
||||||
|
|
||||||
|
### Bugfixes
|
||||||
|
|
||||||
|
- Redaction of edited messages should now actually show those messages as removed.
|
||||||
|
- Bootstrap after registration should run properly now.
|
||||||
|
- Getting logged out after registration should not happen anymore.
|
||||||
|
- Removed edgecases where identity keys could get uploaded twice.
|
||||||
|
- Fix the event loop when fetching secrets breaking random things like scrolling.
|
||||||
|
- Don't crash when clearing an empty timeline.
|
||||||
|
- Opening an invite in your browser or a matrix: URI should not crash Nheko anymore or do nothing.
|
||||||
|
- When clicking on an item in the roomlist, you don't have to move your mouse anymore, before being able to click again.
|
||||||
|
- Don't hide space childs when viewing that specific space and its children are hidden.
|
||||||
|
- Only allow specific URI schemes to be followed automatically.
|
||||||
|
- Properly hide day change indicator, when loading older messages.
|
||||||
|
- Rotate session properly when 'verified only' is set.
|
||||||
|
- Handle missing keys in key queries properly.
|
||||||
|
- Properly show the window title for Qml dialogs on windows.
|
||||||
|
- Don't show decryption errors in replies.
|
||||||
|
- Don't crash when storing secrets.
|
||||||
|
- Don't send megolm messages to ourselves, if possible.
|
||||||
|
- Fix SSSS without a password.
|
||||||
|
- Fix a few edge cases with OTK upload.
|
||||||
|
- Cache more media properly (i.e. in the Goose Chooser).
|
||||||
|
- Inline images in messages now load properly.
|
||||||
|
- Don't show verification requests after startup.
|
||||||
|
- Emoji picker now follows the theme.
|
||||||
|
- Send less newlines in the reply fallback.
|
||||||
|
- Fix tags going missing when joining spaces.
|
||||||
|
- Handle inline images with single quotes. (Cadair)
|
||||||
|
- Delay key requests until a room is opened.
|
||||||
|
- Fix rooms not showing, when groups endpoint is missing.
|
||||||
|
- Don't use deprecated parameters in /login.
|
||||||
|
- Fix encoding issues when translating matrix.to to matrix: URIs.
|
||||||
|
|
||||||
|
### Packaging changes
|
||||||
|
|
||||||
|
- Removed the AppImage
|
||||||
|
|
||||||
## [0.8.2] -- 2021-04-23
|
## [0.8.2] -- 2021-04-23
|
||||||
|
|
||||||
### Highlights
|
### Highlights
|
||||||
|
|
|
@ -388,7 +388,7 @@ if(USE_BUNDLED_MTXCLIENT)
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
MatrixClient
|
MatrixClient
|
||||||
GIT_REPOSITORY https://github.com/Nheko-Reborn/mtxclient.git
|
GIT_REPOSITORY https://github.com/Nheko-Reborn/mtxclient.git
|
||||||
GIT_TAG fc5d01c775bde656b6d69954189522d138efe022
|
GIT_TAG bacb7e524ff0f38591b88b248d8d8409b7fd49a0
|
||||||
)
|
)
|
||||||
set(BUILD_LIB_EXAMPLES OFF CACHE INTERNAL "")
|
set(BUILD_LIB_EXAMPLES OFF CACHE INTERNAL "")
|
||||||
set(BUILD_LIB_TESTS OFF CACHE INTERNAL "")
|
set(BUILD_LIB_TESTS OFF CACHE INTERNAL "")
|
||||||
|
|
|
@ -163,7 +163,7 @@ modules:
|
||||||
buildsystem: cmake-ninja
|
buildsystem: cmake-ninja
|
||||||
name: mtxclient
|
name: mtxclient
|
||||||
sources:
|
sources:
|
||||||
- commit: fc5d01c775bde656b6d69954189522d138efe022
|
- commit: bacb7e524ff0f38591b88b248d8d8409b7fd49a0
|
||||||
type: git
|
type: git
|
||||||
url: https://github.com/Nheko-Reborn/mtxclient.git
|
url: https://github.com/Nheko-Reborn/mtxclient.git
|
||||||
- config-opts:
|
- config-opts:
|
||||||
|
|
|
@ -2,18 +2,18 @@
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
import Qt.labs.platform 1.1
|
import Qt.labs.platform 1.1 as P
|
||||||
import QtQuick 2.15
|
import QtQuick 2.15
|
||||||
import QtQuick.Controls 2.15
|
import QtQuick.Controls 2.15
|
||||||
import im.nheko 1.0
|
import im.nheko 1.0
|
||||||
|
|
||||||
MessageDialog {
|
P.MessageDialog {
|
||||||
id: logoutRoot
|
id: logoutRoot
|
||||||
|
|
||||||
title: qsTr("Log out")
|
title: qsTr("Log out")
|
||||||
text: CallManager.isOnCall ? qsTr("A call is in progress. Log out?") : qsTr("Are you sure you want to log out?")
|
text: CallManager.isOnCall ? qsTr("A call is in progress. Log out?") : qsTr("Are you sure you want to log out?")
|
||||||
modality: Qt.WindowModal
|
modality: Qt.WindowModal
|
||||||
flags: Qt.Tool | Qt.WindowStaysOnTopHint | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
flags: Qt.Tool | Qt.WindowStaysOnTopHint | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
||||||
buttons: MessageDialog.Ok | MessageDialog.Cancel
|
buttons: P.MessageDialog.Ok | P.MessageDialog.Cancel
|
||||||
onAccepted: Nheko.logout()
|
onAccepted: Nheko.logout()
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,6 +81,7 @@ ApplicationWindow {
|
||||||
userid: model.mxid
|
userid: model.mxid
|
||||||
url: model.avatarUrl.replace("mxc://", "image://MxcImage/")
|
url: model.avatarUrl.replace("mxc://", "image://MxcImage/")
|
||||||
displayName: model.displayName
|
displayName: model.displayName
|
||||||
|
enabled: false
|
||||||
}
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
|
|
||||||
#include "CacheCryptoStructs.h"
|
#include "CacheCryptoStructs.h"
|
||||||
#include "CacheStructs.h"
|
#include "CacheStructs.h"
|
||||||
|
#include "Logging.h"
|
||||||
|
|
||||||
class Cache : public QObject
|
class Cache : public QObject
|
||||||
{
|
{
|
||||||
|
@ -518,8 +519,12 @@ private:
|
||||||
while (cursor.get(typeStrV, data, first ? MDB_FIRST_DUP : MDB_NEXT_DUP)) {
|
while (cursor.get(typeStrV, data, first ? MDB_FIRST_DUP : MDB_NEXT_DUP)) {
|
||||||
first = false;
|
first = false;
|
||||||
|
|
||||||
if (eventsDb.get(txn, json::parse(data)["id"].get<std::string>(), value))
|
try {
|
||||||
events.push_back(json::parse(value).get<mtx::events::StateEvent<T>>());
|
if (eventsDb.get(txn, json::parse(data)["id"].get<std::string>(), value))
|
||||||
|
events.push_back(json::parse(value).get<mtx::events::StateEvent<T>>());
|
||||||
|
} catch (std::exception &e) {
|
||||||
|
nhlog::db()->warn("Failed to parse state event: {}", e.what());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue