Commit graph

2517 commits

Author SHA1 Message Date
Nicolas Werner
f1a23355bd
Port usersettings to qml 2022-01-09 01:02:25 +01:00
Nicolas Werner
8d52c17f29
Work around images with size 0 in info
fixes #875
2022-01-04 05:19:48 +01:00
Nicolas Werner
970ed56fa5
Fix presence db creation on servers without presence
fixes #873
2022-01-03 15:33:36 +01:00
Nicolas Werner
6d4ff70b48
Add minimum scale in image viewer 2022-01-03 04:00:21 +01:00
Nicolas Werner
f14f978c48
Possibly fix crash on accepting invites
fixes #857
2022-01-03 03:57:57 +01:00
Joe Donofry
d2af490202 Merge branch 'gstreamer_windows_macos' into 'master'
Gstreamer glib event loop for macos and windows

See merge request nheko-reborn/nheko!19
2022-01-02 21:15:10 +00:00
Joe Donofry
9033235e9d Gstreamer glib event loop for macos and windows
- This ensures that gstreamer bus operations work
on macOS and windows, such as enumerating devices.
2022-01-02 21:15:10 +00:00
Nicolas Werner
66520eae19
Port image overlay to qml
Allows you to zoom and pan now.

relates to #647
2022-01-02 21:46:29 +01:00
Nicolas Werner
7685d1808b
Strip variant selector in some cases
fixes #439
Workaround for https://bugreports.qt.io/browse/QTBUG-97401
fixes #810
2022-01-01 07:10:12 +01:00
Nicolas Werner
a206500510
Use fully qualified emoji and use literals 2022-01-01 06:16:37 +01:00
Nicolas Werner
61404641d9
Update year in copyright notice to shut up lint job 2022-01-01 04:57:53 +01:00
Nicolas Werner
52a6105dc1
Update translations 2022-01-01 04:41:15 +01:00
Nicolas Werner
6f77a1fe9d
Use the styles default delay for tooltips
This makes them less annoying when scrolling or accessing the popup
menu.

See also #860
2021-12-31 00:48:55 +01:00
Nicolas Werner
750c64f323
Get rid of some useless code 2021-12-31 00:48:55 +01:00
Nicolas Werner
73012eb2d1
Add missing license headers 2021-12-30 06:20:10 +01:00
Nicolas Werner
c5f4865ee6
Try to reduce CPU overhead of animated images a bit 2021-12-30 06:10:19 +01:00
Joe Donofry
459edcd71a Merge branch 'completer_scrolling' into 'master'
Completer scrolling

See merge request nheko-reborn/nheko!20
2021-12-30 04:46:30 +00:00
Joe Donofry
c8ff44aa20 Increase Completer limit to 30
- Add scrolling
- Only display ~7 items at once
2021-12-30 04:46:30 +00:00
Nicolas Werner
9a9dbda571
Update presence dynamically and reduce allocations 2021-12-30 04:54:03 +01:00
Nicolas Werner
4428388b3f
Convert blurhash image format on worker thread
Not only should this prevent hickups, it also fixes a potential crash.
2021-12-30 02:25:47 +01:00
Nicolas Werner
203ddb20de
Fix crash after sending image caused by the recent refactor 2021-12-30 02:10:33 +01:00
Nicolas Werner
b847623fbe
Reduce allocations and time spent creating delegates by half 2021-12-29 22:46:04 +01:00
Nicolas Werner
7cfb7dcea4
Reduce allocations for presence states a bit 2021-12-29 22:45:30 +01:00
Nicolas Werner
497c3df50e
Prevent copies when querying theme 2021-12-29 08:05:29 +01:00
Nicolas Werner
f21bf5f97e
Cache supported animated image formats 2021-12-29 07:40:32 +01:00
Nicolas Werner
4d54876ea4
Pretty up code with fewer allocations 2021-12-29 07:04:30 +01:00
Nicolas Werner
271b111558
Reduce allocations for accessing event members 2021-12-29 07:02:32 +01:00
Nicolas Werner
0f4b482bb3
Remove a few casts 2021-12-29 06:10:08 +01:00
Nicolas Werner
19dc6cadea
Reserve size of some containers we are filling 2021-12-29 06:01:38 +01:00
Nicolas Werner
812e3b5f03
Reduce allocations required for the palette 2021-12-29 06:01:20 +01:00
Nicolas Werner
d8ead9573b
Reduce allocations using QStringLiteral 2021-12-29 04:52:52 +01:00
Nicolas Werner
a3c4ebc460
use more literals 2021-12-29 00:36:43 +01:00
Nicolas Werner
f3e1941612
Add clazy to CI 2021-12-29 00:17:37 +01:00
Nicolas Werner
5743a6de04
Cleanup remaining clazy issues 2021-12-28 23:22:01 +01:00
DeepBlueV7.X
e7664a43da
Merge pull request #855 from rnhmjoj/master
Make nheko usable without a secret storage service
2021-12-28 21:51:35 +00:00
Nicolas Werner
0e9b0c80cd
more cleanups 2021-12-28 22:36:49 +01:00
Nicolas Werner
bb290f9fec
Fix more warnings and remove dead code 2021-12-28 22:30:12 +01:00
Nicolas Werner
409ff22d80
Remove unused button class 2021-12-28 20:14:42 +01:00
Nicolas Werner
5ca98829f7
Some qt6 prep 2021-12-28 20:09:08 +01:00
Nicolas Werner
2866826356
Misc clang-tidy fixes 2021-12-28 19:12:15 +01:00
Nicolas Werner
960cf2995e
Fixup clang-tidy suggestion 2021-12-28 18:44:26 +01:00
DeepBlueV7.X
5a21029423
Merge pull request #853 from MTRNord/MTRNord/clang-tidy
Apply selective clang-tidy suggestions
2021-12-28 17:36:20 +00:00
tastytea
850d139e3d
Make custom emoticons twice as high as the font. 2021-12-27 23:16:26 +01:00
tastytea
5ac1195402
MxcImageProvider: Only use scaledToHeight if width <= 0. 2021-12-27 22:59:51 +01:00
tastytea
7086e23bdd
Request inline images in the right size and anti-alias them
- If an inline image has specified a height, add parameters to the
  image:// URI.
