Commit graph

1685 commits

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