Commit graph

521 commits

Author SHA1 Message Date
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
Kasia
683701623a
Added interface for highlights to Application (#3808) 2022-06-09 14:37:52 +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
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
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
Kasia
137269e91b
Fix QString::SkipEmptyParts for real this time (#3747)
Follow-up to #3726
2022-05-17 09:33:27 +00:00
pajlada
3119a9bab3
Store serverReceivedTime in messages (#3735)
Co-authored-by: James Upjohn <jammehcow@jammehcow.co.nz>
2022-05-15 06:08:28 +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
James Upjohn
a5930f222a
Fix self-highlighting from resub messages (#3708)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-05-08 11:44:32 +00:00
nerix
f97780d84e
Improve Twitch PubSub connection reliability (#3643)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-05-07 15:22:39 +00:00
pajlada
4aa5b04e37
Disable formatting on "contested lines" (#3714)
These lines are formatted differently between clang-format 10 (on CI) and clang-format 11+ (on most dev systems)
2022-05-07 14:57:26 +00:00
Auro
94e4cd2c1d
Added is:first-msg search option (#3700)
* added first-msg for flag predicate

* Update CHANGELOG.md

* Update changelog entry phrasing

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-04-30 11:23:48 +02:00
hicupalot
bfb024b1e7
Added quotation marks in the permitted/blocked Automod messages (#3654)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2022-04-07 08:15:41 -04:00
LosFarmosCTL
092f66dc15
Fix crash when displaying a highlight inside of a sub message with sub message highlights turned off (#3556) 2022-02-12 11:57:33 +01:00
Mm2PL
ddbeb356a5
Fixed automod and unban messages showing when moderation actions were disabled (#3548) 2022-01-28 22:30:32 +00:00
Patrick Geneva
e742860af7
Make animated image playback speed match browser (Firefox and Chrome) behaviour (#3506)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
Co-authored-by: Paweł <zneix@zneix.eu>
2022-01-15 19:23:08 +00:00
karl-police
499d06fcd1
Remove first timestamp from genereated AutoMod queue messages (#3503)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-01-15 17:49:28 +00:00
Paweł
700c9fc4f2
Don't crash upon right-clicking automod badge (#3496) 2022-01-14 02:44:13 +01:00
pajlada
51ece94f58
Update Settings and Signals version (#3398)
Co-authored-by: zneix <zneix@zneix.eu>
2021-12-19 14:57:56 +00:00
Adam Davies
937e33a2fd
Fix zero-width emotes sometimes wrapping lines incorrectly (#3389)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-12-06 22:49:08 +00:00
Rasmus Karlsson
3fcb6346f5 MessagePredicate: Add virtual destructor 2021-11-28 13:02:07 +01:00
Felanbird
8116c30261
Add some commented First Message code for consistency (#3370) 2021-11-28 12:19:08 +01:00
pajlada
3c4331b8cb
Fix link parsing in IRC (#3334) 2021-11-07 13:55:43 +00:00
Ryan
b4be7a4b1f
Fix underlying text from disabled emotes not being colorized after using /me (#3333) 2021-10-31 11:37:06 +01:00
Ryan
e24dffa961
Fix 'First Message' scrollbar highlights not being disabled (#3325)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-10-30 13:24:38 +02:00
Tal Neoran
5112ec73b0
Fix zero-width emotes alignment with removeSpacesBetweenEmotes setting (#3249)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-10-24 12:30:28 +00:00
Felanbird
be3609a927
Capitalize mentions of Twitch, Chatterino, and IRC in comments and text/settings (#3274) 2021-10-17 15:06:58 +02:00
LosFarmosCTL
06245f3713
Add new search predicate to enable searching for messages matching a regex (#3282)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-10-17 12:36:44 +00:00
gempir
0ba7c0f3c5
Add highlights for first messages (#3267)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-10-02 12:17:24 +00:00
James Upjohn
4b251c64b6
Allow resub messages to show in /mentions tab (#3148)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-08-15 10:39:58 +00:00
pajlada
784fdd28b2
Check for ignored phrases/users in channel point redemptions (#3102) 2021-08-01 13:44:04 +00:00
Paweł
89b86b94e7
Cleanup debug logging (#3015) 2021-07-17 16:45:02 +00:00
Paweł
a509c7514c
Fixed degraded dirty emote code escaping (#3010) 2021-07-17 10:35:43 +00:00
Paweł
975b39fe10
Made username and color in AutoMod mod messages use correct values (#2967)
We use values given in pubsub messages and handle their edge-cases properly.
2021-07-11 11:33:35 +00:00
Paweł
94a99ac4f0
Fix custom built messages not showing up as search results (#2962) 2021-07-11 10:19:35 +00:00
Paweł
b6ee2280d2
Moved getRandomColor method to util/Helpers.cpp (#2974)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-07-08 17:09:31 +00:00
fourtf
804bc526b5
fix overflows in the max image size code (#2950)
* fix overflows in the max image size code

* Update Image.cpp
2021-07-03 20:11:10 +00:00
fourtf
ed6ef0b98e add a maximum RAM usage for images 2021-06-24 22:54:36 +02:00
fourtf
1efc547aa5
removed access to theme from TMB + misc fixes (#2694)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-06-20 13:55:35 +00:00
pajlada
91b0170241
Make tests use main chatterino project objects (#2840) 2021-06-13 11:49:59 +00:00
pajlada
2f49b23875
Add ability to disable precompiled headers with CMake (#2727) 2021-05-08 15:57:00 +02:00
apa420
bb73069817
Automod info (#2744)
Co-authored-by: Sidd <iProdigy@users.noreply.github.com>
2021-05-08 12:49:30 +00:00
apa420
c40bdf812b
Fix automod messages not being parsed/showing up properly (#2742)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-05-08 12:14:49 +00:00
Daniel
f6d9fb2aac
Add ability to highlight messages based on user badges (#1704)
Co-authored-by: Paweł <zneix@zneix.eu>
Co-authored-by: 23rd <23rd@vivaldi.net>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-05-02 22:08:08 +00:00
Tal Neoran
77fa1322de
Added is:<flags> search predicate (#2671)
Co-authored-by: Paweł <zneix@zneix.eu>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-05-01 12:21:45 +00:00
pajlada
d1f81ab50b
Add an option to remove spaces between emotes (#2684)
This feature is disabled by default and can be enabled in the settings.

Co-authored-by: Mm2PL <jakis128@gmail.com>
2021-04-25 22:25:23 +00:00
Mm2PL
08f2773f30
Remove ban reasons because they are not a thing in IRC anymore (#2650) 2021-04-25 13:44:12 +00:00
Paweł
c3d61ad77b
Add ability to hide Twitch Prediction badges (#2668)
We now properly categorize the Twitch `predictions` badges since they take up their own slot in Twitch web chat
2021-04-25 14:37:19 +02:00
Paweł
ed7d1a88d0
Added custom FrankerFaceZ VIP badges (#2628)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-04-17 14:42:30 +02:00
Tal Neoran
cceadf473a
Added in:<channels> search predicate (#2634)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-04-17 11:18:22 +00:00
Yoitsu
00ccdbc781
clang-tidy: use std::move where applicable (#2605)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-04-10 12:34:40 +00:00
Paweł
0e99527e8c
Fixed deprecated method QFontMetrics::width (#2509)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-03-13 14:47:02 +01:00
pajlada
6b0ce396d6
Update to Emoji v13 (2020) (#1555) 2021-02-13 19:17:22 +01:00
pajlada
303b079257
Remove bad asserts from IRC text wrapping code (#2446) 2021-02-11 12:52:50 +01:00
Paweł
cfcac99ae6
Added clip creation support 🎬 (#2271)
You can create clips with `/clip` command, `Alt+X` keybind or `Create a clip` option in split header's context menu. This requires a new authentication scope so re-authentication will be required to use it.

Co-authored-by: Leon Richardt <leon.richardt@gmail.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-01-17 14:47:34 +01:00
pajlada
a6e23e2468
Fix anonymous Twitch user ping (#2352) 2021-01-10 15:22:00 +01:00
pajlada
d3b2ab1d8a
Fix a crash bug that occurred when the "Limit message height" setting was enabled and a message was being split up into multiple lines. IRC only. (#2329) 2021-01-02 14:49:03 +01:00
pajlada
2014fc7614
Use correct include path to ImageSet.hpp (#2275) 2020-12-13 13:12:50 +01:00
Mm2PL
eb8eecdfed
Improve the "You are banned" message (#2266)
Added reconnect link to the "You are banned" message
2020-12-12 14:19:51 +01:00
Paweł
49fa9bfd72
Made #channel link in /mentions jump to #channel split (#2220) 2020-11-28 17:45:20 +01:00
Steve Wills
df722a72c1
Switch to QT Category logging (#2206)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2020-11-21 16:20:10 +01:00
Leon Richardt
0eed45ae67
Chore: Proper Lambda Formatting (#2167)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2020-11-08 12:02:19 +01:00
Mm2PL
3ee08b9ffd
Add support FrankerFaceZ badges. (#2101)
On startup, we poll https://api.frankerfacez.com/v1/badges/ids and store the mappings of user IDs to badges for the remainder of the applications lifetime.
2020-10-25 10:36:00 +01:00
Leon Richardt
ec94869480
Allow highlights to be excluded from /mentions (#2036) 2020-10-24 14:33:15 +02:00
dnsge
4199a01b96 Advanced channel filters (#1748)
Adds custom channel filters complete with their own mini-language. Filters can be created in settings, and applied by clicking the three dots to open the Split menu and selecting "Set filters".
2020-10-18 15:18:20 +02:00