The rendering of selections was not aligned to the actual selection that took place for newlines at the end of messages, if they were the only part that was selected of that message.
In addition to that fix, we've already refactored the MessageLayoutContainer to try to make it a little bit more sane to work with in the future.
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
* Tests: Fix InputCompletion tests in Qt6
This is achieved by not checking exact order for certain completion tests
* Tests: Use Ubuntu 22.04 for all tests
This allows us to be a bit more loose and use more C++20 features in
tests
* Update dockerfiles
This code has been sitting behind a define since 2018 (de3a490). I'm not opposed to this code coming back however in this state, it feels better to remove it.
* Remove restriction on go to message on system messages
Fixes#4608
* changelog
* Change the changelog entry from a bugfix to minor
---------
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
* Split log line generation from message search text
* changelog
* remove empty space at the beginning of usernames
* Move changelog entry
---------
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
* feat: build installer in CI
Co-authored-by: 8thony <114905842+8thony@users.noreply.github.com>
* fix: use inno-setup from PATH
* fix: only match `v*` tags
* fix: don't add to release
* fix: only run on master
---------
Co-authored-by: 8thony <114905842+8thony@users.noreply.github.com>
* Fix tooltip & popup positioning
This tries to ensure the tooltip & popups are created on the correct
monitor
* Add changelog entry
* Clean up debug output
* Use the full frame geometry to figure out screen bound movements
* Remove the now-unused `setStayInScreenRect` function
* Change the UserInfoPopup offset to be based on its width & height
instead
* Remove more debug output
* Fixed tab completion rarely completing the wrong word.
Fixes: #3101
* Use QSignalBlocker instead of janky bool, add comment about hidden logic
* copypasteo
* feat: more hype chat
* Add `std::chrono::seconds` overload to formatTime
* Move & rename it to HypeChat + some other mini things
* Add changelog entry
* fix formattime test
---------
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
* refactor: remove singletons from message rendering
* chore: add changelog entry
* Disable the `cppcoreguidelines-avoid-const-or-ref-data-members` clang-tidy check
* auto *app
* Selection is a struct, not a class
* Use ChannelView's `signalHolder_` instead of `channelConnections_`
* Remove `applySettings` step, instead just connect & set each setting individually
* rename & constify some context values
* Handle empty "last message color" setting value better (as it was
originally in this pr before I removed that change :-)
* unrelated mini refactor cleanup
* let painSelection handle size_t instead of int
* Add some more comments to the MessageLayoutContext structs
---------
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>