Commit Graph

49 Commits

Author SHA1 Message Date
Tobias Fella
9c4a925171 Indicate messages that are not sent yet 2023-02-22 23:21:03 +00:00
James Graham
2dd3197beb Inline Edit Fixes
- Make sure the connection to the room's chatBoxEditIdChanged signal is made so that the edit box gets filled.
- Make sure the minimum height and preferred width are available to the loader so they can be set and dynamically updated.

BUG: 465934
2023-02-20 18:24:00 +00:00
James Graham
f785e4d5b0 Inline Edit Loader
Put the edit component in a loader to that it doesn't use resources when not in use.

CCBUG: 465715
2023-02-15 19:30:23 +00:00
James Graham
f186be7314 Disable link loading animation when offscreen
Stop the link preview loading indicator animation running when the delegate isn't visible.

CCBUG: 465715
2023-02-15 18:22:51 +00:00
James Graham
ea76edce74 Improve Link Preview Sizing
Update linkpreviewer to minimise the number of resizes.

- There is now a placeholder loading element to hold space while the data is obtained
- The component starts with a set size but can be expanded to see the whole item.
- The expand/contract button is only visible on hover
- The default size is picked to show 3 lines of text (1 heading and 2 description, 2 heading and 1 description, etc)

This is designed to help with the timeline scroll jumping CCBUG: 463235 by minimizing the amount of resizing for items in the timeline.

Before

![image](/uploads/bb46f55dc38851e640a7382aafea8640/image.png)

After when compressed

![image](/uploads/3cbc7894688721d944a5551251b12a12/image.png)

After When expanded

![image](/uploads/50ff53fe51eefe88713a2ded34530534/image.png)

After Loading

![image](/uploads/72567f805af6b08ab0c5fc1cf94bd247/image.png)
2023-02-12 21:10:52 +00:00
James Graham
5482aad7ba Inline Edits
Edit text messages inline instead of in the chatbar
2023-02-12 13:46:23 +00:00
James Graham
aaa26571d1 Foldable State Events
Implement folding sections for multiple consecutive state events. This also reworks some of the aggregated text output:

- Only new days cause a new section
- The aggregated text starts with either a single username or n users
- If the same user did the same action mutltiple times it will be in the aggregated text a user did x n times
- When there are multiple authors in a block with multiple state event types it will use or rather than and before the last event. e.g 3 user left the room or joined the room.

Folded

![image](/uploads/17141ed5e1f2e0e3539523a082275976/image.png)

Unfolded

![image](/uploads/1d5db5804da457b921544cc81099997d/image.png)

Implements network/neochat#90
2023-02-12 11:43:39 +00:00
Nikita Karpei
f1b9d2329f Don't play GIF images while Neochat isn't focused
BUG: 465019
2023-02-07 17:33:10 +00:00
James Graham
b901c1bdf2 Pull in the updates from video delegate to image delegate to improve sizing behaviour. 2023-02-02 19:28:49 +00:00
James Graham
c51e16e16c Add basic video controls
Add play, volume and duration slider

![image](/uploads/e85c6685c3d81c7a3839727a995b816f/image.png)
2023-01-28 19:17:17 +00:00
James Graham
8948ff5faa Add padding to the right of the timeline delegate highlight same as left 2023-01-26 15:50:52 +00:00
Joshua Goins
0af420b824 Improve link regex to fix handling paranthesis and question marks
This patch fixes two key issues:
* `?` is considered part of the URL, even if there might not be anything past it. I've seen people now putting spaces after URLs to get around this issue.
* `)` is also part of the URL, as well as `:` despite those not being valid characters at the end of URLs.
2023-01-22 18:35:31 +00:00
Wang Zichong
782f5517d3 Fix falsely treat some symbols as emoji 2023-01-10 22:20:49 +00:00
James Graham
647cc25e57 Improve fileDelegate
Make the buttons in file delegate always align left even in compact layout as this looks better. Also fix margins.

BUG: 463327
2022-12-27 13:19:04 +00:00
James Graham
158c99daef Improve timeline image sizing
Improve the initial resizing of an image in the timeline by always looking to see whether sourcesize or image.info is populated first.

This allows the actual size of the image to be calculated as soon as possible while still maintaining the fix fo CCBUG: 460205

May also help CCBUG: 463235 I need help testing this it currently no longer happens for me.
2022-12-22 20:23:00 +00:00
Tobias Fella
51e0023384 Implement searching in rooms
BUG: 457839
2022-12-22 19:49:48 +00:00
James Graham
f475965cf7 Fix code formatting 2022-12-14 16:14:13 +00:00
James Graham
1176cf029b Now allow links to be clicked in replies 2022-12-14 16:14:13 +00:00
James Graham
d68fb81bcf Show a Qt.PointingHandCursor when hovering over a reply 2022-12-14 16:14:13 +00:00
Tobias Fella
66bfcd6239 Fix cursorShape for avatar in StateDelegate
BUG: 454893
2022-12-05 00:35:40 +01:00
Tobias Fella
9bcbdb78fd Revert "Fix /me giving extra newline"
This reverts commit 42d728ac4b.
2022-11-29 16:21:45 +01:00
Tobias Fella
fda433706b Remember last used folder in save dialogs
BUG: 460166
2022-11-27 19:54:07 +00:00
Tobias Fella
252108c652 Don't show replied-to event as edited for edited replies 2022-11-27 13:03:09 +00:00
Tobias Fella
3697146f44 Revert "Implement selection across multiple MessageDelegates"
This reverts commit 405c2c3d2d.
2022-11-27 02:18:14 +01:00
Tobias Fella
405c2c3d2d Implement selection across multiple MessageDelegates
BUG: 457669
2022-11-26 18:10:45 +01:00
James Graham
eff994a9be Fix readmarker background colour animation
Update the target for the read marker background colour animation
2022-11-24 21:04:48 +00:00
Tobias Fella
ab1b1f6c08 Integrate file uploads and downloads with plasma's job tracker
Implements #538
2022-11-23 23:16:50 +00:00
James Graham
7ce02ef0db Improve read marker
- Update from deprecated readMarkerEventId to lastFullyReadEventId for quotient 0.7.
- Removed duplicate code for marking read from the read marker delegate.
- Make sure that mark as read only trigger at the end of the timeline
- Allow the read marker to be highlighted when jumped to
2022-11-22 20:25:04 +00:00
James Graham
42d728ac4b Fix /me giving extra newline
Make sure that the emote name is added inside the first paragraph rather than as an additional one.

