Commit graph

3258 commits

Author SHA1 Message Date
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
kornes a567cc5ae7
Fix: dont run windeployqt with VCPKG (#4297) 2023-01-09 18:43:36 +00:00
pajlada 5ad8ca791c
Fix various small warnings (#4296)
* Fix `inconsistent-missing-override` warnings

* Fix `final-dtor-non-final-class` warnings

* Fix `ambiguous-reversed-operator` warnings
2023-01-08 14:32:52 +01:00
pajlada 18cb4bd6e5
Massage includes some more (#4294)
* Add `<functional>` include to QStringHash.hpp

This ensures the base `std::hash` template is declared before this
specialization

* Add missing includes to `src/providers/twitch/TwitchAccountManager.hpp`

* Move explicit HelixChatters constructor to the source file

* Remove unused includes & add used includes to NicknamesModel.hpp

* NicknamesModel.hpp: Remove `virtual` when `override` is used

* Add missing QStringHash include to TwitchEmotes.cpp

* Add missing includes to various files

* Print Qt version in cmake step

Technically unrelated, but I'm sneaking it in

* Add changelog entry
2023-01-08 12:07:06 +00:00
pajlada c0f0a7e555
Fix link to the "connecting to the Twitch IRC server" guide (#4293) 2023-01-08 12:45:24 +01:00
Daniel Sage e19cd1911b
Fix scrollbar highlight colors when changing message history limit (#4288)
* Use correct messagesLimit for Scrollbar

* Update CHANGELOG.md

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-01-07 11:41:52 +00:00
nerix 95b1f82620
Remove Deprecated QDesktopWidget (#4287)
* fix: remove deprecated `QDesktopWidget`

* chore: add changelog entry
2023-01-07 11:41:39 +01:00
pajlada e48945e370
Flatten util/IncognitoBrowser.{h,c}pp (#4280) 2023-01-01 12:06:34 +00: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
pajlada f04c4c7388
Fix crash that could occur when closing down the last of a channel when reloading emotes (#4278)
* Fix crash that could occur when a channel is closed

Ensure we copy the QString in case the channel goes out of scope and
we're referring to nothing

* Add changelog entry
2022-12-31 13:03:16 +00:00
pajlada 293aa370c5
Fix crash that could occur when closing down splits (#4277)
* Fix crash that could occur when closing down splits

Specifically, if a split was closed after the request for a thumbnail
had been made, but before the request had finished, we'd run into a
use-after-free issue

* Add changelog entry
2022-12-31 12:39:28 +00:00
pajlada 5fc170ba4b
Refactor SplitHeader class (#4276)
* Flatten static functions in anonymous namespace

* SplitHeader ctor: Rename param

* Header: Remove unnecessary `virtual`s

* auto ptr where possible

* Add curly braces

* Comment twitch room modes

* Treat roomModes->slowMode as an integer

* Remove unused `this` from lambdas

* Add `unsigned int` overload for localizeNumbers

* Move thumbnail max age to a constexpr static & set explicit types

* Explicitly use `QObject::connect`

* Use `empty()` instead of `size()`

* Name unused parameters

* Move moderation action refreshing logic from SplitHeader to Split
2022-12-31 12:56:47 +01:00
pajlada 90046f380f
Fix crash that would occur when performing certain actions after removing all tabs (#4271)
* Ensure we can deselect notebooks

* Add changelog entry

* Use dynamic_cast instead of raw cast
2022-12-29 19:15:32 +01:00
kornes 11fdd7ed74
ref: merge TooltipPreviewImage and TooltipWidget (#4268)
* merge TooltipPreviewImage and TooltipWidget

* changelog

* add empty line before return

* fix signalholder include

* add changelog for bugfix

* fix custom scaling issue

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-12-29 16:07:46 +01:00
nerix 448c8622e7
Remove unused operators in Image (#4267) 2022-12-28 19:24:14 +00:00
nerix 757c7c781e
fix: Remove Unused Include Directives (#4266)
* fix: remove unused includes

* fix: bad includes

* fix: top include

* fix: streamer mode includes

* fix: missing include

* fix: remove `#else`

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-12-27 20:26:32 +00:00
Douglas b2a8327696
Fix text cursor in open channel dialog (#4263)
* Fix text cursor not blinking in open channel dialog

* Update CHANGELOG.md

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-12-27 17:27:11 +00:00
pajlada a9a985bde1
Only try to extract images if the image uploader is enabled (#4246)
* Only try to extract images if the image uploader is enabled

* Add changelog entry
2022-12-25 12:14:23 +00:00
pajlada fdb0a1582c
SplitContainer refactor (#4261)
* Remove unused include util/Helpers.hpp

* SplitContainer::setTag fix parameter naming

* autofy/constify where possible

* More const auto ptr magicifying

* Make SplitNode::Type an enum class

* Move QuickSwitcherPopup includes from header to source file

* Remove unused DropRegion code

* use empty() instead of size() == 0

* Add curly braces everywhere

* Remove useless reinterpret_cast

It was casting Node* to Node*

* Clarify that the connect is QObject::connect

* SplitContainer::setSelected fix parameter naming

* Rename function variables to remove unneccesary underscore

Also move addSpacing parameter out of the layout function

* emplace_back where possible

* Name parameters

* Remove ineffective const from return type

* Make node getters const

* Flatten Node::releaseSplit

* Rename in-function variable to match code style

* [ACTUAL CODE CHANGE/MOVE] Move clamp logic to its own function

* name params

* applyFromDescriptorRecursively: rename node param to baseNode

* [ACTUAL CODE CHANGE/MOVE] Remove the many overloads for append/insertSplit

This utilizes the C++20 designed initializers aggregate initialization feature

* Remove unused includes

* [ACTUAL CODE CHANGE] Clean up dragging logic

There's no need to keep a pointer around to which split is being
dragged, it's already stored in the QDropEvent source()

* UNRELATED .clang-tidy: Only suggest UPPER_CASE for constant global variables

* Remove unused SplitContainer::getSplitCount function

* Use std::max in Node's clamp function

* Remove test code

* DraggedSplit.hpp: remove unused include

* Split `setDraggingSplit` into two functions, `startDraggingSplit` and `stopDraggingSplit`
2022-12-25 11:09:25 +00:00
pajlada 83dfb08aed
Enable LTO support for Chatterino builds (#4258)
This is disabled by default, and can be enabled by passing `-DCHATTERINO_LTO=On` to your cmake invocation.
2022-12-24 18:42:59 +01:00
pajlada 621134ffcb
Remove another implicit this-capture for C++20 migration (#4257)
* Fix another usage of an implicit this capture

* Add changelog entry
2022-12-24 15:23:07 +01: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 99e038ce5e
Remove protocol from organization domain (#4256)
* remove protocol from organization domain

* Add changelog entry

* update changelog entry

Co-authored-by: Sam Heybey <sam@heybey.org>
2022-12-24 12:25:05 +01:00
pajlada b9308d7325
Add Thread Guard for debugging simple threading issues (#4254)
* Add ThreadGuard class

* Use ThreadGuard when accessing a ChannelView's messageSnapshot
2022-12-24 11:32:08 +01:00
kornes bc5a03af26
Fix tab direction change crash (#4248)
* Fix tab direction change crash

* changelog

* Update CHANGELOG.md

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-12-19 18:19:09 +01:00
pajlada a715b1ffff
Clean up TwitchAccount emote stuff (#4243)
* Remove unused TwitchAccount FollowResult enum

* Remove unused TwitchEmoteSetResolverResponse struct

* Remove unused and unimplemented `getEmoteSetBatches` function definition

* Remove unused `loadEmoteSetData` and `staticEmoteSets` from
TwitchAccount

* Remove forward declaration of TwitchAccount in TwitchAccountManager

* Clean up IgnorePhrase includes

* add missing newline in pubsubmanager.cpp
2022-12-18 14:36:39 +00:00
pajlada 8830b0e01c
Clean up/refactor InputCompletionPopup (#4242)
Mainly flattening anon namespaces & respecting clang-tidy
2022-12-18 13:25:11 +00:00
pajlada 77852f0e29
Clean up CompletionModel (#4240)
* Refactor CompletionModel

Do some clang-tidy cleanup

* Use a shared mutex for CompletionModel's items mutex
2022-12-18 13:51:36 +01:00
Felanbird 0e72cd62e3
Add even more tooltips when hovering settings (#4230)
* Add unshortenLinks tooltip `NEEDS LINK EXAMPLE`

* Add `linksDoubleClickOnly` tooltip

* Add `highlightInlineWhispers` tooltip

* Add `removeSpacesBetweenEmotes` tooltip

* Add a TODO comment for 7TV unlisted emote tooltip

* Add shortened link example

* Add `usernameDisplayModes` tooltip

* Add `highlightMentions` tooltip

* Add `attachExtensionToAnyProcess` tooltip

* Fix true/false-ing

* Add `showTabCloseButton` tooltip

* Add `showReplyButton` tooltip

* Use a different unicode for `showTabCloseButton`

* Don't use a unicode because it upsets the formatter

* Add `showTabLive` tooltip

* minor fixes

* unicode freakout distracted me from testing this setting

* Add `alternateMessages` tooltip

* Add `showLastMessageIndicator` tooltip

* Add `seperateMessages` tooltip

* Add `hideModerated` tooltip

* Add `hideDeletionActions` tooltip

* Don't mention a default line color for `showLastMessageIndicator`

* Better explain and display localized in `usernameDisplayMode`

* Respect keybind for `showTabCloseButton`

* Remove extra brackets

* nitpick

* Invert `hideModerated` setting

* Rename and update `showTabLive`
2022-12-18 12:30:21 +01:00
pajlada b074a8f7eb
Refactor the EmotePopup file (#4239)
Flatten the anonymous namespace
Make the `loadEmojis` functions static
Make the `filterEmoteMap` function static
Return an EmoteMap from `filterEmoteMap` instead of an EmoteMap*
Other misc cool changes :-)
2022-12-17 18:33:17 +01:00
Felanbird bad32a7511
Fix accidental change of stripReplyMention setting (#4225) 2022-12-07 22:46:41 +00:00
nerix ff54b4c8d2
feat: Add Setting to Hide Reply Context (#4224) 2022-12-07 21:02:54 +00:00
pajlada 4fdcac8ec5
Make LimitedQueueSnapshot usages in ChannelView const (#4223) 2022-12-07 19:40:15 +00:00
pajlada 9f008f86d2
Move thread parsing & building to its own private function (#4222) 2022-12-07 19:13:59 +00:00
kornes a16d148dfd
Fix selection clearing not working in Reply window (#4218)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-12-07 18:21:04 +00:00
kornes 36c8fffee2
feat: Automatically select newly added table rows (#4216)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-12-06 22:52:58 +00:00
Felanbird 783b05c103
Add docs link for streamlink --args (#4217) 2022-12-06 23:27:27 +01:00
kornes b7888749fe
feat: Allow negation of search predicates (#4207)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
closes https://github.com/Chatterino/chatterino2/issues/3998
2022-12-04 11:34:13 +00:00
kornes 4fa214a38a
Prepopulate search window input with current text selection (#4178)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2022-12-03 18:14:15 +00:00
nerix 2aa8af47e7
Clear up Highlight sound settings (#4194)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
Closes https://github.com/Chatterino/chatterino2/issues/1540
2022-12-03 17:01:49 +01:00
nerix 8d4ee72478
fix: Copy Shortcut Not Working In Reply Thread Popup (#4209) 2022-12-03 13:02:39 +00:00
Felanbird 6ee7ef8cab
Add more tooltips when hovering settings (#4213)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-12-03 11:42:43 +00:00
kornes db12693a27
Fix red text color persisting from message overflow highlight (#4204)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-12-03 11:10:11 +00:00
kornes 188782ddca
fix: prevent unnecessary layout saves (#4201)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-12-03 10:50:22 +00:00
kornes edd4789bf7
perf: ignore WM_SHOWWINDOW hide event (#4198)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-12-03 11:20:31 +01:00
pajlada a0f9310062
Release v2.4.0 (#4200)
* Update make-release.md documentation

* Update changelog

* Update `com.chatterino.chatterino.appdata.xml` version

* Update `Version.hpp`

* Lint make-release.md

* Lint again
2022-11-28 21:12:06 +01:00
kornes cc661d5f42
Fix unnecessary clears of split input selection (#4197)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-11-27 19:39:53 +00:00
nerix a16342fd82
perf: Speed Up Opening of Settings Dialog (#4193)
fix https://github.com/Chatterino/chatterino2/issues/1266
2022-11-27 20:15:22 +01: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
kornes f2b35fb7dc
Fix white border appearing around maximized window (#4190)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
fixes https://github.com/Chatterino/chatterino2/issues/2205
2022-11-25 20:32:45 +00:00
mohad12211 fe2a9ccbff
fix neutral elements order in multiple lines (#4173)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-25 11:24:28 +01:00
kornes 330e0a99fa
Fix crash happening when QuickSwitcher is used with popout window (#4187)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-11-25 09:34:01 +00:00
kornes b3e400a049
Fix low contrast of text in settings tooltip (#4188) 2022-11-25 10:01:07 +01:00
Leon Richardt 9d1b8b0a93
fix: don't parent popup windows on Windows OS (#4181)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
fix https://github.com/Chatterino/chatterino2/issues/3863
fix https://github.com/Chatterino/chatterino2/issues/4180
2022-11-22 01:15:08 +00:00
nerix ff4899f545
chore(msvc): replace /W3 with /W4 (#4175)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-11-21 18:49:16 +00:00
nerix 254f89f935
fix: don't ignore mousePressEvent in SplitInput (#4177)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
Fixes https://github.com/Chatterino/chatterino2/issues/3844
2022-11-21 18:27:56 +00:00
Felanbird 518262596a
Fix issue with VIPs who have Asian Language display names (#4174)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-21 17:58:32 +00:00
fourtf 82797898c1 bump to 2.4.0-beta 2022-11-20 20:51:30 +01:00
Mm2PL 01de4d4b5d
Add support for Nicknames on IRC (#4170)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-11-20 16:28:29 +00:00
nerix ba4422b082
fix: /watching channel jumping around (#4169)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-11-20 16:02:21 +00:00
nerix 82d345bc76
fix: Limiting the height of a message that contains some RTL text causes a crash (#4168)
Co-authored-by: mohad12211 <51754973+mohad12211@users.noreply.github.com>
Fixes https://github.com/Chatterino/chatterino2/issues/4166
2022-11-20 15:30:51 +00:00
pajlada 768b281ff2
fix sample redemption messages (#4165) 2022-11-19 14:59:10 +00:00
nerix 9fba0bd4ab
fix: /ban messages for self/mod bans (#4164) 2022-11-19 13:34:07 +00:00
Edgar 9f5477c433
🔨 Automatically generate resources files with cmake (#4159)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
Fixes https://github.com/Chatterino/chatterino2/issues/3949
2022-11-19 12:29:12 +01:00
Mm2PL 2f4272cc2a
Add better support for IRC private messages (#4158)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-11-18 19:11:56 +00:00
Mm2PL 8627d6c919
Add echo-message support for IRC (#4157)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-18 17:08:15 +01:00
Mm2PL 49eb5c90cf
Make builtin commands work in IRC channels (#4160)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-17 19:22:47 +00:00
Mm2PL 32d077c43b
Make cleanChannelName a NOOP for IRC (#4154)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-11-16 16:54:59 +00:00
pajlada 991cf6364d
Fix users being assigned duplicate FrankerFaceZ badges (#4156) 2022-11-16 10:02:54 +00:00
pajlada 011facc13a
Fix crashes that can occur when selecting/copying text (#4153) 2022-11-15 23:32:15 +00:00
Daniel Sage 90121ed756
Fix tab wrapping with vertical tab layout (#4152) 2022-11-15 08:45:10 +01:00
nerix 8031f33b53
fix: Mark Bad or Invalid Images as Empty (#4151) 2022-11-14 14:32:51 +01:00
pajlada 1eabda8668
Initial backend test for user-based data/customizations (#4144)
Right now only support for colors and no real UX, idea is to test it & allow the idea to grow while figuring out the UX
2022-11-13 17:21:21 +00:00
Adam Davies a9d3c00369
Add setting to prevent or highlight message overflow (#3418)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-13 11:47:46 +00:00
kornes d409e3f17d
Improved text selection (#4127)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-11-13 11:26:33 +00:00
nerix 39f7d8ac4c
feat: Live Emote Updates for 7TV (#4090)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-13 12:07:41 +01:00
kornes 8fa89b4073
Fix context menu not opening when username is right clicked from usercard/search/reply window (#4122)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-11-12 18:10:21 +01:00
Patrick Geneva 3ed7489e0f
Add settings to increase split and usercard scrollback (#3811)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-12 15:53:42 +00:00
kornes a8b4eaa431
Fix login dialog causing main window to be non movable (#4121)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
fixes https://github.com/Chatterino/chatterino2/issues/2378
2022-11-12 13:40:49 +00:00
kornes 2a9c15b2de
Fix triple click selection on message containing reply (#4131)
closes https://github.com/Chatterino/chatterino2/issues/4128
2022-11-12 12:44:03 +00:00
Patrick Geneva 06b28ea0ab
Add ability to pin Usercards to stay open even if it loses focus (#3884)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
Co-authored-by: James Upjohn <jammehcow@jammehcow.co.nz>
2022-11-12 12:21:43 +00:00
Salman Abuhaimed 070151fbc8
change unicode for better font support and fix some cases (#4139)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-11-12 08:30:44 +00:00
pajlada c714f15ce9
Add debug output to channel point reward callbacks (#4142) 2022-11-11 23:49:44 +00:00
xel86 46cdb89498
Allow Commercial API endpoint to handle commercial lengths (#4141) 2022-11-12 00:17:50 +01:00
mohad12211 f86b5b90a8
Add mohad12211 to contributors list (#4138) 2022-11-10 23:34:47 +00:00
mohad12211 3fcb7e1702
Implement initial support for RTL languages (#3958)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
fix https://github.com/Chatterino/chatterino2/issues/720
2022-11-10 20:36:19 +00:00
kornes fbfa5e0f41
Disable use of Qt APIs deprecated in 5.15.0 and earlier versions (#4133) 2022-11-10 20:11:40 +01:00
Mm2PL 3303cdc0cb
BaseTheme is no more 🦀 (#4132)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-11-10 09:07:50 +00:00
Daniel Sage 1741ac7482
Improve look of tabs when using a layout other than top (#3925) 2022-11-08 22:46:43 +01:00
Mm2PL df4c294875
Allow hiding moderation actions in streamer mode (#3926)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-11-06 16:30:53 +00:00
pajlada c6a162c7ff
Move ChatSettings commands to their own file (#4116)
* Move ChatSettings commands to their own file

* reformat error message strings

* move ChatCommands together in CommandController.cpp

* Allow CommandContext to be provided for builtin functions

using variants MEGADANK

* add missing include

* rename to ComandFunctionVariants

also include some move magic & const reffing
2022-11-06 12:07:54 +00:00
Felanbird ac7baf4073
Add is:reply search predicate (#4119)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-06 11:37:14 +00:00
Felanbird 1e6e18f53a
Add is:redemption search predicate (#4118) 2022-11-06 12:14:27 +01:00
Mm2PL 6f88c1cc8a
Make opening threads from a usercard opened with /usercard not crash the client (#3905)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-05 12:40:15 +00:00
pajlada 2ec26f57cc
Fix chatters recursion not working (#4114) 2022-11-05 11:56:17 +00:00
Colton Clemmer e531161c7f
Migrate /mods command to helix API (#4103)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-05 11:20:12 +00:00
pajlada aac9ea53d0
Harden emote parsing (#3885) 2022-11-05 10:04:35 +00:00
xel86 f00f766eeb
Migrate /commercial command to the Helix API (#4094)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-11-05 09:43:31 +00:00
Felanbird f0ad606d7a
Fix RapidJSON link not being https (#4113) 2022-11-05 04:53:13 +00:00
pajlada 84a6e724fa
Revert "Fix Twitch-specific filters not being applied (#4107)" (#4111) 2022-11-04 21:32:11 +00:00
pajlada e3e1845262
Fix uninitialized read in ChannelView's highlightedMessage_ (#4109) 2022-11-04 18:59:03 +00:00
pajlada 05008214fa
Fix Twitch-specific filters not being applied (#4107) 2022-11-04 09:22:12 +01:00
Daniel Sage 36402a2faf
Fix Reply Text Showing In Reply Thread Popup (#4101) 2022-11-02 23:20:37 +00:00
pajlada 4196bba4ad
Fix recursive fetchChatters call (#4097) 2022-11-02 09:31:28 +00:00
Daniel Sage 7640677a43
Improve Appearance of Reply Curve (#4077) 2022-11-02 09:19:44 +01:00
Colton Clemmer 495f3ed4a9
Migrate /chatters commands to use Helix api (#4088)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-01 22:18:57 +00:00
pajlada abb69f6794
Include more error messaging for failed image uploads (#4096) 2022-11-01 21:39:26 +01:00
Brian a033dbc933
Grammar: Alias to -> Alias of (#4093) 2022-10-31 23:18:38 +00:00
mohad12211 d3eed626ec
Add missing Text tag to reply message text (#4092) 2022-10-30 20:09:40 +00:00
pajlada e3af865a70
Add helper function for ensuring a function is run in the GUI thread (#4091) 2022-10-30 13:01:54 +00: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
Adam Davies fa93d63383
Add settings tooltips (#3437)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-30 12:06:38 +00:00
nerix ff684fc7ed
feat: Basic PubSub Manager for Live Emote Updates (#4087)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-29 14:01:01 +02:00
Felanbird b27d6334f3
Update IRC whisper error (#4086) 2022-10-28 23:01:21 +00:00
pajlada e6e9b98f66
Remove unused values from MessageLayoutContainer (#4081) 2022-10-23 08:31:38 +00:00
Kasia f7fcc90fe0
Migrated getSubage to v2 version of the API (#4070) 2022-10-22 11:36:18 +00:00
xel86 76530d061c
Make reply thread subtext easier to click (#4067)
Co-authored-by: Daniel Sage <24928223+dnsge@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-10-22 10:46:20 +00:00
8thony 570746a8bd
Hide inline whispers in streamer mode (#4076)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-22 10:04:51 +00:00
nerix 457c5725da
fix: Invalid/Dangling completion after updating input (#4072) 2022-10-22 11:42:46 +02:00
Felanbird dd6cb80ab9
Add searching & filtering for bits (#4069) 2022-10-18 20:26:12 +02:00
Kasia b232d16b55
Prevent copying in a couple places (#4066) 2022-10-16 14:25:24 +00:00
nerix 34b5fa661f
fix: missing global emotes in popup (#4062) 2022-10-16 12:29:28 +00:00
nerix 3e41b84ed7
feat: Add 7TV Emotes and Badges (#4002)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-10-16 11:22:17 +00:00
xel86 e8fd49aadb
Fix channel-based popups rewriting messages to file log (#4060)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-10-16 10:28:22 +00:00
Aiden c71d3437f4
Migrate /uniquechat and /uniquechatoff to Helix API (#4057)
* Migrate /uniquechat and /uniquechatoff to Helix

* Update CHANGELOG.md

* Move & squash changelog entries

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-15 12:36:49 +02:00
pajlada 3e020b4891
Fix rare reply mention crash (#4055)
* Fix potential out-of-range access of at when stripping reply mention if
the message contained nothing other than the username

* Update changelog entry
2022-10-12 11:59:52 +02:00
James Upjohn ceecc7ef91
chore: migrate /vips command to Helix call (#4053)
* feat(helix): create response model for VIP listing

* feat(helix): stub out channel/vips request + handler

* feat(helix): parse VIPs list from data and pass to callback

* feat(helix): handle errors when getting VIP list then pass to callback

* feat(command): add barebones handler for helix-based /vips

* feat(command): provide better /vips output when user is not broadcaster

* chore(format): bulk reformat with clang-format

* chore(changelog): add entry for /vips Helix migration

* fix(helix): use correct method when calling VIP list endpoint

* fix(helix): use correct VIP list endpoint

* chore(tidy): please clang-tidy by marking parameter as unused

* feat(command): display unsorted VIP list returned from Helix API

* feat(settings): clone raid timegate settings for /vips

* feat(command): check /vips timegate setting before execution

* feat(command): handle 0 VIPs from Helix response

* feat(command): sort users alphabetically from Helix VIPs response

* fix(command): highlight users in Helix /vips output to match IRC

* fix(command): replace dynamic /vips error message with hardcoded string

* chore(comment): remove TODO comment that was DONE

* chore(format): bulk reformat using clang-format

* fix(command): send 0 VIP message after creation

* chore: apply suggestions from Felanbird

* fix(helix): change mention of user ban to VIPs in VIP list error message

* feat(helix): distinguish non-broadcaster auth error when getting VIPs

* chore(command): move handling of non-broadcaster /vips usage to API response

* chore(format): re-indent multiline string to get away from 80 char limit

* reformat

* fix tests

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-10-10 12:56:55 +02:00
Mm2PL e604a36777
Make menus and placeholders display appropriate custom key combos. (#4045)
* Add initial support for finding hotkey display key sequences

* Make neededArguments work

* Implement displaying key combos in SplitHeader main menu

* Make Settings search text dynamic

* Make tab hide notice use a custom hotkeys key sequence

* Make Notebook menus use custom hotkeys key combo lookup for hiding tabs

* shut up changelog ci

* Make NotebookTab menus show custom hotkeys. SCUFFED:
this does not update dynamically!

* Scuffed: Make the show prefs button setting show the key bind

* Scuffed: Make the R9K description refer to hotkeys

* @pajlada, is something like this ok?

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-10-09 17:20:44 +02:00
nerix 4e2da540d2
refactor: Remove Leading Mention in Replies and Highlight Participated Threads (#4047) 2022-10-08 16:25:32 +02:00
Marko 29272e130a
Migrate /unraid to Helix. (#4030)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-08 12:10:38 +00:00
nerix 974a8f11b7
Migrate /w to Helix API (#4052) 2022-10-08 13:11:55 +02:00
Felanbird 7f93885518
Remove trailing whitespace from Usernames in User Highlights (#4051) 2022-10-06 22:42:41 +00:00
nerix 874ef64216
Migrate /ban and /timeout to Helix API (#4049) 2022-10-06 23:52:25 +02:00
Felanbird 41581031b9
Add missing 403 handling for /unban (#4050) 2022-10-06 18:30:40 +00:00
pajlada 03051bf0bd
Bump MessageFlag underlying type to be 64-bit (#4042) 2022-10-03 14:55:46 -04:00
nerix d5b8d89494
fix: Double-space when using replies with an empty input box (#4041) 2022-10-03 18:05:42 +00:00
nerix 25bccc90b4
Migrate Remaining Chat Settings Commands to Helix API (#4040) 2022-10-03 19:42:02 +02:00
pajlada 4c2e97bea6
Enable Helix timegating (#4035)
For commands affected by the timegating, they will continue to use their IRC command equivalent until the 11th of February, 2023.
This is one week before the actual migration is supposed to start. The wording of the date is shaky, so we start a bit before to be sure.
Any highly affected commands will have a temporary setting at the bottom of the General settings page to override the timegating functionality.

Any commands that are affected will also have their changelog entry updated to notify of the timegating. As of this commit, this is only active for /raid
2022-10-02 21:53:22 +00:00
Felanbird 766a30240d
Add debug hotkey for test sub messages (#4037) 2022-10-02 17:17:32 -04:00
nerix 54129f76a3
Migrate /emoteonly and /emoteonlyoff commands to the Helix API (#4015)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-02 14:18:10 +00:00
Marko f8f9903892
Migrate /raid to Helix. (#4029)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-02 15:27:55 +02:00
Felanbird 9816722b5e
Add showInMentions option for Badge Highlights (#4034)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-02 11:25:10 +00:00
nerix ba586f01d0
fix: Display Sent IRC Messages Like Received Ones (#4027) 2022-10-01 15:36:22 +00:00
Aiden a275a1793a
Migrate /unban and /untimeout to Helix API (#4026)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-01 15:10:06 +00:00
Aiden adbc4690af
Migrate /unvip to Helix API (#4025)
Co-authored-by: iProdigy <iProdigy@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-10-01 14:00:45 +00:00
xel86 bfcc9ff7a4
Add search predicates for badges and sub tiers (#4013)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-01 12:30:29 +00:00
nerix b5241670ae
fix: smoothScrollingNewMessages sometimes hiding messages (#4028)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-01 12:05:05 +00:00
pajlada 5e02fdab52
Fix usage of FrankerFaceZ global emote API (#3921)
We no longer blindly parse all sets as global emotes, but rather match them against the default_sets as intended.

This means that some emotes will no longer be visible through Chatterino (e.g. AndKnuckles). This is more in line with how the FrankerFaceZ browser extension works.
2022-10-01 11:42:05 +00:00
Felanbird d024a1ef7e
Add is:elevated-msg search predicate (#4018)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-10-01 11:01:54 +00:00
Felanbird 9e722d05e9
Add flags.elevated_message filter variable (#4017) 2022-10-01 12:27:25 +02:00
Felanbird 0ab59d44f0
Add Basic Elevated Message support (#4016) 2022-09-30 23:23:31 +00:00
nerix 9554b83c1a
fix: Show Emoji Completion in IRC Channels (#4021) 2022-09-30 22:59:52 +02:00
Aiden ced1525e75
Migrate /vip to Helix API (#4010)
Fixes #3983 

Co-authored-by: iProdigy <iProdigy@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-09-25 09:45:46 +00:00
iProdigy abb32f700c
chore: fix debug text on non-204 add mod success (#4011) 2022-09-25 06:16:39 +00:00
Mm2PL 8bda8a8b26
Migrate /announce command to Helix API. (#4003)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-09-24 17:50:02 +02:00
Aiden 1c97b3d094
Migrate /unmod command to Helix API (#4001)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-09-24 10:49:13 +00:00
Felanbird 63119661aa
Fix windows toast notifications opening as http (#4005) 2022-09-23 20:26:23 +00:00
Aiden 28de3e637d
Migrate /mod command to Helix API (#4000)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-09-23 16:12:34 +00:00
Aiden 838e156a04
Migrate /delete command to Helix API (#3999) 2022-09-20 00:26:48 +02:00
Aiden 6e7b4d8ec7
Migrate /clear command to Helix API (#3994)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-09-18 11:19:22 +00:00
pajlada 4f1976b1be
Migrate /color command to Helix API (#3988) 2022-09-16 21:15:28 +00:00
nerix c6ebb70e05
fix: disable autoInvoke for emote settings (#3990)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-09-14 11:21:01 +00:00
nerix 6a2c4fc098
fix: retain text from input when replying (#3989)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-09-14 10:55:52 +00:00
nerix be72d73c3d
feat: add Go to message action in various places (#3953)
* feat: add `Go to message` action in search popup

* chore: add changelog entry

* fix: only scroll if the scrollbar is shown

* fix: go to message when view isn't focused

* feat: animate highlighted message

* fix: missing includes

* fix: order of initialization

* fix: add `ChannelView::mayContainMessage` to filter messages

* feat: add `Go to message` action in `/mentions`

* fix: ignore any mentions channel when searching for split

* feat: add `Go to message` action in reply-threads

* fix: remove redundant `source` parameter

* feat: add `Go to message` action in user-cards

* feat: add link to deleted message

* fix: set current time to 0 when starting animation

* chore: update changelog

* fix: add default case (unreachable)

* chore: removed unused variable

* fix: search in mentions

* fix: always attempt to focus split

* fix: rename `Link::MessageId` to `Link::JumpToMessage`

* fix: rename `selectAndScrollToMessage` to `scrollToMessage`

* fix: rename internal `scrollToMessage` to `scrollToMessageLayout`

* fix: deleted message link in search popup

* chore: reword explanation

* fix: use for-loop instead of `std::find_if`

* refactor: define highlight colors in `BaseTheme`

* core: replace `iff` with `if`

* fix: only return if the message found

* Reword/phrase/dot changelog entries

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-09-11 16:37:13 +02:00
pajlada 5655a7d718
Include network response body in errors (#3987) 2022-09-11 12:32:08 +00:00
Explooosion-code 7ad7082535
Added Explooosion to contributors list (#3948)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-09-04 18:48:35 +00:00
Felanbird 92301e7d72
Update gifFrameLength name as suggested by clang-tidy (#3947) 2022-09-04 17:25:34 +00:00
Explooosion-code 7a4eda0e30
Filtering trailing/leading whitespace in username field in nicknames. (#3946) 2022-09-04 18:58:44 +02:00
Daniel Sage 8ec032fc84
Periodically free memory from unused images (#3915)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-09-04 11:23:14 +00:00
Troy bc38d696bc
Reduce GIF frame window from 30ms to 20ms (#3907) 2022-09-03 23:20:30 -04:00
pajlada 46efa5df3d
Treat reorder warnings as errors (#3944) 2022-09-03 18:12:44 +02:00
pajlada a9fc9f949f
Remove unused mutex from Emotes (#3943)
The mutex was initially used to limit access to the twitchEmotesCache_ member
but it's no longer necessary since it's been made a UniqueAccess type
2022-09-03 11:01:56 +00:00
pajlada dcd42cb28b
Add AutoMod message flag filter (#3938) 2022-08-28 13:31:53 +02:00
nerix c1af2c3faa
feat: add settings to toggle BTTV/FFZ global/channel emotes (#3935)
* feat: add settings to disable BTTV/FFZ global/channel emotes

* docs: add changelog entry

* fix: capitalize `BTTV` and `FFZ`

* fix: rename and move settings
2022-08-28 12:20:47 +02:00
Daniel Sage 33db006635
Fix crash when adding recent messages to empty Channel (#3932)
* Fix crash when adding recent messages to empty Channel

* Update CHANGELOG.md
2022-08-20 11:01:16 +02:00
nerix 8ea5b49c52
fix: Mentions of "You" in timeouts will link to your own user now instead of the user "You" (#3922)
* fix: link to the current user in timeouts

* fix: `readability-suspicious-call-argument`

* docs: add changelog entry

* fix: link both users when replacing timeout

* Update changelog entry

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-08-14 15:34:32 +02:00
Mm2PL 756bd90b17
Fix weird IRC channels causing crashes due to bad cast (#3918) 2022-08-11 18:29:04 +02:00
Rasmus Karlsson 76a891c5de Revert "Reduce GIF frame window from 30ms to 20ms (#3886)"
This reverts commit ebc7852f9f.
2022-08-06 19:29:08 +02:00
Daniel Sage 46f43f3ce8
Automatically load recent messages on reconnect (#3878)
* Add working reconnect recent messages

* Rename method to messagesUpdated

* Use audo declarations

* Add docs to new LimitedQueue methods

* Add more documentation, try atomic loading flag

* Update CHANGELOG.md

* Remove unused include

* Rename 'reconnected' signal to 'connected'

* Reserve before filtering on arbitrary update

* Extract recent messages fetching to own class

* Use std::atomic_flag instead of std::atomic_bool

* Add PostToThread include

* Add chatterino.recentmessages logging

* Remove unneeded parameters, lambda move capture

* Remove TwitchChannel::buildRecentMessages

* Add documentation, use more clear method name

* Reword changelog entry

I think it sounds better like this :)

* Rework how filling in missing messages is handled

This should hopefully prevent issues with filtered channels with old messages
that no longer exist in the underlying channel

* Check existing messages when looking for reply

* Clean up string distribution in file

* Try to improve documentation

* Use std::function for RecentMessagesApi

* Only trigger filledInMessages if we inserted

* Remove old unused lines

* Use make_shared<MessageLayout> instead of new MessageLayout

* Alphabetize QLogging categories

* Reorder CHANGELOG.md
2022-08-06 18:18:34 +02:00
Leon Richardt 2dd37ca210
chore: warn when parsing environment variable fails (#3904)
* chore: warn when parsing environment variable fails

* doc: update changelog
2022-08-06 13:38:10 +02:00
Troy ebc7852f9f
Reduce GIF frame window from 30ms to 20ms (#3886)
* fix frame timings

* add changelog
2022-08-01 00:15:12 +02:00
pajlada 3f1b16a855
[Chore] Remove unused class MessageContainer (#3889) 2022-07-31 13:41:24 +00:00
Daniel Sage 20c974fdab
Added support for Twitch's Chat Replies (#3722)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-07-31 10:45:25 +00:00
James Upjohn a280089693
Drop trailing whitespace from Twitch system messages (#3888)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-07-31 11:55:25 +02:00
Daniel Sage bda060f42e
Delete .pri files, move warnings to src/CMakeLists.txt (#3883) 2022-07-30 12:39:13 +02:00
James Upjohn 218718e930
fix: prevent system messages from being ignored in multi-channel search (#3875) 2022-07-24 12:18:25 +02:00
Daniel Sage c58552781d
Add option to display tabs on the right and bottom (#3847)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-07-23 14:09:12 +00:00
Daniel Sage 3b9ac7456a
Fix crash when closing all tabs on macOS (#3860)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-07-23 15:42:41 +02:00
Daniel Sage 965b06677a
Fix crash when closing and quickly opening a split, then running /clearmessages (#3852) 2022-07-10 15:08:20 +02:00
Leon Richardt e1b512a373
ref: unify Split popup logic (#3848)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-07-07 17:28:38 +00:00
Leon Richardt 53a625e26e
fix(Split): always refresh tab when channel is set (#3849)
Fixes #3845

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-07-07 18:52:15 +02:00
Mm2PL bbadbc4b33
Add logging to experimental IRC (#2996)
Co-authored-by: xHeaveny <69117321+xHeaveny@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-07-02 09:42:28 +00:00
Jaxkey 1456838dbb
Add Jaxkey to contributors list (#3842) 2022-06-28 17:19:56 +00:00
Jaxkey f49e8b4bc8
Show all global FFZ badges of a user (#3818)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-06-27 18:36:58 +00:00
pajlada 6599009e79
Fix split focusing being broken in certain circumstances when the "Show input when it's empty" setting was disabled (#3838)
Co-authored-by: Kasia <zneix@zneix.eu>
2022-06-26 16:53:09 +00:00
pajlada 8bdfbf7b87
Allow non-message phrases to be highlighted by self (#3835)
* All non-phrase highlights can now trigger on messages from self

New state:
Allows self highlights: Subscription, Whisper, User, Badge
Does not allow self highlights: Message

* Add changelog entry

* fix PR number in changelog
2022-06-26 10:43:34 +00:00
Leon Richardt 881986d86f
fix: make popup windows have a parent per default (#3836)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-06-25 12:45:56 +00:00
pajlada 34ea303607
Move most Command variables into the CommandController shared variables (#3824) 2022-06-25 12:06:16 +00:00
Leon Richardt 6a58ce1273
feat: add Quick Switcher item to open channel in a new popup window (#3828)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-06-25 11:00:32 +00:00
pajlada 6e0852fb49
Update WinToast to the latest version available at 2022-06-25 (#3834)
Closes #3817
2022-06-25 10:31:54 +00:00
Auro cdd949efd8
Moved highlight row index numbers to enum (#3829)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-06-25 09:14:19 +00:00
exstrim401 95e6d8ac2f
Add icon in the CMake macOS bundle (#3832) 2022-06-25 10:42:50 +02:00
Brian 9583b49653
Added a Scroll to top keyboard shortcut for splits (#3802)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-06-18 11:48:55 +00:00
Brian fd87cbb626
Strip leading @ from usernames in the /block and /unblock commands (#3816)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-06-18 11:18:51 +00:00
Daniel Sage 81caf1aae0
Rewrite & optimize LimitedQueue (#3798)
* Use circular buffer for LimitedQueue

* Reduce copying of snapshot

* Small optimizations

* Remove unneeded lock statements

* Add LimitedQueue tests

* Fix includes for limited queue benchmark

* Update CHANGELOG.md

* Use correct boost version iterators

* Use a shared_mutex to clarify reads and writes

* Update `find`/`rfind` to return the result as a boost::optional

* Use `[[nodiscard]]` where applicable

* Update comments

* Add a couple more doc comments

* Replace size with get

get is a safe (locked & checked) version of at

* Use std::vector in LimitedQueueSnapshot

* Update LimitedQueue benchmarks

* Add mutex guard to buffer accessors

We do not know whether T is an atomic type or not
so we can't safely say that we can copy the value
at a certain address of the buffer.

See https://stackoverflow.com/a/2252478

* Update doc comments, add first/last getters

* Make limit_ const

* Omit `else` if the if-case always returns

* Title case category comments

* Remove `at`

* Fix `get` comment

* Privatize/comment/lock property accessors

 - `limit` is now private
 - `space` is now private
 - `full` has been removed
 - `empty` now locks

* Remove `front` function

* Remove `back` method

* Add comment to `first`

* Add comment to `last`

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-06-18 10:44:48 +00:00
Kasia f3f340335f
Make generic version of batcher function (#3822) 2022-06-17 20:52:20 +02:00
pajlada a83c139154
Fix crash that can occur when changing channels (#3799)
The signal that handled the splitinput completer never disconnected, so
if it closed it would access bad memory
2022-06-14 13:46:52 +00:00
Kasia 683701623a
Added interface for highlights to Application (#3808) 2022-06-09 14:37:52 +00:00
pajlada 9219647b6a
Fix highlights not showing in mentions (#3801) 2022-06-06 15:36:53 +02:00
matt d29243a2a5
Removed total views from the usercard (#3792) 2022-06-05 20:51:18 +00:00
pajlada 7ccf60111d
Overhaul highlight system (#3399)
Checks have been moved into a Controller allowing for easier tests.
2022-06-05 15:40:57 +00:00
pajlada 6c38d3ecab
Add the ability to skip generation of git and date data (#3800)
This can be done by setting the `CHATTERINO_SKIP_DATE_GEN` and `CHATTERINO_SKIP_GIT_GEN` environment variables
2022-06-05 14:44:20 +00:00
Kasia a7939b727f
Organized version information (#3781)
added new `GIT_MODIFIED` variable - used to determine whether the vcs tree was compiled or not at the time of building the app
added information about running in DEBUG mode which might be very helpful to determine whether one is running a DEBUG build, e.g. in the process of troubleshooting/determining crash causes

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-06-04 19:00:42 +00:00
Kasia 5de4e9d9cc
Corrected determination of search popup's title (#3790) 2022-06-01 12:41:16 +00:00
pajlada e9e3e5a25a
Use setPlainText when finishing a completion (#3785) 2022-05-30 11:09:38 +00:00
Kasia 765a17d374
Simplify code for fake debug messages (#3775) 2022-05-29 12:53:22 +00:00
Mm2PL c8f5d35042
Added mod button-like placeholders in right click commands (#3765)
Implemented input.text to return altText when it makes no sense to contain data

Co-authored-by: Kasia <zneix@zneix.eu>
2022-05-29 12:23:29 +00:00
Kasia 0ad66c0af4
Optimize formatTime utility (#3777)
Adds benchmarks and unit tests for the function

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-05-29 11:54:42 +00:00
kornes 143f4ef2ec
Fix viewers list search when used before loading finishes (#3774)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-05-29 11:06:01 +00:00
Kasia 8b98f0e142
Removed unused files IsBigEndian.hpp and rangealgorithm.hpp (#3776)
util/IsBigEndian.hpp and util/rangealgorithm.hpp have been unused for a long time, removing them from the codebase because git keeps the history forever anyway!
2022-05-29 10:19:26 +00:00
Kasia 74ec310228
Fixed channels not being set as offline (#3767) 2022-05-28 18:10:10 +00:00
badoge 57f92f5eaa
Added more streaming software to streamer mode binaries list (#3740)
Streamer mode now automatically detects if XSplit, PRISM Live Studio, Twitch Studio, or vMix are running

Co-authored-by: Kasia <zneix@zneix.eu>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-05-28 12:17:42 +00:00
kornes efcfb19187
Add safe checks around use of QImageReader (#3736)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-05-28 13:48:31 +02:00
badoge 135f914b38
Hide category labels when searching in Viewer list (#3719)
This fixed a bug introduced in #3683

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-05-28 11:11:51 +00:00
xel86 3e1e30e4c2
Add scrollbar to Select filters dialog (#3737)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-05-28 10:25:58 +00:00
Kasia 7d0023cf73
Corrected the way we parse comma-separated "list tags" in PRIVMSGs (#3771)
tl;dr: we now split by slash only its first occurrence instead of every occurrence.
2022-05-28 09:55:48 +00:00
James Upjohn 57783c7478
feat: add global channel search support (#3694)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-05-23 00:47:16 +00:00
Kasia e11677c62b
Added /copy command (#3763)
Copies the given arguments to clipboard
2022-05-22 22:42:52 +00:00
Sidd 21934b6aaf
perf: use constant time live channel lookup (#3762) 2022-05-22 19:21:02 +02:00
xel86 dc34c16dbe
Batch checking live status for all channels after startup. (#3757) 2022-05-22 15:51:23 +00:00
xel86 4239666934
Feature: execute commands on chat messages using the context menu (#3738) 2022-05-22 14:45:54 +00:00