Skip to content

Refactor input stuff

Tobias Fella requested to merge work/refactorinput into master

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. as far as i can tell, they were broken anyway. 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 (merged)) and moved to NeoChatRoom

Broken at the moment:

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

TODO:

  • User / room mentions based on QTextCursors instead of the hack we currently use
  • Refactor autocompletion stuff
  • ???
  • Profit
Edited by Tobias Fella

Merge request reports

Loading