Commit Graph

539 Commits

Author SHA1 Message Date
pajlada 7fdb3841db feat: Add "Copy message as JSON" option when shift-right-clicking a message (#5150) 2024-02-03 12:03:31 +00:00
nerix f2eabacda1 fix: use neutral or username color for reply messages (#5145) 2024-02-03 10:25:16 +01:00
nerix 954e19817c fix: more MSVC warnings (#5137) 2024-01-30 17:28:36 +01:00
nerix 7604d7ea4a perf: add signal to invalidate buffers without doing layout (#5123) 2024-01-24 18:13:31 +01:00
pajlada 97702e0a1f refactor: make Application::emotes private (#5109) 2024-01-20 10:49:32 +00:00
pajlada 4380ef8c5f refactor: Remove most raw accesses into Application (#5104) 2024-01-19 17:59:55 +01:00
nerix 5bf1a5a7dd fix: ignore channel name when copying message (#5106)
Fixes #5101
2024-01-19 13:11:25 +01:00
pajlada 9eeea8f203 refactor: Fix a bunch of minor things (#5094) 2024-01-17 21:05:44 +01:00
pajlada 93e2bc18fa refactor: move Network files from src/common/ to src/common/network/ (#5089) 2024-01-15 21:28:44 +01:00
pajlada 5b6675abb4 refactor: fix clang-tidy auto*, const&, and curly braces (#5083) 2024-01-14 17:54:52 +01:00
iProdigy 693d4f401d feat: add badges, emotes, and filters for suspicious messages (#5060)
* feat: show chat badges on suspicious user messages

* feat: display emotes in suspicious user messages

* feat: add search filters for suspicious messages

* chore: update changelog

* refactor: resolve initial nits

* fix: finish adding new filter identifier

* Comment the new message flags

* Add a list of known issues to low trust update messages

* fix: Keep shared-pointerness of the channel

Without this change, we would have the possibility of using the
TwitchChannel after the Channel itself has gone out of scope, albeit not
realistically since we just post this to a thread and parse it - there's
no networking or big delays involved. but this shows the intent better

---------

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-06 13:22:00 +00:00
fraxx 4a0ef08a00 Added missing periods at mod-related messages and some system messages (#5061)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-03 12:24:23 +01:00
iProdigy 036a5f3f21 feat: show restricted chats and suspicious treatment updates (#5056)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-12-31 10:44:55 +00:00
iProdigy eb12cfa50b feat: add sound and flash alert for automod caught messages (#5026)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-12-25 23:17:44 +00:00
nerix 1006bf955a perf: skip update from GIF timer if no animated elements are shown (#5042) 2023-12-25 19:04:46 +00:00
iProdigy 44abe6b487 feat: add channel for messages caught by AutoMod (#4986)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-12-03 22:07:30 +00:00
pajlada a240797b68 Add support for sound backends & some miniaudio changes (#4978)
Miniaudio now runs everything in a separate audio thread - this uses boost::asio's io_context.
Our miniaudio implementation is now also much simplified - it does not use its own resource manager or device. This might end up being stupid if sounds don't work after changing output device or locking or w/e
I've made the sound controller into an interface, meaning we can support multiple sound backends in Chatterino. I've added a Null sound backend that disables all sound. A QMediaPlayer or QSoundEffect or Qt backend could be added.
Miniaudio might idle & disable the device now too, not sure

I've added some unrelated changes in the form of a new setting type, and a new setting page helper function for it, which will hopefully make adding new enum settings easier in the future.
This setting stores its value as a string instead of an int, and uses magic_enum to convert between that string value and its enum value.
2023-11-26 22:06:12 +01:00
nerix 854032fce9 fix: Only display spaces between words in reply context (#4977) 2023-11-26 11:15:35 +01:00
Mm2PL fbc8aacabe Refactored the Image Uploader feature. (#4971)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-11-19 11:05:30 +00:00
kornes 0bdcaae5d1 Fix: dont select mod buttons at triple click (#4961) 2023-11-18 11:39:10 +00:00
nerix 6faf63c5c4 refactor: Remove Outcome from network requests (#4959) 2023-11-12 14:51:51 +01:00
kornes c8e03b4ad7 Dont invalidate paint buffer when selecting (#4911) 2023-11-08 21:19:18 +00:00
pajlada f89642ec66 refactor: Move all commands to their own files (#4946) 2023-11-08 18:57:09 +01:00
iProdigy 5209e47df1 Improve reply popup after thread update (#4923)
Co-authored-by: nerix <nero.9@hotmail.de>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-11-05 16:25:26 +00:00
pajlada 4e63a1b6ec refactor: Message (#4915)
* Helix: Remove static from anon namespace

* Message: Remove empty anon namespace

* Message: Remove else after return

* Message: Avoid repeating type in return

* Message: Remove ScrollbarHighlight alias

* Message: Remove unused includes

* AttachedWindow: Remove unused include
2023-11-02 14:48:12 +00:00
pajlada 7efe58cca9 refactor: ChannelView (#4926)
Co-authored-by: nerix <nerixdev@outlook.de>
2023-10-31 14:54:14 +01:00
nerix 7ecbfa0cdb refactor: debug count and popup (#4921)
* Moved implementation of the methods to the `cpp` file.
* Added `DebugCount::Flag(s)` and `DebugCount::configure(name, flags)`.
* Moved from `QMap` to `std::map` (order is important here).
* Used `QStringBuilder` for concatenations.
* Used `QLocale` for formatting (adds separators).
* Added `DebugCount::Flag::DataSize` for data sizes in bytes (and fixed language to English).
* Used `DataSize` for image sizes (maybe this should be moved somewhere else?).
* Added copy button to popup.
* Fixed Image usage reporting being eight times too large (could be another PR, but honestly it's four characters).
2023-10-28 21:17:32 +02:00
kornes 12808d3154 refactor: simplify double click selection (#4898) 2023-10-17 13:38:38 +02:00
kornes ccaedc3987 perf: reduce repaints amount caused by selection (#4889)
Co-authored-by: nerix <nero.9@hotmail.de>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-10-13 17:19:52 +00:00
pajlada 9f23c8562a Test filters context map & message builder (#4886) 2023-10-13 15:41:23 +00:00
pajlada fec45889a8 Replace boost::optional with std::optional (#4877) 2023-10-08 16:50:48 +00:00
nerix fe4d6121a2 Display all parsed elements when parsing emojis in replies (#4875) 2023-10-08 10:09:42 +00:00
pajlada 06eb30a50a fix: double margin (#4839)
order of the QMargins class differed from the old custom Margins class

Fixes #4838
2023-09-23 21:14:53 +00:00
nerix 6860c7007e Fix selection rendering (#4830)
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>
2023-09-23 15:09:56 +00:00
nerix 3265df7661 Fixed too much text being copied when copying chat messages (#4812)
* fix: selection copying too much

* chore: add changelog entry

* Update changelog entry

---------

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-09-17 12:37:02 +00:00
pajlada 9ca2578c1e Refactor Image & Image's Frames (#4773) 2023-09-13 19:26:45 +00:00
nerix 515c40f857 Use QFontMetrics::elidedText over manual implementation (#4807) 2023-09-09 12:09:25 +00:00
pajlada d4558b5fe5 Fix all warnings from the cppcoreguidelines-pro-type-member-init clang-tidy check (#4426) 2023-09-09 11:11:19 +00:00
pajlada 877a4e05fa Remove boost::noncopyable use & boost::random dependency (#4776)
The use has been removed from the following files:
* Atomic.hpp
* SignalVector.hpp
* Benchmark.hpp
* IvrApi
* LoggingChannel.hpp
* Singleton.hpp
* Image.hpp
* PrecompiledHeader.hpp
* Message.hpp
* MessageElement.hpp
* MessageLayout.hpp
* MessageLayoutElement.hpp
* Fonts.hpp (just include)
2023-09-09 10:23:20 +00:00
pajlada 7cb04bf58b Remove BaseSettings & merge ConcurrentSettings (#4775) 2023-08-28 17:51:28 +02:00
Felanbird 381d5c4276 Change Elevated Messages to Hype Chats (#4766) 2023-08-14 17:19:20 +00:00
nerix 71594ad0d8 Remove getApp and getSettings calls from Message-Rendering (#4535)
* 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>
2023-07-30 12:52:39 +00:00
nerix b9934a4532 Refactor tests and benchmarks (#4700) 2023-06-24 15:03:27 +02:00
Andrew Opalach 0e60ca10d0 Fix smooth scrolling when ChannelView is full (#4501)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-06-18 12:09:11 +00:00
nerix aff9342647 Add option to subscribe to and pin reply threads (#4680)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-06-17 15:41:52 +00:00
mohad12211 c907f2b170 Fix spacing issue with mentions inside RTL text (#4677)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-06-10 13:44:45 +00:00
chrrs bf4148a370 Consider nicknames when searching for messages (#4663)
Co-authored-by: pajlada <rasmus.karlsson+github@pajlada.com>
2023-05-31 19:38:17 +00:00
Mm2PL fb02d59b48 Add tools to help debug image GC (#4578)
`/debug-force-image-gc` will force garbage collection on all unused images
`/debug-force-image-unload` will force unload all images

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-05-27 12:18:08 +00:00
nerix 95e7426283 Remove Redundant Parsing of Links (#4507)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-04-22 22:58:37 +00:00
pajlada c8e1741e47 Remove CHATTERINO_TEST definition (#4526) 2023-04-09 12:18:56 +02:00