Commit Graph

129 Commits

Author SHA1 Message Date
James Graham
d2888bc479 Reply Refactor
The aim here is to tidy up the reply component and make it so it sizes automatically without any need to manually set widths or heights. This is achieved by putting the layout in a grid layout. The implicitwidth and height variables are also simplified meaning that the margins are no longer prone to being slightly off because the calculation didn't add up the margins and spacing right.

Also added here is a mime component which is used to provide a nicer representation for files, videos and audio in the reply because trying to put the full component in wouldn't look good.

This also fixes the situation in right to left mode where the layout now mirror properly and everything sits where it should.

New reply elements
![image](/uploads/bfdc81040b3477b064fe8a06d30bdb6e/image.png)
2022-10-11 20:36:15 +00:00
Tobias Fella
0fc94310c3 Implement reporting events
BUG: 458856
2022-09-26 14:38:45 +00:00
Bharadwaj Raju
37780c2e3b Link Previews
Uses Matrix's preview API to generate embedded link previews.

Only title and description for now.

![image](/uploads/2c5d632480073fe54345cdbe22ea54dc/image.png)
2022-09-22 15:42:53 +00:00
Tobias Fella
b8262fef92 Implement device verification 2022-09-21 11:49:11 +00:00
James Graham
4bba505da6 Initial work to add push rule support
This commit adds the ability to set the master push rule and set push rules for individual rooms as per the matrix spec. See https://spec.matrix.org/v1.3/client-server-api/#push-rules.

The master push rule is just on/off and uses the existing notification setting in general setting to enable/disable the server default master push rule .m.rule.master.

For each room there is now a page in the room setting that allows the following to be set:
- Default
- All messages
- @mentions and keywords
- off

New room or override rules are added/removed to achieve this.

There is also functionality to check the master/room notification state whenever the setting menu is entered. This allows the status to be updated if changed in another client or get the initial state for a room as it isn't stored.

Note - There is currently no menu items in the room list for setting the room push rule settings. This will be added in a later commit, the aim is to focus on making sure the technical implementation is good for now.
2022-09-09 16:41:03 +00:00
Carl Schwan
3c7e85fbbf Fix loading state detection in devices page
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-08-26 23:39:05 +02:00
Carl Schwan
28137c8c86 Display monochrome icon in tray
Fix #471
2021-12-25 15:30:20 +01:00
Tobias Fella
332d6c9782 Minor improvements
- Rename TextDelegate to RichLabel since it's not actually a delegate
- Allow web search for whole messages
2021-12-15 00:53:43 +01:00
Tobias Fella
599ab11656 Refactor delegates 2021-12-14 22:27:29 +00:00
Nicolas Fella
16d43e9ee8 Use icon from qrc for system tray icon
Fixes the system tray on Windows
2021-12-11 20:10:59 +01:00
Carl Schwan
b44963d572 Copy SonnetConfigPage since we can't put it in Sonnet for now 2021-11-13 13:10:28 +01:00
Carl Schwan
25ac18e800 Revert "Revert "Spellchecking with new Sonnet declarative API""
This reverts commit dada3e300b.
2021-11-13 13:10:16 +01:00
Carl Schwan
890860df92 Improve room setting
* Port away from OverlaySheet
* Use Kirigami.CategorizedSettings
* Add join rules (read only for now)
2021-10-21 20:00:50 +00:00
Carl Schwan
fc9f37d4a4 Port global settings to Kirigami.CategorizedSettings 2021-10-21 19:38:03 +00:00
Tobias Fella
dada3e300b Revert "Spellchecking with new Sonnet declarative API"
This reverts commit 17bbc60f6f
2021-08-20 20:31:25 +00:00
Tobias Fella
d7ce0b7468 Show a placeholder for encrypted messages
Tells the user that the message could not be decrypted because the key
was not shared with the device. At the moment, this is technically not
completely correct, but it will be when libQuotient supports reading
encrypted messages
2021-08-18 21:54:06 +02:00
Carl Schwan
17bbc60f6f Spellchecking with new Sonnet declarative API
This replaces all the custom code with a shared implementation
in QQC2-desktop style
2021-08-14 20:27:11 +00:00
Jan Blackquill
537416354a feat: global menu
This adds a global menu to NeoChat, providing
a standard and consistent set of File/Edit/View/so on
menus.
2021-07-02 09:16:31 +00:00
Jan Blackquill
30965cb503 feat: ponies.im emoji support (custom emojum) 2021-06-16 15:34:55 -04:00
Carl Schwan
0ff9425fee Add spellchecking suggestions 2021-06-10 11:29:59 +00:00
Carl Schwan
efb70287b9 Add setting page 2021-06-07 11:49:35 +02:00
Carl Schwan
23bd73c499 Draft: Big overhaul of the settings 2021-06-07 11:34:12 +02:00
Jan Blackquill
ce15a8d697 Add quick switcher 2021-06-04 00:02:00 +00:00
Noah Davis
bbcf4239a4 Use 3 dot typing indicator, clean up code a bit.
Move TypingIndicator.qml out of ChatBox folder.
It wasn't part of the ChatBox.

