Commit graph

3498 commits

Author SHA1 Message Date
nerix 292f9b9734
fix: ignore save requests after closing all windows (#5081) 2024-01-14 12:37:03 +00:00
pajlada 13ff11ea75
refactor: SplitOverlay (#5082) 2024-01-14 13:09:07 +01:00
nerix c4c62f2796
fix: restore focus of last split when restoring (#5080) 2024-01-14 12:06:52 +01:00
fraxx 06f950a55b
Improve Streamlink documentation (#5076)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-12 15:15:42 -05:00
nerix 5c9747e08f
fix: button hover state-change not visible in some cases (#5077) 2024-01-11 23:31:33 +01:00
nerix fa5648fd9a
refactor: NetworkPrivate (#5063)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-09 00:37:15 +01:00
nerix f42ae07408
dev: Add RecentMessages benchmark (#5071)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-07 12:15:36 +00:00
nerix 78a7ebb9f9
Improve color selection and display (#5057)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-06 20:52:29 +00: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
pajlada 416806bb0a
refactor: Twitch PubSub client (#5059)
* Remove unused `setAccountData` function

* Move PubSub out of TwitchIrcServer and into Application

* Add changelog entry

* fix: assert feedback

* Add PubSub::unlistenPrefix as per review suggestion

* Fix tests

* quit pubsub on exit

might conflict with exit removal, so can be reverted but this shows it's possible

* Don't manually call stop on clients, it's called when the connection is closed

* nit: rename `mainThread` to `thread`

* Join in a thread!!!!!!!!
2024-01-06 13:18:37 +01:00
nerix e48d868e8c
fix: Avoid duplicate scale in settings dialog (#5069) 2024-01-06 11:28:06 +00:00
nerix 1192393039
fix: Avoid unnecessary NotebookTab updates (#5068)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-06 11:04:04 +00:00
pajlada 99b537ffd9
Add some tests for NotebookTab (#5070)
* EmptyApplication: Add asserts to rest of getters (except for getSeventvAPI)

* Theme: make getTheme call getIApp()->getThemes() instead

this allows it to be used in tests
realistically this should be deprecated & users of it should just call
getIApp()->getThemes() directly

* Use getIApp() instead of getApp() in a few places
2024-01-06 11:42:45 +01: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
pajlada 65b1ed312c
refactor: Logging (chat logger) (#5058)
It's no longer a singleton

It's now a unique_ptr that dies together with the Application

* Add getChatLogger to EmptyApplication

* unrelated change: Access Application::instance statically

* fix logging init order

* Add changelog entry
2023-12-31 12:51:40 +00: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
Mm2PL 69a54d944d
Autogenerate docs/plugin-meta.lua (#5055) 2023-12-30 10:26:19 +00:00
nerix 9a2c27d258
Allow customization of whisper colors in settings (#5053) 2023-12-29 20:52:35 +00:00
pajlada d085ab578f
refactor: Make Args less of a singleton (#5041)
This means it's no longer a singleton, and its lifetime is bound to our application.
This felt like a good small experiment to see how its changes would look
if we did this.
As a shortcut, `getApp` that is already a mega singleton keeps a
reference to Args, this means places that are a bit more difficult to
inject into call `getApp()->getArgs()` just like other things are
accessed.
2023-12-29 15:40:31 +01:00
nerix c65ebd26bd
fix: non-native drag on Windows (#5051) 2023-12-29 15:10:56 +01:00
nerix d84779f127
fix: some buttons triggering when releasing mouse outside (#5052)
Examples of buttons fixed with this: Usercard profile picture & split header mod mode button
2023-12-29 14:20:07 +01:00
nerix d0d240136e
fix: Add check for tall messages (#5045) 2023-12-27 16:50:04 +01:00
nerix 9612eac966
perf: Only update regions with animated elements (#5043) 2023-12-27 01:12:14 +01: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
nerix 485fc5cdb4
fix: Tooltip parenting on Windows (#5040)
Fixes #5019
2023-12-25 17:17:25 +00:00
nerix 25add89b14
feat: Add crash recovery on Windows (#5012) 2023-12-24 15:38:58 +01:00
nerix d105a68dba
Allow ChannelViews without a Split (#4747) 2023-12-17 21:49:37 +01:00
pajlada 269e7a07b4
chore: Unify .clang-format file (#5037)
* chore: Unify all .clang-format files in the root dir

* Update `scripts/check-format.sh` to include all source dirs

* Add changelog entry
2023-12-17 13:50:42 +00:00
pajlada 0395b692e4
fix: ReplyThreadPopup now requires a split as its parent (#5036)
Co-authored-by: Nerixyz <nerixdev@outlook.de>
2023-12-17 13:16:40 +00:00
pajlada aa11a24163
fix: UserInfoPopup now requires a split as its parent (#5034)
Co-authored-by: Nerixyz <nerixdev@outlook.de>
2023-12-17 11:53:06 +00:00
Herman Stornes b78b57b454
Fixes to ctrl+backspace behavior (#5013) 2023-12-16 13:40:05 +00:00
iProdigy e75ce5db54
fix: request more historical messages on wake (#5018) 2023-12-16 12:38:35 +00:00
Mm2PL 5f8c4c6b66
BREAKING: Replace custom import() with normal Lua require(). (#5014)
* Use require() instead of a custom import()

* Also search relative to the current file

* Update documentation
2023-12-16 12:16:54 +00:00
iProdigy bbf75516ed
fix: show user message on watch streak notice (#5029) 2023-12-16 11:48:32 +00:00
nerix 66f4480371
fix: Fixed some compiler warnings (#5028)
* fix(C4101): unreferenced local variable

* fix(C4189): variable initialized but not referenced

* fix(C4305): narrowing from double to float

* fix(C4457): declaration hiding function parameter

* fix(C4456): shadowing declaration

* fix(C4996): remove deprecations

* chore: add changelog entry

* fix: Remove more unused variables

* fix: removed unused lambda captures

* Update changelog entry

---------

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-12-16 11:24:28 +00:00
Mm2PL fd4cac2c2c
Add a new completion API for experimental plugins feature. (#5000)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-12-10 13:41:05 +00:00
pajlada e4258160cd
Fixed "Yes, don't ask again" image uploader prompt not working on macOS (#5011) 2023-12-10 13:28:31 +01:00
iProdigy 13dc306506
perf: query fewer historical messages on reconnects (#5001)
Co-authored-by: Ruben Anders <ruben.anders@robotty.de>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-12-09 19:46:30 +01:00
Mm2PL 401e097d62
Hide the Usercard button in the User Info Popup in special channels (#4972) 2023-12-09 12:21:00 +00:00
smc fec8f8c49f
Fix missing parent of tooltips for Wayland (#4998)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-12-09 11:28:33 +00:00
Mm2PL c3d3903b6f
feat: add --safe-mode command line option (#4985)
This ensures the settings button isn't hidden, and disables plugins from being loaded to make sure the user can always recover from messing things up
2023-12-05 17:37:42 +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
nerix 812186dc4c
Return correct hit-test values for title bar buttons on Windows (#4994)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-12-03 13:41:33 +00:00
pajlada 0fd4e8ffd6
fix: typo in debug log for hotkeys (#4997) 2023-12-02 12:35:55 +00:00
nerix c4c94473ae
Do bounds-checking on more windows (#4797)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-12-02 12:56:03 +01:00
pajlada e327ed4166
Update magic_enum from v0.9.3 to v0.9.5 (#4992)
* Fix include path for magic enum
* Update .clang-format to ensure magic enum is caught as a third party library
2023-12-01 15:03:04 +01:00
Mm2PL 6d02bb7304
Make emote completion a lot smarter (#4987) 2023-11-28 10:06:35 +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
pajlada 1f09035bfb
refactor: common/Credentials (#4979)
Use full path in includes
Sort includes
Move anon namespace out of chatterino namespace
Use auto * where possible
Disable convert-member-function-to-static check for all member functions
Don't use else after return
Removed empty constructor
Replace use of `boost::variant` with `std::variant`

Co-authored-by: nerix <nerixdev@outlook.de>
2023-11-26 18:38:31 +00:00
pajlada 5b741a8eb6
refactor: Remove Emoji's EmojiMap with a vector (#4980) 2023-11-26 18:17:58 +00:00
nerix e8673fc52a
fix: deadlock and use-after-free in tests (#4981)
* fix: use-after-free in settings

* refactor: put seventv api into a singleton

* chore: add changelog entry

* Add warning for when the 7TV load fails
2023-11-26 15:54:19 +00:00
nerix 854032fce9
fix: Only display spaces between words in reply context (#4977) 2023-11-26 11:15:35 +01:00
Mm2PL 1a685d7bd0
Finish renaming Viewer list to Chatter list (#4974) 2023-11-20 17:59:04 +00: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 3d9db1d528
refactor: Ignores and Replacements (#4965)
Fixes a freeze from a bad regex in _Ignores_
Fixes some emotes not appearing when using _Ignores_
Fixes lookahead/-behind not working in _Ignores_
2023-11-17 17:39:45 +01:00
Mm2PL d9cdc88061
Remove unused parseMessage function (#4968) 2023-11-17 14:46:35 +01:00
nerix 6faf63c5c4
refactor: Remove Outcome from network requests (#4959) 2023-11-12 14:51:51 +01:00
pajlada 95620e6e10
fix: Split input sometimes not accepting focus (#4958) 2023-11-11 10:58:20 +00:00
pajlada 244efaa0a9
fix: /banid and /ban id: performing duplicate bans (#4957) 2023-11-10 18:46:28 +00:00
pajlada 423829be43
feat: /unban and /untimeout by id (#4956) 2023-11-10 19:18:20 +01:00
kornes c8e03b4ad7
Dont invalidate paint buffer when selecting (#4911) 2023-11-08 21:19:18 +00:00
pajlada fcc5f4b3df
feat: Allow id: prefix in /ban and /timeout (#4945)
ban example: `/ban id:70948394`, equivalent to `/banid 70948394`
timeout example: `/timeout id:70948394 10 xd`
2023-11-08 21:42:06 +01:00
pajlada f89642ec66
refactor: Move all commands to their own files (#4946) 2023-11-08 18:57:09 +01:00
iProdigy d40b0a6c1d
fix: avoid reward redemption crash via buffer refactor (#4949)
Co-authored-by: nerix <nero.9@hotmail.de>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-11-08 18:14:48 +01:00
Mm2PL f943f70634
Add support for opening usercards by ID (#4934)
Co-authored-by: nerix <nerixdev@outlook.de>
2023-11-06 20:42:24 +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
iProdigy 9dd83b040b
feat: /reply command now replies to the latest message of the user (#4919)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-11-05 16:30:15 +01:00
pajlada 1d6c9ed279
feat: forward logging from miniaudio (#4836)
These logs are posted to the `chatterino.sound` category
miniaudio debug -> debug
miniaudio info -> debug
miniaudio warning -> warning
miniaudio error -> warning
2023-11-05 10:51:57 +00:00
nerix 7d145e3577
Disable clickable sections in tables (#4913) 2023-11-04 18:42:13 +00:00
nerix 5325c7b826
Fix tooltips appearing too large and/or away from the cursor (#4920) 2023-11-04 18:13:34 +00:00
Alex Baines 879a63e6f3
Support using follower emotes outside of channel if subbed (#4922)
If we also have a subscriber emote set for a channel, then don't treat
a follower emote set as local to that channel.

Co-authored-by: iProdigy <8106344+iProdigy@users.noreply.github.com>
2023-11-04 17:45:18 +00:00
pajlada e4c46355be
refactor: move ban/banid/timeout to their own file (#4938) 2023-11-04 16:26:58 +00:00
pajlada f8b239899a
refactor: KeyboardSettingsPage (#4937) 2023-11-04 10:56:31 +00:00
kornes b3ed3285ee
feat: Add VERSIONINFO resource for windows (#4912) 2023-11-03 18:19:50 +01: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
Mm2PL 03b32bffc8
Bugfix: Fixed a crash when clicking More messages below button in a usercard and closing it quickly. (#4933) 2023-11-02 12:12:52 +00:00
pajlada 56346874e1
ci: Use clang-format 16 (#4929) 2023-10-31 17:24:47 +00:00
pajlada f4726ed7a8
refactor: IrcMessageHandler (#4927) 2023-10-31 17:47:56 +01:00
pajlada 7efe58cca9
refactor: ChannelView (#4926)
Co-authored-by: nerix <nerixdev@outlook.de>
2023-10-31 14:54:14 +01:00
pajlada 25c776cfff
refactor: FilterParser (#4925)
* Make explainIllType anonymous/static
* Comment constructor
2023-10-29 20:14:49 +00:00
nerix c811e2d991
refactor: Change lifetime of context menus (#4924) 2023-10-29 19:24:38 +00: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
pajlada 5c0219c245
refactor: Use override instead of virtual where possible (#4917) 2023-10-25 18:13:48 +02:00
nerix fcb6eff8cc
Remove direct dependency on Qt 5 compatibility module (#4906) 2023-10-23 21:28:02 +02:00
kornes 12808d3154
refactor: simplify double click selection (#4898) 2023-10-17 13:38:38 +02:00
nerix b975900043
refactor: Toast (#4899)
* Fixes a bug where avatars weren't loaded on fresh installations of Chatterino.
* Avatars now update every two weeks.
* Removes misleading `DownlaodManager` (now part of `Toasts.cpp`).
* Refactors usage of WinToast to be easier to read.
* Added version to AUMI.
* Removes manual `QString` → `std::wstring` conversions.
* Removes uses of implicit ASCII casts in `Toasts.cpp`, meaning it can be compiled with `QT_NO_CAST_FROM_ASCII`.
2023-10-17 01:50:18 +00:00
pajlada ab3b2d8515
Add some more filter tests (#4897)
This changes the `make coverage` function to use `gcovr` instead of `lcov`, and to have it generate an html file directly at `coverage/index.html` under the build directory

The only thing this changes, other than adding tests, is making the `Expression` class pure virtual. Every derived class should implement each of the functions
2023-10-14 10:41:10 +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
dependabot[bot] cbc2d3d683
Bump lib/WinToast from 5e441fd to 821c481 (#4894)
This also changes the build method from a custom FindPackage solution to using their cmake file

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
Co-authored-by: nerix <nero.9@hotmail.de>
2023-10-13 18:49:12 +02:00
pajlada 9f23c8562a
Test filters context map & message builder (#4886) 2023-10-13 15:41:23 +00:00
Daniel Sage b85d666b32
fix: Remove tab completion caching of source (#4893) 2023-10-13 09:43:16 +00:00
Daniel Sage 653a14c76b
fix: Don't use QCompleter prefix filter (#4855)
* Invalidate tab completion model when settings change

* Remove true culprit

* Update CHANGELOG.md

* Remove QCompleter setFilterMode call

---------

Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2023-10-13 11:22:48 +02: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
nerix 4db93bf1da
Adjust DontFocus window flags on Windows and macOS (#4876) 2023-10-08 00:03:14 +02:00
pajlada 774eaa14ce
Fix emoji unified/non-qualified version for sending & parsing (#4840)
Co-authored-by: nerix <nerixdev@outlook.de>
2023-10-07 10:21:30 +00:00
kornes ab4a0c054a
Update vcpkg to Qt6 (#4872)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-10-07 09:09:58 +00:00
nerix 752825793a
Ignore invisible widgets when hit testing (#4873)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2023-10-06 21:26:25 +00:00
kornes 7c8cabaa42
Fix websocketpp depending on boost::random (#4869)
Co-authored-by: nerix <nero.9@hotmail.de>
2023-10-05 10:11:28 +00:00
Christian 5d5d265ae0
Add cmake flag to use system-provided miniaudio (#4867)
Example usage: `cmake -DUSE_SYSTEM_MINIAUDIO=ON ..`
2023-10-04 13:38:53 +00:00
pajlada 38a7ce6954
Fix qtkeychain include for Qt6 users (#4863) 2023-10-03 15:59:34 +00:00
Patrick Klein 5b17ae3f7e
Implement compile-time flag to disable automatic update checks. (#4854)
Usage: `cmake -DCHATTERINO_UPDATER=OFF ..`

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2023-10-02 11:43:20 +02:00
Daniel Sage 4bb196c644
fix: Fix username tab completion without @ (#4853) 2023-10-01 09:39:18 +00:00
pajlada 467e36767c
Update Nightly to 2.4.6 and get qt6-related-changes from 2.4.6 (#4856)
* Update Nightly to 2.4.6 and get qt6-related-changes from 2.4.6

* always enable precompiled headers on windows
2023-10-01 11:19:26 +02:00
nerix 2fc7fdd91a
Fix empty page added when showing OOB dialog (#4849) 2023-10-01 06:40:34 +00:00
GongBingWong ad8f960a8e
Fix to interpret logger channel names as lowercase (#4848)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-10-01 05:56:03 +00:00
nerix 916427a612
Fix flickering when running with Direct2D (#4851) 2023-10-01 07:13:37 +02:00
Daniel Sage 4d8b62364d
fix: Commands now completable when not starting with / (#4846)
* Add commands to completable inputs when no prefix
2023-09-30 11:06:16 +00:00
nerix 783c7530f3
Allow any window to be bounds-checked (#4802)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-09-24 13:32:43 +00:00
Daniel Sage 37009e8e6b
Consolidate input completion code in preparation for advanced completion strategies (#4639)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-09-24 12:17:17 +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
Brian c71e91200a
streamlink: trim custom paths (#4834)
this makes sure no spaces are accidentally left in the custom path

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-09-23 08:20:05 +00:00
Felanbird 89b915bad1
Mention filters in the note for features that nicknames don't work with (#4826) 2023-09-18 08:52:08 +02:00
pajlada e6df652a4f
fix: QuickSwitcherPopup now pops up in the selected window (#4819) 2023-09-17 21:52:17 +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
nerix dc62e8248b
Add (invisible) resize handle to frameless usercards and reply threads (#4795)
* feat: add resize handle to usercards&reply threads

* Add changelog entry

---------

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-09-17 11:27:20 +00:00
nerix f13a3b9685
Cleanup Windows helpers (#4820)
* fix: clipboard exception

* chore: cleanup windows helpers
2023-09-17 10:20:26 +00:00
Mm2PL d752ce86fd
Add WindowManager::getLastSelectedWindow() to replace getMainWindow() (#4816)
1. No longer can return a nullptr if no window was ever focused
  2. When closing a window, it will no longer return an invalid pointer
2023-09-16 20:53:44 +00:00
qooq69 38c994be49
Fixed Usercard Popup not floating on tiling WMs on Linux (#3511) 2023-09-16 22:15:01 +02:00
pajlada 8fe3af3522
Fix signal connection nodiscard warnings (#4818) 2023-09-16 11:52:51 +00:00
nerix 2d5f078306
Style account switcher to match the current theme (#4817) 2023-09-15 18:44:36 +02:00
nerix 337b043bc3
Fix input in reply thread popup losing focus when dragging (#4815) 2023-09-13 20:38:32 +00:00
pajlada 9ca2578c1e
Refactor Image & Image's Frames (#4773) 2023-09-13 19:26:45 +00:00
nerix 283ede86ad
Only layout visible ChannelViews (#4811) 2023-09-10 17:08:13 +02:00
Daniel Sage 1b9ee939bb
Select correct notebook tab after closing while filtered (#4770) 2023-09-10 10:38:59 +00:00
pajlada 813d96867b
Migrate to the new Get Channel Followers Helix endpoint, fixing follower count not showing up in usercards (#4809) 2023-09-09 12:51: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 ba440e0ccb
Fixed /shoutout command not working with usernames starting with @'s (e.g. /shoutout @forsen) (#4800) 2023-08-28 17:17:03 +00:00
nerix af4233850d
Remove offset logic from BaseWindow::moveTo (#4798)
It's now up to each window to offset its coordinates themselves (which is good 👍 )
2023-08-28 16:38:41 +00:00
pajlada 7cb04bf58b
Remove BaseSettings & merge ConcurrentSettings (#4775) 2023-08-28 17:51:28 +02:00
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
nerix 610394d696
Fix Twitch-Specific Filters Not Being Applied (#4529)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-04-10 10:08:15 +00:00
nerix b3ade53229
Restore missing copy and pin buttons in the Usercard (#4533) 2023-04-10 11:20:27 +02:00
Daniel Sage 34db692895
Implement type checking/validation for filters (#4364)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-04-09 23:35:06 +02:00
pajlada c8e1741e47
Remove CHATTERINO_TEST definition (#4526) 2023-04-09 12:18:56 +02:00
kornes 5c55f62600
Fix emote & badge tooltips not showing up when thumbnails were hidden (#4509)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-04-08 13:43:38 +00:00
Daniel Sage 73435b4cf4
Remove unused variables, Refactor in MessageLayout (#4520)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-04-08 10:25:43 +00:00
nerix 4e3433e966
Store Themes as JSON files (#4471)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-04-08 09:05:55 +00:00
Guilherme Espada 7a286480d6
Fix build on latest Fedora (#4518)
gcc (GCC) 13.0.1 20230401 (Red Hat 13.0.1-0)

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-04-08 08:58:04 +02:00
nerix 149399a072
Fix plugin compilation error when using Qt 6 (#4504) 2023-04-02 20:30:15 +02:00
Mm2PL 5ba809804e
Add basic lua scripting capabilities (#4341)
The scripting capabilities is locked behind a cmake flag, and is not enabled by default.

Co-authored-by: nerix <nerixdev@outlook.de>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-04-02 15:31:53 +02:00
kornes b209c50b01
Fix channel search when custom scrollback limit is used (#4496) 2023-04-01 12:34:34 +00:00
pajlada d8df716fc2
Fix memory leak when using the Recent Messages API (#4499) 2023-04-01 11:57:48 +00:00
pajlada 0177ab4829
Ensure tests have default-initialized settings (#4498)
Also rework HighlightController test directory creation/saving to ensure the test directory is written to & cleaned up appropriately
2023-04-01 11:23:18 +00:00
nerix 08ae43e88e
Add Placeholder Color in Palette (#4477)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-03-29 08:21:35 +00:00
Colton Clemmer 3d4985c88f
Migrate viewer list to Helix (#4117)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-03-27 16:26:08 +00:00
Muzuwi 1fbbef34bf
Initialize list of blocked users on IgnoresPage construction (#4437)
The `SettingsPage::onShow` handler that sets up the block
list is only called when the application settings dialog
has already been shown once before. This caused the blocked
user list to appear empty until the second time it was opened.

Correct this by explicitly regenerating the block list in the
constructor of `IgnoresPage`.
2023-03-26 11:35:09 +00:00
Daniel Sage 8048dcdd1f
Add Shift+Right Click Shortcut to Reply to a Message (#4424)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-03-25 15:00:21 +00:00
nerix d59076520a
Fix Username Font Weight Issue on Qt 6 (#4476) 2023-03-25 10:57:06 +00:00
nerix 19cc72f927
Respect PCH Setting in Windows CI (#4472) 2023-03-23 23:04:16 +01:00
Scrub 7b6094909e
Include reply mention when logging (#4420)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-03-19 12:29:46 +00:00
pajlada 130b23edaf
Add a local backup of the Twitch Badges API (#4463) 2023-03-19 11:28:28 +00:00
pajlada 1ad93b7acc
Fix an issue where the "Enable zero-width emotes" setting was showing the inverse state (#4462) 2023-03-19 11:00:24 +00:00
nerix a777a227d4
Allow each layered image to retain its own flags (#4460)
This fixes an issue where context-menu items for zero-width emotes displayed the wrong provider.
2023-03-19 11:26:30 +01:00
Daniel Sage 0acbc0d2c3
Formalize zero-width emote implementation (#4314)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-03-18 12:30:08 -04:00
nerix db97a14cdc
Ignore BTTV user-events (#4438)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-03-18 11:47:38 +00:00
nerix d7206a2203
Support Animated FFZ Emotes and Authors for Global Emotes (#4434)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-03-18 11:22:40 +00:00
nerix 93a9e41d31
Cleanup Theme-related Code (#4450) 2023-03-17 19:53:03 +00:00
llyyr 3809fd1075
Only log debug messages when NDEBUG is not defined (#4442) 2023-03-15 14:01:45 +00:00
Felanbird c8204ef7e4
Release v2.4.2 (#4433)
* Update `CMakeLists.txt`

* Update `resources/com.chatterino.chatterino.appdata.xml`

* Update `src/common/Version.hpp`

* Update `CHANGELOG.md`

This includes changelog re-ordering changes that would normally be in a seperate PR, but this release will be an exception to that rule
2023-03-06 09:13:25 +01:00
Daniel Sage b9e87dcd2b
Fix Handling of FFZ CDN URLs with https already appended (#4432) 2023-03-05 00:34:36 +00:00
iProdigy b5b85501ee
Add ban user by id command /banid (#4411)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-02-26 20:03:14 +00:00
pajlada f9b23882f4
Templatize localizeNumbers (#4412)
original idea by MM2PL
2023-02-25 12:44:45 +01:00
James Upjohn 4923549fdf
fix: update emote picker labels to use 7TV naming (#4405) 2023-02-24 09:22:23 -05:00
nerix a75feba4ca
Use unique_lock when loading 7TV badges (#4402)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-02-22 12:01:47 +00:00
nerix c74b14a93a
Delete all but the last 5 crash dumps on startup (#4392)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-02-19 22:20:41 +00:00
pajlada c95a65c153
Fix Qt6 building (#4393) 2023-02-19 20:19:18 +01:00
pajlada 5ed4a21d6a
Release v2.4.1 (#4390) 2023-02-19 12:14:54 +01:00
pajlada 2629e3baa7
Stop whispers from showing up in /mentions unless they match another highlight (#4389) 2023-02-18 12:02:12 +00:00
pajlada 6380fb5198
Fix mod, unmod, vip, unvip buttons in User Card (#4387) 2023-02-16 20:43:37 +00:00
Lucas K ff53b7cc97
Fix inconsistent separator usage in command failure messages (#4379) 2023-02-14 21:27:33 +00:00
pajlada f317d4c99b
Fix User Card moderation actions not using Helix (#4378) 2023-02-14 20:59:23 +00:00
askepticaldreamer a3189baf94
Add channel name to Mentions chat logs (#4371) 2023-02-13 23:00:46 +00:00
nerix bb0b563a87
Use qintptr in QWidget::nativeEvent on Qt 6 (#4376) 2023-02-13 20:45:58 +00:00
nerix e377c30192
Add Crashpad Support on Windows (#4351)
* feat: crashpad on windows

* feat: inline it

* feat: more crashpad

* chore: remove qBreakpad

* fix: add mention to crashpad

* refactor: version string

* feat: add crashpad module

* refactor: build crashpad from source

* fix: minor adjustments

* chore: add changelog entry

* fix: formatting and include

* fix: format

* build: use flags similar to release profile

* ci: build with crashpad on windows

* ci: recurse submodules

* ci: always include crashpad

* fix: try 7z

for some reason zstd just doesn't run

* fix: wrong path for symbols

* fix: copy

pls don't build

* ci: use new cache key

* fix: missing pragma

* ci: add workflow without crashpad

* docs: elevate changelog entry

* fix: add link to cmake issue

* fix: windows include issue

Someone (crashpad) includes Windows.h before winsock2.h

* fix: working directory

* fix: another working directory
2023-02-12 20:36:58 +01:00
nerix c9a9e44e1f
Add HTTP & SOCKS5 proxy support (#4321)
This can be configured using the `CHATTERINO2_PROXY_URL` environment variable.
The behaviour is similar to curl's CURLOPT_PROXY
2023-02-11 23:16:51 +00:00
Daniel Sage cf80ae8434
Disable ImageExpirationPool during testing (#4363)
* Disable ImageExpirationPool during testing

* Update CHANGELOG.md

---------

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-02-11 19:20:46 +00:00
nerix 5179567334
Use QEnterEvent for QWidget::enterEvent on Qt 6 (#4365)
* fix: use concrete QEnterEvent on Qt 6

* chore: add changelog entry
2023-02-11 18:13:29 +01:00
Sam Heybey 1d3ca0bfa3
Use AssocQueryString instead of directly querying the registry (#4362)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-02-10 21:21:09 -05:00
Mm2PL d38187f794
Remove sending part of the multipart emoji workaround (#4361) 2023-02-09 16:45:53 +01:00
nerix 829c48d79a
Attempt to catch std::bad_function_call when adding a channel point reward (#4360)
* fix: attempt to catch std::bad_function_call

* chore: add changelog entry

* fix: spelling mistake

Co-authored-by: Leon Richardt <git@leon.dev>

---------

Co-authored-by: Leon Richardt <git@leon.dev>
2023-02-09 00:43:52 +01:00
nerix 0c74ab17ed
Refactor 7TV EventAPI (#4342)
* refactor: remove file prefix

* refactor: put eventapi into a namespace

* refactor: support multiple conditions

* fix: handle ack

* docs: add changelog entry

* fix: unsubscribe in destructor

* fix: naming of parameter

* fix: namespaces

* chore: casing

* fix: missing namespace

---------

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-02-04 13:42:52 +01:00
LosFarmosCTL 6516116244
fix: compilation on macOS without precompiled headers (#4348) 2023-01-31 15:48:56 +01:00
Auro d6ccab2cdf
Added option to highlight your own messages (#3833)
* Removed magic numbers when checking rowIndex

* Swap from static ints to enum

* Referred enum members by enum name

* Fixed formatting

* Added highlight option for self messages

* Update CHANGELOG.md

* Made disabled by default

* Moved setting from Messages tab to Users tab

* Moved checks to HighlightController

* Set row index to 0

sillE silly me

* Update CHANGELOG.md

* Moved check outside of loop

* Improved naming and documentation on variables

* Fixed formatting

* Fix compile errors

* Update ColorProvider self message highlight color when it's changed

Use the ColorProvider self message highlight color instead of rolling
our own non-updating color

* Update changelog entry

* Remove unused `customColor` from user highlights builder

* Use explicit lambda capture

* Update comment for the color provider color

* HighlightModelHpp: Future-proof custom row enum B)

* Document UserHighlightModel color changes

* Update colorprovider comment

* Update enabled, show in mentions & color setting paths

* Rename settings from `selfMessagesHighlight` to `selfMessageHighlight`

---------

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-01-30 11:40:50 +01:00
Wissididom 2a071a7067
Remove Qt::Multimedia as a dependency from CMakeLists.txt (#4339)
* Remove Multimedia required in find_package

* Remove Multimedia from src/CMakeLists.txt
2023-01-29 15:28:01 +00:00
nerix b80d41c327
Use CMakeDeps and CMakeToolchain as Generators on Conan (#4335)
* deps(conan): use `CMakeDeps` as generator

* chore: add changelog entry

* deps(conan): add `CMakeToolchain` generator

* fix: use generated toolchain file

* docs: mention toolchain as well

* fix: spelling

* fix: formatting

* revert: use nmake

* docs: fix documentation
2023-01-29 13:10:39 +00:00
nerix 633b77511d
Add CMake Install Support for Windows (#4300)
* fix: windows installation with cmake

* fix: support install for all win32 compilers

* chore: add changelog entry

* fix: support `X_VCPKG_APPLOCAL_DEPS_INSTALL`

* chore: document cmake min version

* fix: vcpkg

* fix: plugin path

* fix: remove flattening

* revert: `qt.conf` changes

---------

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-01-29 10:52:45 +00:00
pajlada 4958d08036
Change sound backend from Qt to miniaudio (#4334)
Thanks Greenlandicsmiley, Nerixyz, Yoitsu, and helmak for helping debug & test this

* Remove QMediaPlayer includes

* Prefer local path when generating the sound path

* Update changelog entry number

* Disable pitch & spatialization control
2023-01-29 10:36:25 +01:00
pajlada bf5a5b839c
Fix version checking (#4329)
https://github.com/Neargye/semver

* Use semver library for version downgrade checking

* Add test validating our current version is valid semver
2023-01-26 19:22:48 +01:00
nerix 904749cf62
feat: Add Live Emote Updates for BTTV (#4147)
This feature is enabled by default and can be disabled in settings with the "Enable BTTV live emotes updates" setting.

Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-01-21 14:06:55 +00:00
pajlada 56f7c91a64
Fix the split "Search" menu action not opening the correct search window (#4305)
* Fix split menu "Search" action

It now opens a split-specific search instead of a global one

* Add changelog entry
2023-01-21 10:51:29 +00:00
askepticaldreamer 6ba1cf6ca3
Fix slash to backslash conversions in url hashes for opening links in incognito (#4307)
* 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
2023-01-19 09:03:35 +01:00
Thomas Petersen d5a0420f74
Attempt to fix certain ping sound issues on Arch Linux (#4285) 2023-01-16 14:34:05 -05:00
nerix 2233b46512
Format YAML and JSON Files With Prettier (#4304)
* ci: format yaml and json files with prettier

* chore: add changelog entry

* fix: format everything

* ci: run pretter on all files

* ci: rename prettier step
2023-01-15 17:27:41 +01:00
pajlada f933d9cdf2
Change the highlight order to prioritize Message highlights over User highlights (#4303) 2023-01-15 13:21:42 +00:00
askepticaldreamer 4c782ce90c
Add feature to select channels to log (#4302)
* Add checkbox for custom logging and table with channels to log on Logs page

* Add checkbox to enable and disable logging per channel

* Return from addMessage before logging if custom logging enabled and channel does not have logging enabled

* Use clang-format to fix formatting

* Add CHANGELOG.md entry

* Resolve PR comments

* Remove toggle for channels so any channel listed will be logged

* Move Only log channels listed below checkbox to just above table

* Fix formatting

* Re-order changelog

* ChannelLog constructor: Copy & move instead of const ref & copy

* ChannelLog::createEmpty: Curly brace initialize instead of repeating
name

* ChannelLog toString & createEmpty: nodiscard

* Use COUNT paradigm in model column

* Remove ChanneLoggingModel source file comments

* Use Column::Channel in getRowFromItem

* Rename `getItemFromRow` parameter and mark it as unused

* Curly brace initialize ChannelLog

* private & friend class the model

* Filter out channels to log using a set instead of iterating over a vector every time a message comes in

* Rename `ChannelLog::channel` member to `ChannelLog::channelName`

Also made it private

* mini comment on ChannelLog

Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-01-15 11:47:22 +00:00