- Add scaled to the parameters, the images would be cropped otherwise.
- Extract the height from image:// URI and use it for requestSize.
- Use scaledToHeight instead of scaled.
2021-12-27 22:47:51 +01:00
MTRNord
7b2f7e65fd Run linter 2021-12-27 20:49:27 +01:00
Nicolas Werner
7742f12f30
Use body in alt text of custom emoji 2021-12-27 19:08:13 +01:00
rnhmjoj
9363f0b7c7
Make nheko usable without a secret storage service
This change adds the ability to run Nheko without a secrets storage
service[1]. The secrets are stored in plaintext under the [secrets]
section of nheko.conf. Since this is a "I know what I'm doing" type
of feature, it's disabled by default and can only be enabled with an
hidden setting `run_without_secure_secrets_service=true`.

Fixes issue #705.

[1]: https://freedesktop.org/wiki/Specifications/secret-storage-spec
2021-12-27 10:45:46 +01:00
Nicolas Werner
0897e4c062
Fix inclusion condition for overriden pack types 2021-12-27 06:40:47 +01:00
Nicolas Werner
ea6b19b307
Add an ugly custom emote completer using ~ 2021-12-27 06:23:36 +01:00
MTRNord
049613211a Apply (selective) Clang-tidy const function and new const pointer suggestions on TimelineModel 2021-12-23 02:55:25 +01:00
MTRNord
a872bdf8c5 Apply (selective) Clang-tidy move and some new detected const pointer suggestions on TimelineModel 2021-12-23 02:46:33 +01:00
MTRNord
02fcd0e7cf Apply (selective) Clang-tidy and clazy suggestions on TimelineModel 2021-12-23 02:33:46 +01:00
Nicolas Werner
eb1e54c8df
Make edits replace the previous notification on Linux 2021-12-22 00:18:56 +01:00
Nicolas Werner
1ea9dc469b
Use global threadpool 2021-12-21 15:57:46 +01:00
Nicolas Werner
8edc46dc16
Cleanup jdenticon code in the same way as blurhashes 2021-12-21 15:06:34 +01:00
Nicolas Werner
04cccb8283
Cleanup blurhash formatting 2021-12-21 12:34:52 +01:00
Nicolas Werner
d424145ee4
Modernize blurhashprovider implementation
Might fix #844

See
https://code.qt.io/cgit/qt/qtdeclarative.git/commit/examples/quick/imageresponseprovider/imageresponseprovider.cpp?h=5.15&id=b1f238568214e6587b829d6695677e55a99b1d40
for context.
2021-12-21 12:17:12 +01:00
Nicolas Werner
6be752e163
Set the app_id on wayland 2021-12-19 22:54:50 +01:00
Nicolas Werner
9b25ef3c0d
Set notification category 2021-12-19 09:36:00 +01:00
Nicolas Werner
c03e4c1261
Make Nheko show up in system notification settings on Linux
relates to #845
2021-12-19 09:35:59 +01:00
Nicolas Werner
09aded2bc8
Fix crash when receiving matrix uri
It seems like handling the message in a blocking manner is a no-go. I
have no idea how to fix that, so just use a queued connection for now...
(ASAN does not cooperate and just hides the crash D:)

fixes #842
2021-12-17 05:58:09 +01:00
DeepBlueV7.X
2ffd476e8f
Merge pull request #841 from LorenDB/qolImprovements
Quality-of-life improvements
2021-12-16 01:15:21 +01:00
Nicolas Werner
6d69248109
Strip space chars from recovery passphrase 2021-12-15 18:26:14 +01:00
Joseph Donofry
cce5d0534f
Use icns on macOS 2021-12-14 17:05:48 -05:00
Loren Burkholder
45b150fb58 make lint 2021-12-13 19:08:54 -05:00
Loren Burkholder
c09c0d35b8 Make opening room members from rooms settings dialog work 2021-12-13 19:08:54 -05:00
DeepBlueV7.X
0a3e647509
Merge pull request #835 from Thulinma/imagewindowrole
Added window role to image overlay
2021-12-14 01:02:47 +01:00
Nicolas Werner
d46e517e3a
Only show room pack button, when you can actually create one 2021-12-13 23:25:42 +01:00
Nicolas Werner
9b9d4bec70
Fix turnserver check not being started when restoring from cache 2021-12-13 18:32:54 +01:00
Nicolas Werner
bb600dd3d1
Show some avatar for image packs 2021-12-13 06:00:32 +01:00
Nicolas Werner
dae032172d
Add recently used reactions
fixes #435
2021-12-13 00:43:05 +01:00
Nicolas Werner
89e58f78f1
Fix a few shadowing warnings
fixes #824
2021-12-11 06:19:54 +01:00
Nicolas Werner
75b112f0c8
Support pinned messages
fixes #519
2021-12-11 06:10:41 +01:00
Nicolas Werner
cf31fff5fe
Fix blurry thumbnails AGAIN 2021-12-08 23:10:19 +01:00
Nicolas Werner
6367d94623
Fix lint 2021-12-08 02:44:58 +01:00
Nicolas Werner
07b5f0805f
Fix display of images, that can't be thumbnailed 2021-12-08 02:43:08 +01:00
Nicolas Werner
30791f7890
Get rid of threadpool for images 2021-12-08 02:43:03 +01:00
Nicolas Werner
b2b9cccb5e
Fix a few clang tidy warnings 2021-12-06 22:22:37 +01:00
Thulinma
9996411d15 Added window role to image overlay 2021-12-05 12:08:43 +01:00
Nicolas Werner
6760397f6c
Fix sanitizer warning about signed shifts 2021-12-04 02:43:33 +01:00
Marcus Hoffmann
a01bc14db6 InputBar: run clang-format 2021-12-03 01:54:43 +01:00
Marcus Hoffmann
a9d8059fb2 InputBar: Mark some functions as [[nodiscard]]
This warns when you the return value of those functions isn't used.

Suggested-by: Clang-Tidy: Function X should be marked [[nodiscard]]
2021-12-03 01:37:00 +01:00
Marcus Hoffmann
9676b7709d InputBar: mark constrictor as explicit
Suggested-By:

Clang-Tidy: Single-argument constructors must be marked explicit to
avoid unintentional implicit conversions

More info: https://clang.llvm.org/extra/clang-tidy/checks/google-explicit-constructor.html
2021-12-03 01:37:00 +01:00
Marcus Hoffmann
8aa4a60d12 InputBar: use X.empty() instead of !X.size()
Suggested-by:

Clang-Tidy: The 'empty' method should be used to check for emptiness instead of 'size'
2021-12-03 01:37:00 +01:00
Marcus Hoffmann
abcbcecac1 InputBar: use auto type
Suggested-by:

Clang-Tidy: Use auto when initializing with new to avoid duplicating the type name
2021-12-03 01:37:00 +01:00
Marcus Hoffmann
313bd649dd InputBar: use multi-arg string replacement
This could actually change the behaviour here (could, because I don't
know if we can hit this special case) but this should hopefully the
correct way of doing this.

There's some detailed explanation of the difference here:
https://doc.qt.io/qt-5/qstring.html#arg-14

> This is the same as str.arg(a1).arg(a2), except that the strings
> a1 and a2 are replaced in one pass. This can make a difference if
> a1 contains e.g. %1:

```
QString str;
str = "%1 %2";

str.arg("%1f", "Hello");        // returns "%1f Hello"
str.arg("%1f").arg("Hello");    // returns "Hellof %2"
```

Suggested-by:

Clazy: Use multi-arg instead
2021-12-03 01:37:00 +01:00
Marcus Hoffmann
02aa87590b InputBar: use character argument instead of string
Suggested-by:

Clang-Tidy: 'find' called with a string literal consisting of a
single character; consider using the more effective overload
accepting a character
2021-12-03 01:37:00 +01:00
Marcus Hoffmann
6d8d38490a InputBar: apply clang-tidy const reference suggestions
All suggested by:

Clang-Tidy: The parameter 'X' is copied for each invocation
but only used as a const reference; consider making it a const reference
2021-12-03 01:37:00 +01:00
Marcus Hoffmann
abf4b3a0a3 InputBar: use QFileInfo::exists()
Suggested by:

Clazy: Use the static QFileInfo::exists() instead. It's documented to be faster.
2021-12-03 01:37:00 +01:00
Marcus Hoffmann
5441ea8840 InputBar: remove unused imports 2021-12-03 01:37:00 +01:00
Nicolas Werner
b774a671da
Remember all the collapsed trees 2021-12-01 03:46:55 +01:00
Nicolas Werner
aa5d2098d0
Don't waste space for non existing subspaces 2021-12-01 00:46:02 +01:00
Nicolas Werner
65152252a4
Leaves can't collapse 2021-12-01 00:24:57 +01:00
Nicolas Werner
fe49beb68e
Hide me underneath the space tree 2021-12-01 00:04:01 +01:00
Nicolas Werner
b505fa42d5
Fix crash on redactions without because 2021-11-29 14:55:40 +01:00
Nicolas Werner
6266c917c0
Cleanup error logging a bit 2021-11-29 06:20:43 +01:00
Nicolas Werner
6779f0e509
Delete rooms even if we fail to leave 2021-11-29 06:06:51 +01:00
Joe Donofry
b920f8d7ca Change QML UI for redactions 2021-11-29 00:59:57 +00:00
Nicolas Werner
bd020bb473
If the locale is set to C, force english locale
This fixes date formatting as well as count based translations.
2021-11-27 03:16:53 +01:00
Nicolas Werner
c4ea429273
fix lint 2021-11-24 05:26:46 +01:00
Nicolas Werner
ff502f306c
Initialize client lazily
This prevents a use after free in the coeurl logging, if we exit immediately.
2021-11-24 05:20:27 +01:00
Nicolas Werner
0f2faff4e7
Use a more random hash to generate user colors
Fixes an issue where most uses just had their color determined by their
username length and distributes the colors a bit more evenly.
2021-11-24 01:33:22 +01:00
Nicolas Werner
a13f492e7d
Make clang-format <13 and clang-format >=13 behave the same
I think old clang-format is just buggy in those cases, so we should
reenable those blocks, once everyone has 13 or up.
2021-11-22 00:33:43 +01:00
DeepBlueV7.X
b1092c0f2f
Merge pull request #822 from Nheko-Reborn/dm-filter
Add a filter for direct chats
2021-11-21 22:46:51 +01:00
Nicolas Werner
70592911a1
Return nullopt for state events in rooms we are not in 2021-11-21 20:10:43 +01:00
Nicolas Werner
e7d4aec6ec
Only mark as direct, if invite was direct 2021-11-21 07:06:37 +01:00
Nicolas Werner
3d92e8ae60
Mark rooms as direct chats
Either by accepting an invite or manually using /converttodm and revert
with /converttoroom.
2021-11-21 06:13:45 +01:00
Nicolas Werner
4dc5b647c6
Pretty error printing 2021-11-21 06:10:24 +01:00
Nicolas Werner
5ef3250994
Add a filter for direct chats
fixes #317
2021-11-20 22:48:04 +01:00
Nicolas Werner
34a1b6267b
Make user colors a bit more vibrant 2021-11-19 23:58:20 +01:00
Nicolas Werner
b439e1fa41
Preliminary gstreamer 1.20 compatibility
The transceiver was made private in
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2241

The direction property was added here:
28b0be4036
2021-11-19 18:19:16 +01:00
Nicolas Werner
57fb0d79f9
Fix colors and alignment in dialogs 2021-11-18 22:33:45 +01:00
Loren Burkholder
8830ce25d1 Don't add a user twice 2021-11-16 18:40:48 -05:00
Loren Burkholder
b1c1274d96 Allow removing users from the invite dialog 2021-11-16 18:40:48 -05:00
Loren Burkholder
f3aeb4b044
Switch icon theme to Fluent icons 2021-11-17 00:37:26 +01:00
DeepBlueV7.X
be53fd9b00
Merge pull request #812 from Nheko-Reborn/jdenticon-packaging
Jdenticon packaging
2021-11-15 14:29:06 +01:00
Nicolas Werner
61d2d1c665
Support exif rotation on received videos
fixes #674
2021-11-15 03:36:30 +01:00
Nicolas Werner
715e2244b4
Cleanup qt-jdenticon loading 2021-11-15 01:23:15 +01:00
Nicolas Werner
0a6ac211f1
Fix being dropped into an empty room after a join 2021-11-14 22:39:42 +01:00
Nicolas Werner
d26fe37010
Disallow displaynames with only spaces or control characters 2021-11-14 17:37:19 +01:00
Nicolas Werner
38e3498978
Prevent edits from removing quotes at the beginning of a message 2021-11-13 03:21:42 +01:00
Nicolas Werner
b0530089ab
Fix some colors switched to yellow by accident 2021-11-13 03:21:42 +01:00
Nicolas Werner
1ab4d35579 Merge branch 'video_player_enhancements' into 'master'
Video player enhancements

