Commit Graph

873 Commits

Author SHA1 Message Date
Nicolas Werner 66b7ff639c Remove sender key from megolm session index
implements MSC3700

see https://github.com/matrix-org/matrix-spec-proposals/pull/3700
2022-04-08 01:53:00 +02:00
Nicolas Werner 6417dcd398
Fix leaving rooms 2022-03-31 23:34:01 +02:00
Nicolas Werner a59b3147a6
Add reasons to everything
fixes #1030
2022-03-30 23:40:12 +02:00
Nicolas Werner c91f91d5d3
Add /knock command 2022-03-30 21:15:22 +02:00
Nicolas Werner 0d9a3ff4cd
Fix cursor moving to the end when editing in the middle 2022-03-30 07:02:52 +02:00
Nicolas Werner 82cdb483a9
Fix arrow keys 2022-03-30 06:24:23 +02:00
Nicolas Werner 14f7fe282f
Cleanup some unused code 2022-03-30 02:07:32 +02:00
DeepBlueV7.X f9e294ce0c
Merge pull request #1019 from maltee1/qml_createroom
CreateRoom dialog in QML
2022-03-29 20:54:45 +02:00
Nicolas Werner 6f0260d59f
Avoid empty membership events 2022-03-28 21:41:16 +02:00
Malte E af17e4f8c0 run lint 2022-03-26 22:28:31 +01:00
Malte E 838cf63578 direct chat creator can now create direct chats 2022-03-26 22:25:48 +01:00
tastytea 179ae53b40
Don't send thumbnails that are larger than the original
- Set PNG compression to maximum
- Don't upload thumbnail if it is not at least 10% smaller than  the
  original
