What's changed?
Bans & Timeouts now fully work with Twitch's IRC Command deprecation.
- Major: Added live emote updates for BTTV. (#4147)
Minor changes & bugfixes
- Minor: Added setting to turn off rendering of reply context. (#4224)
- Minor: Changed the highlight order to prioritize Message highlights over User highlights. (#4303)
- Minor: Added a setting to highlight your own messages in
Highlights -> Users. (#3833) - Minor: Added the ability to negate search options by prefixing it with an exclamation mark (e.g.
!badge:modto search for messages where the author does not have the moderator badge). (#4207) - Minor: Search window input will automatically use currently selected text if present. (#4178)
- Minor: Grouped highlight sound columns together and improved wording for the default sound setting. (#4194)
- Minor: Tables in settings window will now scroll to newly added rows. (#4216)
- Minor: Added setting to select which channels to log. (#4302)
- Minor: Added channel name to /mentions log entries. (#4371)
- Minor: Added link to streamlink docs for easier user setup. (#4217)
- Minor: Added support for HTTP and Socks5 proxies through environment variables. (#4321)
- Minor: Added crashpad to capture crashes on Windows locally. See PR for build/crash analysis instructions. (#4351)
- Minor: Github releases now include flatpakref files for nightly builds
- Bugfix: Fixed User Card moderation actions not working after Twitch IRC chat command deprecation. (#4378)
- Bugfix: Fixed User Card broadcaster actions (mod, unmod, vip, unvip) not working after Twitch IRC chat command deprecation. (#4387)
- Bugfix: Fixed crash that would occur when performing certain actions after removing all tabs. (#4271)
- Bugfix: Fixed highlight sounds not reloading on change properly. (#4194)
- Bugfix: Fixed CTRL + C not working in reply thread popups. (#4209)
- Bugfix: Fixed message input showing as red after removing a message that was more than 500 characters. (#4204)
- Bugfix: Fixed unnecessary saving of windows layout. (#4201)
- Bugfix: Fixed Reply window missing selection clear behaviour between chat and input box. (#4218)
- Bugfix: Fixed crash that could occur when changing Tab layout and utilizing multiple windows. (#4248)
- Bugfix: Fixed text sometimes not pasting properly when image uploader was disabled. (#4246)
- Bugfix: Fixed text cursor(caret) not showing in open channel dialog. (#4196)
- Bugfix: Fixed tooltip images not appearing if mouse hovered only first pixel. (#4268)
- Bugfix: Fixed crash that could occur when closing down a split at the wrong time. (#4277)
- Bugfix: Fixed crash that could occur when closing down the last of a channel when reloading emotes. (#4278)
- Bugfix: Fixed scrollbar highlight colors when changing message history limit. (#4288)
- Bugfix: Fixed the split "Search" menu action not opening the correct search window. (#4305)
- Bugfix: Fixed an issue on Windows when opening links in incognito mode that contained forward slashes in hash (#4307)
- Bugfix: Fixed an issue where beta versions wouldn't update to stable versions correctly. (#4329)
- Bugfix: Fixed builds from GitHub showing up as modified. (#4384)
- Bugfix: Avoided crash that could occur when receiving channel point reward information. (#4360)
- Dev: Changed sound backend from Qt to miniaudio. (#4334)
- Dev: Removed sending part of the multipart emoji workaround. (#4361)
- Dev: Removed protocol from QApplication's Organization Domain (so changed from
https://www.chatterino.comtochatterino.com). (#4256) - Dev: Ignore
WM_SHOWWINDOWhide events, causing fewer attempted rescales. (#4198) - Dev: Migrated to C++ 20 (#4252, #4257)
- Dev: Enable LTO for main branch builds. (#4258, #4260)
- Dev: Removed unused include directives. (#4266, #4275, #4294)
- Dev: Removed TooltipPreviewImage. (#4268)
- Dev: Removed unused operators in
Image(#4267) - Dev: Removed usage of deprecated
QDesktopWidget(#4287) - Dev: Bump Cirrus CI FreeBSD image from 12.1 to 13.1. (#4295)
- Dev: Fixed
inconsistent-missing-overridewarnings. (#4296) - Dev: Fixed
final-dtor-non-final-classwarnings. (#4296) - Dev: Fixed
ambiguous-reversed-operatorwarnings. (#4296) - Dev: Format YAML and JSON files with prettier. (#4304)
- Dev: Added CMake Install Support on Windows. (#4300)
- Dev: Changed conan generator to
CMakeDepsandCMakeToolchain. See PR for migration notes. (#4335) - Dev: Refactored 7TV EventAPI implementation. (#4342)
- Dev: Disabled ImageExpirationPool in tests. (#4363)
- Dev: Don't rely on undocumented registry keys to find the default browser on Windows. (#4362)
- Dev: Use
QEnterEventforQWidget::enterEventon Qt 6. (#4365) - Dev: Use
qintptrinQWidget::nativeEventon Qt 6. (#4376)
Commit list
- Fix Homebrew cask update workflow by @pajlada in #4203
- Fix Ubuntu CI builds by @pajlada in #4212
- Bump suggested clang-format version to
15.0.5by @Felanbird in #4210 - perf: ignore
WM_SHOWWINDOWhide event by @kornes in #4198 - fix: prevent unnecessary layout saves by @kornes in #4201
- Fix red text color persisting from message overflow highlight by @kornes in #4204
- Add more tooltips when hovering settings by @Felanbird in #4213
- fix: Copy Shortcut Not Working In Reply Thread Popup by @Nerixyz in #4209
- Clear up Highlight sound settings by @Nerixyz in #4194
- feat: Prepopulate search window input with current text selection by @kornes in #4178
- feat: Allow negation of search predicates by @kornes in #4207
- Add docs link for streamlink
--argsby @Felanbird in #4217 - feat: Automatically select newly added table rows by @kornes in #4216
- Change ubuntu-latest to ubuntu-20.04 in CI builds by @Wissididom in #4219
- Fix selection clearing not working in Reply window by @kornes in #4218
- Move thread parsing & building to its own private function by @pajlada in #4222
- Make LimitedQueueSnapshot usages in ChannelView const by @pajlada in #4223
- feat: Add Setting to Hide Reply Context by @Nerixyz in #4224
- Fix accidental change of
stripLeadingMentionssetting by @Felanbird in #4225 - fix: don't run
push-aur.ymlon pull requests by @Nerixyz in #4226 - Update Magic Enum to v0.8.2 by @pajlada in #4227
- Bump ncipollo/release-action from 1.11.2 to 1.12.0 by @dependabot in #4229
- Refactor the EmotePopup file by @pajlada in #4239
- Add even more tooltips when hovering settings by @Felanbird in #4230
- Clean up CompletionModel by @pajlada in #4240
- Retry tests 3 times to lessen chance of complete job failure due to flaky tests by @pajlada in #4241
- Clean up/refactor InputCompletionPopup by @pajlada in #4242
- Clean up TwitchAccount emote stuff by @pajlada in #4243
- Disable
llvm-include-orderclang-tidy check by @pajlada in #4244 - Fix tab direction change crash by @kornes in #4248
- Update qtkeychain to
e5b070831cf1ea3cb98c95f97fcb7439f8d79bd6by @pajlada in #4250 - Add Thread Guard for debugging simple threading issues by @pajlada in #4254
- Remove protocol from organization domain by @pajlada in #4256
- Migrate to C++ 20 & switch to websocketpp develop branch by @Nerixyz in #4252
- Remove another implicit this-capture for C++20 migration by @pajlada in #4257
- Enable LTO support for Chatterino builds by @pajlada in #4258
- Disable LTO by default by @pajlada in #4260
- SplitContainer refactor by @pajlada in #4261
- Only try to extract images if the image uploader is enabled by @pajlada in #4246
- Add
qt5-imageformatsto Fedora dependency list by @Felanbird in #4265 - Fix text cursor in open channel dialog by @douglascdev in #4263
- fix: Remove Unused Include Directives by @Nerixyz in #4266
- Remove unused operators in
Imageby @Nerixyz in #4267 - ref: merge TooltipPreviewImage and TooltipWidget by @kornes in #4268
- Fix crash that would occur when performing certain actions after removing all tabs by @pajlada in #4271
- Bump cmake/sanitizers-cmake from
99e159etoa6748f4by @dependabot in #4274 - Refactor SplitHeader class by @pajlada in #4276
- Fix crash that could occur when closing down splits by @pajlada in #4277
- Fix crash that could occur when closing down the last of a channel when reloading emotes by @pajlada in #4278
- Remove Unnecessary Includes in Headers by @Nerixyz in #4275
- Flatten util/IncognitoBrowser.{h,c}pp by @pajlada in #4280
- Remove Deprecated
QDesktopWidgetby @Nerixyz in #4287 - Fix scrollbar highlight colors when changing message history limit by @dnsge in #4288
- Fix link to the "connecting to the Twitch IRC server" guide by @pajlada in #4293
- Massage includes some more by @pajlada in #4294
- Bump Cirrus CI FreeBSD image from 12.1 to 13.1 by @pajlada in #4295
- Fix various small warnings by @pajlada in #4296
- Fix: dont run windeployqt with VCPKG by @kornes in #4297
- Add feature to select channels to log by @askepticaldreamer in #4302
- Change the highlight order to prioritize Message highlights over User highlights by @pajlada in #4303
- Format YAML and JSON Files With Prettier by @Nerixyz in #4304
- Add Felanbird to contributors list by @Felanbird in #4308
- Mark big strong contributors as Collaborators by @Felanbird in #4311
- Arch Linux ping sound issue fix/workaround by @Greenlandicsmiley in #4285
- Add Wissididom to contributors list by @Wissididom in #4312
- Update
contributors.txtinstructions by @Felanbird in #4313 - Fix slash to backslash conversions in url hashes for opening links in incognito by @askepticaldreamer in #4307
- Update
actionsx/prettierfromv2toe90ec54by @Felanbird in #4318 - Fix the split "Search" menu action not opening the correct search window by @pajlada in #4305
- feat: Add Live Emote Updates for BTTV by @Nerixyz in #4147
- Bump libcommuni version by @pajlada in #4320
- Fix version checking by @pajlada in #4329
- Clean up clang-tidy action checks by @pajlada in #4331
- Change sound backend from Qt to miniaudio by @pajlada in #4334
- Add CMake Install Support for Windows by @Nerixyz in #4300
- Disable translation building by @pajlada in #4336
- Use
CMakeDepsandCMakeToolchainas Generators on Conan by @Nerixyz in #4335 - Remove Qt::Multimedia as a dependency from CMakeLists.txt by @Wissididom in #4339
- Suppress Output of Git Command in CMake by @Nerixyz in #4340
- Added option to highlight your own messages by @MrAuro in #3833
- Update
vcpkg.jsonby @Nerixyz in #4343 - Bump cmake/sanitizers-cmake from
a6748f4toc3dc841by @dependabot in #4345 - Removed libgstreamer-plugins-base from build workflow by @Wissididom in #4344
- Change pubsub test server from master branch to the latest stable tag by @pajlada in #4346
- fix: compilation on macOS without precompiled headers by @LosFarmosCTL in #4348
- Refactor 7TV EventAPI by @Nerixyz in #4342
- Bump ilammy/msvc-dev-cmd from 1.12.0 to 1.12.1 by @dependabot in #4359
- Attempt to catch
std::bad_function_callwhen adding a channel point reward by @Nerixyz in #4360 - Remove sending part of the multipart emoji workaround by @Mm2PL in #4361
- use AssocQueryString instead of directly querying the registry by @sheybey in #4362
- Use
QEnterEventforQWidget::enterEventon Qt 6 by @Nerixyz in #4365 - Disable ImageExpirationPool during testing by @dnsge in #4363
- Separate Ubuntu .deb packages per Ubuntu release by @Wissididom in #4357
- Add HTTP & SOCKS5 proxy support by @Nerixyz in #4321
- Fix Ubuntu builds preventing
create-releasefrom building by @Wissididom in #4368 - Add Crashpad Support on Windows by @Nerixyz in #4351
- Bump lib/crashpad from
918fd31toec99257by @dependabot in #4370 - Upload both Ubuntu .deb packages & Windows .pdb symbols in releases by @pajlada in #4372
- Fix .deb & pdb release uploads by @pajlada in #4373
- Automatically update
nightly-buildtag every nightly release by @Wissididom in #4374 - Use
qintptrinQWidget::nativeEventon Qt 6 by @Nerixyz in #4376 - Handle non-versioned annotated tags gracefully when building a Ubuntu .deb package by @Wissididom in #4375
- Add channel name to Mentions chat logs by @askepticaldreamer in #4371
- Fix User Card moderation actions not using Helix by @pajlada in #4378
- Fix inconsistent separator usage in command failure messages by @Muzuwi in #4379
- Clean up changelog in preparation of v2.4.1 by @Felanbird in #4381
- Improve Linux build instructions by @Wissididom in #4382
- Fix builds from CI showing up as modified by @Nerixyz in #4384
- Move #4361 changelog to
devsection by @Felanbird in #4385 - Fix mod, unmod, vip, unvip buttons in User Card by @pajlada in #4387
- Add flatpakref file to artifacts by @ilya-zlobintsev in #4388
- Stop whispers from showing up in /mentions unless they match another highlight by @pajlada in #4389
New Contributors
- @douglascdev made their first contribution in #4263
- @askepticaldreamer made their first contribution in #4302
- @Greenlandicsmiley made their first contribution in #4285
- @Muzuwi made their first contribution in #4379
NOTE Linux users
The You can reproduce this build by checking out the The build I have uploaded in v2.4.1 with the changes from .deb files were uploaded a day after the release, and the AppImage has been manually regenerated & uploaded.
The original AppImage provided in this build did not include the necessary SSL library.
How to reproduce the AppImage manually
7e005ba661a99c94dee736955bf5730061fe2d1f commit, then building & extracting the AppImage following the 20.04 Ubuntu steps in .docker/README.md
7e005ba661a99c94dee736955bf5730061fe2d1f cherry-picked.
Full Changelog: v2.4.0...v2.4.1