Commit Graph

26 Commits

Author SHA1 Message Date
James Graham
5482aad7ba Inline Edits
Edit text messages inline instead of in the chatbar
2023-02-12 13:46:23 +00:00
Tobias Fella
ebd521e2ee Don't crash when leaving an opened room
Should fix #568
2023-01-29 13:51:52 +00:00
James Graham
594a5cf6ca Move the qt models to their own folder
Felt like the src folder was getting a bit crowded so move all the models to a folder named models.
2023-01-22 21:33:30 +00:00
Laurent Montel
c46bfe05c1 Remove duplicate headers between cpp/h files 2022-12-19 13:32:39 +01:00
Tobias Fella
f207f57bd5 Various Qt6 fixes 2022-11-30 00:13:29 +00:00
Tobias Fella
dd0300d025 Reimplement normal emoji completion
BUG: 460632
2022-11-26 13:56:02 +00:00
Tobias Fella
510c6d4a90 Don't freeze when pasting large markdown documents
BUG: 460802
2022-10-23 22:10:43 +00:00
Tobias Fella
bbf76e1e64 Fix disconnects 2022-10-23 23:23:56 +02:00
Tobias Fella
9398c5004c Reintroduce selectionStart, selectionEnd 2022-10-11 17:58:49 +02:00
Tobias Fella
4bfd857093 Refactor input stuff
This is the start of a significant refactoring of everything related to sending messages, which is roughly:
- the chatbox
- action handling
- message sending on the c++ side
- autocompletion of users/rooms/emojis/commands/things i forgot

Notable changes so far include:
- ChatBox is now a ColumnLayout. As part of this, i removed the height animations for now. <del>as far as i can tell, they were broken anyway.</del> I'll readd them later
- Actions were refactored to live outside of the message sending function and are now each an object; it's mostly a wrapper around a function that is executed when the action is invoked
- Everything that used to live in ChatBoxHelper is now in NeoChatRoom; that means that the exact input status (text, message being replied to, message being edited, attachment) is now saved between room switching).
- To edit/reply an event, set `NeoChatRoom::chatBox{edit,reply}Id` to the desired event id, `NeoChatRoom::chatBox{reply,edit}{User,Message}` will then be updated automatically
- Attachments behave equivalently with `NeoChatRoom::chatBoxAttachmentPath`
- Error message reporting from ActionsHandler has been fixed (same fix as in !517) and moved to NeoChatRoom


Broken at the moment:
- [x] Any kind of autocompletion
- [x] Mentions
- [x] Fancy effects
- [x] sed-style edits
- [x] last-user-message edits and replies
- [x] Some of the actions, probably
- [x] Replies from notifications
- [x] Lots of keyboard shortcuts
- [x] Custom emojis
- [x] ChatBox height animations

TODO:
- [x] User / room mentions based on QTextCursors instead of the hack we currently use
- [x] Refactor autocompletion stuff
- [x] ???
- [x] Profit
2022-10-10 23:10:00 +00:00
James Graham
53b9f42399 Fix Slash Commands in the Middle of a Message
Make sure that a slash command only activates when the slash is at the beginning of the message.

BUG: 457474
2022-09-22 15:11:56 +00:00
James Graham
29816730e4 Add space after an autocomplete
Adds a space automatically after an autocomplete if the last char isn't one.

Implements network/neochat#132
2022-05-30 19:17:47 +00:00
Tom Z
df4df171dd Fix valgrind warnings 2021-08-23 22:51:41 +02:00
Carl Schwan
768fd74361 Keep completion behavior similar to before
* Use tab to jump to the next completion item
* Space to accept change
2021-06-17 00:37:57 +02:00
Jan Blackquill
6898670499 feat: better autocompletion UX
The autocompletion bar is now more similar to mainstream
chat applications, which use up/down to change the selection,
and tab to confirm the selection. An extra space is also added
to keep the flow of typing going.
2021-06-16 16:29:14 -04:00
Carl Schwan
0ff9425fee Add spellchecking suggestions 2021-06-10 11:29:59 +00:00
Carl Schwan
8f309ca958 Add SpellChecking to NeoChat
Fix #98
2021-06-07 11:34:38 +02:00
Srevin Saju
6575d23072 feat: trigger completion of commands on the input of backlash / char 2021-05-01 13:30:24 +03:00
Tobias Fella
2cb81d1276 Unify License header style in C++ 2021-04-06 19:25:06 +02:00
Tobias Fella
592c33ed8b Add missing license header 2021-04-06 15:40:46 +00:00
Carl Schwan
cd1bec9977 Introduce the ActionsHandler 2021-01-08 23:12:09 +00:00
Carl Schwan
c69d3587ba Allow editing text and also hide edits from the timeline 2020-12-28 09:37:17 +00:00
Tobias Fella
c449a8fafe Apply clang-format 2020-12-25 22:23:35 +01:00
Carl Schwan
7ed41a8f68 Move back to plain text 2020-12-04 21:25:23 +01:00
Carl Schwan
136a8f2af8 Clang-tidy + clang-format 2020-11-27 00:26:39 +01:00
Carl Schwan
d6ab6bacdd Use RichText text input to provide real mentions
This use internally now a QTextDocument and a new C++ class to
manipulate the document with QTextCursor.
2020-11-26 14:25:30 +00:00