See merge request nheko-reborn/nheko!15
2021-11-12 00:19:25 +00:00
Nicolas Werner
d6f4f3a647
Fix secrets status not shown after startup 2021-11-11 21:40:23 +01:00
Nicolas Werner
a99eff7c0c
Fix SSO login showing password prompt 2021-11-11 20:20:15 +01:00
Nicolas Werner
f9362c75cf
Fix no replies being rendered for edits sent from Element in encrypted rooms 2021-11-11 00:41:21 +01:00
Joseph Donofry
c68c8de74f
Merge remote-tracking branch 'nheko-im/master' into video_player_enhancements 2021-11-09 18:34:40 -05:00
Nicolas Werner
d11fcb0ff6
Fix parsing some exotic image packs 2021-11-09 20:22:02 +01:00
Joseph Donofry
c93a7b2435
Merge remote-tracking branch 'nheko-im/master' into video_player_enhancements 2021-11-08 18:32:19 -05:00
Nicolas Werner
c4c13a1da9
Fix redaction of edited messages 2021-11-08 19:32:14 +01:00
Nicolas Werner
ff560a09f5
Improve fetching of device keys after login 2021-11-08 17:01:22 +01:00
Nicolas Werner
809be93e20
Fix self verification status never updating 2021-11-07 21:27:58 +01:00
Nicolas Werner
7de24a4271
Don't try to load verification status before db is ready 2021-11-07 20:27:56 +01:00
Nicolas Werner
5ca1fb18bb
Move away from using an event loop to access secrets
Fixes messages in room flickering and being stuck

fixes #760
relates to #770
relates to #789
2021-11-07 03:52:57 +01:00
Nicolas Werner
d112d6b11f
Fix crash when clearing empty timeline 2021-11-06 00:40:39 +01:00
Nicolas Werner
410ec00848
Fix crash in debug code for matrix uri handler
fixes #776
fixes #590
2021-11-04 23:10:03 +01:00
Joseph Donofry
4bd0ec8939
Fix syntax issue 2021-11-03 23:54:51 -04:00
Joseph Donofry
8e433a7ed2
PlayableMediaMessage fixes on macOS 2021-11-03 23:06:32 -04:00
Nicolas Werner
373e124bf7
Fix translation nits 2021-11-04 01:10:56 +01:00
Nicolas Werner
e1b9a0c619
Update translations 2021-11-03 23:44:55 +01:00
Nicolas Werner
1a163f49e2
Fix unjoinable invites on mobile as well as unclickable previews 2021-11-03 22:35:54 +01:00
Nicolas Werner
211fd9d76c
Fix registration on matrix.org
This was a bit of a journey:
https://github.com/matrix-org/matrix-doc/pull/3471
But it should work now and we now use the UIAHandler everywhere.

fixes #670
2021-11-03 18:39:51 +01:00
Joe Donofry
e3002f7993 Fix macOS m.image notif crash 2021-11-03 02:42:19 +00:00
Nicolas Werner
a9dde2ef68 Merge branch 'macos_api_updates' into 'master'
Update macOS notifications to use UserNotifications framework

