Commit Graph

2358 Commits

Author SHA1 Message Date
Nicolas Werner 47b822604d
Hidden events: Refactor slightly for reusability 2022-02-12 19:48:53 +01:00
tastytea 7ebced29e9
Hidden events: Make reusable read function 2022-02-10 00:48:36 +01:00
tastytea 72cfb06208
Hidden events: Some cleanup 2022-02-10 00:48:35 +01:00
tastytea 49b313e3b8
Hidden events: Make save-function reusable for global account data 2022-02-10 00:48:35 +01:00
tastytea f0bb64030e
Hidden events: Incorporate suggestions from review
- Set TitleHint flag on dialog
- Store hidden events as QSet<QString> instead of std::vector<bool>
- Change wording in dialog (disable events instead of turning the hiding
  on)
2022-02-10 00:48:35 +01:00
tastytea 5cd3e61cb0
Add GUI to change hidden events per room
This adds a dialog to the room settings in which the user can choose
which of these three event types they want to hide (additionally to the
default):

  - m.room.member
  - m.room.power_levels
  - m.sticker

The current state is read when room settings are opened and saved when
new settings are accepted.
2022-02-10 00:48:35 +01:00
Nicolas Werner dfb8f9a160
Fix application name on Wayland in flatpak
fixes #903
2022-02-09 23:46:49 +01:00
Malte E 12d600db97 add translations and actually add changes to TimelineModel 2022-02-07 21:53:37 +01:00
Malte E 9d194cc2e6 clean up margin setting 2022-02-05 21:53:21 +01:00
Malte E f5a693ac03 place metadata below message when the Layout is narrow (<350) 2022-02-05 14:12:51 +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
Malte E 3f7c15c7af Add message bubbles 2022-02-04 23:12:30 +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 fcefdb7ca6
split point is pointless 2022-01-31 21:47:23 +01:00
Nicolas Werner eae43782a3
Do word splitting in completer 2022-01-31 21:36:22 +01:00
Nicolas Werner 3c208cd717
Remove unused funtion 2022-01-30 20:25:30 +01:00
Nicolas Werner 2613275461
Reimplement error notifications 2022-01-30 19:14:33 +01:00
Nicolas Werner b4278ffaa8
Remove a few unused includes 2022-01-30 13:31:39 +01:00
Nicolas Werner f44d8e916b
Remove a few now unused files 2022-01-30 13:16:36 +01:00
Nicolas Werner 392a4be858
Fix centering dialogs 2022-01-29 19:07:27 +01:00
Nicolas Werner 1d6d9e65af
Store window size on exit again 2022-01-29 18:10:42 +01:00
Nicolas Werner 909c11d2bb
Get rid of some shadowing 2022-01-29 18:03:25 +01:00
Nicolas Werner c5c892b873
Remove unnecessary qml engine shutdown workaround 2022-01-29 17:41:14 +01:00
Nicolas Werner f7fd43e3f2
Connect quit 2022-01-29 17:38:59 +01:00
Nicolas Werner 2e7d26bcc0
Fix secrets not loading after registration 2022-01-29 17:27:28 +01:00
Nicolas Werner f28013dc18
Port registration to Qml 2022-01-28 15:24:56 +01:00
Nicolas Werner 573624a490
Remove some unused functions 2022-01-26 21:44:13 +01: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 9a2e07cbce
Fix gray scale images breaking notifications on dunst
Fixes #907
2022-01-26 21:43:55 +01:00
Ayushi Bisht 6aaaa777c6 Fixed a grammatical error 2022-01-18 12:42:50 +05:30
Ayushi Bisht 8e8e46fe0a fixed a typo in Cache.cpp 2022-01-17 22:51:49 +05:30
Nicolas Werner c59bb67569
Fix setting double values in setting spinboxes 2022-01-13 05:52:31 +01:00
Nicolas Werner f51188df15
Add profile to notifications on KDE 2022-01-12 19:09:19 +01:00
Nicolas Werner 59bc8307c8
Address review comments 2022-01-11 04:12:42 +01:00
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
Michele Guerini Rocco 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