Commit Graph

447 Commits

Author SHA1 Message Date
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