Commit graph

1878 commits

Author SHA1 Message Date
pajlada 6672adf287
Fix the menu position on macOS when using Qt 6.5 (#4595) 2023-05-02 20:50:13 +02:00
nerix 642718474c
Dim disabled items in context menus (#4423) 2023-04-29 16:50:13 +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
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
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
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
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
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
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 93a9e41d31
Cleanup Theme-related Code (#4450) 2023-03-17 19:53:03 +00:00
James Upjohn 4923549fdf
fix: update emote picker labels to use 7TV naming (#4405) 2023-02-24 09:22:23 -05:00
pajlada c95a65c153
Fix Qt6 building (#4393) 2023-02-19 20:19:18 +01:00
pajlada 6380fb5198
Fix mod, unmod, vip, unvip buttons in User Card (#4387) 2023-02-16 20:43:37 +00:00
pajlada f317d4c99b
Fix User Card moderation actions not using Helix (#4378) 2023-02-14 20:59:23 +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 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
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
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
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
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
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 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 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
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 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
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
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
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
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
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
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 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
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
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
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
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
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
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
Adam Davies fa93d63383
Add settings tooltips (#3437)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-30 12:06:38 +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
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
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
nerix 974a8f11b7
Migrate /w to Helix API (#4052) 2022-10-08 13:11:55 +02: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
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
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
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
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
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
pajlada 46efa5df3d
Treat reorder warnings as errors (#3944) 2022-09-03 18:12:44 +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 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
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 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
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
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
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
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
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
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
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
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
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
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
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
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
xel86 4239666934
Feature: execute commands on chat messages using the context menu (#3738) 2022-05-22 14:45:54 +00:00
Auro 28efd29dfa
Removed unused refreshButton pointer (#3744)
Follow-up to #1982
2022-05-17 10:44:57 +00:00
LosFarmosCTL 0605dabf31
fix: compilation on macOS without precompiled headers (#3741)
Co-authored-by: zneix <zneix@zneix.eu>
2022-05-17 10:16:33 +00:00
kornes 3bf1756579
Fix: ignore whitespaces pasted in EmotePopup search (#3730)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-05-16 09:42:17 +00:00
xel86 1bf31889f9
Fixed viewer list not being closable with the escape key (#3734) 2022-05-14 11:44:18 +00:00
Kasia 46a5c9509e
Fix Qt::SkipEmptyParts deprecation warning (#3726)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-05-14 10:11:39 +00:00