Commit graph

2368 commits

Author SHA1 Message Date
DeepBlueV7.X
b90e39ecb4
Prefer empty() over length() 2022-02-21 00:27:01 +00:00
Nicolas Werner
46fbb0e749
Use ListView without scrollview for messages
That way we can autohide the scollbar if needed, it should fix some
jumping issues, it makes it possible to flick on mobile, etc.

Some related bugs:

https://bugreports.qt.io/browse/QTBUG-75223
https://bugreports.qt.io/browse/QTBUG-44902
2022-02-19 21:45:43 +01:00
Nicolas Werner
e077bdbdd5
Allow window sizes smaller than 400x400 2022-02-14 22:56:35 +01: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
1bc986fd3b
Prevent old verification requests from showing up 2022-02-14 15:25:55 +01:00
Malte E
414257bf0e fix bugs found by Nico 2022-02-14 14:03:17 +01:00
Malte E
c70fe9c571 let lint fix the code formatting 2022-02-13 13:22:29 +01:00
Malte E
987b9bed6b add small avatars option and tweak colors and spacings 2022-02-13 13:12:51 +01:00
Nicolas Werner
3e958ea382
Fix setting emoji font 2022-02-12 23:07:04 +01:00
Ivan Pavluk
2a2ef2f2e5 use shortcode as a fallback for custom emote title
Some clients (e.g. FluffyChat) don't have a UI for specifying the emote
title, and instead use the shortcode as the title. This sets the title
accordingly even if the emote was added through such a client and only
has a shortcode.
2022-02-13 04:51:11 +07:00
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
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