2022-03-24 20:13:12 +01:00
Nicolas Werner 637db55e08
Default body to shortcode if unset and sending sticker 2022-03-22 19:45:25 +01:00
Nicolas Werner 922c63ef27
Add a default filename for clipboard pastes again 2022-03-22 18:28:35 +01:00
Nicolas Werner 447a3d4cb9
Try to improve thumbnailing on macOS 2022-03-22 18:12:39 +01:00
Nicolas Werner 30ba387076
Fix thumbnails of received encrypted images 2022-03-22 04:32:11 +01:00
Nicolas Werner 96aacf8068
Small fixes to video thumbnailing 2022-03-22 01:21:08 +01:00
Nicolas Werner c87af215e1
Actually pass the mimetype we intended 2022-03-21 23:19:18 +01:00
Nicolas Werner e52f90a941
Properly fix image uploads without image/* format 2022-03-21 23:15:09 +01:00
Nicolas Werner 5734641778
Fix potential crash if there is no image format pasted 2022-03-21 22:54:44 +01:00
Nicolas Werner a9486ec896
Fix thumbnails for encrypted files and factor upload box out 2022-03-21 05:49:12 +01:00
Nicolas Werner dbd2bebe6c
Show some previews in upload window 2022-03-21 05:05:29 +01:00
Nicolas Werner 830f4d4942
Please clazy 2022-03-21 01:35:47 +01:00
Nicolas Werner 3aeeed49a9
Also stop audio player 2022-03-21 01:32:31 +01:00
Nicolas Werner 3beed3508a
Thumbnail video 2022-03-21 01:24:53 +01:00
Nicolas Werner fd83858715
Add duration and resolution to files 2022-03-21 00:48:27 +01:00
Nicolas Werner d3471a1097
Move uploads to InputBar 2022-03-20 22:49:33 +01:00
Malte E d765305595 properly commit preedit text 2022-03-19 22:30:35 +01:00
tastytea e390c39862
Allow to specify reason for removed message
# Previous commits:
#   5949173b Add function to force focus on InputDialog input field
#   9482ac4e Allow explicit selection of SSO method
#   ab05e2d8 Mobile message input (#962)
#   12a6da01 If you replace the txn id, replace a string the length of the txn id...
2022-03-06 19:58:12 +01:00
Nicolas Werner 12a6da012a
If you replace the txn id, replace a string the length of the txn id... 2022-03-05 19:38:13 +01:00
Nicolas Werner d8d8662a42
Remove unused headers 2022-03-02 20:39:46 +01:00
Nicolas Werner a307dc46cb
Remove stray logging 2022-02-27 06:47:00 +01:00
Nicolas Werner 8e20139079
Allow properly editing pending encrypted messages 2022-02-27 06:43:45 +01:00
Nicolas Werner 9f5b647fb3
Fix editing pending messages 2022-02-27 06:43:45 +01:00
DeepBlueV7.X 3dfcc4145d
Merge pull request #952 from symphorien/hidden-read-receipts
support for hidden read receipts
2022-02-22 16:30:23 +00:00
Guillaume Girol 05f7e47a9f support for hidden read receipts 2022-02-21 12:00:00 +00:00
Nicolas Werner ff4334d59e
Don't leak dialogs
It seems that you need to manually destroy created objects... Great...

fixes #898
2022-02-21 05:01:01 +01:00
Malte E 1c8a5c645d
Add sender names to state events (#948)
* add sendernames to state events

* Center state events and make them less tiny
2022-02-21 00:39:32 +00:00
Nicolas Werner ddcd4850f1
Merge branch 'message-bubbles' of https://github.com/maltee1/nheko into maltee1-message-bubbles 2022-02-14 15:43:17 +01:00
Nicolas Werner 47b822604d
Hidden events: Refactor slightly for reusability 2022-02-12 19:48:53 +01:00
Malte E 12d600db97 add translations and actually add changes to TimelineModel 2022-02-07 21:53:37 +01:00
Nicolas Werner 409bfa8c9d # should be valid in links 2022-02-05 09:27:16 +01:00
Nicolas Werner b3221b09d6 Add /reset-state command 2022-02-05 08:40:56 +01:00
Nicolas Werner 1dacf327e1 Fix avatar url conversion for widgets 2022-02-04 23:33:00 +01:00
Nicolas Werner 7b00411dc4 Show widgets as links 2022-02-04 20:48:14 +01:00
DeepBlueV7.X 00116e8128
Merge pull request #906 from LorenDB/offlineIndicator
Add offline indicator
2022-02-04 07:13:53 +01:00
Nicolas Werner 112426e30b Fetch previews for space children using /hierarchy 2022-02-02 19:03:01 +01:00
Loren Burkholder 5bed3684ec Add offline indicator (#472) 2022-02-01 23:39:22 -05:00
Nicolas Werner 4a80fdc951
Functional login page 2022-01-26 21:44:13 +01:00
Nicolas Werner aaae72a4f2
Fix focus and qml parenting with qml root 2022-01-26 21:44:13 +01:00
Nicolas Werner b106eafb0e
Initial qml root window 2022-01-26 21:44:13 +01:00
Nicolas Werner f1a23355bd
Port usersettings to qml 2022-01-09 01:02:25 +01: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 61404641d9
Update year in copyright notice to shut up lint job 2022-01-01 04:57:53 +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 9a9dbda571
Update presence dynamically and reduce allocations 2021-12-30 04:54:03 +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 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 d8ead9573b
Reduce allocations using QStringLiteral 2021-12-29 04:52:52 +01:00
Nicolas Werner bb290f9fec
Fix more warnings and remove dead code 2021-12-28 22:30:12 +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 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 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
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
Nicolas Werner d46e517e3a
Only show room pack button, when you can actually create one 2021-12-13 23:25:42 +01:00
Nicolas Werner dae032172d
Add recently used reactions
fixes #435
2021-12-13 00:43:05 +01:00
Nicolas Werner 75b112f0c8
Support pinned messages
fixes #519
2021-12-11 06:10:41 +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
Joe Donofry b920f8d7ca Change QML UI for redactions 2021-11-29 00:59:57 +00: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
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 5ef3250994
Add a filter for direct chats
fixes #317
2021-11-20 22:48:04 +01:00
Nicolas Werner 57fb0d79f9
Fix colors and alignment in dialogs 2021-11-18 22:33:45 +01:00
Loren Burkholder f3aeb4b044
Switch icon theme to Fluent icons 2021-11-17 00:37:26 +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 c4c13a1da9
Fix redaction of edited messages 2021-11-08 19:32:14 +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 1a163f49e2
Fix unjoinable invites on mobile as well as unclickable previews 2021-11-03 22:35:54 +01: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 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
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
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
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
Nicolas Werner cfca7157b9
Change indentation to 4 spaces 2021-09-18 00:45:50 +02: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
Guillaume Girol 82b1cc4e5f add Alt+A keybinding to switch to next room with unread messages 2021-09-14 12:00:00 +00: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 0e3f3f2b20 make lint 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 350fc593ed Use better id loading methodology 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 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
Nicolas Werner 3528fe4e5d
Warn the user before they ping the whole room 2021-09-02 03:15:39 +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 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 5b460861b1
Allow accepting knocks in the timeline
As well as selecting more join rules.
2021-08-17 23:31:25 +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 56db0dbc7d
Allow downloading keys from key backup 2021-08-17 03:24:12 +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
kamathmanu 9ab1296131 Ran qmlformat and make license 2021-08-12 10:45:42 -04:00
Nicolas Werner 5e2526dac4
fix sticker packs being uneditable in some rooms 2021-08-11 00:39:01 +02:00
kamathmanu 6a75e5270c Fix nits from code review 2021-08-09 09:18:08 -04:00
kamathmanu 2dfccda73c
Merge branch 'master' into nhekoRoomDirectory 2021-08-07 21:20:43 +00:00