Commit graph

491 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
pajlada 5655a7d718
Include network response body in errors (#3987) 2022-09-11 12:32:08 +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 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
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
Mm2PL 044dd8a616
Remove official support for QMake (#3839)
* delet chatterino.pro

* Update documentation

* Update Github Actions config

* Update Cirrus CI config

* Attempt to fix Cirrus CI

* Add changelog entry

* Delete tools/update_filelist.py

It was a QMake-only script? Maybe will need revert + change to CMake or something?

* fix?

* Fuck this linter

* Attempt to clean up build.yml a little

* Add cmaake to install list, remove step for qmake PATH

* Change list entries to always use 1.

Sneaky unrelated change

* These are no longer tests!

* FUCK YOU PRETTIER

* Make BUILDING_ON_LINUX.md simpler

* Get rid of Jenkins

* Get rid of travis

* Remove dupes

* Remove appveyor

* Remove qmake from conanfile

* Try removing explicit qmake path

* Nothing uses the qt style plugins installer anymore

* Update manual linux building instructions

* Update freebsd compilation instructions with a copy paste from the linux instructions

* Remove unused docker files

* Remove linux breakpad build script as it's unused

* Update changelog entry phrasing

* Lint build markdown files

* Change top changelog entry to not be confused as a link

* Skip QtCreator conan setup if conan is disabled

This reduces the amount of warnings & errors Windows users get with
QtCreator

* lint building on linux file

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-07-23 14:04:29 +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 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 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
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
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
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
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
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
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
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
badoge bd3d2ed82a
Added /requests command. Usage: /requests [channel]. (#3746)
Opens the channel points requests queue for the provided channel or the current channel if no input is provided.

Co-authored-by: Mm2PL <mm2pl+gh@kotmisia.pl>
2022-05-22 11:53:45 +00:00
qooq69 1b3aa343a3
Fix links with no thumbnail having previous link's thumbnail (#3720)
Co-authored-by: zneix <zneix@zneix.eu>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-05-22 11:16:16 +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
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
Sidd 94f067ce62
fix: unlisten to automod on user change (#3718)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-05-08 10:56:40 +00:00
kornes 07dd8c560b
Prevent user from entering incorrect characters in Live Notifications channels list (#3715)
Co-authored-by: Sidd <iProdigy@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-05-08 10:27:25 +00:00
Sidd fd44f30c7d
fix: disable duplicate automod caught message handler (#3717) 2022-05-07 22:05:13 +02:00
pajlada 65301a3359
Fix automod crash (#3716) 2022-05-07 18:48:10 +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
LosFarmosCTL 66b9b04401
fix: raise existing emote popups from behind other windows (macOS) (#3713)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-05-07 14:31:14 +00:00
Sidd b2ed4c0843
fix: parse irc tags with consecutive escapes (#3711)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-05-07 13:57:46 +00:00
badoge 846ffbb422
Sorted usernames in /vips message to be case-insensitive (#3696) 2022-04-30 12:02:40 +00:00
Mm2PL 00b463d298
Delete 'is live' messages from non-open channels (#3678)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-04-30 11:37:24 +00:00
badoge d85d9d4910
Add option to open a user's chat in a new tab from the usercard avatar context menu (#3625)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-04-30 10:29:14 +00:00
kornes b825493d6e
Fix incorrect spacing of settings icons at high DPI (#3698)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-04-30 10:04:45 +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
badoge 7246ab38c7
Add chatter count for each category in viewer list (#3683)
Co-authored-by: Kasia <zneix@zneix.eu>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-04-24 15:54:37 +00:00
kornes f170d31ab5
Add missing tooltip hide on ChannelView leave event (#3686) 2022-04-24 17:23:23 +02:00
kornes 0de4a2160a
Add missing parent pointer to few QMessageBox and QFontDialog (#3679)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-04-16 08:59:20 +00:00
Mm2PL 45e8d1d96e
Include user's operating system information in the About page (#3663)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-04-09 12:55:27 +00:00
Sidd c399d4dbe9
refactor(TwitchChannel): remove getGameById call (#3662)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-04-09 12:27:04 +00:00
James Upjohn 04c355f7e9
feat: use message's original channel name when usercard popout is opened (#3623)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-04-09 11:27:21 +00:00
sando a53f8d32e1
Adjust large stream thumbnail to 16:9 (#3655)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-04-07 22:34:52 +00: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
Sidd 870aa74427
Use login name for NotificationController lookup (#3648)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-04-06 21:10:22 +00:00
fourtf 81a62764c8
2.3.5 2022-04-05 14:11:02 +02:00
Mm2PL 832e34186b
Fix announcement rendering (#3639)
* Fix announcement rendering

* Changelog

* Add test message to Window.cpp
2022-03-31 22:24:19 +00:00
fourtf e8b0257397
2.3.5-beta 2022-03-27 22:18:04 +02:00
fourtf 9a7015bedd
reordered changelog 2022-03-27 14:02:20 +02:00
Mm2PL 29117a930e
Add an action to select the word under the cursor (#3633) 2022-03-27 13:33:44 +02:00
qooq69 3c46572c51
Added margin to emote search (#3543)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-03-26 13:46:22 +00:00
Infinitay 554313d645
Add the ability to lock NotebookTab layout (#3627)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-03-26 14:16:45 +01:00
Mm2PL baeec59a8a
Don't grab the keyboard in channel picker dialog (#3575) 2022-03-20 16:31:56 -04:00
James Upjohn 96e2d1f971
Fix empty game update not updating header (#3609)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-03-19 18:58:19 +00:00
James Upjohn 495f4b15f4
fix: double right/middle clicking usernames starts text selection mode (#3608)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-03-19 13:22:42 +00:00
nerix 4c275cb183
Update Emoji Data to v14.0 (#3612) 2022-03-19 11:30:01 +01:00
LosFarmosCTL 414313726e
Update PubSub client to use TLS v1.2 (#3599) 2022-03-12 11:50:41 +00:00
James Upjohn 0a12914e0d
chore: use system logical core count for Ubuntu/macOS builds (#3602)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-03-12 11:25:35 +00:00
qooq69 5a89acbe82
Fixed SplitInput placeholder color (#3606) 2022-03-12 11:40:51 +01:00
Brian 45d96afc14
Added librewolf, icecat, and waterfox incognito support. (#3588)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2022-03-06 13:36:20 +01:00
qooq69 34aadbf7d8
Added /popup command to open currently focused split or supplied channel in a new window (#3529)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-03-05 10:54:09 +00:00
qooq69 82196e3e82
Added incremental search to channel search. (#3544)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-02-13 15:05:38 +00:00
Mm2PL ad8246647f
Add context menu option to open the user's channel from a usercard (#3486)
Co-authored-by: Paweł <zneix@zneix.eu>
2022-02-13 01:37:14 +00:00
Infinitay 5978ed8b1f
Show context menu anywhere in MessageLayout when applicable (#3566)
Co-authored-by: James Upjohn <jammehcow@jammehcow.co.nz>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-02-13 00:46:39 +00:00
Mm2PL b2fa7b1d94
Make Tab Layout setting only accept predefined values (#3564)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-02-12 13:27:25 +01: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 f4c82dfa59
Allow Hotkeys to execute moderation actions in usercards (#3483)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-01-29 16:54:57 +00:00
Mm2PL ddbeb356a5
Fixed automod and unban messages showing when moderation actions were disabled (#3548) 2022-01-28 22:30:32 +00:00
qooq69 e2eb73d817
Disabled /popout and /streamlink from working in non-twitch channels (e.g. /whispers) when supplied no arguments (#3541)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-01-23 13:24:49 +00:00
LosFarmosCTL b5b395f975
Colorize entire split input header instead of just the channel name (#3379)
Co-authored-by: Paweł <zneix@zneix.eu>
2022-01-22 16:23:02 +01:00