Commit graph

3153 commits

Author SHA1 Message Date
pajlada 4c942a2a42
Fix data race in PubSub (#4771) 2023-08-27 21:35:38 +00:00
pajlada 3f7671000a
Fix memory leaks & data races in tests (#4772)
* Add a few pre-made sanitizer suppressions

* Test Sanitization: Fix threading issues

* Test Sanitization: Allow deletion of PubSub

We still don't delete it in main code, but this allows us to try
deleting it in tests.

* Test Sanitization: Fix some memory leaks

* fix gtest clang-tidy warning

* const emojis test :-)
2023-08-27 12:07:46 +00:00
nerix 72f0f49fbf
Set QT_ENABLE_HIGHDPI_SCALING to 0 on Qt 6 on Windows (#4767) 2023-08-27 10:32:09 +00:00
pajlada 05a72d335a
Release v2.4.5 (#4787)
* Update documentation for Ubuntu PPA & appdata.xml updates
2023-08-26 12:33:01 +02:00
Felanbird b77653761e
Remove comment for incorrect Twitch response (#4781) 2023-08-21 22:34:12 +00:00
Felanbird 381d5c4276
Change Elevated Messages to Hype Chats (#4766) 2023-08-14 17:19:20 +00:00
nerix e7281b033e
Show historic timeouts and bans in usercard (#4760)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-08-13 10:00:52 +00:00
Mm2PL 1e35391075
Hide AutoMod term management messages in Streamer Mode. (#4758)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-08-12 12:16:30 -04:00
pajlada 3e1e400e3e
Refactor recent messages API (#4763)
This exposes internal functions for testing by splitting the implementation & internal API into separate files
2023-08-12 11:34:59 +00:00
Mm2PL ec0d77643f
Remove USEWEBENGINE (#4757)
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.
2023-08-07 18:24:17 +00:00
Mm2PL 59160c5d04
Minor: Add missing hotkey Action for Open Player in Browser. (#4756) 2023-08-07 13:41:32 +00:00
Sam Heybey 69c983e0d9
Add support for opening links in incognito mode on Linux & BSD (#4745)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-08-06 15:57:01 +02:00
Mm2PL 168f346c81
Remove restriction on Go To Message on system messages from search (#4614)
* 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>
2023-08-05 16:36:49 +00:00
pajlada 1aedd4d668
Highlights loaded from message history will now correctly appear in the /mentions channel (#4752)
* added messages in mentions tab if correct predicate is met

* Update CHANGELOG.md

* Apply Felanbird's fix

Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>

---------

Co-authored-by: 2547techno <technowizz2547@gmail.com>
Co-authored-by: 2547techno <109011672+2547techno@users.noreply.github.com>
Co-authored-by: Mm2PL <miau@mail.kotmisia.pl>
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2023-08-05 14:23:40 +00:00
Mm2PL e13df1f602
Split log line generation from message search text (#4742)
* 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>
2023-08-05 13:09:56 +00:00
Mm2PL 5727db2029
Fixed subscriptions and announcements not being blockable (#4748)
* Check blocks for usernotices

* changelog

* cstd = {.name="C++20"}

* Update CHANGELOG.md

Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>

---------

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2023-08-05 12:45:43 +00:00
nerix 1438529e98
Sync channels with browser (#4741)
* feat: keep channels from browser tabs alive

* chore: add changelog entry

* fix: add comment

* fix: rename key

---------

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-08-05 12:23:26 +00:00
pajlada 9e2eb0dd29
Fix tooltip & popup positioning (#4740)
* 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
2023-08-05 11:22:37 +00:00
Mm2PL b98be3b0f3
Fixed right-clicking mentions no longer working. (#4751)
* fix up rightclicking mentions

* changelog

* Merge changelog entries other PR was merged after 2.4.4
2023-08-05 11:17:34 +00:00
2547techno 6b7d12e410
Show channel point redemptions without messages in usercard. (#4557)
* set login name for channel point reward message

* Update CHANGELOG.md

* Update CHANGELOG.md

---------

Co-authored-by: Mm2PL <mm2pl+gh@kotmisia.pl>
Co-authored-by: Mm2PL <miau@mail.kotmisia.pl>
2023-08-04 10:28:52 +00:00
Mm2PL 89323ffa1f
Fixed tab completion rarely completing the wrong word. (#4735)
* Fixed tab completion rarely completing the wrong word.

Fixes: #3101

* Use QSignalBlocker instead of janky bool, add comment about hidden logic

* copypasteo
2023-07-31 21:34:53 +00:00
nerix 703847c9ba
Add subtitle to Hype Chats (#4715)
* 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>
2023-07-30 16:54:42 +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 378aee7ab1
Refactor Native Messages (#4738)
* 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
2023-07-30 11:14:58 +00:00
Brian c496a68633
Fix: Incorrect tab focus in reply threads (#4739)
* Fix: Incorrect tab focus in reply threads
fixes #4737

* Append to changelog

---------

Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2023-07-29 17:06:12 +00:00
Abhinav Neelam 9cb59f753f
focus message input when selecting emotes in emote popup (#4719)
* focus input when selecting emotes in emote popup

* changelog

---------

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-07-29 13:16:19 +00:00
SputNikPlop 7079729591
fix: change viewer list to chatter list (#4732)
* fix: change viewer list to chatter list

* fix: enter changelog entry
2023-07-29 10:47:24 +00:00
nerix 33fa3e0a97
Use New 7TV Cosmetics System (#4512)
* feat(seventv): use new cosmetics system

* chore: add changelog entry

* fix: old `clang-format`

* fix: small suggestions pt1

* refactor: add 7tv api wrapper

* fix: small clang-tidy things

* fix: remove unused constants

* fix: old clangtidy

* refactor: rename

* fix: increase interval to 60s

* fix: newline

* fix: Twitch

* docs: add comment

* fix: remove v2 badges endpoint

* fix: deadlock

This is actually really sad.

* fix: remove api entry

* fix: old clang-format

* Sort functions in SeventvBadges.hpp/cpp

* Remove unused vector include

* Add comments to SeventvBadges.hpp functions

* Rename `addBadge` to `registerBadge`

* fix: cleanup eventloop

* ci(test): add timeout

---------

Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-07-29 09:49:44 +00:00
nerix 9f8a1d8823
Add command to automatically reload your theme (#4718) 2023-07-23 12:13:21 +00:00
nerix fca57696bb
Increase max number of blocked users loaded from 100 to 1,000 (#4721)
Also includes a little refactor of how the requests are made & how the blocked users are stored
2023-07-23 11:26:12 +00:00
pajlada a440f0261a
Fix crash that could occur when closing a split before its display name was updated (#4731)
This fixes a crash that could occur when closing a split before the
display name had a chance to update

The reason I found this was because the LiveController change I made
updated display names more regularly

Additionally, we now make sure to not send duplicate `displayNameUpdated` signals
upon each request for channels with CJK characters in their display name

* Default-initialize the `actualDisplayName` with the user's login name to not send an initial display name update if the display name is the same casing as the login name
2023-07-23 10:11:57 +00:00
pajlada 5c8c05b1af
Recreate ma_device on failure (#4729) 2023-07-22 13:20:30 +00:00
Mm2PL 0e83367a2b
Force shortcuts to show in context menus on macOS (#4722)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-07-22 11:36:52 +00:00
Mm2PL ae8b2adcdd
Add accelerators to the right click menu for messages (#4705) 2023-07-22 12:54:48 +02:00
nerix 7fd01ac575
Limit sccache caches and improve PCH (#4727)
This also enables PCH on all but one Windows builds
2023-07-19 20:29:17 +00:00
nerix c8f390d558
Remove dead macro code (#4726) 2023-07-18 20:59:17 +00:00
pajlada 76527073cf
Ensure live status requests are always batched (#4713) 2023-07-02 13:52:15 +00:00
Mm2PL f915eab1a2
Add "pin" action to usercards and reply threads (#4692) 2023-07-01 16:38:55 +00:00
nerix 61566e2f4f
Add string literal suffixes to create QStrings, QByteArrays, and QLatin1String(View)s at compile time (#4706) 2023-07-01 17:31:25 +02:00
nerix 22b290cb2d
Improve network error messages (#4704) 2023-07-01 12:59:59 +00:00
pajlada d2f1516818
Fix crash that could occur if closing the usercard quickly after blocking (#4711)
* Specifically, this adds a caller to the network request, which makes the
success or failure callback not fire.
This has the unintended consequence of the block list not reloading if
the usercard is closed, but it's not a big concern.

* Add unrelated `-DUSE_ALTERNATE_LINKER` cmake option

From 0517d99b46/CMakeLists.txt (L87-L103)
2023-07-01 12:01:47 +00:00
Mm2PL 2f272b37ca
Allow for customizing the behavior of Right Clicking of usernames. (#4622)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-07-01 11:03:16 +00:00
nerix 44cc1e256e
Fix partially broken filters on Qt 6 (#4702) 2023-06-24 22:03:54 +02:00
nerix b9934a4532
Refactor tests and benchmarks (#4700) 2023-06-24 15:03:27 +02:00
nerix 5d3e5d9312
Fix anonymous users being pinged by justinfan64537 (#4698)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-06-20 17:42:29 +00:00
pajlada af34bf6246
Fix streamer mode button being always visible on Windows (#4690)
Fixes #4682
2023-06-18 12:33:44 +00: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 4b40b9a310
Define Git and date constants in executables only (#4681) 2023-06-17 19:43:39 +02: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
pajlada 2d3d3ae46e
Make sanitizers truly optional (#4689) 2023-06-17 15:01:16 +00:00
dependabot[bot] 36bc8e0520
Bump lib/crashpad from ec99257 to 432ff49 (#4688)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
Co-authored-by: nerix <nerixdev@outlook.de>
2023-06-16 20:11:01 +02:00
Daniel Sage 4361790fbd
Add setting to only show tabs with live channels (#4358)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-06-11 11:34:28 +02: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
nerix 839ba60fd8
Respect Theme in Input Completion & Quick Switcher (#4671) 2023-06-10 12:38:23 +00:00
nerix 65a14fb95b
Fix crash resulting from a mutex deadlock when switching users (#4675) 2023-06-10 11:40:30 +00:00
nerix 335dff53af
Don't add QLayouts to QWidgets that already have one (#4672) 2023-06-10 10:55:47 +00:00
nerix f0c4eb7caa
Fix undefined behaviour when loading non-existant credentials (#4674)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-06-10 10:11:05 +00:00
nerix f306e288b9
Prevent Generation of Crashdumps When the Browser Is Closed (#4667)
* fix: extension process generating crashdumps

* fix: move `getApp` call

* chore: remove distracting comments

* chore: add changelog entry
2023-06-04 12:21:16 +00:00
Arne 6681ed5bfb
Remove QObjectRef in favor of QPointer (#4666)
* replace usage of QObjectRef with QPointer

* delete QObjectRef class

* inlucde QPointer header

* Add changelog entry

* use isNull() instead of ! data()

---------

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-06-04 11:24:04 +00:00
Wissididom e803b6de95
Remove duplicate Fluent icons license (#4665) 2023-06-04 11:40:11 +02: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
pajlada e9432d3b65
Clean up GenericListModel (#4661)
Co-authored-by: Daniel Sage <sagedanielr@gmail.com>
2023-05-29 16:37:55 +02:00
Mm2PL c7b22939d5
Improve editing of hotkeys (#4628)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-05-27 14:04:30 +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
pajlada 5ca7d387e4
Expand upon test channels (#4655)
Available test channels:

- `$$$` - Fill up scrollback (1000 messages), then add a new message every 500ms
- `$$$:e` - Add a new message every 500ms
- `$$$$` - Fill up scrollback (1000 messages), then add a new message every 250ms
- `$$$$:e` - Add a new message every 250ms
- `$$$$$` - Fill up scrollback (1000 messages), then add a new message every 100ms
- `$$$$$:e` - Add a new message every 100ms
- `$$$$$$` - Fill up scrollback (1000 messages), then add a new message every 50ms
- `$$$$$$:e` - Add a new message every 50ms
- `$$$$$$$` - Fill up scrollback (1000 messages), then add a new message every 25ms
- `$$$$$$$:e` - Add a new message every 25ms
2023-05-27 13:33:01 +02:00
Mm2PL c6c884df70
Add an indicator in the title bar if Streamer Mode is active (#4410) 2023-05-27 10:38:25 +00:00
Daniel Sage 51f2c4d1c0
Add input completion test suite (#4644)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-05-21 10:10:49 +00:00
olafyang 21d4b2cacc
add "/shoutout" command (#4638)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-05-20 16:32:06 +00:00
pajlada 5d0bdc195e
Add the ability to select custom themes in the settings dialog (#4570)
Themes are loaded from the Themes directory (under the Chatterino directory, so %APPDATA%/Chatterino2/Themes).

Themes are json files (see the built in themes as an example).

After importing a theme, you must restart Chatterino for it to show up in the settings
2023-05-19 12:26:51 +00:00
Mm2PL 82dff89f3b
Add 'joined channel' system message. (#4616) 2023-05-19 10:30:30 +00:00
nerix 347f216abf
Add Command to Set Logging/Filter Rules at Runtime (#4637)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-05-17 21:32:50 +00:00
nerix ce47d27d41
Refactor/Cleanup NetworkRequest and Related Code (#4633)
Cleanup unused code (Twitch v5)
Add json methods that simplify sending JSON. This also sets the Accepts header, since here, when JSON is sent, only JSON is accepted as a response (this is only done in Helix).
Clarify helix request creations
Cleaned some clang-tidy suggestions in Network{Request,Private}
2023-05-16 17:28:20 +02:00
pajlada 4fa2cc26c9
Document our pubsub usage & eventual eventsub usage (#4630)
* pubsub <-> eventsub documentation & clarification

* Update Get Chatters documentation
2023-05-14 08:55:48 +00:00
pajlada 29a146278c
Release v2.4.4 (#4631) 2023-05-13 10:12:26 -04:00
Felanbird 8e87886ccc
Reduce the size of the update prompt (#4626)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-05-13 10:13:42 +00:00
Mm2PL 1d4c6d5a9e
Fixed crash when scrolling up really fast. (#4621) 2023-05-11 18:05:27 +02:00
pajlada eed2cfff5b
Clean up CI jobs (#4606)
Remove PCH as an option - it's now always disabled for all jobs

Disable LTO in the Windows build

Merge the Ubuntu Qt 6.2.4 & Ubuntu plugin build

Only upload a single macOS job into the nightly release, and clearly mark it as a macOS 10.15 build.
2023-05-08 14:08:43 +02:00
Van Huynh 68f14d3425
Fix Ctrl+Backspace bug after Select All in chat search popup (#4536) 2023-05-07 21:10:22 +00:00
pajlada caa0220ce6
Add a Send button that can be used to send messages (#4607)
This button is disabled by default, and can be enabled with the "Show send message button" setting.
2023-05-07 13:18:07 +00:00
nerix 280b6d934e
Parse Domains Starting With http (#4598)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-05-07 12:15:36 +00:00
nerix 91f4b86436
Antialias Click-Effects on Buttons (#4473)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-05-07 11:26:55 +00:00
nerix 4dd290e4e5
🛡 Add /shield and /shieldoff 🛡 (#4580)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-05-07 10:52:05 +00:00
nerix bcd8028132
Improve error messages when updater fails a download (#4594)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-05-02 21:22:04 +00:00
pajlada f39d43faef
Fix link tooltips showing up blank instead of with text-only (#4597)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2023-05-02 20:33:01 +00:00
pajlada 9d71f9017f
Revert "Dim disabled items in context menus (#4423)" (#4596)
This reverts commit 642718474c.
2023-05-02 19:33:36 +00:00
pajlada 6672adf287
Fix the menu position on macOS when using Qt 6.5 (#4595) 2023-05-02 20:50:13 +02:00
pajlada 379cc5761c
Release v2.4.3 (#4584) 2023-05-01 14:48:24 +02:00
nerix 642718474c
Dim disabled items in context menus (#4423) 2023-04-29 16:50:13 +00:00
CycloneTM caaa0d91f6
Update macOS icon for Ventura styling (#4577)
or something, idk macos terms

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-04-29 17:45:08 +02:00
nerix 9c9fa86c45
Refactor LinkParser (#4576) 2023-04-23 14:56:39 +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
nerix f2938995c1
More Accurately Convert Font-Weights in Qt 6 (#4568)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-04-22 21:42:17 +00:00
pajlada 2ed62165fa
Fix crash when using /unstable-set-user-color without any arguments (#4574)
I told you it was unstable
2023-04-22 17:44:23 +00:00
nerix 6d2605d4ca
Fix Qt6 crash when dragging rows in table views (#4567) 2023-04-21 18:25:33 +00:00
nerix 20bdfaef39
Use macos rather than osx in filenames (#4550) 2023-04-16 19:05:51 +00:00
pajlada 8124ab439c
Restart the sound device if it's been stopped (#4549)
Fixes a bug where we don't check if the sound device is active before trying to play a sound to it

We fix this by checking its state before every sound we try to play, and if the device is not in the started state we try to restart it.
2023-04-16 13:16:12 +02:00
Zonian d6ef48d4ef
Migrate Twitch badges to Helix (#4537)
Co-authored-by: iProdigy <8106344+iProdigy@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-04-16 09:58:45 +00:00
2547techno 88bb1b4ae7
Add message for empty mod list. (#4546) 2023-04-15 17:59:46 +00:00
iProdigy c44e7295da
feat: add /lowtrust command (#4542)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-04-15 10:13:26 +00:00
2547techno 52a6f259cf
Fix: check reply-parent-user-id for blocked user (#4502) 2023-04-13 16:13:49 +00:00