Commit Graph

76 Commits

Author SHA1 Message Date
Rasmus Karlsson 57d6583a2b refactor: add explicit this-> where possible
I have knowingly skipped some files/portions of files where this would
create merge conflicts for other open PRs.
2025-12-30 14:59:12 +01:00
nerix 041674b7f6 refactor: simplify uses of getMessageSnapshot (#6607)
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com>
2025-11-29 11:40:06 +00:00
nerix 30019b71aa refactor: remove LimitedQueueSnapshot (#6606)
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com>
2025-11-27 18:49:40 +00:00
etenie a935965390 Fix crash in notifyTwitchChannelOffline when snapshot is empty (#6604)
Reviewed-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2025-11-27 15:42:17 +00:00
nerix c4dd5f43ce feat: add ability to limit message snapshot size (#6602)
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com>
2025-11-26 23:35:34 +01:00
Supa 0b4e2312ff feat: add setting to show title in live message (#6572)
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com>
2025-11-15 13:24:13 +00:00
nerix 6cdd28c7d4 feat: warn for missing scopes when logging in (#6072) 2025-03-15 12:14:03 +00:00
apa420 7dad35b7a7 refactor(notifications): remove platform specifier (#5914) 2025-02-09 11:53:25 +00:00
pajlada ac88730563 fix: remove deprecated Application::getTwitchAbstract (#5560) 2024-08-25 11:38:57 +00:00
pajlada 175afa8b16 refactor: make a single MessageBuilder (#5548) 2024-08-24 10:18:27 +00:00
nerix aed55ac1ba fix: replace defines with constexpr/const and use more absolute paths for includes (#5527)
bye bye nuuls
2024-08-03 10:00:58 +00:00
pajlada 5deec1f02f chore: remove Singleton & replace getIApp with getApp (#5514) 2024-07-21 13:09:59 +00:00
nerix 0495fbca43 feat: add option to suppress live notifications on startup (#5388) 2024-07-20 12:19:27 +00:00
pajlada 973b7a3bdd Add extra context to messages that are added to channels, allowing the logging controller to take more responsibility in what messages to log (#5499)
Co-auhtored-by: James Upjohn <jupjohn@jammeh.co.nz>
2024-07-13 11:15:11 +00:00
pajlada b6dc5d9e03 chore: refactor TwitchIrcServer (#5421) 2024-06-01 12:56:40 +00:00
nerix c1fa51242f refactor: turn StreamerMode into a singleton(-like thing) (#5216) 2024-03-01 21:12:02 +01:00
KleberPF 3cdb7bf4f6 fix: resolve /live channel liveness using their channel ID (#5172) 2024-02-17 11:22:49 +00:00
pajlada 4380ef8c5f refactor: Remove most raw accesses into Application (#5104) 2024-01-19 17:59:55 +01:00
pajlada 718696db53 refactor: Un-singletonize Paths & Updates (#5092) 2024-01-16 20:56:43 +00:00
pajlada 5b6675abb4 refactor: fix clang-tidy auto*, const&, and curly braces (#5083) 2024-01-14 17:54:52 +01: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
pajlada a240797b68 Add support for sound backends & some miniaudio changes (#4978)
Miniaudio now runs everything in a separate audio thread - this uses boost::asio's io_context.
Our miniaudio implementation is now also much simplified - it does not use its own resource manager or device. This might end up being stupid if sounds don't work after changing output device or locking or w/e
I've made the sound controller into an interface, meaning we can support multiple sound backends in Chatterino. I've added a Null sound backend that disables all sound. A QMediaPlayer or QSoundEffect or Qt backend could be added.
Miniaudio might idle & disable the device now too, not sure

I've added some unrelated changes in the form of a new setting type, and a new setting page helper function for it, which will hopefully make adding new enum settings easier in the future.
This setting stores its value as a string instead of an int, and uses magic_enum to convert between that string value and its enum value.
2023-11-26 22:06:12 +01:00
nerix 6faf63c5c4 refactor: Remove Outcome from network requests (#4959) 2023-11-12 14:51:51 +01:00
pajlada 5c0219c245 refactor: Use override instead of virtual where possible (#4917) 2023-10-25 18:13:48 +02:00
pajlada 8fe3af3522 Fix signal connection nodiscard warnings (#4818) 2023-09-16 11:52:51 +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
Thomas Petersen d5a0420f74 Attempt to fix certain ping sound issues on Arch Linux (#4285) 2023-01-16 14:34:05 -05:00
nerix 1043f9f803 Remove Unnecessary Includes in Headers (#4275)
* refactor: remove unnecessary includes in headers

* fix: formatting

* chore: changelog

* fix: scrollbar

* fix: suggestions and old appbase remains

* fix: suggestion

* fix: missing Qt forward declarations

* fix: another qt include

* fix: includes for precompiled-headers=off

* Add missing `<memory>` includes

* Add missing `#pragma once`

* Fix tests

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-12-31 14:41:01 +00:00
nerix 86e71c8bd9 Migrate to C++ 20 & switch to websocketpp develop branch (#4252)
* feat: c++ 20

* fix: c++ 20 deprecations

* fix(msvc): warnings

* chore: add changelog entry

* fix: formatting

* Update websocketpp to the `develop` branch

* Specify other template type in FlagsEnum != operator

* Remove the user of simple template ids in our websocketpp template class

Also standardizes the file a bit by using nested namespaces, using
pragma once

* fix: turn `MAGIC_MESSAGE_SUFFIX` into a `QString`

* hacky unhacky hacky const char hack

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-12-24 11:56:11 +00:00
pajlada 032f290767 Sort and force grouping of includes (#4172)
This change enforces strict include grouping using IncludeCategories

In addition to adding this to the .clang-format file and applying it in the tests/src and src directories, I also did the following small changes:

    In ChatterSet.hpp, I changed lrucache to a <>include
    In Irc2.hpp, I change common/SignalVector.hpp to a "project-include"
    In AttachedWindow.cpp, NativeMessaging.cpp, WindowsHelper.hpp, BaseWindow.cpp, and StreamerMode.cpp, I disabled clang-format for the windows-includes
    In WindowDescriptors.hpp, I added the missing vector include. It was previously not needed because the include was handled by another file that was previously included first.
    clang-format minimum version has been bumped, so Ubuntu version used in the check-formatting job has been bumped to 22.04 (which is the latest LTS)
2022-11-27 19:32:53 +01:00
yodax d23d5c142e Added stream titles to windows toast notifications (#2044)
Co-authored-by: 23rd <23rd@vivaldi.net>
Co-authored-by: David Myers <dave-myers@outlook.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-30 12:29:43 +00:00
Kasia f3f340335f Make generic version of batcher function (#3822) 2022-06-17 20:52:20 +02:00
Kasia 74ec310228 Fixed channels not being set as offline (#3767) 2022-05-28 18:10:10 +00:00
Mm2PL 00b463d298 Delete 'is live' messages from non-open channels (#3678)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-04-30 11:37:24 +00:00
Sidd 870aa74427 Use login name for NotificationController lookup (#3648)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-04-06 21:10:22 +00:00
James Upjohn 67c10fafc7 chore: replace usages of obsolete twitch struct with backing field (#3614)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2022-03-19 11:02:29 +00:00
Mm2PL ea462f94e4 Check live status for all closed channels with notifications at once (#3442)
Use a single api call for fetching live status of fake channels; batch by 100s

Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: zneix <zneix@zneix.eu>
2022-01-01 17:06:54 +00:00
Felanbird be3609a927 Capitalize mentions of Twitch, Chatterino, and IRC in comments and text/settings (#3274) 2021-10-17 15:06:58 +02:00
apa420 dcd65b5978 /live split for channels going live (#1998)
Co-authored-by: 23rd <23rd@vivaldi.net>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-05-09 14:17:04 +00:00
Felanbird 032a791ec1 Fixed spelling of Suppress (#2472) 2021-02-21 16:42:59 +01:00
Paweł acbabd2664 Added Live Notification suppression to Streamer Mode (#2342) 2021-01-10 15:01:38 +01:00
Steve Wills df722a72c1 Switch to QT Category logging (#2206)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2020-11-21 16:20:10 +01:00
Leon Richardt 0eed45ae67 Chore: Proper Lambda Formatting (#2167)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2020-11-08 12:02:19 +01:00
pajlada 9a8b85e338 Twitch API: v5 to Helix migration (#1560)
There's a document in src/providers/twitch/api which describes how we interact with the Twitch API.
Keeping this up to date might be a healthy way for us to ensure we keep using the right APIs for the right job.
2020-03-14 12:13:57 +01:00
fourtf 2ebe07bace removed compat functions in SignalVector 2020-02-23 19:44:13 +01:00
fourtf e2c493f369 removed compat aliases for SignalVector 2020-02-23 19:37:02 +01:00
fourtf 843e2ad994 refactored HighlightController 2020-02-23 19:31:43 +01:00
fourtf 4a5dc80bc6 some more refactoring 2020-02-23 17:45:59 +01:00
pajlada 3c8992cac1 Remove FMT dependency (#1472)
All occurrences of log() have been replaced with qDebug()

bonus meme: remove a bunch of std::string usages in the pubsub client

Fixes #1467
2020-01-03 20:51:37 +01:00
fourtf 22ca20ad2a renamed TwitchServer -> TwitchIrcServer 2019-09-15 13:02:02 +02:00