Commit graph

212 commits

Author SHA1 Message Date
nerix 8d4ee72478
fix: Copy Shortcut Not Working In Reply Thread Popup (#4209) 2022-12-03 13:02:39 +00: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
pajlada 011facc13a
Fix crashes that can occur when selecting/copying text (#4153) 2022-11-15 23:32:15 +00:00
kornes 8fa89b4073
Fix context menu not opening when username is right clicked from usercard/search/reply window (#4122)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-11-12 18:10:21 +01:00
Patrick Geneva 3ed7489e0f
Add settings to increase split and usercard scrollback (#3811)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-12 15:53:42 +00:00
pajlada 84a6e724fa
Revert "Fix Twitch-specific filters not being applied (#4107)" (#4111) 2022-11-04 21:32:11 +00:00
pajlada 05008214fa
Fix Twitch-specific filters not being applied (#4107) 2022-11-04 09:22:12 +01: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 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
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
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 34ea303607
Move most Command variables into the CommandController shared variables (#3824) 2022-06-25 12:06:16 +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
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
xel86 4239666934
Feature: execute commands on chat messages using the context menu (#3738) 2022-05-22 14:45:54 +00:00
kornes f170d31ab5
Add missing tooltip hide on ChannelView leave event (#3686) 2022-04-24 17:23:23 +02: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
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
James Upjohn 67c10fafc7
chore: replace usages of obsolete twitch struct with backing field (#3614)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2022-03-19 11:02:29 +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
Infinitay 1d272c399b
Added ability to copy message ID with Shift + Right Click (#3481)
Co-authored-by: Paweł <zneix@zneix.eu>
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-01-16 13:35:00 +00:00
qooq69 687adf6b4e
Usercards no longer close when the originating window (e.g. a search popup) is closed (#3518)
Fixed being unable to open a usercard from inside a usercard while "Automatically close user popup when it loses focus" was enabled

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-01-16 12:31:24 +00:00
Paweł 700c9fc4f2
Don't crash upon right-clicking automod badge (#3496) 2022-01-14 02:44:13 +01:00
Felanbird 1ba747efb1
Add login to Context Menu ignoreList (#3471) 2022-01-06 09:12:09 +00:00
Felanbird 4f01ea4ab6
Add signup to Context Menu ignoreList (#3468) 2022-01-05 12:50:49 +00:00
pajlada c26fb01df5
Fixed crash that could occur when the user closes the Settings dialog (#3444) 2022-01-01 13:15:52 +00:00
pajlada 51ece94f58
Update Settings and Signals version (#3398)
Co-authored-by: zneix <zneix@zneix.eu>
2021-12-19 14:57:56 +00:00
Felanbird c19fd0d332
Add more ignored channels for context menu twitch links (#3352)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-11-14 12:21:17 +00:00
Mm2PL 7f4b73910a
Added support for opening channels from twitch.tv/popout links. (#3309)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-11-06 13:43:03 +00:00
Felanbird d7337ff69f
Add "drops" as an ignoredUsername for context menu twitch links (#3310) 2021-10-31 12:16:07 +01:00
Felanbird be3609a927
Capitalize mentions of Twitch, Chatterino, and IRC in comments and text/settings (#3274) 2021-10-17 15:06:58 +02:00
Mm2PL 9b9fd7d403
Add new command placeholders: {channel.name}, {channel.id}, {stream.game}, {stream.title}, {my.id}, {my.name} (#3155)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-09-11 12:35:26 +00:00
pajlada 54f6e4f9e9
Remove twitchemotes.com-related functionality (#3136)
Co-authored-by: Paweł <zneix@zneix.eu>
2021-08-07 11:13:05 +00:00
pajlada 95044efeed
Fix filter crash introduced in #3092 (#3110) 2021-08-03 07:39:27 +00:00
Paweł 588ed557f0
Fixed comma appended to username completion when not at the beginning of the message (#3060)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-07-24 12:01:50 +02:00
SLCH faafbdaad4
Added "Open in: new tab, browser player, streamlink" in twitch link context menu. (#2988)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-07-11 11:54:19 +00:00
Paweł 670ad90242
Don't trigger middle mouse scrolling if ChannelView is not fully populated (#2933)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-07-04 10:18:49 +00:00
Tal Neoran b42f70e6d8
Add moderation buttons in search popup (#2803) 2021-05-23 15:51:53 +02:00
Tal Neoran 14e8a2bf6c
Add #channel in mentions usercard and search popup (#2802) 2021-05-22 15:11:24 +02:00
Paweł 6732b25f36
Fixed deprecated method Qt::SystemLocaleLongDate (#2784)
Fixes deprecation notices introduced in #2748

Reference: https://doc.qt.io/qt-5/qt.html#DateFormat-enum
Replacement: https://doc.qt.io/qt-5/qlocale.html#FormatType-enum
2021-05-16 00:34:42 +02:00
Paweł e746201c4f
Refactored and Migrated to Helix AutoMod message management (#2779)
This uses new Helix endpoint which requires new scopes and users need to reauthenticate to approve/deny AutoMod messages again.
2021-05-14 13:14:43 +02:00
apa420 d59bb805bb
Added system message on new date (#2748)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-05-09 18:44:57 +02:00
apa420 dcd65b5978
/live split for channels going live (#1998)
Co-authored-by: 23rd <23rd@vivaldi.net>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-05-09 14:17:04 +00:00
Paweł 9c41adca2e
Fixed deprecated method QWheelEvent::delta (#2647)
Reference: https://doc.qt.io/qt-5/qwheelevent-obsolete.html#delta and https://doc.qt.io/qt-5/qwheelevent-obsolete.html#orientation

Changes in behavior introduced in this commit

Change from `event->delta()` to `event->angleDelta().y()` makes it, so you can no longer scroll horizontally (with trackpad / touchpad) to select next/previous tab (until now, you were able to do it, but I believe this is wrong anyways).

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-04-26 21:38:16 +02:00
Paweł 675f99e9cc
Added image links to the badge context menu (#2667) 2021-04-25 13:16:32 +00:00
Andrew Opalach 24a2d8a86f
Wait for smooth scrolling animation to add new message (#2084)
Co-authored-by: Paweł <zneix@zneix.eu>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-04-24 15:15:15 +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