* 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: move ipc queue into its own class
* refactor: move windows.h related functions to AW
* refactor: make NM-Client methods static
* refactor: json access
* refactor: use struct initializer
* refactor: move `handleMessage` to anon-namespace
* refactor: clean-up includes
* refactor: move action handler to functions
* refactor: cleanup `handleSelect`
* fix: cleanup clang-tidy warnings
* chore: simplify json
* revert: keep handlers as methods
This is more readable and extensible.
* fix: typo
* fix: namespace
* fix: rename define
* refactor: `IpcQueue` to be simpler
* fix: rename cmake option
* fix: use variant when constructing
* fix: make it a ref
* fix: its a pair now
`/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>
* Pass link as argument instead of in command string when opening incognito links
* Update CHANGELOG.md
* Make changelog message more user facing
* Remove now unused argument for getCommand
* Add `<functional>` include to QStringHash.hpp
This ensures the base `std::hash` template is declared before this
specialization
* Add missing includes to `src/providers/twitch/TwitchAccountManager.hpp`
* Move explicit HelixChatters constructor to the source file
* Remove unused includes & add used includes to NicknamesModel.hpp
* NicknamesModel.hpp: Remove `virtual` when `override` is used
* Add missing QStringHash include to TwitchEmotes.cpp
* Add missing includes to various files
* Print Qt version in cmake step
Technically unrelated, but I'm sneaking it in
* Add changelog entry
* Flatten static functions in anonymous namespace
* SplitHeader ctor: Rename param
* Header: Remove unnecessary `virtual`s
* auto ptr where possible
* Add curly braces
* Comment twitch room modes
* Treat roomModes->slowMode as an integer
* Remove unused `this` from lambdas
* Add `unsigned int` overload for localizeNumbers
* Move thumbnail max age to a constexpr static & set explicit types
* Explicitly use `QObject::connect`
* Use `empty()` instead of `size()`
* Name unused parameters
* Move moderation action refreshing logic from SplitHeader to Split
* fix: remove unused includes
* fix: bad includes
* fix: top include
* fix: streamer mode includes
* fix: missing include
* fix: remove `#else`
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
This change enforces strict include grouping using IncludeCategories
In addition to adding this to the .clang-format file and applying it in the tests/src and src directories, I also did the following small changes:
In ChatterSet.hpp, I changed lrucache to a <>include
In Irc2.hpp, I change common/SignalVector.hpp to a "project-include"
In AttachedWindow.cpp, NativeMessaging.cpp, WindowsHelper.hpp, BaseWindow.cpp, and StreamerMode.cpp, I disabled clang-format for the windows-includes
In WindowDescriptors.hpp, I added the missing vector include. It was previously not needed because the include was handled by another file that was previously included first.
clang-format minimum version has been bumped, so Ubuntu version used in the check-formatting job has been bumped to 22.04 (which is the latest LTS)
util/IsBigEndian.hpp and util/rangealgorithm.hpp have been unused for a long time, removing them from the codebase because git keeps the history forever anyway!
Streamer mode now automatically detects if XSplit, PRISM Live Studio, Twitch Studio, or vMix are running
Co-authored-by: Kasia <zneix@zneix.eu>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
Also:
- Fixed capitalization of one method in `LoginDialog.cpp`
- Visually improved some strings in `LoginDialog.cpp`
- Added utility function getting clipboard content to `Clipboard.cpp`
- Made sure to use `crossPlatformCopy` in `UserInfoPopup.cpp`
Also changes the way timeouts happen, since right now if a timeout was met (which it mostly wasn't), it would run the error callback twice causing potentially undefined behaviour
There's now a new (yet another, sigh) section in Settings -> General, which lets you set streamer mode to 'enable/disable/detect obs' and there are also separate settings for each of the things that streamer mode covers. I just have to add ping sounds and PR is ready to be merged :)
* Show "Streamer Mode" image as link thumbnails if applicable
* Moved hideViewerCountAndDuration to streamerMode settings
Set it to false by default (just how it used to be under /misc settings, also reworked live tooltip to be a bit prettier and say "<Streamer Mode>" in gray instead of "Live with <hidden> for <hidden> viewers"
This has historically been done in the Recent Messages API, but this functionality is being moved to Chatterino instead
* Remove `clearchatToNotice=true` query parameter to the Recent Messages API