Commit graph

174 commits

Author SHA1 Message Date
Nicolas Werner
b2b9cccb5e
Fix a few clang tidy warnings 2021-12-06 22:22:37 +01:00
Nicolas Werner
6760397f6c
Fix sanitizer warning about signed shifts 2021-12-04 02:43:33 +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
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
34a1b6267b
Make user colors a bit more vibrant 2021-11-19 23:58:20 +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
cfca7157b9
Change indentation to 4 spaces 2021-09-18 00:45:50 +02:00
Nicolas Werner
b63289ba54
Cleanup @room escape logic a bit 2021-08-20 14:00:35 +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
f401ed16ac
Tweak rainbows slightly 2021-07-21 17:44:29 +02:00
Joseph Donofry
19f2c02eda
Remove 'respond to key requests' functionality 2021-07-15 18:08:59 -04:00
Nicolas Werner
c600827f78
Strip reply fallback from roomlist
fixes #630
2021-07-13 02:36:10 +02:00
Joseph Donofry
d25f020d79
Fix linter issue 2021-07-08 21:07:45 -04:00
Joe
d05253a740 Add missing include to Utils 2021-07-08 00:39:11 -04:00
Joseph Donofry
0a833b6e9b
Avoid unnecessary QColor -> QString conversions 2021-06-08 17:20:09 -04:00
Nicolas Werner
d52c2515bc
Fix stray 'a' in @room escaping 2021-05-11 15:10:28 +02:00
Nicolas Werner
8236f6ba72
Merge branch 'forward_message_feature' of https://github.com/Jedi18/nheko into Jedi18-forward_message_feature 2021-04-24 14:35:21 +02:00
targetakhil
ddb1983c63 fix macos build error 2021-04-22 11:06:19 +05:30
Nicolas Werner
95a603fd62
Linkify matrix uris 2021-04-19 16:35:06 +02:00
targetakhil
5a5aba662e make util strip util functions non-static and move definition to cpp file 2021-04-18 12:03:25 +05:30
targetakhil
2dfa40e017 strip reply fallbacks from forwarded message 2021-04-18 11:22:44 +05:30
Nicolas Werner
007ee38b04
Fix exif rotation in unencrypted rooms 2021-04-04 00:15:08 +02:00
Nicolas Werner
fa68ae9fe9
Tweak rainbow slightly 2021-03-28 20:56:08 +02:00
Nicolas Werner
edaeb3ccde
Fix emojis being split by rainbows 2021-03-28 20:41:08 +02:00
LordMZTE
4b45c61024 run formatter 2021-03-28 17:37:36 +02:00
LordMZTE
e7f20eeae0 use QString as buf in rainbowifyer 2021-03-28 14:14:05 +02:00
LordMZTE
4e6150f28e implement requested changes 2021-03-28 14:00:35 +02:00
LordMZTE
64e29b07e2 remove incorrect include 2021-03-27 17:04:00 +01:00
LordMZTE
39ff68c6e6 use QString to format in rainbow function 2021-03-27 16:06:42 +01:00
LordMZTE
939f00c90d rainbow now works with unicode! 2021-03-27 14:35:06 +01:00
LordMZTE
a898abcecb use qtextboundary finder to rainbowify. (not working for unicode chars yet) 2021-03-27 14:16:40 +01:00
LordMZTE
947b8c0291 fix size type 2021-03-27 12:47:18 +01:00
LordMZTE
44bd3376ce add /rainbow command 2021-03-26 00:42:46 +01:00
Nicolas Werner
e5d75c814b
Clean up notification code a bit 2021-03-17 19:18:07 +01:00
Loren Burkholder
fda6d7629a
Switch readImage to take a reference instead of a pointer
There was nowhere that an actual pointer was passed, and I wanted to do references for something else.
2021-03-17 19:18:06 +01:00
Loren Burkholder
39576fea96
Create function for processing whether a message is a reply 2021-03-17 19:17:15 +01:00
Nicolas Werner
98e0b95635
Reduce allocations when escaping emoji 2021-03-14 14:04:30 +01:00
Nicolas Werner
973ec13ad8
Add linebreaks to fingerprint 2021-03-06 19:36:18 +01:00
Nicolas Werner
a6f0d2ea7d
Update license headers 2021-03-05 01:04:07 +01:00
Nicolas Werner
463cee7146 Fix wrong font used in emoji escape 2021-02-09 20:21:01 +01:00
trilene
974c336c5e make lint 2021-02-07 13:58:32 -05:00
Loren Burkholder
46e15218d4 Use UserSettings where possible 2021-02-04 18:44:36 -05:00
Nicolas Werner
4874006501 Fix emojis with fe0f in the middle 2021-02-01 21:53:04 +01:00
Nicolas Werner
904cafcd39 lint 2020-12-25 04:11:47 +01:00
Nicolas Werner
01e38d12ed Fix some compiler warnings 2020-12-25 00:08:06 +00:00
Nicolas Werner
7f1f747203 Fix black cat emoji 2020-12-15 21:53:51 +01:00
Nicolas Werner
77002f17c8 lint 2020-12-08 21:10:27 +01:00
Nicolas Werner
0cc4ab7f17 Add gitlab ci 2020-11-27 01:32:41 +01:00
Nicolas Werner
c31b9e2793 Fix race when reading members from db 2020-11-25 23:54:25 +01:00
Nicolas Werner
a31d3d0816 Add file uploading 2020-11-25 19:05:12 +01:00
trilene
ee543254e8 clang-format 2020-11-13 09:06:38 -05:00
Nicolas Werner
888d004764 Supress unused var warning for STUN_SERVER (used only if gstreamer supported) 2020-10-30 03:22:48 +01:00
Nicolas Werner
12fff7408e Optimize build 2020-10-27 17:45:28 +01:00
Nicolas Werner
4797b9fa96 Fix infinite pagination properly now. 2020-10-23 19:42:23 +02:00
Nicolas Werner
66445c507c Trade CPU usage for 30MB of members in RAM 2020-10-22 20:49:15 +02:00
trilene
7a206441c8 Support voice calls 2020-07-10 19:19:48 -04:00
Nicolas Werner
43d2ebc095 Fix Qt5.15 issues
fixes #214
2020-06-05 23:34:00 +02:00
lkito
d8b89e2ef0 Added an optional feature to show bigger emoji-only messages with 3 or less emoji 2020-05-21 16:31:27 +04:00
Nicolas Werner
641a883bfd Optimize RoomList sorting
Keep the almost sorted list around and sort by the raw timestamp value
instead of doing the expensive toMSecSinceEpoch conversion.
2020-04-30 23:59:17 +02:00
Nicolas Werner
28adc9dc9b Respect exif rotation of images
Sometimes thumbnails still have the wrong dimensions, as they are scaled
to fit inside a rectange of the reported size in the image. Not sure,
who is wrong there, the media repo or we.
2020-04-26 11:26:51 +02:00
Joseph Donofry
69b0b68f92
Merge branch 'master' into decrypt-sidebar 2020-04-23 18:40:07 -04:00
Nicolas Werner
d5e1475a5c Fix encrypted messages not showing a user in the sidebar 2020-04-23 02:29:55 +02:00
Nicolas Werner
35601b6bef Terminate user color calculation, when no solution can be found
fixes #172
2020-04-22 23:33:27 +02:00
Nicolas Werner
1eb2869fa8 Fix stuck unread messages by storing state events in the db
This may increase the db size by a factor of 1000 in the worst case and
it will need some fixes, when we decide to not show some events in the
timeline, but it should work for now.
2020-02-24 01:07:25 +01:00
Nicolas Werner
1b039d0b16 Fix bug in html tag escaping 2020-02-06 22:04:55 +01:00
Nicolas Werner
63f3071445 Remove more unneeded headers 2020-01-31 16:25:43 +01:00
Nicolas Werner
4cd260bfcf Optimize includes a bit 2020-01-31 15:11:21 +01:00
Nicolas Werner
b541cecd2e Enable ban and kick button in UserProfile (and try to fix centering) 2020-01-30 03:45:27 +01:00
Nicolas Werner
e81a4e8f9a Don't send useless formatted_bodies 2020-01-27 17:25:09 +01:00
Nicolas Werner
8fcb670bde Remove translations from reply fallback 2020-01-24 01:10:40 +01:00
Joseph Donofry
74e2b0725d
Minor tweak to one instance of QSettings not necessarily using the same settings as everything else 2020-01-23 17:07:24 -05:00
Nicolas Werner
1943d1c74d Increase emoji range 2020-01-21 22:36:55 +01:00
Nicolas Werner
c95f4d8276 Fix colors in typing display, when username contains emoji 2020-01-21 20:41:09 +01:00
Nicolas Werner
79e4e2e6e1 Improve emoji escaping 2020-01-21 04:18:17 +01:00
Nicolas Werner
dc44ac50a3 Linkify links before sending 2020-01-21 03:36:26 +01:00
Nicolas Werner
719f1571b9 Don't require Qt5.12 just for QByteArray::compare 2020-01-16 20:36:44 +01:00
Nicolas Werner
3f02b0bf56 Escape blacklisted html tags 2020-01-14 17:47:30 +01:00
Nicolas Werner
79f967da8c Reduce Cache.h includes further via one forward declaration 2019-12-15 03:34:37 +01:00
Nicolas Werner
5fc1f3bd67 Reduce overhead of Cache.h 2019-12-15 02:56:04 +01:00
Nicolas Werner
659e36b113 Update to c++17 2019-12-14 18:59:38 +01:00
Nicolas Werner
1268e9f11c Make replies format nicer
Also lays a bit of groundwork for better reply rendering
2019-11-23 20:06:15 +01:00
Nicolas Werner
2c37beba8d Fix translation of roomlist message preview
This also makes long messages unreadable, because we don't shorten long
usernames anymore. We may eventually want to do that again, but it is
hard with translations and we probably want to shorten the displayname
more, as before this change the message was only ever as long as the
timestamp, which is usually just 5 characters...
2019-11-23 20:06:15 +01:00
Nicolas Werner
cff46d97a8 Add native themeing to QML (where possible) 2019-11-23 20:06:15 +01:00
Nicolas Werner
8727831de7 Fix QML emojis 2019-11-23 20:06:14 +01:00
rnhmjoj
1659176c0d
escape html before parsing commonmark 2019-09-25 01:18:01 +02:00
Joseph Donofry
d5bb0936bf
Use 'system' theme as default if QT_QPA_PLATFORMTHEME is set
On first launch, before the user has configured any settings,
check the value of the QT_QPA_PLATFORMTHEME environment var.
If it is set, use the system theme as the default instead of the
light theme.  This fixes #72.
2019-08-10 13:14:37 -04:00
Nicolas Werner
1c9cc33902 Try to localise timestamps
I'm not sure, if that is the right way, but Qt doesn't really have a way
to format custom localised dates, so I tried to find the closest
approximations to what we currently have.