fixes #367 by eliding instead of wrapping text
2021-05-27 14:17:22 +00:00
Tobias Fella
d170cc5161 Cleanup QML imports and license headers
- Group the imports into Qt, KDE, NeoChat
- Import the latest versions
- Remove unused imports
- Remove unused components
- Unify license header styling
2021-04-07 19:38:40 +00:00
Noah Davis
38e2c7222b This splits ChatTextInput into ChatBox and a handful of subcomponents.
- ChatBar: Contains the main TextArea and standard buttons.
  - Usually visible, but can be disabled when necessary.
- AttachmentPane: Contains an image when attaching an image and also a filename with mimetype icon.
  - Has a toolbar to cancel the attachment or edit it if it's an image.
  - Shown when there is an attachment.
- ReplyPane: Shows who you are replying to and the content of their message.
  - Also shows edits and has a button to cancel replies/edits
  - Shown when replying or editing
- CompletionMenu
  - Now a vertical list using a QQC2.Popup
  - Either a Pane or a Menu/Popup
- EmojiPickerPane

@teams/vdg
2021-03-17 23:48:06 +00:00
Carl Schwan
612fb4924e Start implementing bubbles 2021-03-06 20:19:41 +00:00
Alexey Andreyev
250398dc0d Fancy effects: lightness and particle improvements
Add custom images for Image Particles.
Improve fireworks particle lifetime and colors.
Improve snow visibility according to background color.
Improve confetti animation.
2021-02-23 20:49:35 +00:00
Alexey Andreyev
e7a862a1d9 Introduce fancy particle effects. Contributes to #261
Add user setting. Introduce FancyEffectsContainer. And confetti and snow
implementation.
2021-02-23 20:49:35 +00:00
Tobias Fella
464c48540e Improve first-run UX
- Replace LoginPage with step-by-step approach to support different login flows
- Implement login using SSO
2021-02-07 21:23:31 +00:00
Tobias Fella
72907a1f18 Refactor and fix invitations
-Move invitation handling into RoomPage and delete InvitationPage
-Open the new room after accepting the invitation
2021-02-04 20:22:53 +00:00
Carl Schwan
f4784bb0a1 Allow opening window in a secondary window 2021-01-09 13:32:16 +00:00
Tobias Fella
8e2cdc8f08 Implement a device management page 2020-12-16 23:37:49 +00:00
Tobias Fella
8435243c7a Improve android style 2020-12-15 18:13:25 +01:00
Tobias Fella
3c5ee404c3 Get rid of Neochat.Effect 2020-12-12 00:09:10 +00:00
Tobias Fella
03df042922 Remove old icons 2020-12-10 15:43:55 +01:00
Carl Schwan
87833a8458 Add an image editor 2020-12-07 09:58:03 +00:00
Carl Schwan
b0bbd3631f Add Start a chat page 2020-11-27 14:37:29 +01:00
Carl Schwan
da9f08eae4 Remove obsolete QML components 2020-11-27 14:37:29 +01:00
Carl Schwan
fe63b0c9a7 Add emoji picker for reaction 2020-11-24 14:25:56 +01:00
Carl Schwan
b4e1c6979f Add option to accept invitation 2020-11-19 07:35:00 +00:00
Tobias Fella
039816e8eb Show notifications 2020-11-18 21:14:40 +00:00
Tobias Fella
a8b95791e2 Port MessageSourceDialog to OverlaySheet 2020-11-17 20:39:40 +01:00
Carl Schwan
8e52f645a2 Remove more old MPalette stuff 2020-11-17 11:21:56 +01:00
Carl Schwan
78f54e2441 Internalisation++ 2020-11-17 00:14:17 +01:00
Carl Schwan
28c965a40d Use a page for invitation instead of popup
This generally work better on a mobile device
2020-11-16 22:45:41 +00:00
Carl Schwan
6db8354727 Fix MessageDelegateContextMenu not being displayed
It turnout that using an QML Singleton was a bad idea, instead create a
qml object in the main component and refer to it in the rest of the
codebase.

This commit also simplify a bit the qml structure of the Menu and fix
some visual bugs.
2020-11-16 10:00:18 +01:00
Tobias Fella
2a0f89bab0 Remove unused qml files 2020-11-11 22:28:52 +01:00
Tobias Fella
84c6bd24dd Remove AccountDetailDialog
It's unused and replaced by AccountsPage
2020-11-11 18:46:53 +01:00
Carl Schwan
b0700726f9 Add join room page 2020-11-10 17:08:13 +00:00