Commit graph

485 commits

Author SHA1 Message Date
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
LosFarmosCTL
6516116244
fix: compilation on macOS without precompiled headers (#4348) 2023-01-31 15:48:56 +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
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
Thomas Petersen
d5a0420f74
Attempt to fix certain ping sound issues on Arch Linux (#4285) 2023-01-16 14:34:05 -05:00
nerix
1043f9f803
Remove Unnecessary Includes in Headers (#4275)
* refactor: remove unnecessary includes in headers

* fix: formatting

* chore: changelog

* fix: scrollbar

* fix: suggestions and old appbase remains

* fix: suggestion

* fix: missing Qt forward declarations

* fix: another qt include

* fix: includes for precompiled-headers=off

* Add missing `<memory>` includes

* Add missing `#pragma once`

* Fix tests

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-12-31 14:41:01 +00:00
nerix
448c8622e7
Remove unused operators in Image (#4267) 2022-12-28 19:24:14 +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
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
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
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
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
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
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
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
011facc13a
Fix crashes that can occur when selecting/copying text (#4153) 2022-11-15 23:32:15 +00:00
nerix
8031f33b53
fix: Mark Bad or Invalid Images as Empty (#4151) 2022-11-14 14:32:51 +01: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
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
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
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
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
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
Daniel Sage
36402a2faf
Fix Reply Text Showing In Reply Thread Popup (#4101) 2022-11-02 23:20:37 +00:00
Daniel Sage
7640677a43
Improve Appearance of Reply Curve (#4077) 2022-11-02 09:19:44 +01: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
pajlada
e6e9b98f66
Remove unused values from MessageLayoutContainer (#4081) 2022-10-23 08:31:38 +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
Felanbird
dd6cb80ab9
Add searching & filtering for bits (#4069) 2022-10-18 20:26:12 +02: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
nerix
4e2da540d2
refactor: Remove Leading Mention in Replies and Highlight Participated Threads (#4047) 2022-10-08 16:25:32 +02:00
pajlada
03051bf0bd
Bump MessageFlag underlying type to be 64-bit (#4042) 2022-10-03 14:55:46 -04:00
nerix
ba586f01d0
fix: Display Sent IRC Messages Like Received Ones (#4027) 2022-10-01 15:36:22 +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
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
0ab59d44f0
Add Basic Elevated Message support (#4016) 2022-09-30 23:23:31 +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
Felanbird
92301e7d72
Update gifFrameLength name as suggested by clang-tidy (#3947) 2022-09-04 17:25:34 +00: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
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
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
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
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
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
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
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