Relates to #69
2019-07-28 12:55:08 +02:00
Joseph Donofry
86888ee713
Fix bug with emoji font setting and clean linting 2019-07-26 17:44:44 -04:00
Joseph Donofry
c0a010acbb
Fix deprecated function call issues with Qt 5.13
Update to mtxclient 0.3.0
2019-07-04 21:20:19 -04:00
Nicolas Werner
40d9b5c5fc Fix santizize=undefined warning (overflow) 2019-06-27 14:57:32 +02:00
Joseph Donofry
129beb57c9
Further Improve Reply Functionality
Quoted replies now include matrix.to links for the event and the user.
UI Rendering has been (slightly) improved... still very WIP.
Restructured the reply structure in the code for future usability
improvements.
2019-06-13 22:33:04 -04:00
Nicolas Werner
23eef9e1bc Simplify linkifyMessage
Parsing html as xml has inherent problems, most notable there are many
matrix clients that don't escape ampersands in urls of mx-replies, etc.
(See issue #18)

This also removes the replacement of <mx-reply> as it isn't strictly
needed.

Also the QRegExp is replaced with the Qt5 QRegularExpression for
perfomance and because it supports lookahead and lookbehind.

I'm pretty sure that the original code also replaced href="" with
href=\"\", which was probably wrong, but I'm not to sure about that.

Fixes #18
2019-05-01 12:11:19 +02:00
redsky17
13663ad5f8 Improve color generation performance
Colors are generated asynchronously now and the TimelineItem is
updated when the color generation finishes.  This allows the UI
to stay responsive while new colors are being generated.
2019-02-08 01:58:00 +00:00
redsky17
2ba51c821e Update user colors to use Cache vs Utils
User colors are now stored in cache.  This is consistent
with other similar variables.  I think there's a bug
right now where it doesn't properly refresh colors
for the TimeLineItem when the theme is changed.
2019-01-26 02:55:07 +00:00
redsky17
237c7ad114 Author Color Fixes
Author color is now cached so that it will not be re-calculated
each time a new message is posted.  This cache gets cleared when
the theme is changed.

Additionally, the author color is now automatically refreshed
when the theme is changed, fixing the issue where you had to
change rooms before the colors would switch.
2019-01-20 04:43:48 +00:00
redsky17
b3f7c13e2f Update user id color generation
Update the author color generation.  Now, instead of generating
an entire hex string based on the user id, the user id instead
is used to generate a hue value.  After this hue value is created,
there is some logic to tweak first the lightness and then saturation
values to achieve a readable color (in contrast to the background).

This change makes it so that user colors will not vary as wildly
between the different themes.

The values still are not cached and still do not update
initially when the theme is changed.  Both of these things
will be resolved.
2019-01-20 00:16:31 +00:00
redsky17
50e382f554 Modified the code that generates user's colors so that it will
work regardless of the theme choices the user makes.  The code
now incorporates the contrast between the background color and the
color generated by the user_name when picking colors.  It currently
has two 'big' issues:
1. Colors are not cached.  I am planning on adding a QHash for this
a little later.  This should improve performance by not calculating
the color for the same users over and over and over again.
2. Theme changes do not trigger the colors to get refreshed.
Currently, you will have to switch to a different room and back
to get the colors to refresh.
2019-01-18 17:17:25 +00:00
redsky17
1882198e4b Make the author text slightly large.
Add author color generated based on user id.
2019-01-18 04:09:42 +00:00
redsky17
55883ec2de Remove the code that removed paragraph tags from markdown -> html.
This fixes #2, but reverts mujx#438.  I do not think mujx#438 was a
valid issue, as it complained about the display of valid HTML on riot,
which speaks more to how Riot styles things than about an issue in
nheko itself.
2019-01-18 00:59:31 +00:00