Note alternate to network/neochat!632 because I didn'y realise @tfella had done a patch

CCBUG: 461837
2022-11-21 18:43:29 +00:00
Carl Schwan
edaf1005d4 Make it possible to "save as" attachment after opening them
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-11-21 16:17:41 +00:00
Carl Schwan
236c6a2d04 Fix opending dir
UrlHelper doesn't return anything so it is useless to check the return
value in a if condition

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-11-21 16:17:41 +00:00
Carl Schwan
ffa8fbf365 Allow to open file directly
Fix #506

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-11-21 16:17:41 +00:00
James Graham
5f93dca878 Missing QQC2 on Tooltip in ImageDelegate was causing fullscreen image not to open. 2022-11-15 18:18:48 +00:00
James Graham
95bdaf7b3d Make it so that when the window is wide enough the compact mode messages are indented slightly so that they don't overlap the up and down buttons 2022-11-15 17:54:07 +00:00
Tobias Fella
29603313a5 Fix rendering of custom emoticons 2022-11-15 17:44:29 +00:00
Tobias Fella
ab5afa26ef Always include QtQuick.Controls as QQC2 2022-11-14 23:21:14 +00:00
Tobias Fella
42cd470e15 Fix running without polls 2022-11-14 19:32:46 +01:00
Tobias Fella
0e782c4a93 Implement viewing and responding to polls 2022-11-14 01:40:44 +01:00
James Graham
815ec1b30e Show animated images
Use animated images in imageDelegate and FullScreenImage so that animated images can be viewed.

Note webp animated images don't work this is a bug with qt see https://bugreports.qt.io/browse/QTBUG-70245
2022-11-12 14:42:20 +00:00
James Graham
460997bca3 Refactor Timeline Container
Update the base item in the timeline container to be a column layout. This means that all the items can be laid out automatically without the need to set lots of manual settings and anchoring. 

The overall height calculation for the delegate is vastly simplified (in fact it is removed) which deals with the fact that there were still instances where the manual calculation didn't work e.g. a delegate with a reaction followed by another message from the same user didn't give the correct bottom margin (see below)

before:
![timelineContainer_height_bug](/uploads/5b14568294698198dee8412f6cd19be0/timelineContainer_height_bug.png)

after:
![timelineContainer_height_bug_fix](/uploads/c5828f1b793817fd0ed523c3580a2ecc/timelineContainer_height_bug_fix.png)

This also improves upon the recently changed hover highlight behaviour. The previous patched moved it to cover the avatar as well as the bubble however it also covered the section and reaction when present which didn't look good. The highlight now only covers the avatar and bubble

before:
![highlight_bug](/uploads/0d08dc769ff737e0fb4981243d02d5f3/highlight_bug.png)

after:
![highlight_bug_fixed](/uploads/536ed672d0f1bb6cbe6c45777fed4b53/highlight_bug_fixed.png)

This also cleans up some of the margins in both bubble and compact to ensure consistency.
2022-11-11 17:05:14 +00:00
Tobias Fella
957ebb5502 Don't open context menus when touching on a delegate 2022-11-10 23:01:46 +01:00
Tobias Fella
d02b4007c0 Fix showing old name for rename events 2022-11-10 21:37:03 +01:00
Tobias Fella
962a1b228c Highlight other party in state events
BUG: 458267
2022-11-10 20:15:07 +00:00
James Graham
7aed6d2e44 Apply max image size so they don't become huge in compact mode.
Set max size to gridUnits * 30. The aim is to allow them to be generally bigger than bubble mode but not so huge that they take up the entire screen

BUG: 454878
2022-11-10 18:49:52 +00:00
Tobias Fella
782b71c826 Use plaintext in reaction delegate 2022-11-10 14:02:47 +01:00
James Graham
a4c445d1a5 Add a section label at the top which shows the date label of the next section
**Updated**

Add a section label at the top which shows the date label of the next section up. This means that the user will always be able to see the date of all messages on screen.

![image](/uploads/ecbcdc0740877ea0d72e735176353036/image.png)

From the feedback given I've added a background at the top. I also added an underline to the heading which applies both at the top and in the listView since they use the same component. I added it originally for the top because I felt it looked a bit weird having messages appear from behind a heading background the same colour as the listView background.

Note: I know the gaps between messages are not right. I had to set the spacing in the listView to 0 to prevent itemAt returning null. I plan to add it back in as part of the delegate code before it would be merge.

Fixes BUG:454880
2022-11-08 19:40:56 +00:00
Tobias Fella
92ec441594 Use enum instead of strings for message type 2022-11-02 08:55:28 +00:00
Tobias Fella
f873999652 QML Warnings-- 2022-10-24 16:51:43 +02:00
Tobias Fella
2817ce9d16 Move QML files to src/qml and don't use internal qml modules 2022-10-24 00:40:54 +02:00