See merge request nheko-reborn/nheko!13
2021-11-02 01:33:36 +00:00
Joseph Donofry
912df2920e
Update macOS notifications to use UserNotifications framework 2021-11-01 20:48:51 -04:00
Nicolas Werner
ae121f6021
Clear @room warning after sending message
fixes #751
2021-11-02 00:41:07 +01:00
Nicolas Werner
12832b3c64
Fix loading spinner when switching to a fully loaded room
fixes #754
2021-11-02 00:28:39 +01:00
Nicolas Werner
8beeba8e48
Fix hidden spaces hiding themselves
fixes #745
2021-11-02 00:15:58 +01:00
Nicolas Werner
417cc07172
Fix crash on logout 2021-11-01 22:35:48 +01:00
Nicolas Werner
2aabe9dcac
Prompt user when there are unverified devices 2021-11-01 22:20:15 +01:00
Nicolas Werner
5688b2647e
Add self verification after login 2021-10-30 00:23:07 +02:00
Thulinma
662cb573e1 Allow changing device names, display last seen time and IP 2021-10-20 18:31:57 +02:00
Nicolas Werner
2902bbb7e7
Fix calculating hidden space children 2021-10-20 15:05:00 +02:00
Nicolas Werner
2981f71d22
lint using clang11 2021-10-17 17:33:59 +02:00
Nicolas Werner
6793bdf3fd
lint 2021-10-17 17:20:51 +02:00
Nicolas Werner
147dc9d4da
Use allow list for URI schemes 2021-10-17 17:18:14 +02:00
Nicolas Werner
a5030bdd4d
move device verification management to its own file 2021-10-17 17:18:14 +02:00
Nicolas Werner
550c80525a
Move voip and encryption stuff into their own directories 2021-10-17 17:18:14 +02:00
Thulinma
649c5ff86d Add support for listing devices that do not support encryption, add support for logging out devices.
Ticks off another box in #23!
2021-10-17 00:00:14 +02:00
Loren Burkholder
14488a8fe7 Use the same leave room dialog everywhere
This ports the leave room dialog to QML, everywhere. There are now no differences between the various leave dialogs.
2021-10-11 19:00:40 -04:00
Loren Burkholder
cd39e015d4 Remove unimplemented function declaration 2021-10-11 18:57:36 -04:00
DeepBlueV7.X
088765b427
Merge pull request #741 from LorenDB/qmlJoinRoomDlg
QML the join room dialog
2021-10-11 19:53:17 +00:00
DeepBlueV7.X
281d764aa3
Merge pull request #755 from Nheko-Reborn/bootstrapping
Support bootstrapping crosssigning
2021-10-09 23:35:09 +00:00
Loren Burkholder
e9ed12e27b QML the join room dialog 2021-10-09 17:14:33 -04:00
DeepBlueV7.X
7eb9071b50
Merge pull request #743 from LorenDB/qmlLogout
QML the logout dialog
2021-10-09 20:57:38 +00:00
Loren Burkholder
2f7ce48666 make lint 2021-10-09 16:48:30 -04:00
Nicolas Werner
ad1e6c8298
Support bootstrapping crosssigning
Showing the bootstrap state and showing there are unverified devices is
still missing.
2021-10-09 05:01:53 +02:00
DeepBlueV7.X
569606f35b
Simplify device list refresh logic 2021-10-07 20:01:55 +02:00
Nicolas Werner
47db1e5c65
Remove duplicated verification status calculation 2021-10-07 19:55:27 +02:00
Thulinma
456a41bcdf Added support for refreshing the device list, marking current device with a checkmark instead of a lock 2021-10-06 22:52:19 +02:00
Loren Burkholder
81406171a0 QML the logout dialog 2021-10-05 20:12:24 -04:00
Nicolas Werner
4dd5f9841d
Add additional check for invalid megolm sessions 2021-10-04 21:46:31 +02:00
Loren Burkholder
a6c3e3562c Fix some strings and translation stuff 2021-10-01 12:29:54 -04:00
Thulinma
94441e68fd Support pasting image/svg+xml format straight from supporting applications 2021-09-28 01:42:35 +02:00
Thulinma
c4b788917f Fixes for pasting images, especially under windows where the image mime type detection doesn't work as expected 2021-09-28 00:54:00 +02:00
Thulinma
6941c3d3d7 Fix --help and --version command line options when Nheko is already running. Also adds an info message when it sends a URI to another instance 2021-09-28 00:45:00 +02:00
Joseph Donofry
526c1cdcc4 Add Unicode 14.0 emoji 2021-09-25 02:19:44 -04:00
Nicolas Werner
a54f828fb4
Fix a few verification typos 2021-09-20 01:15:51 +02:00
Nicolas Werner
cfca7157b9
Change indentation to 4 spaces 2021-09-18 00:45:50 +02:00
DeepBlueV7.X
e118f3882d
Merge pull request #728 from Thulinma/goto
Improvements for linking to events
2021-09-17 10:19:58 +00:00
Patryk Cisek
d499fffb7e
Added a text field that allows choosing custom homeserver in "Room directory" dialog. (#727)
* Added a text field that allows choosing custom homeserver in "Room directory" dialog.

* Moved "Choose custom homeserver" text field to the right and shrinked it to 30% of "Room directory" dialog's width.

* Adding "server_name=" when needed when joining room.

When joining room that is hosted on a different homeserver than
the account is registered on, the request fails. In such scenario
the server has to be explicitly mentioned in a server_name URL
parameter. More info here:
https://matrix.org/docs/spec/client_server/r0.6.1#post-matrix-client-r0-join-roomidoralias

* Minor fix: intentation (4 spaces -> 8 spaces)

Co-authored-by: Patryk Cisek <patryk@cisek.email>
2021-09-17 10:12:56 +00:00
Thulinma
1d5bf56cf9 Improvements for linking to events
- Fixes scrolling to an event not being reliable
- Adds new /goto command that can open URLs, go to events, or go to message indexes.
- Refactored ChatPage::handleMatrixUri() to contain the handling originally in Nheko::openLink(), and makes it return a boolean based on whether the URL was handled internally or not.
2021-09-16 02:17:07 +02:00
Nicolas Werner
5bff9df4ae
Workaround for broken fetchMore() with reuseItems 2021-09-15 23:38:01 +02:00
DeepBlueV7.X
d6eeaa1c04
Merge pull request #721 from symphorien/hotlist
Implement a binding to go to a room with unread messages
2021-09-14 19:00:50 +00:00
Nicolas Werner
f91a0267e6
Add workaround for crash on some jdenticon inputs 2021-09-14 16:10:04 +02:00
Guillaume Girol
82b1cc4e5f add Alt+A keybinding to switch to next room with unread messages 2021-09-14 12:00:00 +00:00
Nicolas Werner
f032c75e6a
Remove unused prototype 2021-09-13 23:45:09 +02:00
DeepBlueV7.X
8e2f1e9dce
Merge pull request #416 from LorenDB/jdenticon
Add jdenticon support
2021-09-13 21:31:29 +00:00
Nicolas Werner
1b82b8242b
Keep identities for users cached
There is not really a reason to stop tracking them, just because the
server says so. We might still want to show a users profile, etc.
2021-09-13 14:31:22 +02:00
Loren Burkholder
b9255803fb Streamline getting other user id from invited direct chat 2021-09-11 19:45:01 -04:00
Loren Burkholder
0b8527eb1b Don't try to check whether a preview is direct 2021-09-11 19:35:31 -04:00
Loren Burkholder
fb53fc86b6 Fix invites crashing the whole app 2021-09-11 19:35:31 -04:00
Loren Burkholder
87bff3493d Add direct chat handling for previews and invites 2021-09-11 19:35:31 -04:00
Loren Burkholder
094ddb48a2 Don't bother with crop 2021-09-11 19:35:31 -04:00
Loren Burkholder
2147ce8556 Only try loading plugin once 2021-09-11 19:35:31 -04:00
Loren Burkholder
f14762e6a5 Always show jdenticon toggle (disable if no plugin) 2021-09-11 19:35:31 -04:00
Loren Burkholder
0e3f3f2b20 make lint 2021-09-11 19:35:31 -04:00
Loren Burkholder
17729ce662 Fix jdenticons in various places 2021-09-11 19:35:31 -04:00
Loren Burkholder
356723fe06 Use more descriptive property name 2021-09-11 19:35:31 -04:00
Loren Burkholder
a23c586cde make lint 2021-09-11 19:35:31 -04:00
Loren Burkholder
dcdf00dcc5 Finish fixing rounded avatars 2021-09-11 19:35:31 -04:00
Loren Burkholder
350fc593ed Use better id loading methodology 2021-09-11 19:35:31 -04:00
Loren Burkholder
1ac4f3a97b Remove unused struct 2021-09-11 19:35:31 -04:00
Loren Burkholder
c991f20284 Make sure jdenticon toggle is always initialized 2021-09-11 19:35:31 -04:00
Loren Burkholder
350d1977af Add some fancy effects to jdenticon 2021-09-11 19:35:31 -04:00
Loren Burkholder
1fdecdcc21 Get direct chat jdenticons to line up 2021-09-11 19:35:31 -04:00
Loren Burkholder
7a200d7e77 Add licenses 2021-09-11 19:35:31 -04:00
Loren Burkholder
651d620afd Remove unnecessary stuff 2021-09-11 19:35:31 -04:00
Loren Burkholder
ebe80a6006 Fix typo 2021-09-11 19:35:31 -04:00
Loren Burkholder
069115ba5f Don't add toggle for jdenticon if the plugin can't be found 2021-09-11 19:35:31 -04:00
Loren Burkholder
4e4a9c6e0c Fix braces; make lint 2021-09-11 19:35:31 -04:00
Loren Burkholder
d2e193ff78 Add jdenticon support 2021-09-11 19:35:31 -04:00
Thulinma
45b5629fe4 Fix a few more HTML injections 2021-09-12 00:09:24 +02:00
Nicolas Werner
f9a334233f
Don't allow images in username change messages and user completer
Sorry, no fun for you!
2021-09-09 21:20:34 +02:00
Nicolas Werner
495a4334df
Fix day separator when loading older messages
fixes #632
2021-09-08 12:47:44 +02:00
Thulinma
a39cb537ae More profile improvements:
- Now scrolls entire profile instead of only device list, improving the experience on smaller screens
- Fixed centering of room name
- Allow profile to be sized smaller to match the new scrolling behavior
- Silenced warning about room being null for global profiles
- Matrix URLs now open global profiles instead of room-specific profiles if the user is not in the currently opened room
- Opening global profile from room specific profile now uses openGlobalUserProfile function instead of reinventing the wheel
2021-09-08 01:26:05 +02:00
Nicolas Werner
80fa3e801f
Fix duplicate check possibly leaving large gaps if initial state was not in timeline 2021-09-06 01:41:23 +02:00
Nicolas Werner
6490ee3a34
Add workaround for broken key counts 2021-09-06 00:32:09 +02:00
DeepBlueV7.X
d30401c3c4
Merge pull request #713 from Thulinma/noMoreDuplicates
Fixed duplicate messages appearing in timeline if server sent them
2021-09-05 22:24:16 +00:00
Nicolas Werner
70e20f5d10
Fix key count updates on conduit 2021-09-06 00:07:14 +02:00
Nicolas Werner
e035d1407a
Conduit does not send count, if it didn't change 2021-09-05 23:15:44 +02:00
Thulinma
2525579610 Fixed duplicate messages appearing in timeline if server sent them 2021-09-05 23:00:29 +02:00
Thulinma
e7564396fb Improvements to user profiles:
- Set a minimum width on the profile window (avatar size + margins)
- Made avatar editing a separate button, so you can zoom in on your own avatars
- Added hover text to avatar/displayname change buttons, which clarify where they will apply for global/room-specific profiles
- Added display of room name for room-specific profiles, with hover text that explains what that means.
- Added way to open global profile for users from their room-specific profiles (globe button next to room name)
2021-09-05 19:05:43 +02:00
Nicolas Werner
99f3296a64
Make error case with unverified master key more descriptive 2021-09-03 15:08:16 +02:00
Thulinma
6bd62f8283 Make desktop alerting independent from notification support in the homeserver. 2021-09-03 03:13:15 +02:00
Nicolas Werner
3528fe4e5d
Warn the user before they ping the whole room 2021-09-02 03:15:39 +02:00
Nicolas Werner
1b07bde788
update translations 2021-09-01 01:23:20 +02:00
Nicolas Werner
98533f01d9
Fix session always being rotated if 'verified only' is active 2021-08-31 16:40:31 +02:00
Nicolas Werner
529c93503d
Remove useless ; 2021-08-31 04:13:51 +02:00
Nicolas Werner
c80e253a24
Stop encrypting all sessions with secret 2021-08-31 04:06:51 +02:00
Nicolas Werner
79ecad5a09
Require a working secrets storage 2021-08-31 01:51:03 +02:00
Nicolas Werner
fc7df50d9a
Fix another leak when creating an animated image without an image 2021-08-29 19:24:14 +02:00
Nicolas Werner
7645ab1736
Fix memory leak of animated image textures 2021-08-29 18:38:11 +02:00
Nicolas Werner
374ad0a816
Small image pack editor improvements
- add missing mimetype
- allow removal of images from pack
- allow GIF as a format
- don't divide size by 2 if the image is very small already
2021-08-29 17:22:49 +02:00
Nicolas Werner
15bf643347
Add option to only play animated images on hover 2021-08-29 16:32:28 +02:00
Nicolas Werner
47c7c4c777
cleanup QSettings usage a bit 2021-08-29 16:32:28 +02:00
Nicolas Werner
ef068ac2b3
Support animated images
fixes #461
2021-08-29 16:32:28 +02:00
Nicolas Werner
09c041c8ac
Use in memory media player instead of storing unencrypted files on disk 2021-08-29 16:32:22 +02:00
Nicolas Werner
e88fc1996e
Fix warning about double reference qualifier 2021-08-26 04:02:09 +02:00
Nicolas Werner
d02e77f69a
Implement key backup upload 2021-08-26 03:43:52 +02:00
Nicolas Werner
23697e28a3
warn about online keybackup and default to off 2021-08-26 03:43:51 +02:00
Nicolas Werner
2cabd107bf
Useless capture 2021-08-22 15:09:27 +02:00
Nicolas Werner
055f0d6709
Even if you just change the log level, ensure that this compiles before pushing... 2021-08-22 14:56:44 +02:00
Nicolas Werner
63998a217a
Add db migration that clears the cache
This fixes spaces or stickers not showing up for old databases as well
as the wrong format of the state_keys db.
2021-08-22 14:45:57 +02:00
Nicolas Werner
5416988057
Trust key forwards from the original sender 2021-08-20 14:00:35 +02:00
Nicolas Werner
b63289ba54
Cleanup @room escape logic a bit 2021-08-20 14:00:35 +02:00
Nicolas Werner
3d2f503305
Add workaround for stickers not showing on iOS
see: https://github.com/vector-im/element-ios/issues/2353
2021-08-18 18:16:29 +02:00
Nicolas Werner
c2e777f3e4
Update translations 2021-08-17 23:51:15 +02:00
Nicolas Werner
5b460861b1
Allow accepting knocks in the timeline
As well as selecting more join rules.
2021-08-17 23:31:25 +02:00
Nicolas Werner
5287ba38f9
Fix all rooms being opened on startup 2021-08-17 19:00:00 +02:00
Nicolas Werner
995b62122a
Fi lineendings 2021-08-17 14:22:37 +02:00
Nicolas Werner
028bcd5b7c
Update join button in room directory after join 2021-08-17 14:21:04 +02:00
DeepBlueV7.X
b01496f9b4
Merge pull request #659 from kamathmanu/nhekoRoomDirectory
Nheko room directory
2021-08-17 11:56:47 +00:00
Nicolas Werner
7d62af7cda
Remove unneeded code 2021-08-17 09:59:13 +02:00
Nicolas Werner
56db0dbc7d
Allow downloading keys from key backup 2021-08-17 03:24:12 +02:00
Nicolas Werner
1e7756c508
Fix dpi scaling of avatars 2021-08-16 12:48:45 +02:00
DeepBlueV7.X
b1634d60a0
Merge pull request #680 from govynnus/token-registration
Support token authenticated registration
2021-08-15 18:22:01 +00:00
Callum Brown
0da58c476c Run linter 2021-08-15 15:51:10 +01:00
Nicolas Werner
42d2b10d5d
Round images in the image provider 2021-08-14 17:17:50 +02:00
kamathmanu
eaddfb4f73 Clean up final nits 2021-08-14 09:44:34 -04:00
Nicolas Werner
69e65cef2f
Fix shadowing 2021-08-14 02:52:43 +02:00
Nicolas Werner
110fef5c68
Request keys when opening a room for the first time 2021-08-14 02:41:34 +02:00
Nicolas Werner
13633c7644
Ensure device signatures always get verified on device update 2021-08-14 02:06:48 +02:00
Nicolas Werner
9bad584931
Show verification status in memberlist 2021-08-13 23:58:26 +02:00
Nicolas Werner
18ea01e198
Show if there are unverified devices in a room
Also fixes some issues where nested transactions will poison the
verification cache.
2021-08-13 23:19:54 +02:00
Callum Brown
4fa644f2b7 Fix cancel button on registration token dialog 2021-08-12 17:57:07 +01:00
Callum Brown
7d484a8228 Use QInputDialog to get registration token 2021-08-12 16:41:29 +01:00
kamathmanu
9ab1296131 Ran qmlformat and make license 2021-08-12 10:45:42 -04:00
kamathmanu
570e5ffde2 Added Spinner while rooms load 2021-08-12 09:50:52 -04:00
Callum Brown
b56a1be0bd Support token authenticated registration
Using a dialog after username and password have been provided.
2021-08-11 15:07:06 +01:00
DeepBlueV7.X
d84c1f59a4
Merge pull request #679 from Kirillpt/iss_672
add shortcut Escape button for closing images. issue #672
2021-08-11 00:09:16 +00:00
Nicolas Werner
02b217d009
Remove some unused headers 2021-08-11 01:30:55 +02:00
kirp
5335e043e7
linting 2021-08-11 02:29:36 +03:00
kirp
c7295d7fd1
change slot close, to signal closing 2021-08-11 02:26:26 +03:00
kirp
a88c68c0a8
add shortcut Escape button for closing images issues 672 2021-08-11 01:39:27 +03:00
Nicolas Werner
5e2526dac4
fix sticker packs being uneditable in some rooms 2021-08-11 00:39:01 +02:00
Nicolas Werner
dbea031a86
Fix potential crash when trying to read room info too early 2021-08-11 00:21:24 +02:00
Nicolas Werner
7f633a0298
Add rate limiting to unknown device list path 2021-08-09 20:52:54 +02:00
kamathmanu
6a75e5270c Fix nits from code review 2021-08-09 09:18:08 -04:00
Nicolas Werner
71290e208d
Enable insecure fallback for secret storage 2021-08-08 18:57:38 +02:00
Nicolas Werner
ad57a336dc
Breaking: Change secret names and fix bug when storing secrets 2021-08-08 18:38:05 +02:00
Nicolas Werner
8784156da5
Fix trying to delete unsupported events 2021-08-08 11:35:27 +02:00
Nicolas Werner
b73bd2859c
Protect against replay attacks 2021-08-07 23:54:35 +02:00
kamathmanu
2dfccda73c
Merge branch 'master' into nhekoRoomDirectory 2021-08-07 21:20:43 +00:00
kamathmanu
14f8f4d61b Fix Duplicate fetched chunk 2021-08-07 17:13:18 -04:00
kamathmanu
4ec0c8c9bb make lint 2021-08-07 17:00:28 -04:00
kamathmanu
d3d7844106 Made only unjoined rooms joinable 2021-08-07 17:00:28 -04:00
kamathmanu
04d0d413e3 Linted code 2021-08-07 17:00:28 -04:00
kamathmanu
0d700d9933 Implemented Room Directory model to store and provide QML view with public room data from mtxclient 2021-08-07 17:00:12 -04:00
Nicolas Werner
72bbad7485
Show encryption errors in qml and add request keys button 2021-08-07 22:51:09 +02:00
DeepBlueV7.X
9f742fe23d
Merge pull request #664 from govynnus/token-registration
Reorganise src/RegisterPage.cpp
2021-08-07 00:27:39 +00:00
Nicolas Werner
cc22309c5b
this is not needed for translations 2021-08-06 04:43:56 +02:00
Nicolas Werner
e5a6b2b6ef
Allow creating new packs 2021-08-06 04:31:53 +02:00
Nicolas Werner
16d0190f4e
Allow uploading additional stickers 2021-08-06 04:31:53 +02:00
Nicolas Werner
a57a15a2e0
Basic sticker pack editor 2021-08-06 04:31:53 +02:00
Callum Brown
bd31726f2f Allow all characters when checking server input
So IDNs are not rejected. Invalid server names will be caught later.
2021-08-05 17:25:37 +01:00
Callum Brown
bb6a57644c Make things private slots 2021-08-05 16:12:36 +01:00
Nicolas Werner
87e81498b7
Fix window placement on wayland and add close buttons
We explicitly set a parent. We can't assign to
ApplicationWindow.transientParent though, only to
Window.transientParent, so we just call setTransientParent in C++.
2021-08-04 02:27:50 +02:00
Callum Brown
041d8fb56c Reorganise src/RegisterPage.cpp 2021-08-02 20:08:55 +01:00
DeepBlueV7.X
619525e62f
Merge pull request #662 from LorenDB/qml-all-the-things
QML all the things, part 3: Raw message dialog
2021-08-01 10:51:21 +00:00
Nicolas Werner
25e7a985b8
Add option to only send encrypted messages to verified devices
fixes #636
2021-08-01 00:59:46 +02:00
Loren Burkholder
dab1c9068a QML the raw message dialog 2021-07-31 12:11:15 -04:00
Nicolas Werner
760f675792
Ensure the encrypted rooms db is always created 2021-07-31 17:59:03 +02:00
DeepBlueV7.X
5b5a89b522
Merge pull request #655 from LorenDB/qml-all-the-things
QML all the things, part 2: Read receipts dialog
2021-07-30 22:08:51 +00:00
Loren Burkholder
f48f244dcb Use correct date format 2021-07-30 08:44:07 -04:00
Loren Burkholder
7dcdd51a8b make lint 2021-07-30 08:19:05 -04:00
Loren Burkholder
3cb4209d7b
Reformat dates
Co-authored-by: DeepBlueV7.X <nicolas.werner@hotmail.de>
2021-07-30 07:56:25 -04:00
Nicolas Werner
e7877ae5af
Fix crash when we don't have keys for other device when receiving an olm message from it 2021-07-30 12:44:08 +02:00
Nicolas Werner
e4cd8b1c11
Log how many rooms we loaded 2021-07-30 03:31:49 +02:00
Nicolas Werner
6409462a96
Rate limit olm session creation 2021-07-30 03:31:29 +02:00
Loren Burkholder
368e13fac3 Use built-in sorting so that dynamic updates work 2021-07-29 21:07:52 -04:00
Loren Burkholder
7e538851d6 Use a QSortFilterProxyModel instead of resetting the model 2021-07-29 21:07:52 -04:00
Loren Burkholder
1777a1b52f Reset model instead of doing weird convoluted updates 2021-07-29 21:07:52 -04:00
Loren Burkholder
2fe010c04a Dynamically update read receipts 2021-07-29 21:07:52 -04:00
Loren Burkholder
2be91b591d make lint 2021-07-29 21:07:52 -04:00
Loren Burkholder
9c7bde22d1 Remove unused headers
Why didn't I see these earlier?
2021-07-29 21:07:52 -04:00
Loren Burkholder
8a329d6517 Remove Avatar class
RIP
2021-07-29 21:07:52 -04:00
Loren Burkholder
0d42909e40 Simplify read receipt storage 2021-07-29 21:07:52 -04:00
Loren Burkholder
774a9fdc3a Remove outdated comment 2021-07-29 21:07:52 -04:00
Loren Burkholder
4dd994ae00 QML the read receipts list
There are probably a few things wrong with this, but I'm going to call it good enough for an initial commit
2021-07-29 21:07:16 -04:00
Nicolas Werner
d955444dc1
Port to explicit connect syntax
Also fix a lot of warnings.
2021-07-27 22:35:38 +02:00
Nicolas Werner
6222ae88ce
Fix crash on invalid utf8 in decrypted events 2021-07-26 18:59:21 +02:00
Nicolas Werner
e8e48305c8
Remove version checks for unsupported Qt versions 2021-07-26 18:59:20 +02:00
Nicolas Werner
570d00b000
Fix crash when storing secrets
Nested QEventLoops are scary. Ultimately we shouldn't use them, but I
have no better solution right now.

fixes #656
2021-07-25 17:07:10 +02:00
Nicolas Werner
80b9d4528e
Remove SSSS requests on the UI thread
might fix #656
2021-07-25 15:39:49 +02:00
Nicolas Werner
8b3d0c14d0
Properly verify OTK signature 2021-07-25 14:10:38 +02:00
Nicolas Werner
8444683271
Don't send encrypted olm messages to ourselves 2021-07-25 13:51:21 +02:00
Nicolas Werner
f4e670d8d5
Fix SSSS unlock without a password set
fixes #657
2021-07-25 12:13:24 +02:00
Joe
fb3c443ce0 Remove additional key requests preference code 2021-07-24 18:27:59 -04:00
Joe
3f567a8da7 Merge master and fix conflicts 2021-07-24 18:26:25 -04:00
Nicolas Werner
a61678242b
Fix edge case that could lead to no new one time keys being uploaded 2021-07-24 14:59:14 +02:00
Nicolas Werner
bef2cbbd7f
Try to avoid more olm loops 2021-07-23 19:08:44 +02:00
Nicolas Werner
dba2fb525a
Remove unused this capture 2021-07-23 18:21:55 +02:00
DeepBlueV7.X
ca3d17dc22
Merge pull request #651 from LorenDB/qml-all-the-things
Fix a few UI things
2021-07-23 16:17:43 +00:00
Nicolas Werner
eafbab6ae1
Add menu to enable or disable stickers globally 2021-07-23 17:43:17 +02:00
Nicolas Werner
0c798554b5
Rename image pack model 2021-07-22 20:05:25 +02:00
Loren Burkholder
0ce7d02abe make lint 2021-07-22 07:55:12 -04:00
Nicolas Werner
5ae73bf8fd
Add trailing newline to session export to make gomuks happy 2021-07-22 12:00:14 +02:00
Loren Burkholder
bbecadf1a8 Add functionality for loading global user profile where needed
This is so viewing profiles from the invite dialog will work as expected.
2021-07-21 20:38:18 -04:00
DeepBlueV7.X
1d3579196a
Merge pull request #650 from LorenDB/qml-all-the-things
Open room members when member info label clicked
2021-07-21 23:18:21 +00:00
Loren Burkholder
44be4c1f4a Move various room auxiliary functions to TimelineManager 2021-07-21 18:56:20 -04:00
Loren Burkholder
b17002929c Open room members when member info label clicked 2021-07-21 12:36:02 -04:00
Nicolas Werner
f401ed16ac
Tweak rainbows slightly 2021-07-21 17:44:29 +02:00
Nicolas Werner
8a300f7333
Fix some media not being cached properly
Most noticeable in the goose chooser.
2021-07-21 16:55:28 +02:00
Loren Burkholder
6458614ea1 make lint 2021-07-20 21:48:10 -04:00
Loren Burkholder
efda94ca50 Modify message to be more accurate 2021-07-20 21:48:10 -04:00
Loren Burkholder
77c636f3d3 Insert user before loading avatar/display name 2021-07-20 21:48:10 -04:00
Loren Burkholder
44d2818e0c Add property for plain room name 2021-07-20 21:48:10 -04:00
Loren Burkholder
21eb312f69 Only run spinner while loading members 2021-07-20 21:48:03 -04:00